我想进行卡方检验,以将我的数据(“真实”列)与理论正态分布(“ theor”列)进行比较,该理论正态分布(在Excel中)是通过大真实样本(处理)的参数计算得出的此样本的排名-是“真实”列)。
为此,我应使用R中的哪种测试?
起初我以为应该是chisq.test
但是我将它的结果与EXCEL中函数“ CHI2TEST”的结果(应该给出相同的结果)进行比较,并且这些结果完全不同。它给出p值= 0.2426,而Excel的CHI2TEST得到p值0.87。
也许我没有正确使用chisq.test
?您能否检查我的脚本或建议我对R中的卡方检验进行正确的检验?
> real
[1] 2 3 15 22 21 14 2 1
> theor
[1] 1.4 5.7 14.1 21.6 20.2 11.6 4.1 0.9
> chisq.test (real,theor)
Pearson's Chi-squared test
data: real and theor
X-squared = 48, df = 42, p-value = 0.2426
Warning message:
In chisq.test(real, theor) : Chi-squared approximation may be incorrect
最佳答案
chisq.test
用于列联表,这不是您要提供的。 (请注意,自由度为42,因此它认为您的“实际”变量是计数而不是数值测量。请看一下Pearson卡方检验的这种实现:
> chisq <- sum( (real-theor)^2/theor)
> chisq
[1] 3.2159
> pchisq(chisq, length(theor)-1 ) # df = n-1
[1] 0.1356627
> 1- pchisq(chisq, length(theor)-1 )
[1] 0.8643373
# compare to Excel
有许多不同版本的“卡方”检验。实际上如此之多,以至于任何人仅将其分析描述为“使用卡方检验”,就应该怀疑自己没有能力。上面的测试可以描述为对理论拟合度的卡方检验。