R

為什麼 t 檢驗和 ANOVA 為兩組比較給出不同的 p 值?

  • March 10, 2017

在關於方差分析的維基百科文章中,它說

以最簡單的形式,方差分析提供了幾個組的平均值是否相等的統計檢驗,因此將 t 檢驗推廣到兩個以上的組。

我對此的理解是,在進行兩組比較時,ANOVA 與 t 檢驗相同。

然而,在我下面的簡單示例中(在 R 中),方差分析和 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

默認情況下var.equalt.test()equals的參數FALSE。在lm()中,殘差應該具有恆定的方差。因此,通過設置var.equal = TRUEt.test()您應該得到相同的結果。

var.equals指示是否將兩個方差視為相等。如果為 TRUE,則使用合併方差來估計方差,否則使用 Welch(或 Satterthwaite)對自由度的近似。

引用自:https://stats.stackexchange.com/questions/266686

comments powered by Disqus