Sto eseguendo test post-hoc su un modello lineare a effetti misti in R
( lme4
pacchetto). Sto usando il multcomp
pacchetto ( glht()
funzione) per eseguire i test post-hoc.
Il mio disegno sperimentale è misure ripetute, con un effetto blocco casuale. I modelli sono specificati come:
mymod <- lmer(variable ~ treatment * time + (1|block), data = mydata, REML = TRUE)
Invece di allegare qui i miei dati, sto lavorando su quelli richiamati warpbreaks
all'interno del multcomp
pacchetto.
data <- warpbreaks
warpbreaks$rand <- NA
Ho aggiunto una variabile casuale aggiuntiva per imitare il mio effetto "blocco":
warpbreaks$rand <- rep(c("foo", "bar", "bee"), nrow(warpbreaks)/3)
Questo imita il mio modello:
mod <- lmer(breaks ~ tension * wool + (1|rand), data = warpbreaks)
Sono a conoscenza dell'esempio in " Esempi Multcomp aggiuntivi - Anova a 2 vie" Questo esempio ti porta a un confronto tra livelli di tensione all'interno dei livelli di wool
.
E se volessi fare il contrario - confrontare i livelli wool
all'interno dei livelli di tension
? (Nel mio caso, si tratterebbe di confrontare i livelli di trattamento (due - 0, 1) entro i livelli di tempo (tre - giugno, luglio, agosto).
Ho creato il seguente codice per farlo, ma non sembra funzionare (vedi il messaggio di errore sotto).
Innanzitutto, dall'esempio (con wool
e tension
luoghi scambiati):
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 = ":")
Da qui in basso, il mio codice:
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