scipy.stats.
ppcc_plot#
- scipy.stats.ppcc_plot(x, a, b, dist='tukeylambda', plot=None, N=80)[源代码]#
计算并可选地绘制概率图相关系数。
概率图相关系数(PPCC)图可用于确定单参数分布族的最佳形状参数。 它不能用于没有形状参数(如正态分布)或具有多个形状参数的分布。
默认情况下,使用 Tukey-Lambda 分布(stats.tukeylambda)。 Tukey-Lambda PPCC 图通过近似正态分布从长尾分布插值到短尾分布,因此在实践中特别有用。
- 参数:
- xarray_like
输入数组。
- a, b标量
要使用的形状参数的下限和上限。
- diststr 或 stats.distributions 实例, 可选
分布或分布函数名称。 足够类似于 stats.distributions 实例(即,它们具有
ppf
方法)的对象也被接受。 默认值为'tukeylambda'
。- plot对象, 可选
如果给定,则绘制 PPCC 与形状参数的关系图。plot 是一个必须具有“plot”和“text”方法的对象。 可以使用
matplotlib.pyplot
模块或 Matplotlib Axes 对象,或具有相同方法的自定义对象。 默认为 None,这意味着不创建任何绘图。- Nint, 可选
水平轴上的点数(从 a 到 b 均匀分布)。
- 返回:
- 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()
现在,我们使用 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()