Comment effectuer une comparaison post-hoc sur le terme d'interaction avec le modèle à effets mixtes?

11

Je travaille sur un ensemble de données afin d'évaluer l'impact du séchage sur les activités microbiennes des sédiments. L'objectif est de déterminer si l'impact du séchage varie selon les types de sédiments et / ou la profondeur dans les sédiments.

La conception expérimentale est la suivante:

  • Le premier facteur Sédiment correspond à trois types de sédiments (codés Sed1, Sed2, Sed3). Pour chaque type de sédiment, un échantillonnage a été effectué sur trois sites (3 sites pour Sed1, 3 sites pour Sed2, 3 sites pour Sed3).
  • Le site est codé: Site1, Site2, ..., Site9.
  • Le facteur suivant est l' hydrologie : au sein de chaque site, l'échantillonnage est effectué dans une parcelle sèche et dans une parcelle humide (codé sec / humide).

Dans chacune des parcelles précédentes, l'échantillonnage est effectué à deux profondeurs (D1, D2) en triple.

Il y a un total de n = 108 échantillons = 3 sédiments * 3 sites * 2 hydrologie * 2 profondeurs * 3 répétitions.

J'utilise la lme()fonction dans R ( package nlme ) comme suit:

Sediment <- as.factor(rep(c("Sed1","Sed2","Sed3"),each=36))
Site <- as.factor(rep(c("Site1","Site2","Site3","Site4","Site5",            
                        "Site6","Site7","Site8","Site9"),each=12))
Hydrology <- as.factor(rep(rep(c("Dry","Wet"),each=6),9))
Depth <- as.factor(rep(rep(c("D1","D2"),each=3),18))
Variable <- rnorm(108)

mydata <- data.frame(Sediment,Site,Hydrology,Depth,Variable)

mod1 <- lme(Variable ~ Sediment*Hydrology*Depth, data=mydata, 
             random=~1|Site/Hydrology/Depth)
anova(mod1)

Je voudrais effectuer une comparaison post-hoc pour tester si un terme est significatif ou non.

Je peux le faire pour un effet principal simple (par exemple, Sediment ):

summary(glht(mod1,linfct=mcp(Sediment="Tukey")))

Mais la glht()fonction ne fonctionne pas pour les termes d'interaction.

J'ai trouvé que ce qui suit pouvait fonctionner pour une anova à 2 voies:

mod1 <- lme(Variable~Sediment*Hydrology, data=mydata, 
            random=~1|Site/Hydrology)
mydata$SH <- interaction(mydata$Sediment, mydata$Hydrology)
mod2 <- lme(Variable ~ -1 + SH, data=mydata, random=~1|Site/Hydrology)
summary(glht(mod2, linfct=mcp(SH="Tukey")))

Est-il possible d'utiliser la même approche dans le cas d'une anova à 3 voies? Toute aide sur la façon de faire une comparaison post-hoc sur les termes d'interaction dans ce cas serait très appréciée.

John Smith
la source

Réponses:

3

Voulez-vous dire que vous voulez faire toutes les comparaisons par paires pour les trois facteurs?

mod1<-lme(Variable~Sediment*Hydrology*Depth, data=mydata, random=~1|Site/Hydrology/Depth)
mydata$SHD<-interaction(mydata$Sediment,mydata$Hydrology,mydata$Depth)
mod2<-lme(Variable~-1+SHD, data=mydata, random=~1|Site/Hydrology/Depth)
summary(glht(mod2,linfct=mcp(SHD="Tukey")))
verrouillé
la source
Je veux faire des comparaisons par paires pour les termes d'interaction bidirectionnelle, par exemple " Hydrologie des sédiments ". Si le tableau anova indique que l' interaction sédimentation hydrologie est significative pour le modèle complet, mod1<-lme(Variable~Sediment*Hydrology*Depth, data=mydata, random=~1|Site/Hydrology/Depth)je ne pense pas qu'il soit correct de faire des comparaisons post-hoc (sur l'interaction sédiment * hydrologie) de la manière suivante:mydata$SH<-interaction(mydata$Sediment,mydata$Hydrology) mod2<-lme(Variable~-1+SH, data=mydata, random=~1|Site/Hydrology/Depth) summary(glht(mod2,linfct=mcp(SH="Tukey")))
John Smith