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,可选项
水平轴上的点数(等分布从 la 到 lb)。
- Returns:
- lmbdasndarray
对 Yeo-Johnson 变换进行的
lmbda
值。- ppccndarray
概率图相关系数,从
probplot
获得,当将 Box-Cox 变换后的输入 x 与正态分布进行拟合时。
注释
即使给出了 plot,
boxcox_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()