Warum geben t-test und ANOVA unterschiedliche p-Werte für den Zweigruppenvergleich an?

18

In dem Wikipedia-Artikel über ANOVA heißt es

In seiner einfachsten Form bietet ANOVA einen statistischen Test, um festzustellen, ob die Mittelwerte mehrerer Gruppen gleich sind, und verallgemeinert den t-Test daher auf mehr als zwei Gruppen.

Ich verstehe dies so, dass ANOVA für einen Zweigruppenvergleich dasselbe ist wie T-Test.

In meinem einfachen Beispiel unten (in R) geben ANOVA und t-Test ähnliche, aber leicht unterschiedliche p-Werte an. Kann mir jemand erklären warum?

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
quelle

Antworten:

28

Standardmäßig ist das Argument var.equalvon t.test()gleich FALSE. In lm()sollen die Residuen eine konstante Varianz haben. Somit kann durch Einstellung var.equal = TRUEin t.test(), sollten Sie das gleiche Ergebnis erhalten.

var.equalsGibt an, ob die beiden Abweichungen als gleich behandelt werden sollen. Wenn TRUE, wird die gepoolte Varianz verwendet, um die Varianz zu schätzen, andernfalls wird die Welch- (oder Satterthwaite-) Näherung an die Freiheitsgrade verwendet.

Ocram
quelle