如何计算给定卡方和自由度的 p 值?例如,当 df = 2 时,卡方 = 15 的精确 p 值是多少?
R:计算给定卡方和自由度的 p 值
在应用统计中,卡方检验统计作为残差平方和,或来自平方效应之和或来自对数似然差。在所有这些应用程序中,目的是测试某个向量参数是否为零,以及是否为非零,并且卡方统计量与观察到的效果的平方大小有关。所需的 p 值是卡方值的右尾概率,在 R 中为您的示例:
> pchisq(15, df=2, lower.tail=FALSE)
[1] 0.0005530844
对于其他 df 或统计值,您显然只需将它们替换为上述代码。
默认情况下,R 中的所有累积概率函数都会计算左尾概率。然而他们也有一个lower.tail
论点,你总是可以设置它FALSE
来获得正确的尾部概率。这样做是一种很好的做法,而不是像您在一些基础教科书中看到的那样
该函数qchisq
进行反向计算,找到与任何给定尾部概率相对应的卡方统计量的值(“q”代表分位数)。例如,对应于 p 值为 0.05 的卡方统计量由下式给出
> qchisq(0.05, df=2, lower.tail=FALSE)
[1] 5.991465
R 有一套概率函数,用于密度或质量的形式d*
(例如 , dbeta
)dchisq
和分布的形式p*
(例如pf
, pgamma
)。您可能希望从那里开始。
是的,可以计算给定 p 值 (p) 和自由度 (df) 的卡方值。以下是如何去做:
为了验证,我首先计算给定卡方值 = 1.1 和 df=1 的 p:
解决方案:
pchisq(1.1, df=1, lower.tail=FALSE)# 答案是p=0.2942661
现在,通过使用 p 和 df 来计算卡方值,我使用了从上面获得的 p=0.2942661 和上面的 df=1 :
解决方案:
qchisq(0.2942661, 1, lower.tail=FALSE) # 答案是 1.1,与第一个解决方案一样。
因此,使用您的卡方 = 15 和 df = 2 的示例,解决方案如下:
解决方案:计算p值
pchisq(15, df=2, lower.tail=FALSE)# 答案:p= 0.0005530844
使用 p= 0.0005530844 和 df=2 来取回卡方值
qchisq(0.0005530844, 2, lower.tail=FALSE)# 答案:卡方 = 15
希望这可以帮助!!!
尝试,
pchisq(chi,df)
在你的例子中,
pchisq(15,2)
[1] 0.9994469