我想进行卡方检验,以将我的数据(“真实”列)与理论正态分布(“ 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


有许多不同版本的“卡方”检验。实际上如此之多,以至于任何人仅将其分析描述为“使用卡方检验”,就应该怀疑自己没有能力。上面的测试可以描述为对理论拟合度的卡方检验。

10-07 19:48