วัด ANOVA ซ้ำด้วย lme / lmer ใน R สำหรับปัจจัยภายในสองเรื่อง


19

ฉันพยายามใช้lmeจากnlmeแพ็คเกจเพื่อทำซ้ำผลลัพธ์จากaovมาตรการ ANOVAs ซ้ำ ๆ ฉันได้ทำสิ่งนี้สำหรับการทดสอบซ้ำปัจจัยเดียวและสำหรับการทดสอบสองปัจจัยด้วยปัจจัยหนึ่งระหว่างวิชาและอีกหนึ่งปัจจัยในวิชา แต่ฉันมีปัญหาในการทดลองสองปัจจัยกับสองภายใน - หัวข้อย่อย

ตัวอย่างที่แสดงด้านล่าง AและBเป็นปัจจัยที่มีผลคงที่และsubjectเป็นปัจจัยที่มีผลแบบสุ่ม

set.seed(1)
d <- data.frame(
    Y = rnorm(48),
    subject = factor(rep(1:12, 4)),
    A = factor(rep(1:2, each=24)),
    B = factor(rep(rep(1:2, each=12), 2)))

summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d))  # Standard repeated measures ANOVA

library(nlme)
# Attempts:
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject))  # not same as above
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject/(A+B)))  # gives error

ฉันไม่เห็นคำอธิบายนี้ในหนังสือ Pinheiro และ Bates แต่ฉันอาจมองข้ามไป

คำตอบ:


15

สิ่งที่คุณเหมาะสมกับที่aovเรียกว่าพล็อตสตริปและมันก็ยากที่จะเข้ากันได้lmeเพราะมีเอฟเฟกต์แบบสุ่มsubject:Aและsubject:Bข้าม

ความพยายามครั้งแรกของคุณเทียบเท่ากับaov(Y ~ A*B + Error(subject), data=d)ซึ่งไม่รวมเอฟเฟกต์แบบสุ่มทั้งหมด ความพยายามครั้งที่สองของคุณเป็นความคิดที่ถูกต้อง แต่ไวยากรณ์สำหรับเอฟเฟ็กต์แบบสุ่มโดยใช้ lme นั้นยุ่งยากมาก

ใช้lmeจากnlmeแพคเกจรหัสจะเป็น

lme(Y ~ A*B, random=list(subject=pdBlocked(list(~1, pdIdent(~A-1), pdIdent(~B-1)))), data=d)

เมื่อใช้lmerจากlme4แพ็คเกจรหัสจะเป็นสิ่งที่ต้องการ

lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d)    

หัวข้อเหล่านี้จากความช่วยเหลือ R อาจมีประโยชน์ (และเพื่อให้เครดิตนั่นคือที่ที่ฉันได้รับnlmeรหัสจาก)

http://www.biostat.wustl.edu/archives/html/s-news/2005-01/msg00091.html

http://permalink.gmane.org/gmane.comp.lang.r.lme4.devel/3328

http://www.mail-archive.com/r-help@stat.math.ethz.ch/msg10843.html

ลิงค์สุดท้ายนี้อ้างถึง p.165 ของ Pinheiro / Bates; ที่อาจเป็นประโยชน์เช่นกัน

แก้ไข: นอกจากนี้โปรดทราบว่าในชุดข้อมูลที่คุณมีส่วนประกอบความแปรปรวนบางส่วนเป็นค่าลบซึ่งไม่อนุญาตให้ใช้เอฟเฟกต์แบบสุ่มกับ lme ดังนั้นผลลัพธ์จึงแตกต่างกัน ชุดข้อมูลที่มีส่วนประกอบผลต่างบวกทั้งหมดสามารถสร้างขึ้นได้โดยใช้เมล็ดที่ 8 จากนั้นผลลัพธ์จะตกลงกัน ดูคำตอบนี้สำหรับรายละเอียด

นอกจากนี้โปรดทราบว่าlmeจากการnlmeคำนวณไม่ได้องศาอิสระอย่างถูกต้องดังนั้นสถิติ F จึงเห็นด้วย แต่ไม่ใช่ค่า p และlmerจากlme4นั้นก็ไม่ลองเช่นกันเพราะมันยุ่งยากมากในการปรากฏตัวแบบสุ่มที่ไม่สมดุลและอาจไม่ แม้จะเป็นสิ่งที่สมเหตุสมผลที่จะทำ แต่นั่นเป็นมากกว่าที่ฉันต้องการเข้าไปที่นี่


แอรอนฉันไม่คิดว่ารหัส lmer ของคุณถูกต้อง ตรวจการณ์aovโทรเป็นเพียงมาตรฐานการออกแบบซ้ำมาตรการที่หนึ่งจะวิเคราะห์ด้วย lmer lmer(Y~A*B+(1|subject))เป็น (แม้ว่าจะเห็นคำตอบนี้สำหรับแบบจำลองที่ซับซ้อนมากขึ้นซึ่งอนุญาตให้ประมาณค่าความแปรปรวนและความสัมพันธ์แบบข้ามเอสเอสได้: stats.stackexchange.com/questions/13166/rs-lmer-cheat-sheet/ ...... )
Mike Lawrence

