R
為什麼 t 檢驗和 ANOVA 為兩組比較給出不同的 p 值?
在關於方差分析的維基百科文章中,它說
以最簡單的形式,方差分析提供了幾個組的平均值是否相等的統計檢驗,因此將 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.equal
,t.test()
equals的參數FALSE
。在lm()
中,殘差應該具有恆定的方差。因此,通過設置var.equal = TRUE
,t.test()
您應該得到相同的結果。
var.equals
指示是否將兩個方差視為相等。如果為 TRUE,則使用合併方差來估計方差,否則使用 Welch(或 Satterthwaite)對自由度的近似。