在R中进行卡方拟合优度检验

13

我有一个观测值的向量和一个使用模型计算出的值的向量:

actual <- c(1411,439,214,100,62,38,29,64)
expected <- c(1425.3,399.5,201.6,116.9,72.2,46.3,30.4,64.8)

现在我正在使用卡方拟合优度检验来评估我的模型表现。

chisq.test(expected,actual) 

但是它不起作用。你能帮我解决吗?


它对我有效,你遇到了什么错误? - johannes
它对我也起作用,但结果不正确。X平方应该为10.2,p值为0.07,但它给出的是X平方=56,p值为0.2289。 - AliCivil
1
你确定吗?这些数字看起来非常接近。你是如何得出卡方值为10.2和p值为0.07的? - sebastian-c
2个回答

15

在7个自由度处,X^2 = 10.2将给出一个p值约为0.18。

> 1-pchisq(10.2, df = 7)
[1] 0.1775201

你应该在参数p中传递预期值。确保对值进行缩放,使它们总和为1。

> chisq.test(actual, p = expected/sum(expected))

    Chi-squared test for given probabilities

data:  actual 
X-squared = 10.2581, df = 7, p-value = 0.1744

这是关于X^2检验的说明。你需要提供一个模型(expected),并询问:我的observed数据来自于一个生成了expected的总体的可能性有多大?


事实上,我有一个模型,并且已经从我的模型中提取了“预期”值,现在我需要看看实际值和从模型中提取的值有多接近。 - AliCivil
2
如果您的“expected”值不等于1,您还可以添加rescale.p=TRUE(所以chisq.test(actual, p=expected, rescale.p=TRUE)),然后它们将自动重新缩放为总和为1。 - doncherry

0

chisq.test(actual, p=expected, rescale.p = TRUE)在Excel中手动计算时确实得到了正确的值。


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