scipy.stats.

boxcox_normplot#

scipy.stats.boxcox_normplot(x, la, lb, plot=None, N=80)[source]#

计算 Box-Cox 正态性图的参数,可以选择显示它。

Box-Cox 正态性图以图形方式显示在 boxcox 中使用哪个最佳转换参数来获得接近正态分布的分布。

参数:
xarray_like

输入数组。

la, lbscalar

传递给 boxcox 用于 Box-Cox 变换的 lmbda 值的下限和上限。如果生成图,这些也是图水平轴的限制。

plotobject, optional

如果给出,则绘制分位数和最小二乘拟合。 plot 是一个必须具有方法“plot”和“text”的对象。可以使用 matplotlib.pyplot 模块或 Matplotlib Axes 对象,或者使用具有相同方法的自定义对象。默认值为 None,这意味着不创建图。

Nint, optional

水平轴上的点数(从 lalb 均匀分布)。

返回值:
lmbdasndarray

执行 Box-Cox 变换的 lmbda 值。

ppccndarray

概率图相关系数,如在 probplot 中拟合 Box-Cox 变换的输入 x 与正态分布时获得的。

备注

即使给出 plotboxcox_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()
../../_images/scipy-stats-boxcox_normplot-1.png