scipy.stats.
boxcox_normplot#
- scipy.stats.boxcox_normplot(x, la, lb, plot=None, N=80)[源代码][源代码]#
计算Box-Cox正态图的参数,并可选择显示它。
Box-Cox 正态图通过图形展示了在
boxcox
中使用的最佳变换参数是什么,以获得接近正态分布的分布。- 参数:
- xarray_like
输入数组。
- la, lb标量
传递给
boxcox
进行 Box-Cox 变换的lmbda
值的下限和上限。如果生成图表,这些也是水平轴的极限。- 绘图对象,可选
如果给出,绘制分位数和最小二乘拟合。plot 是一个对象,必须具有“plot”和“text”方法。可以使用
matplotlib.pyplot
模块或 Matplotlib Axes 对象,或者具有相同方法的自定义对象。默认值为 None,这意味着不创建绘图。- Nint, 可选
水平轴上的点数(从 la 到 lb 等间距分布)。
- 返回:
- lmbdasndarray
进行 Box-Cox 变换的
lmbda
值。- ppccndarray
概率图相关系数,从
probplot
中获得,当拟合 Box-Cox 变换后的输入 x 与正态分布时。
注释
即使给出了 plot,
boxcox_normplot
也不会显示或保存图形;调用probplot
后应使用plt.show()
或plt.savefig('figname.png')
。示例
>>> from scipy import stats >>> import matplotlib.pyplot as plt
生成一些非正态分布的数据,并创建一个 Box-Cox 图:
>>> x = stats.loggamma.rvs(5, size=500) + 5 >>> fig = plt.figure() >>> ax = fig.add_subplot(111) >>> prob = stats.boxcox_normplot(x, -20, 20, plot=ax)
确定并绘制用于转换
x
的最佳lmbda
,并在同一图中绘制它:>>> _, maxlog = stats.boxcox(x) >>> ax.axvline(maxlog, color='r')
>>> plt.show()