我有一个观测值的向量和一个使用模型计算出的值的向量:
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)
但是它不起作用。你能帮我解决吗?
我有一个观测值的向量和一个使用模型计算出的值的向量:
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)
但是它不起作用。你能帮我解决吗?
在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
的总体的可能性有多大?
rescale.p=TRUE
(所以chisq.test(actual, p=expected, rescale.p=TRUE)
),然后它们将自动重新缩放为总和为1。 - doncherrychisq.test(actual, p=expected, rescale.p = TRUE)在Excel中手动计算时确实得到了正确的值。