4
การเรียก aov ของ OP มีสามแบบสุ่ม เพื่อทำซ้ำว่าด้วยlmerรหัสข้างต้นของฉันถูกต้อง lmerรหัสของคุณมีผลการสุ่มเพียงหนึ่งอย่าง ซึ่งถูกต้องจะขึ้นอยู่กับบริบท
แอรอน - คืนสถานะโมนิก้า

นอกจากนี้โปรดทราบว่าคำตอบที่คุณเชื่อมโยงไปนั้นไม่มีตัวอย่างของการสุ่มข้าม
Aaron - Reinstate Monica

6

ความพยายามครั้งแรกของคุณคือคำตอบที่ถูกต้องหากนั่นคือทั้งหมดที่คุณพยายามทำ nlme () ทำงานระหว่างและภายในส่วนประกอบคุณไม่จำเป็นต้องระบุ

ปัญหาที่คุณพบไม่ใช่เพราะคุณไม่รู้วิธีระบุรูปแบบ แต่เป็นเพราะมาตรการ ANOVA ซ้ำ ๆ และเอฟเฟ็กต์แบบผสมนั้นไม่เหมือนกัน บางครั้งผลลัพธ์จาก ANOVA และโมเดลเอฟเฟกต์แบบผสมจะจับคู่ โดยเฉพาะอย่างยิ่งกรณีที่คุณรวมข้อมูลของคุณเช่นเดียวกับ ANOVA และคำนวณทั้งสองอย่างจากนั้น แต่โดยทั่วไปเมื่อทำอย่างถูกต้องในขณะที่ข้อสรุปอาจคล้ายกันผลลัพธ์แทบจะไม่เหมือนเดิม ข้อมูลตัวอย่างของคุณไม่เหมือนกับการวัดซ้ำจริง ๆ ที่คุณมักจะมีการทำซ้ำของแต่ละการวัดภายใน S เมื่อคุณทำการวิเคราะห์ความแปรปรวนโดยทั่วไปแล้วคุณจะรวมการทำซ้ำเหล่านั้นเพื่อรับการประเมินผลกระทบสำหรับแต่ละเรื่อง ในการสร้างเอฟเฟ็กต์ผสมคุณไม่ได้ทำสิ่งนั้น คุณทำงานกับข้อมูลดิบ เมื่อคุณทำเช่นนั้นคุณ

[นอกเหนือจากการใช้ lmer () (จากแพ็คเกจ lme4) แทน lme () ให้ค่า SS และ MS ที่ตรงกับ ANOVA สำหรับเอฟเฟกต์ในตัวอย่างของคุณมันแค่ว่า F นั้นแตกต่างกัน]


1
ฉันเชื่อว่าหากทุกอย่างมีความสมดุลกับผลลัพธ์โดยใช้ตัวแบบผสม (นั่นคือได้รับการประมาณด้วย ML หรือ REML) และผลลัพธ์ที่ใช้ ANOVA (นั่นคือการประมาณด้วยช่วงเวลา) จะเหมือนกันเกือบทั้งหมด ปัญหาในกรณีนี้คือไวยากรณ์เพื่อให้พอดีกับรุ่นที่ใช้ทั้งสองวิธี
แอรอน - คืนสถานะโมนิก้า

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

1
โปรดทราบว่าการพยายามครั้งแรกไม่ถูกต้องเพราะไม่ได้อธิบายถึงเอฟเฟกต์แบบสุ่ม
แอรอน - คืนสถานะโมนิก้า

1
จอห์นขอบคุณสำหรับคำตอบของคุณ เหตุผลของฉันสำหรับการทำเช่นนี้คือฉันอ่านบางแห่งในไซต์นี้ซึ่งมาตรการ ANOVA ซ้ำ ๆ โดยทั่วไปจะไม่แนะนำอีกต่อไปด้วยแบบจำลองผสมที่เป็นที่ต้องการ ด้วยเหตุผลบางอย่างฉันรู้สึกว่าทั้งสองวิธีจะให้ผลลัพธ์ที่เหมือนกันสำหรับการออกแบบที่สมดุลและฉันพยายามยืนยันสิ่งนี้
mark999

แอรอนฉันเอามันเป็นคำตอบที่ถูกต้องสำหรับสิ่งที่จะได้รับการพิจารณาอย่างเท่าเทียม โดยทั่วไปสิ่งที่แนะนำคือขั้นตอนแรกในการจำลองการวัดซ้ำ ไม่มี 'ถูกต้อง' ในการจับคู่ที่สมบูรณ์แบบ การเพิ่มเอฟเฟกต์แบบสุ่มจะไม่ช่วยแก้ปัญหา ฉันทราบว่าหนึ่งในคำตอบที่คุณอ้างถึงจะแนะนำวิธีแก้ปัญหาที่คุณเขียน อย่างไรก็ตามนั่นไม่ใช่ผลลัพธ์ ANOVA (แบบจำลองนั้นแตกต่างกัน แต่ไม่ใช่ ANOVA) ที่ต่างจากที่ฉันพูดถูกต้อง ฉันสงสัยว่าผู้เขียนพยายามที่จะจับคู่สิ่งที่ OP ขอมา แต่มันไม่ใช่โมเดลที่สมเหตุสมผล
จอห์น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.