R:计算给定卡方和自由度的 p 值

机器算法验证 r 分布 卡方检验
2022-01-17 15:37:40

如何计算给定卡方和自由度的 p 值?例如,当 df = 2 时,卡方 = 15 的精确 p 值是多少?

4个回答

在应用统计中,卡方检验统计作为残差平方和,或来自平方效应之和或来自对数似然差。在所有这些应用程序中,目的是测试某个向量参数是否为零,以及是否为非零,并且卡方统计量与观察到的效果的平方大小有关。所需的 p 值是卡方值的右尾概率,在 R 中为您的示例:

> pchisq(15, df=2, lower.tail=FALSE)
[1] 0.0005530844

对于其他 df 或统计值,您显然只需将它们替换为上述代码。

默认情况下,R 中的所有累积概率函数都会计算左尾概率。然而他们也有一个lower.tail论点,你总是可以设置它FALSE来获得正确的尾部概率。这样做是一种很好的做法,而不是像您在一些基础教科书中看到的那样1p

该函数qchisq进行反向计算,找到与任何给定尾部概率相对应的卡方统计量的值(“q”代表分位数)。例如,对应于 p 值为 0.05 的卡方统计量由下式给出

> qchisq(0.05, df=2, lower.tail=FALSE)
[1] 5.991465

R 有一套概率函数,用于密度或质量的形式d*(例如 , dbetadchisq和分布的形式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