【发布时间】:2023-03-03 07:19:18
【问题描述】:
使用来自scipy.stat.norm 的ppf 函数,我得到一个单尾结果,例如,ppf(.95) 发出1.644... 而不是1.96...,应该得到一个双尾分布。
scipy 中是否有基于 p 值给出双尾 z 分数的函数?
【问题讨论】:
使用来自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 一起使用,您必须使用正态分布的对称性质和
获得合适的下/上尾概率0.975 与scipy.stats.norm.ppf() 一起使用。这张图可以帮助你形象化这个概念。
【讨论】: