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.975
与scipy.stats.norm.ppf()
一起使用。此图可以帮助您形象化概念。
使用 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.975
与scipy.stats.norm.ppf()
一起使用。此图可以帮助您形象化概念。