Por que o teste t e a ANOVA fornecem valores p diferentes para comparação em dois grupos?

18

No artigo da Wikipedia sobre ANOVA , ele diz

Na sua forma mais simples, a ANOVA fornece um teste estatístico para determinar se as médias de vários grupos são iguais ou não e, portanto, generaliza o teste t para mais de dois grupos.

Meu entendimento disso é que a ANOVA é igual ao teste t quando se trata de uma comparação de dois grupos.

No entanto, no meu exemplo simples abaixo (em R), a ANOVA e o teste t fornecem valores p semelhantes, mas ligeiramente diferentes. Alguém pode explicar o porquê?

x1=rnorm(100,mean=0,sd=1)
x2=rnorm(100,mean=0.5,sd=1)

y1=rnorm(100,mean=0,sd=10)
y2=rnorm(100,mean=0.5,sd=10)

t.test(x1,x2)$p.value  # 0.0002695961
t.test(y1,y2)$p.value  # 0.8190363

df1=as.data.frame(rbind(cbind(x=x1,type=1), cbind(x2,type=2)))
df2=as.data.frame(rbind(cbind(x=y1,type=1), cbind(y2,type=2)))

anova(lm(x~type,df1))$`Pr(>F)`[1]  # 0.0002695578
anova(lm(x~type,df2))$`Pr(>F)`[1]  # 0.8190279
Xianjun
fonte

Respostas:

28

Por padrão, o argumento var.equalde t.test()iguais FALSE. Em lm(), os resíduos devem ter variação constante. Assim, definindo var.equal = TRUEem t.test(), você deve obter o mesmo resultado.

var.equalsindica se as duas variações devem ser tratadas como iguais. Se TRUE, a variação combinada é usada para estimar a variação, caso contrário, a aproximação de Welch (ou Satterthwaite) aos graus de liberdade é usada.

ocram
fonte