เหตุใด t-test และ ANOVA จึงให้ค่า p แตกต่างกันสำหรับการเปรียบเทียบสองกลุ่ม


18

ในบทความ Wikipedia เกี่ยวกับANOVAมันบอกว่า

ในรูปแบบที่ง่ายที่สุด ANOVA จัดให้มีการทดสอบทางสถิติว่าค่าเฉลี่ยของหลาย ๆ กลุ่มมีค่าเท่ากันหรือไม่และดังนั้นจึงทำให้การทดสอบ t-test เป็นมากกว่าสองกลุ่ม

ความเข้าใจของฉันเกี่ยวกับเรื่องนี้คือ ANOVA นั้นเหมือนกับ t-test เมื่อเปรียบเทียบกับกลุ่มสองกลุ่ม

อย่างไรก็ตามในตัวอย่างง่าย ๆ ของฉันด้านล่าง (ใน 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

คำตอบ:


28

โดยค่าเริ่มต้นการโต้แย้งvar.equalของเท่ากับt.test() FALSEในlm()ส่วนที่เหลือควรจะมีความแปรปรวนคงที่ ดังนั้นโดยการตั้งค่าvar.equal = TRUEในt.test()คุณควรจะได้รับผลเดียวกัน

var.equalsระบุว่าจะปฏิบัติต่อความแปรปรวนทั้งสองว่าเท่ากันหรือไม่ หากเป็น TRUE จะใช้การแปรปรวนแบบพูลเพื่อประมาณค่าความแปรปรวนมิฉะนั้นจะใช้การประมาณ Welch (หรือ Satterthwaite) กับองศาความเป็นอิสระ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.