dimanche 24 novembre 2019

How to plot some terms of a lmer model

I am trying to plot only a few terms of random effects from a lmer object. I will borrow the dataset posted by oshun here.

Make up data:

tempEf <- data.frame(
  N = rep(c("Nlow", "Nhigh"), each=300),
  Myc = rep(c("AM", "ECM"), each=150, times=2),
  TRTYEAR = runif(600, 1, 15),
  site = rep(c("A","B","C","D","E"), each=10, times=12)   #5 sites
)

Make up some response data

tempEf$r <- 2*tempEf$TRTYEAR +                   
  -8*as.numeric(tempEf$Myc=="ECM") +
  4*as.numeric(tempEf$N=="Nlow") +
  0.1*tempEf$TRTYEAR * as.numeric(tempEf$N=="Nlow") +
  0.2*tempEf$TRTYEAR*as.numeric(tempEf$Myc=="ECM") +
  -11*as.numeric(tempEf$Myc=="ECM")*as.numeric(tempEf$N=="Nlow")+ 
  0.5*tempEf$TRTYEAR*as.numeric(tempEf$Myc=="ECM")*as.numeric(tempEf$N=="Nlow")+ 
  as.numeric(tempEf$site) +  #Random intercepts; intercepts will increase by 1
  tempEf$TRTYEAR/10*rnorm(600, mean=0, sd=2)    #Add some noise

library(lme4)
model <- lmer(r ~ Myc * N * TRTYEAR + (1|site), data=tempEf)

I can plot random effects by using type = "re" as follows:

plot_model(model, type = "re")

Here is the result:

enter image description here

I would like to show only A and E so I add the 'terms' argument as follows:

plot_model(model, type = "re", terms = c("A", "E"))

But this does not work. Any guidance on how I can show "A" and "B" only??




Aucun commentaire:

Enregistrer un commentaire