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

Scipy - two tail ppf function for a z value?

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

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

您要找的很简单

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%( 由于其形状)。然后回想一下正态曲线是对称的,每条尾部的面积相当于

所以在你的例子中,每条尾巴的面积是 0.025

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

获得合适的lower/upper尾概率0.975scipy.stats.norm.ppf()一起使用。此图可以帮助您形象化概念。