मैं 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)
मैं " अतिरिक्त मल्टीप्लेक्स उदाहरण- 2 वे एनोवा " में उदाहरण से अवगत हूं। यह उदाहरण आपको स्तरों के भीतर तनाव के स्तर की तुलना करने की ओर ले जाता है 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