scipy.stats.

yeojohnson_normplot#

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

为 Yeo-Johnson 正态分布图计算参数,可选择对其进行显示。

Yeo-Johnson 正态分布图直观地展示了在 yeojohnson 中使用哪个最优变换参数才能获得接近于正态分布的分布。

参数:
xarray_like

输入数组。

la, lb标量

传递给 yeojohnson 的 Yeo-Johnson 变换的 lmbda 值的下限和上限。它们也是所生成图表的水平轴极限(如果生成此类图表)。

plotobject,可选

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

Nint,可选项

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

Returns:
lmbdasndarray

对 Yeo-Johnson 变换进行的 lmbda 值。

ppccndarray

概率图相关系数,从 probplot 获得,当将 Box-Cox 变换后的输入 x 与正态分布进行拟合时。

注释

即使给出了 plotboxcox_normplot 也不会显示或保存图像;你应当在调用 probplot 之后使用 plt.show()plt.savefig('figname.png')

在 1.2.0 版本中添加。

示例

>>> from scipy import stats
>>> import matplotlib.pyplot as plt

生成一些非正态分布的数据,并创建 Yeo-Johnson 图

>>> x = stats.loggamma.rvs(5, size=500) + 5
>>> fig = plt.figure()
>>> ax = fig.add_subplot(111)
>>> prob = stats.yeojohnson_normplot(x, -20, 20, plot=ax)

确定和绘制最佳 lmbda 以转换 x,然后在同一图像中绘制它

>>> _, maxlog = stats.yeojohnson(x)
>>> ax.axvline(maxlog, color='r')
>>> plt.show()
../../_images/scipy-stats-yeojohnson_normplot-1.png