📜  概率图相关系数

📅  最后修改于: 2022-05-13 01:54:41.665000             🧑  作者: Mango

概率图相关系数

概率图相关系数 (PPCC) 是一种图形技术,用于识别最能描述数据集的形状参数。大多数统计分析都是在假设分布的形状的情况下完成的。然而,这些假设可能会受到挑战,因为有时根据形状参数,分布可能具有非常不同的形状。因此,最好将形状参数作为分析的一部分,以便我们对总体分布更有信心。

PPCC 图是使用以下轴形成的:

  • 纵轴:概率图相关系数
  • 水平轴:形状参数的值

PPCC 图的主要目的是首先找到一个合适的形状参数值。除了计算分布的形状参数外,PPCC 图还可用于确定最合适的分布族。

PPCC 图回答了以下问题:

  • 分布式家庭中最合适的成员是什么?
  • 这个最合适的成员是否产生足够好的拟合?
  • 与其他分布相比,这个分布族是否提供了良好的拟合?
  • 形状参数的选择有多敏感?

形状参数为 λ 的土耳其-拉姆达 PPCC 图对于对称分布特别有用。它表明一个分布是短尾还是长尾,它可以进一步表明几个常见的分布。具体来说,

  • λ =-1,分布近似为柯西
  • λ = 0,分布完全符合逻辑。
  • λ = 0.14,分布近似正态。
  • λ = 0.5,分布呈 U 形。
  • λ = 1,分布完全均匀。

如果土耳其-Lambda PPCC 图给出的最大值 = 0.14,那么我们可以得出结论,正态分布是数据的良好近似值。如果最大值 < 0.14,则意味着长尾分布(如双指数或逻辑)将是更好的选择。如果最大值为 -1,则表示非常长的尾分布,例如柯西。如果最大值 > 0.14,则表示非常短尾的分布,例如 Beta 或 Uniform。

执行

  • 在此实现中,我们将生成不同的分布并检查其土耳其-Lambda 形状参数值,并绘制 PPCC 图。我正在使用 Google Colaboratory,其中包含一些预安装的库,例如 scipy、numpy、statsmodel、seaborn 等。但是,可以在本地环境中使用pip install轻松安装这些库。
Python3
# import libraries
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as sc
import seaborn as sns
  
# generate different distributions
sample_size = 10000 
standard_norm = np.random.normal(size=sample_size)
cauchy_dist = sc.cauchy.rvs(loc=1, scale=10, size=sample_size)
logistic_dist = np.random.logistic(size=sample_size)
uniform_dist = np.random.uniform(size= sample_size)
beta_dist = np.random.beta(a=1, b=1, size=sample_size)
  
# Normal Distribution
fig, ax = plt.subplots(1, 2, figsize=(12, 7))
sns.histplot(standard_norm,kde=True, color ='blue',ax=ax[0])
sc.ppcc_plot(standard_norm, -5,5, plot=ax[1])
shape_param_normal = sc.ppcc_max(standard_norm)
ax[1].vlines(shape_param_normal,0,1, colors='red')
print("shape parameter of normal distribution is ", shape_param_normal)
  
# Cauchy Distribution
fig, ax = plt.subplots(1, 2, figsize=(12, 7))
sns.histplot(cauchy_dist, color ='blue',ax=ax[0])
ax[0].set_xlim(-40,40)
sc.ppcc_plot(cauchy_dist, -5,5, plot=ax[1])
shape_param_cauchy = sc.ppcc_max(cauchy_dist)
ax[1].vlines(shape_param_cauchy,0,1, colors='red')
print('shape parameter of cauchy distribution is ',shape_param_cauchy)
  
# Logistic Distribution
fig, ax = plt.subplots(1, 2, figsize=(12, 7))
sns.histplot(logistic_dist, color ='blue',ax=ax[0])
sc.ppcc_plot(logistic_dist, -5,5, plot=ax[1])
shape_param_logistic = sc.ppcc_max(logistic_dist)
ax[1].vlines(shape_param_logistic,0,1, colors='red')
print("shape parameter of logistic is ",shape_param_logistic)
  
# Uniform Distribution
fig, ax = plt.subplots(1, 2, figsize=(12, 7))
sns.histplot(uniform_dist, color ='green',ax=ax[0])
sc.ppcc_plot(uniform_dist, -5,5, plot=ax[1])
shape_para_uniform =sc.ppcc_max(uniform_dist)
ax[1].vlines(shape_para_uniform,0,1, colors='red')
print("shape parameter of uniform distribution is ",shape_para_uniform)
  
# Beta Distribution
fig, ax = plt.subplots(1, 2, figsize=(12, 7))
sns.histplot(beta_dist, color ='blue',ax=ax[0])
sc.ppcc_plot(beta_dist, -5,5, plot=ax[1])
shape_para_beta =sc.ppcc_max(beta_dist)
ax[1].vlines(shape_para_beta,0,1, colors='red')
print("shape parameter of beta distribution is :",shape_para_beta)


带有 PPCC 图的正态分布

shape parameter of normal distribution is  0.14139046072745928

带有 PPCC 图的柯西分布

shape parameter of cauchy distribution is  -0.8555566289941865

带有 PPCC 图的 Logistic 分布

shape parameter of logistic is  0.003792036190661425

具有 PPCC 图的均匀分布

shape parameter of uniform distribution is  1.0681942803525217

带有 PPCC 图的 Beta 分布

shape parameter of beta distribution is : 0.9158983492057267

参考

  • PPCC 图 NIST