Scipy - 两个尾部ppf函数的z值?

时间:2015-03-30 02:44:03

标签: python scipy

使用ppf中的scipy.stat.norm函数,我得到一个单尾结果,例如ppf(.95)给出1.644...而不是1.96...两个 - 尾分配应该得到。

scipy中是否有一个函数根据p值给出双尾z分数?

1 个答案:

答案 0 :(得分:10)

您正在寻找的内容非常简单

In [12]: def normz(val):
   ....:     return scipy.stats.norm.ppf((1+val)/2)
   ....: 
In [13]: normz(0.95)
Out[13]: 1.959963984540054

这是因为正态分布的对称性。 95%置信区间覆盖正常曲线的95%,因此获得超过95%的值的概率小于5%(由于其形状)。然后回想起正常曲线是对称的,每个尾部的面积相当于

enter image description here

所以在你的情况下,每个尾部的区域是0.025

因此,为了将scipy.stats.normal.ppf()C一起使用,您必须使用正态分布的 对称 性质

enter image description here

获得与0.975一起使用的合适的下/上尾概率scipy.stats.norm.ppf()。此图可以帮助您可视化概念。

enter image description here