为什么t检验和ANOVA为两组比较给出不同的p值?


18

在有关ANOVA的Wikipedia文章中,它说

ANOVA以其最简单的形式提供了几组均值是否相等的统计检验,因此将t检验推广到了两组以上。

我的理解是,在进行两组比较时,方差分析与t检验相同。

但是,在下面的简单示例中(R),ANOVA和t检验给出了相似但略有不同的p值。谁能解释为什么?

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

Answers:


28

默认情况下var.equalt.test()equals 的参数FALSE。在中lm(),残差应该具有恒定的方差。因此,通过设置var.equal = TRUEt.test(),你应该得到同样的结果。

var.equals指示是否将两个方差视为相等。如果为TRUE,则使用合并的方差估计方差,否则使用对自由度的Welch(或Satterthwaite)近似值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.