我是R的新手,所以请耐心等待。我正在使用卡方检验比较给定位置的核苷酸频率,并计算了两个不同数据集中A,C,G,T的数量:
x1 <- c(272003,310418,201601,237168)
x2 <- c(239614,316515,182070,198025)
我可以想出两种方法来要求进行双样本卡方检验:
> chisq.test(x1,x2)
Pearson's Chi-squared test
data: x1 and x2
X-squared = 12, df = 9, p-value = 0.2133
Warning message:
In chisq.test(x1, x2) : Chi-squared approximation may be incorrect
或
> chisq.test(cbind(x1,x2))
Pearson's Chi-squared test
data: cbind(x1, x2)
X-squared = 2942.065, df = 3, p-value < 2.2e-16
我怀疑第二个版本是正确的,因为我也可以这样做:
> chisq.test(x1,x1)
Pearson's Chi-squared test
data: x1 and x1
X-squared = 12, df = 9, p-value = 0.2133
Warning message:
In chisq.test(x1, x1) : Chi-squared approximation may be incorrect
具有相同且明显不正确的结果。
在这种情况下实际计算的是什么?
谢谢!
答案 0 :(得分:5)
chisq.test(x1,x1)$expected
显示以下内容:
x1
x1 201601 237168 272003 310418
201601 0.25 0.25 0.25 0.25
237168 0.25 0.25 0.25 0.25
272003 0.25 0.25 0.25 0.25
310418 0.25 0.25 0.25 0.25
观察到的计数(chisq.test(x1,x1)$observed
):
x1
x1 201601 237168 272003 310418
201601 1 0 0 0
237168 0 1 0 0
272003 0 0 1 0
310418 0 0 0 1
因此,它假定您提供所有对,但您只提供相同的数字,因此这是观察到的数量。然后,期望值实际上是“正确的”(在这种情况下虽然很愚蠢)。作为旁注,chisq.test(cbind(x1,x1))
执行您期望的操作(X-squared = 0, df = 3, p-value = 1
)。
你的第二个结果看起来不错:
> chisq.test(cbind(x1,x2))$observed
x1 x2
[1,] 272003 239614
[2,] 310418 316515
[3,] 201601 182070
[4,] 237168 198025
> chisq.test(cbind(x1,x2))$expected
x1 x2
[1,] 266912.4 244704.6
[2,] 327073.2 299859.8
[3,] 200162.6 183508.4
[4,] 227041.8 208151.2