Python 来自scipy.stats.probplot的奇怪行为
在scipy的文档中,他们说: 用于理论分位数(概率图的水平轴)的公式为Filliben估计: 分位数=dist.ppf(val),对于0.5**(1/n),对于i=n val=(i-0.3175)/(n+0.365),对于i=2,…,n-1 1-0.5**(1/n),对于i=1 我在哪里 指示第i个有序值和n 是值的总数 但当我用它插入一些数字时,它给出的值与probplot函数计算的值不同。例如:Python 来自scipy.stats.probplot的奇怪行为,python,numpy,scipy,statistics,data-science,Python,Numpy,Scipy,Statistics,Data Science,在scipy的文档中,他们说: 用于理论分位数(概率图的水平轴)的公式为Filliben估计: 分位数=dist.ppf(val),对于0.5**(1/n),对于i=n val=(i-0.3175)/(n+0.365),对于i=2,…,n-1 1-0.5**(1/n),对于i=1 我在哪里 指示第i个有序值和n 是值的总数 但当我用它插入一些数字时,它给出的值与probplot函数计算的值不同。例如: np.random.seed(12) n = np.random.randn(10) * 10
np.random.seed(12)
n = np.random.randn(10) * 10
x, _ = stat.probplot(n, plot = plt)
-15.3472134是第二个值,因此我插入
(2-0.3175)/(10+0.365),它返回分位数0.162325(介于0和1之间的数字),而函数将其绘制为-0.98494667,并标记x轴理论分位数。如何从实际分位数0.162325计算-0.98494667“理论分位数”?您得到的“val”值被视为概率。使用该概率,您将使用所需分布的百分比点函数(PPF)(在您的情况下为标准正态分布)得到分位数。“n”概率也可以从连续均匀(0,1)分布中随机获得,但用上述方法计算概率是一种方法。所以scipy.stats.norm.ppf(0.162325)=-0.98494667 为简单起见,您可以将ppf视为cdf的逆函数 “cdf”-对于给定的x值,它返回低于该值的点/质量百分比
“ppf”-对于给定的概率,它返回x值。这类似于计算z分数。您得到的“val”值被视为概率。使用该概率,您将使用所需分布的百分比点函数(PPF)(在您的情况下为标准正态分布)得到分位数。“n”概率也可以从连续均匀(0,1)分布中随机获得,但用上述方法计算概率是一种方法。所以scipy.stats.norm.ppf(0.162325)=-0.98494667 为简单起见,您可以将ppf视为cdf的逆函数 “cdf”-对于给定的x值,它返回低于该值的点/质量百分比 “ppf”-对于给定的概率,它返回x值。这类似于计算z分数