¿Por qué la prueba t y ANOVA dan valores p diferentes para la comparación de dos grupos?

18

En el artículo de Wikipedia sobre ANOVA , dice

En su forma más simple, ANOVA proporciona una prueba estadística de si las medias de varios grupos son iguales y, por lo tanto, generaliza la prueba t a más de dos grupos.

Según tengo entendido, ANOVA es lo mismo que la prueba t cuando se trata de una comparación de dos grupos.

Sin embargo, en mi ejemplo simple a continuación (en R), ANOVA y la prueba t dan valores p similares pero ligeramente diferentes. ¿Alguien puede explicar por qué?

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
fuente

Respuestas:

28

Por defecto el argumento var.equalde t.test()iguales FALSE. En lm(), se supone que los residuos tienen una varianza constante. De este modo, mediante el establecimiento var.equal = TRUEde t.test(), usted debe obtener el mismo resultado.

var.equalsindica si tratar las dos variaciones como iguales. Si es VERDADERO, la varianza agrupada se usa para estimar la varianza; de lo contrario, se usa la aproximación de Welch (o Satterthwaite) a los grados de libertad.

ocram
fuente