scipy.stats.

ppcc_plot#

scipy.stats.ppcc_plot(x, a, b, dist='tukeylambda', plot=None, N=80)[source]#

计算概率图相关系数,并选择性地绘图。

概率图相关系数 (PPCC) 图可用于确定一个单参数分布族的最优形状参数。不能将其用于没有形状参数(例如正态分布)或形状参数为多个的分布。

默认情况下,使用 Tukey-Lambda 分布 (stats.tukeylambda)。Tukey-Lambda PPCC 图通过一个近似正态分布插值长尾分布和短尾分布,因此在实践中特别有用。

参数:
x类数组

输入数组。

a, b缩放

要使用的形状参数的下限和上限。

disttype=\"str\" 或 stats.distributions 实例,可选

分布或分布函数名称。看起来像 stats.distributions 实例的对象(即它们具有 ppf 方法)也可接受。默认值是 'tukeylambda'

plot对象,可选

如果已提供,绘制 PPCC 与形状参数的对比图。 plot 是必须具有方法 “plot” 和 “text” 的对象。 matplotlib.pyplot 模块或 Matplotlib Axes 对象可以用作或具有相同方法的自定义对象。默认值是无,表示不创建任何对比图。

Nint,可选

横轴上的点数量(从 ab 均匀分布)。

返回:
svalsndarray

已计算 ppcc 的形状值。

ppccndarray

已计算的概率对比图相关系数值。

参考

J.J. Filliben, “Technometrics 的正态性检验概率对比图相关系数检验”,第 17 卷,第 111-117 页,1975 年。

示例

首先,我们从形状参数为 2.5 的 Weibull 分布中生成一些随机数据,然后绘制数据的直方图

>>> import numpy as np
>>> from scipy import stats
>>> import matplotlib.pyplot as plt
>>> rng = np.random.default_rng()
>>> c = 2.5
>>> x = stats.weibull_min.rvs(c, scale=4, size=2000, random_state=rng)

看看数据的直方图。

>>> fig1, ax = plt.subplots(figsize=(9, 4))
>>> ax.hist(x, bins=50)
>>> ax.set_title('Histogram of x')
>>> plt.show()
../../_images/scipy-stats-ppcc_plot-1_00_00.png

现在,我们使用 PPCC 对比图以及相关的概率对比图和 Box-Cox 正态图来探索这些数据。我们在预期 PPCC 值最大的地方(上面使用的形状参数 c 处)绘制一条红线

>>> fig2 = plt.figure(figsize=(12, 4))
>>> ax1 = fig2.add_subplot(1, 3, 1)
>>> ax2 = fig2.add_subplot(1, 3, 2)
>>> ax3 = fig2.add_subplot(1, 3, 3)
>>> res = stats.probplot(x, plot=ax1)
>>> res = stats.boxcox_normplot(x, -4, 4, plot=ax2)
>>> res = stats.ppcc_plot(x, c/2, 2*c, dist='weibull_min', plot=ax3)
>>> ax3.axvline(c, color='r')
>>> plt.show()
../../_images/scipy-stats-ppcc_plot-1_01_00.png