Scipy - 用于 z 值的双尾 ppf 函数是什么?

8
使用来自scipy.stat.norm的ppf函数,我得到了一个单尾结果,例如ppf(.95)会给出1.644…而不是应该得到的双尾分布1.96…。在scipy中是否有一个函数可以根据p值提供双尾z分数呢?
1个回答

14

你要寻找的只是

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接