2015-09-12 3 views
3

У меня есть две выборки данных, собранных в рамках двух различных процедур:Почему два независимых тестовых t-теста и двухсторонний ANOVA дают разные результаты в одном наборе данных?

sam.a <- c(0.1333333, 0.2258065, 0.1944444, 0.2894737) 
sam.b <- c(0.137931, 0.093750, 0, 0) 

Я первый попробовал t.test в R:

t.test(sam.a,sam.b) 

, который дал мне результат, как показано ниже (p < 0.05):

Welch Two Sample t-test 

data: sam.a and sam.b 
t = -4.1497, df = 5.8602, p-value = 0.006329 
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval: 
-0.27151717 -0.06935361 
sample estimates: 
mean of x mean of y 
0.1994576 0.3698930 

Когда я пробовал одни и те же данные, используя anova в R:

aov(sam.a ~ sam.b) 

Результаты стали незначительными (p > 0.05):

  Df Sum Sq Mean Sq F value Pr(>F) 
sam.b  1 0.005970 0.005970 1.778 0.314 
Residuals 2 0.006714 0.003357    

Может кто-то решить эту проблему для меня? Большое спасибо!

ответ

6

Если вы хотите сделать эквивалентное ANOVA, вам нужно настроить его по-разному.

t.test(sam.a,sam.b, var.equal = TRUE)$p.value 
#[1] 0.01819264 

Вы должны построить переменную, которая описывает, к которому вектор принадлежит значение:

samples <- c(sam.a, sam.b) 
fac <- c(rep("a", length(sam.a)), 
     rep("b", length(sam.b))) 

summary(aov(samples ~ fac))[[1]]$"Pr(>F)"[1] 
#[1] 0.01819264 

Вы использовали samp.a как зависимая и samp.b как независимый и в основном делали регрессию между ними, что совсем не то же самое. (Обратите внимание, что aov внутренне всегда регрессирует OLS и вычисляет соответствующие суммы квадратов из результата регрессии.)

Если вы принимаете неравные отклонения в t-тесте (по умолчанию) и выполняете тест Welch, стандартный ANOVA не будет точно воспроизводить p-значение.

+0

Большое спасибо! Какая глупая ошибка, которую я сделал, P –

Смежные вопросы