Mengapa t-test dan ANOVA memberikan nilai p yang berbeda untuk perbandingan dua kelompok?

18

Dalam artikel Wikipedia tentang ANOVA , katanya

Dalam bentuknya yang paling sederhana, ANOVA memberikan uji statistik apakah rata-rata beberapa kelompok sama atau tidak, dan oleh karena itu menggeneralisasikan uji-t ke lebih dari dua kelompok.

Pemahaman saya tentang ini adalah bahwa ANOVA sama dengan uji-t ketika menyangkut perbandingan dua kelompok.

Namun, dalam contoh sederhana saya di bawah ini (dalam R), ANOVA dan uji-t memberikan nilai-p yang serupa tetapi sedikit berbeda. Adakah yang bisa menjelaskan mengapa?

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
sumber

Jawaban:

28

Dengan bawaan argumen var.equaldari t.test()sederajat FALSE. Dalam lm(), residu seharusnya memiliki varian konstan. Dengan demikian, dengan menetapkan var.equal = TRUEdalam t.test(), Anda harus mendapatkan hasil yang sama.

var.equalsmenunjukkan apakah memperlakukan kedua varians sama. Jika BENAR maka varians gabungan digunakan untuk memperkirakan varians jika tidak, perkiraan Welch (atau Satterthwaite) terhadap derajat kebebasan digunakan.

okram
sumber