2014-01-27 6 views
4

Я действительно новичок в R, поэтому, пожалуйста, несите меня. Я использую тест хи-квадрат для сравнения нуклеотидных частот в заданном положении, и я подсчитал число A, C, G, T в двух различных наборов данных:Тест с двумя образцами chi-squared в R

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 

с идентичным и явно неправильным результатом.

Что на самом деле рассчитывается в этом случае?

Спасибо!

ответ

3

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