Pourquoi le test t et l'ANOVA donnent-ils des valeurs de p différentes pour la comparaison à deux groupes?

18

Dans l'article Wikipédia sur l' ANOVA , il est dit

Dans sa forme la plus simple, l'ANOVA fournit un test statistique pour savoir si les moyennes de plusieurs groupes sont égales ou non, et généralise donc le test t à plus de deux groupes.

D'après ce que je comprends, l'ANOVA est identique au test t lorsqu'il s'agit d'une comparaison à deux groupes.

Cependant, dans mon exemple simple ci-dessous (en R), l'ANOVA et le test t donnent des valeurs de p similaires mais légèrement différentes. Quelqu'un peut-il expliquer pourquoi?

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
la source

Réponses:

28

Par défaut, l'argument var.equalde t.test()égal FALSE. Dans lm(), les résidus sont supposés avoir une variance constante. Ainsi, en mettant var.equal = TRUEen t.test(), vous devriez obtenir le même résultat.

var.equalsindique s'il faut traiter les deux variances comme étant égales. Si VRAI, la variance groupée est utilisée pour estimer la variance, sinon l'approximation de Welch (ou Satterthwaite) des degrés de liberté est utilisée.

ocram
la source