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标量
要使用的形状参数的上下限。
- dist字符串或统计信息。分布实例,可选
分发或分发函数名称。看起来足够像stats.Distribution实例的对象(即,它们有一个
ppf
方法)也被接受。默认值为'tukeylambda'
。- plot对象,可选
如果给定,将根据形状参数打印PPCC。 plot 是一个必须具有“Plot”和“Text”方法的对象。这个
matplotlib.pyplot
可以使用模块或Matplotlib轴对象,也可以使用具有相同方法的自定义对象。默认值为None,这意味着不会创建绘图。- N整型,可选
水平轴上的点数(均匀分布于 a 至 b )。
- 退货
- svalsndarray
其形状值 ppcc 是经过计算的。
- ppccndarray
计算出的概率图为相关系数值。
参考文献
J.J.Filliben,“正态分布的概率图相关系数检验”,“技术计量学”第17卷,第111-117页,1975。
示例
首先,我们从形状参数为2.5的Weibull分布生成一些随机数据,并绘制数据的直方图:
>>> 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值最大的位置(在Shape参数处)绘制了一条红线
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()