首页 > 解决方案 > 卡方检验 (R) 无法解释的结果

问题描述

我在 R 中使用 chisq.test 命令时遇到了一些麻烦:根据我使用数据的方式,我得到了不同且奇怪的结果。

假设我有下表名为t

> t    
   data1   data2   data3   data4   data5
    1487    3301    2983    2432    6151
    1296    1519    1354    1244    3139
    1169     867     837     916    2191
    1372     681     802    1065    1749
    1497     630     962    1256    1304
    1502     544    1097    1380     942
    1344     477    1200    1410     673
    1031     346    1199    1286     347
     705     172     975     980     170
     542      90     919     770      66
     276      26    1005     604      10

我正在列之间进行 chi2 测试,但我不明白:

当我这样做时chisq.test(x=t[,1], y=t[,2]),我得到了:

X-squared = 110, df = 100, p-value = 0.2322

这与我做的结果相同:

data1 <- c(1487, 1296, 1169, 1372, 1497, 1502, 1344, 1031, 705, 542, 276)
data2 <- c(3301, 1519, 867, 681, 630, 544, 477, 346, 172, 90, 26)
chisq.test(x=data1, y=data2)

但不同于:

t2 <- matrix(c(data1, data2), ncol=11, nrow=2, byrow=T)
chisq.test(t2)
X-squared = 2865.8, df = 10, p-value < 2.2e-16

根据自由度,我猜最后一个是正确的,但是这里发生了什么?此外,无论我选择在测试中使用什么列,我都得到了相同的 pvalues ...

标签: rchi-squared

解决方案


实际上,在您的第三个 chisqtest 中,您将 data1 和 data2 放在一个向量中,并将长度为 22 的向量与 y = NULL 进行比较。确切地说,您使用后一个 chisq.test 命令执行以下操作:

 t2 <- matrix(c(data1, data2), ncol=11, nrow=2, byrow=T)
 chisq.test(x = t2, y = NULL)

这使:

 Pearson's Chi-squared test
 data:  t2
 X-squared = 2865.8, df = 10, p-value < 2.2e-16

推荐阅读