scipy.stats.
yeojohnson_normplot#
- scipy.stats.yeojohnson_normplot(x, la, lb, plot=None, N=80)[source]#
计算 Yeo-Johnson 正态性图的参数,可以选择显示它。
Yeo-Johnson 正态性图以图形方式显示在
yeojohnson
中使用的最佳转换参数是什么,以获得接近正态分布的分布。- 参数:
- xarray_like
输入数组。
- la, lbscalar
传递给
yeojohnson
用于 Yeo-Johnson 变换的lmbda
值的下限和上限。 这些也是生成绘图时水平轴的限制。- plotobject, optional
如果给定,则绘制分位数和最小二乘拟合。 plot 是一个必须具有方法 “plot” 和 “text” 的对象。 可以使用
matplotlib.pyplot
模块或 Matplotlib Axes 对象,或者具有相同方法的自定义对象。 默认为 None,这意味着不创建任何绘图。- Nint, optional
水平轴上的点数(从 la 到 lb 均匀分布)。
- 返回值:
- 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()