scipy.stats.gaussian_kde.
set_bandwidth#
- gaussian_kde.set_bandwidth(bw_method=None)[源代码]#
使用给定方法计算估计器的带宽。
调用
set_bandwidth
后计算出的新带宽将用于后续的密度估计评估。- 参数:
- bw_methodstr、标量或可调用对象,可选
用于计算估计器带宽的方法。可以是 ‘scott’、‘silverman’、一个标量常量或一个可调用对象。如果是一个标量,它将直接用作 kde.factor。如果是一个可调用对象,它应该接受一个
gaussian_kde
实例作为唯一参数,并返回一个标量。如果为 None(默认),则不会发生任何操作;保留当前的 kde.covariance_factor 方法。
说明
在 0.11 版本中添加。
示例
>>> import numpy as np >>> 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()