scipy.stats.norm.pdf在Python中用于计算p值。

3

我正在进行一项单样本假设检验,并使用如下所示的scipy.stats.norm.pdf()来计算p值。

import scipy.stats as stats

x = 98.24923076
mean = 98.6
sigma = 0.064304

z = (mean - x) / sigma

p_value = stats.norm.pdf(x, mean, sigma)

我明白我的p值为2.144621812e-06,z值为5.45485879572。然而,当我将这些数字输入在线的p或z计算器(例如链接)时,我得到了不同的值。我想我在统计或编码方面遗漏了什么。谢谢您提前的帮助。
1个回答

5
为计算p值,需要使用累积分布函数(cdf)而非概率密度函数(pdf)。
stats.norm.cdf(x, mean, sigma)
//2.4505888408075971e-08

谢谢Christian。这个结果与我在上面链接中得到的结果相匹配。使用cdf而不是pdf的原因是因为cdf是pdf的积分,我正在寻找一个范围内的概率值,而不是单个点的概率值?我猜这更像是一个统计学问题,但您的见解将不胜感激。 - Charles
我不一定会这样说,但我认为你的想法是正确的。只要注意对于连续分布来说,“在单个点上的概率”并没有太多意义,因为它总是为零。累积分布函数确实是概率密度函数的积分。 - Christian Hirsch

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