โพสต์ทดสอบเฉพาะกิจหลังจาก ANOVA พร้อมมาตรการซ้ำโดยใช้ R


24

ฉันใช้ ANOVA ในมาตรการ R ซ้ำแล้วซ้ำอีกดังนี้:

aov_velocity = aov(Velocity ~ Material + Error(Subject/(Material)), data=scrd)
summary(aov_velocity)
  • ซินแท็กซ์ใดบ้างใน R ที่สามารถใช้ในการทำการทดสอบหลังการทำ ANOVA ด้วยมาตรการซ้ำ
  • การทดสอบของ Tukey กับการแก้ไข Bonferroni จะเหมาะสมหรือไม่ ถ้าเป็นเช่นนั้นสิ่งนี้สามารถทำได้ใน R?

1
ดูคำถามที่เกี่ยวข้องเกี่ยวกับการโพสต์การทดสอบเฉพาะกิจสำหรับการวัดซ้ำออกแบบstats.stackexchange.com/questions/575/...
Jeromy Anglim

3
เกี่ยวกับประเด็นที่ 2 ของคุณ: HSD ของ Tukeyได้รวม "การแก้ไข" สำหรับหลายหลากแล้ว (ที่ระดับของสถิติการทดสอบไม่ใช่ระดับอัลฟาเหมือนในวิธีการของ Bonferroni) ดังนั้นไม่จำเป็นต้องรวมทั้งสองอย่างเข้าด้วยกัน
chl

1
@chl: ดังนั้นเราไม่จำเป็นต้องแก้ไขระดับอัลฟาในระหว่างการเปรียบเทียบหลาย ๆ คู่ในกรณีของ HSD ของ Tukey?
สแตน

3
@stan No. (หมายเหตุ: การทดสอบที่ไม่ได้วางแผนไว้ (หลังการเฉพาะกิจ) ควรจะดำเนินการหลังจากที่ ANOVA แสดงผลลัพธ์ที่สำคัญโดยเฉพาะอย่างยิ่งหากเกี่ยวข้องกับวิธีการยืนยัน)
chl

คำตอบ:


20

สิ่งที่คุณสามารถทำได้คือระบุรุ่นด้วยlmeจากนั้นใช้glhtจากmultcompแพ็คเกจเพื่อทำสิ่งที่คุณต้องการ อย่างไรก็ตาม lme ให้ค่า F แตกต่างกันเล็กน้อยกว่า ANOVA มาตรฐาน (ดูคำถามล่าสุดของฉันที่นี่ )

lme_velocity = lme(Velocity ~ Material, data=scrd, random = ~1|Subject)
anova(lme_velocity)

require(multcomp)
summary(glht(lme_velocity, linfct=mcp(Material = "Tukey")), test = adjusted(type = "bonferroni"))

สำหรับความแตกต่างอื่น ๆ แล้ว Bonferroni ดูเช่นหนังสือเกี่ยวกับการmultcompจากผู้เขียนของแพคเกจ

นอกจากนี้คุณยังอาจต้องการที่จะเห็นโพสต์นี้อยู่ในรายชื่อ R-ทางไปรษณีย์และการโพสต์บล็อกนี้สำหรับการระบุมาตรการซ้ำ ANOVA ในการวิจัย

อย่างไรก็ตามดังที่แสดงในคำถามนี้จากฉันฉันไม่แน่ใจว่าวิธีการนี้เหมือนกับ ANOVA หรือไม่ นอกจากนี้ glht เพียงรายงานค่า zแทนค่าtหรือFปกติ สิ่งนี้ดูเหมือนจะผิดปกติเช่นกัน

จนถึงตอนนี้ฉันยังไม่พบวิธีอื่นในการทำเช่นนี้


2

หากคุณต้องการใช้aov()ฟังก์ชั่นที่คุณสามารถใช้emmeansแพคเกจที่สามารถจัดการวัตถุaovlist(และอื่น ๆ อีกมากมาย )

library("emmeans")
# set orthogonal contrasts
options(contrasts = c("contr.sum", "contr.poly"))

aov_velocity <- aov(Velocity ~ Material + Error(Subject / Material), data = scrd)

หลังจากสร้างemmGridวัตถุดังนี้

emm <- emmeans(aov_velocity, ~ Material)

มันง่ายมากที่จะได้รับการเปรียบเทียบแบบคู่ (โพสต์เฉพาะกิจ) ทั้งหมดโดยใช้pairs()ฟังก์ชั่นหรือความคมชัดที่ต้องการโดยใช้contrast()ฟังก์ชั่นของemmeansแพคเกจ การปรับการทดสอบหลายรายการสามารถทำได้ผ่านการadjustโต้แย้งของฟังก์ชั่นเหล่านี้:

pairs(emm)  # adjust argument not specified -> default p-value adjustment in this case is "tukey"  

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ฉันพบvignettes emmeansรายละเอียดและเอกสารที่เป็นประโยชน์มาก

นอกจากนี้คุณยังสามารถหาฉบับสมบูรณ์ (ทำซ้ำ) เช่นรวมถึงรายละเอียดเกี่ยวกับวิธีการที่จะได้รับน้ำหนักที่ถูกต้องในทางตรงกันข้ามคำตอบของฉันที่นี่

อย่างไรก็ตามโปรดทราบว่าการใช้รูปแบบ univariate สำหรับการทดสอบหลังการโพสต์สามารถส่งผลในการต่อต้านค่านิยมp-ถ้า sphericity ถูกละเมิด


0

หากพบความกลมกลืนคุณสามารถเรียกใช้ ANOVA สองทาง:

aov_velocity = aov(Velocity~Material+Subject, data=scrd)
posthoc      = TukeyHSD(aov_velocity, 'Material', conf.level=0.95).
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.