scipy.stats.
ppcc_max#
- scipy.stats.ppcc_max(x, brack=(0.0, 1.0), dist='tukeylambda')[源代码]#
计算最大化 PPCC 的形状参数。
概率图相关系数 (PPCC) 图可用于确定单参数分布族的最优形状参数。
ppcc_max
返回使给定数据的概率图相关系数最大化的形状参数,该参数用于单参数分布族。- 参数:
- xarray_like
输入数组。
- bracktuple,可选
三元组 (a,b,c),其中 (a<b<c)。如果 bracket 由两个数字 (a, c) 组成,则它们被假定为下坡 bracket 搜索的起始区间(请参阅
scipy.optimize.brent
)。- diststr 或 stats.distributions 实例,可选
分布或分布函数名称。看起来足够像 stats.distributions 实例的对象(即,它们具有
ppf
方法)也被接受。默认值为'tukeylambda'
。
- 返回:
- shape_valuefloat
概率图相关系数达到最大值时的形状参数。
备注
brack 关键字用作起点,这在极端情况下很有用。可以使用绘图来获得最大值位置的粗略视觉估计,以便在其附近开始搜索。
参考文献
[1]J.J. Filliben,“The Probability Plot Correlation Coefficient Test for Normality”,Technometrics,Vol. 17, pp. 111-117, 1975。
[2]工程统计手册,NIST/SEMATEC,https://www.itl.nist.gov/div898/handbook/eda/section3/ppccplot.htm
示例
首先,我们从形状参数为 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)
使用 Weibull 分布为此数据生成 PPCC 图。
>>> fig, ax = plt.subplots(figsize=(8, 6)) >>> res = stats.ppcc_plot(x, c/2, 2*c, dist='weibull_min', plot=ax)
我们计算形状应达到最大值的值,并在那里绘制一条红线。该线应与 PPCC 图中的最高点重合。
>>> cmax = stats.ppcc_max(x, brack=(c/2, 2*c), dist='weibull_min') >>> ax.axvline(cmax, color='r') >>> plt.show()