Perché t-test e ANOVA forniscono valori p diversi per il confronto a due gruppi?


18

Nell'articolo di Wikipedia su ANOVA , dice

Nella sua forma più semplice, ANOVA fornisce un test statistico per stabilire se le medie di più gruppi sono uguali e quindi generalizza il test t a più di due gruppi.

La mia comprensione di questo è che ANOVA è lo stesso del test t quando si tratta di un confronto a due gruppi.

Tuttavia, nel mio semplice esempio di seguito (in R), ANOVA e t-test forniscono valori p simili ma leggermente diversi. Qualcuno può spiegare perché?

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

Risposte:


28

Per impostazione predefinita l'argomento var.equaldi t.test()eguali FALSE. In lm(), i residui dovrebbero avere una varianza costante. Così, impostando var.equal = TRUEin t.test(), si dovrebbe ottenere lo stesso risultato.

var.equalsindica se trattare le due varianze come uguali. Se TRUE, la varianza raggruppata viene utilizzata per stimare la varianza, altrimenti viene utilizzata l'approssimazione di Welch (o Satterthwaite) ai gradi di libertà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.