ฉันกำลังพยายามเปลี่ยนจากการใช้ez
แพคเกจเป็นlme
มาตรการ ANOVA ซ้ำ ๆ (เพราะฉันหวังว่าฉันจะสามารถใช้ความแตกต่างที่กำหนดเองได้ด้วยlme
)
ตามคำแนะนำจากบล็อกนี้โพสต์ก็สามารถที่จะตั้งค่ารูปแบบเดียวกันโดยใช้ทั้งaov
(เช่นเดียวกับez
เมื่อมีการร้องขอ) lme
และ อย่างไรก็ตามในตัวอย่างที่ให้ไว้ในโพสต์ค่าFเห็นด้วยอย่างสมบูรณ์ระหว่างaov
และlme
(ฉันตรวจสอบและพวกเขาทำ) นี่ไม่ใช่กรณีของข้อมูลของฉัน ถึงแม้ว่าค่าFจะใกล้เคียงกัน แต่ก็ไม่เหมือนกัน
aov
ส่งคืนค่า f ที่ 1.3399, lme
ส่งคืน 1.36264 ฉันยินดีที่จะยอมรับaov
ผลลัพธ์ว่า "ถูกต้อง" เนื่องจากนี่คือสิ่งที่ SPSS ส่งคืน (และนี่คือสิ่งที่นับให้กับฟิลด์ / หัวหน้างานของฉัน)
คำถาม:
มันจะดีถ้ามีคนอธิบายได้ว่าทำไมความแตกต่างนี้จึงมีอยู่และฉันจะใช้
lme
เพื่อให้ผลลัพธ์ที่น่าเชื่อถือ (ฉันก็ยินดีที่จะใช้lmer
แทนlme
สิ่งประเภทนี้ถ้ามันให้ผลลัพธ์ "ถูกต้อง" อย่างไรก็ตามฉันยังไม่ได้ใช้จนถึงตอนนี้)หลังจากแก้ปัญหานี้แล้วฉันต้องการเรียกใช้การวิเคราะห์ความเปรียบต่าง โดยเฉพาะฉันจะสนใจความแตกต่างของการรวมสองระดับแรกของปัจจัย (เช่น
c("MP", "MT")
) และเปรียบเทียบสิ่งนี้กับระดับที่สามของปัจจัย (เช่น"AC"
) นอกจากนี้การทดสอบระดับที่สามกับระดับที่สี่ของปัจจัย (เช่น"AC"
กับ"DA"
)
ข้อมูล:
tau.base <- structure(list(id = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L,
22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L,
14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L,
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L,
19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L,
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L), .Label = c("A18K",
"D21C", "F25E", "G25D", "H05M", "H07A", "H08H", "H25C", "H28E",
"H30D", "J10G", "J22J", "K20U", "M09M", "P20E", "P26G", "P28G",
"R03C", "U21S", "W08A", "W15V", "W18R"), class = "factor"), factor = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("MP", "MT", "AC", "DA"
), class = "factor"), value = c(0.9648092876, 0.2128662077, 1,
0.0607615485, 0.9912814024, 3.22e-08, 0.8073856412, 0.1465590332,
0.9981672618, 1, 1, 1, 0.9794401938, 0.6102546108, 0.428651501,
1, 0.1710644881, 1, 0.7639763913, 1, 0.5298989196, 1, 1, 0.7162733447,
0.7871177434, 1, 1, 1, 0.8560509327, 0.3096989662, 1, 8.51e-08,
0.3278862311, 0.0953598576, 1, 1.38e-08, 1.07e-08, 0.545290432,
0.1305621416, 2.61e-08, 1, 0.9834051136, 0.8044114935, 0.7938839461,
0.9910112678, 2.58e-08, 0.5762677121, 0.4750002288, 1e-08, 0.8584252623,
1, 1, 0.6020385797, 8.51e-08, 0.7964935271, 0.2238374288, 0.263377904,
1, 1.07e-08, 0.3160751898, 5.8e-08, 0.3460325565, 0.6842217296,
1.01e-08, 0.9438301877, 0.5578367224, 2.18e-08, 1, 0.9161424562,
0.2924856039, 1e-08, 0.8672987992, 0.9266688748, 0.8356425464,
0.9988463913, 0.2960361777, 0.0285680426, 0.0969063841, 0.6947998266,
0.0138254805, 1, 0.3494775301, 1, 2.61e-08, 1.52e-08, 0.5393467752,
1, 0.9069223275)), .Names = c("id", "factor", "value"), class = "data.frame", row.names = c(1L,
6L, 10L, 13L, 16L, 17L, 18L, 22L, 23L, 24L, 27L, 29L, 31L, 33L,
42L, 43L, 44L, 45L, 54L, 56L, 58L, 61L, 64L, 69L, 73L, 76L, 79L,
80L, 81L, 85L, 86L, 87L, 90L, 92L, 94L, 96L, 105L, 106L, 107L,
108L, 117L, 119L, 121L, 124L, 127L, 132L, 136L, 139L, 142L, 143L,
144L, 148L, 149L, 150L, 153L, 155L, 157L, 159L, 168L, 169L, 170L,
171L, 180L, 182L, 184L, 187L, 190L, 195L, 199L, 202L, 205L, 206L,
207L, 211L, 212L, 213L, 216L, 218L, 220L, 222L, 231L, 232L, 233L,
234L, 243L, 245L, 247L, 250L))
และรหัส:
require(nlme)
summary(aov(value ~ factor+Error(id/factor), data = tau.base))
anova(lme(value ~ factor, data = tau.base, random = ~1|id))
lme
ผลลัพธ์จาก ANOVA ตำราเรียนมาตรฐาน (กำหนดโดยaov
และซึ่งเป็นสิ่งที่ฉันต้องการ) นี่ไม่ใช่ตัวเลือกสำหรับฉัน ในกระดาษของฉันฉันต้องการรายงาน ANOVA ไม่ใช่สิ่งที่เหมือนกับ ANOVA Venables & Ripley ที่น่าสนใจ (2002, p. 285) แสดงว่าทั้งสองวิธีนำไปสู่การประมาณการแบบเดียวกัน แต่ความแตกต่างของค่าFทำให้ฉันมีความรู้สึกไม่ดี นอกจากนี้Anova()
(จากcar
) จะส่งกลับเฉพาะค่าChi²-สำหรับlme
วัตถุ ดังนั้นสำหรับฉันคำถามแรกของฉันยังไม่ได้รับคำตอบ
lme
; แต่สำหรับความคมชัดก็ใช้glht
งานได้lm
พอดีเช่นกันไม่ใช่แค่lme
พอดี (นอกจากนี้lme
ผลลัพธ์ยังเป็นผลลัพธ์ของตำราเรียนมาตรฐานด้วย)
lm
การวิเคราะห์การวัดซ้ำได้ เพียง แต่aov
สามารถจัดการกับวัดซ้ำ แต่จะกลับวัตถุของคลาสซึ่งเป็นที่น่าเสียดายที่ไม่ได้รับการจัดการโดยaovlist
glht
lm
ใช้ข้อผิดพลาดที่เหลือเป็นคำผิดพลาดสำหรับผลกระทบทั้งหมด เมื่อมีเอฟเฟกต์ที่ควรใช้คำที่ผิดพลาดต่างกันaov
เป็นสิ่งจำเป็น (หรือแทนที่จะใช้ผลลัพธ์จากlm
เพื่อคำนวณ F-stats ด้วยตนเอง) ในตัวอย่างของคุณคำว่าข้อผิดพลาดสำหรับfactor
คือการid:factor
โต้ตอบซึ่งเป็นคำที่ผิดพลาดที่เหลืออยู่ในรูปแบบการเติม anova(lm(value~factor+id))
เปรียบเทียบผลของคุณจะ