[R] glmmADMB: Generalized Linear Mixed Models using AD Model Builder

Douglas Bates dmbates at gmail.com
Mon Dec 19 23:21:10 CET 2005


On 12/19/05, Hans Julius Skaug <Hans.Skaug at mi.uib.no> wrote:
> Douglas Bates wrote:
>
> >
> >The "Laplace" method in lmer and the default method in glmm.admb,
> >which according to the documentation is the Laplace approximation,
> >produce essentially the same model fit.  One difference is the
> >reported value of the log-likelihood, which we should cross-check, and
> >another difference is in the execution time
> >
>
> Yes, glmmADMB has sqrt(2*pi) constants missing. Thanks for pointing that out.
>
> Execution time: As pointed out by Roel de Jong, the underlying software AD Model Builder
> does not use hand-coded derivatives for the Hessian involved in the Laplace approximation,
> but calculates these by automatic differentiation. There is a cost in terms of execution
> speed, but on the other hand it is very quick to develop new models, as you do not
> have to worry about derivatives. I hope to exploit this beyond standard GLMMs, and provide
> other R packages.
>
> Comparison of glmmADMB with lmer: I find that the two packages do not give the same
> result on one of the standard datasets in the literature (Lesaffre et. al., Appl. Statist. (2001) 50, Part3, pp 325-335).

Ah yes, that example.  It is also given as the 'toenail' data set in
the 'mlmus' package of data sets from the book "Multilevel and
Longitudinal Modeling Using Stata" by Sophia Rabe-Hesketh and Anders
Skrondal (Stata Press, 2005).

It is not surprising that it is difficult to fit such a model to these
data because the data do not look like they come from such a model. 
You did not include the estimates of the variance of the random
effects in your output.  It is very large and very poorly determined. 
If you check the distribution of the posterior modes of the random
effects (for linear mixed models these are called the BLUPs - Best
Linear Unbiased Predictors - and you could call them BLUPs here too
except for the fact that they are not linear and they are not unbiased
and there isn't a clear sense in which they are "best") it is clearly
not a Gaussian distribution with mean zero.  I enclose a density plot.
 You can see that it is bimodal and the larger of the two peaks is for
a negative value.  These are the random effects for those subjects
that had no positive responses - 163 out of the 294 subjects.

> sum(with(lesaffre, tapply(y, subject, mean)) == 0)
[1] 163

There is no information to estimate the random effects for these
subjects other than "make it as large and negative as possible".  It
is pointless to estimate the fixed effects for such a clearly
inappropriate model.
 lattice package.

> The full set of R commands used to download data and fit the model is given at the end of this email.
>
> > fit_lmer_lapl <- lmer(y~ treat + time  + (1|subject),data=lesaffre,family=binomial,method="Laplace")
> Warning message:
> optim or nlminb returned message ERROR: ABNORMAL_TERMINATION_IN_LNSRCH
>  in: LMEopt(x = mer, value = cv)
>
> PART OF OUTPUT:
>
> Fixed effects:
>              Estimate Std. Error  z value Pr(>|z|)
> (Intercept) -0.626214   0.264996  -2.3631  0.01812 *
> treat       -0.304660   0.360866  -0.8442  0.39853
> time        -0.346605   0.026666 -12.9979  < 2e-16 ***
>
> The corresponding estimates with glmmADMB is:
>
> > fit_glmmADMB <- glmm.admb(y~ treat + time,random=~1,group="subject",data=lesaffre,family="binomial",link="logit")
>
> PART OF OUTPUT:
>
> Fixed effects:
>   Log-likelihood: -359.649
>   Formula: y ~ treat + time
> (Intercept)       treat        time
>    -2.33210    -0.68795    -0.46134
>
>
> So, the estimates of the fixed effects differ. lmer() does infact produces a warning, and it appears that
> it method="Laplace" and method="PQL" produce the same results.
>
>
> Best regards,
>
> hans
>
>
> # Load data
> source("http://www.mi.uib.no/~skaug/cash/lesaffre_dat.s")
>
> # Run lmer
> library(lme4)
> fit_lmer <- lmer(y~ treat + time + (1|subject),data=lesaffre,family=binomial)
> fit_lmer_lapl <- lmer(y~ treat + time  + (1|subject),data=lesaffre,family=binomial,method="Laplace")
>
>
> # Run glmmADMB
> library(glmmADMB)
> example(glmm.admb)      # Must be run once in each new directory (this feature will be removed in future version of glmmADMB).
> fit_glmmADMB <- glmm.admb(y~ treat + time,random=~1,group="subject",data=lesaffre,family="binomial",link="logit")
>
>
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ranef.pdf
Type: application/pdf
Size: 21345 bytes
Desc: not available
Url : https://stat.ethz.ch/pipermail/r-help/attachments/20051219/ae0b7bad/ranef.pdf


More information about the R-help mailing list