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

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

返回值:
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