ฉันกำลังทำการทดสอบแบบโพสต์เฉพาะกิจในโมเดลผสมผลกระทบเชิงเส้นในR
( lme4
แพ็คเกจ) ฉันใช้multcomp
แพคเกจ ( glht()
ฟังก์ชั่น) เพื่อทำการทดสอบหลังการทำงาน
การออกแบบการทดลองของฉันคือการวัดซ้ำพร้อมเอฟเฟกต์บล็อกแบบสุ่ม รูปแบบที่ระบุไว้เป็น:
mymod <- lmer(variable ~ treatment * time + (1|block), data = mydata, REML = TRUE)
แทนที่จะแนบข้อมูลของฉันที่นี่ฉันกำลังทำงานของข้อมูลที่เรียกว่าwarpbreaks
ภายในmultcomp
แพ็คเกจ
data <- warpbreaks
warpbreaks$rand <- NA
ฉันได้เพิ่มตัวแปรสุ่มพิเศษเพื่อเลียนแบบเอฟเฟกต์ "บล็อก" ของฉัน:
warpbreaks$rand <- rep(c("foo", "bar", "bee"), nrow(warpbreaks)/3)
นี่เป็นการเลียนแบบโมเดลของฉัน:
mod <- lmer(breaks ~ tension * wool + (1|rand), data = warpbreaks)
ฉันรู้ตัวอย่างใน " Multcomp เพิ่มเติม Examples- 2 Way Anova"wool
ตัวอย่างนี้จะนำคุณไปเปรียบเทียบระดับของความตึงเครียดในระดับที่
ถ้าฉันต้องการทำสิ่งที่ตรงกันข้าม - เปรียบเทียบระดับของwool
ภายในระดับของtension
? (ในกรณีของฉันนี่จะเป็นการเปรียบเทียบระดับการรักษา (สอง - 0, 1) ภายในระดับเวลา (สาม - มิถุนายนกรกฎาคมกรกฎาคมสิงหาคม)
ฉันคิดรหัสต่อไปนี้ขึ้นมา แต่ดูเหมือนจะใช้งานไม่ได้ (ดูข้อความแสดงข้อผิดพลาดด้านล่าง)
ครั้งแรกจากตัวอย่าง (ด้วยwool
และtension
เปลี่ยนสถานที่):
tmp <- expand.grid(wool = unique(warpbreaks$wool), tension = unique(warpbreaks$tension))
X <- model.matrix(~ tension * wool, data = tmp)
glht(mod, linfct = X)
Tukey <- contrMat(table(warpbreaks$wool), "Tukey")
K1 <- cbind(Tukey, matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)))
rownames(K1) <- paste(levels(warpbreaks$tension)[1], rownames(K1), sep = ":")
K2 <- cbind(matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)), Tukey)
rownames(K2) <- paste(levels(warpbreaks$tension)[2], rownames(K2), sep = ":")
จากที่นี่ถึงล่างสุดรหัสของฉัน:
K3 <- cbind(matrix(0, nrow = nrow(Tukey), ncol = ncol(Tukey)), Tukey)
rownames(K2) <- paste(levels(warpbreaks$tension)[3], rownames(K3), sep = ":")
K <- rbind(K1, K2, K3)
colnames(K) <- c(colnames(Tukey), colnames(Tukey))
> summary(glht(mod, linfct = K %*% X))
Error in summary(glht(mod, linfct = K %*% X)) :
error in evaluating the argument 'object' in selecting a method for function 'summary': Error in K %*% X : non-conformable arguments