scipy.stats.gaussian_kde.set_bandwidth

gaussian_kde.set_bandwidth(bw_method=None)[源代码]

用给定的方法计算估计器带宽。

调用后计算的新带宽 set_bandwidth 用于后续估计密度的评估。

参数
bw_method字符串,标量或可调用,可选

用于计算估计器带宽的方法。它可以是“Scott”、“Silverman”、标量常量或可调用的。如果是标量,它将直接用作 kde.factor 。如果是可调用的,则应使用 gaussian_kde 实例作为唯一参数并返回标量。如果为None(默认值),则不执行任何操作;当前 kde.covariance_factor 方法保持不变。

注意事项

0.11 新版功能.

示例

>>> import scipy.stats as stats
>>> x1 = np.array([-7, -5, 1, 4, 5.])
>>> kde = stats.gaussian_kde(x1)
>>> xs = np.linspace(-10, 10, num=50)
>>> y1 = kde(xs)
>>> kde.set_bandwidth(bw_method='silverman')
>>> y2 = kde(xs)
>>> kde.set_bandwidth(bw_method=kde.factor / 3.)
>>> y3 = kde(xs)
>>> import matplotlib.pyplot as plt
>>> fig, ax = plt.subplots()
>>> ax.plot(x1, np.full(x1.shape, 1 / (4. * x1.size)), 'bo',
...         label='Data points (rescaled)')
>>> ax.plot(xs, y1, label='Scott (default)')
>>> ax.plot(xs, y2, label='Silverman')
>>> ax.plot(xs, y3, label='Const (1/3 * Silverman)')
>>> ax.legend()
>>> plt.show()
../../_images/scipy-stats-gaussian_kde-set_bandwidth-1.png