t検定とANOVAが2つのグループの比較で異なるp値を与えるのはなぜですか?


18

ANOVAに関するウィキペディアの記事では、

最も単純な形式では、ANOVAはいくつかのグループの平均が等しいかどうかの統計的検定を提供するため、t検定を3つ以上のグループに一般化します。

これについての私の理解は、ANOVAは2グループ比較に関して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

回答:


28

デフォルトではvar.equalt.test()equals の引数FALSE。ではlm()、残差は一定の分散を持っていると想定されています。したがって、に設定var.equal = TRUEするt.test()と、同じ結果が得られます。

var.equals2つの分散を等しいものとして扱うかどうかを示します。TRUEの場合、プールされた分散が分散の推定に使用されます。それ以外の場合は、自由度に対するウェルチ(またはサタースウェイト)近似が使用されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.