rnorouzian
rnorouzian

Reputation: 7517

Residual modeling for mixed models: Any other package than nlme?

Aside from R function nlme::lme(), I'm wondering how else I can model the Level-1 residual variance-covariance structure?

ps. My search showed I could possibly use glmmTMB package but it seems it is not about Level-1 residuals but random-effects themselves (see below code).

glmmTMB::glmmTMB(y ~ times + ar1(times | subjects), data = data) ## DON'T RUN

nlme::lme    (y ~ times, random = ~ times | subjects,
     correlation = corAR1(), data = data) ## DON'T RUN 

Upvotes: 2

Views: 564

Answers (1)

Ben Bolker
Ben Bolker

Reputation: 226732

glmmTMB can effectively be used to model level-1 residuals, by adding an observation-level random effect to the model (and if necessary suppressing the level-1 variance via dispformula ~ 0. For example, comparing the same fit in lme and glmmTMB:

library(glmmTMB)
library(nlme)

data("sleepstudy" ,package="lme4")
ss <- sleepstudy
ss$times <- factor(ss$Days)  ## needed for glmmTMB

I initially tried with random = ~Days|Subject but neither lme nor glmmTMB were happy (overfitted):

lme1 <- lme(Reaction ~ Days, random = ~1|Subject,
            correlation=corAR1(form=~Days|Subject), data=ss)

m1 <- glmmTMB(Reaction ~ Days + (1|Subject) +
                  ar1(times + 0 | Subject),
              dispformula=~0,
              data=ss,
              REML=TRUE,
              start=list(theta=c(4,4,1)))

Unfortunately, in order to get a good answer with glmmTMB I did have to tweak the starting values ...

Upvotes: 4

Related Questions