[R-sig-ME] AIC in nlmer
Helen Sofaer
helen at lamar.colostate.edu
Fri Apr 1 17:25:12 CEST 2011
Dear modelers,
I have been using nlmer to fit a logistic function with random effects,
and I’d like to use AIC values to compare models with different random
effect structures. I’ve noticed that I get wildly different AIC values
(e.g. delta AIC values of over 100) when I build models with the random
effect on different parameters. In my dataset, this occurs with both the
Laplace approximation and when using adaptive quadrature. In the example
Orange dataset, this occurs most clearly with the Laplace
transformation. Is this due to false convergence? Are there any known
issues with AIC in nlmer, even when using nAGQ >1?
The major problem I’ve had with these AIC values is that the relative
AIC values don’t seem to always agree with the estimated RE standard
deviations. For example, using the orange tree data, running a model
with a random effect of tree identity on both the asymptote and on the
scale parameter shows that the RE on the scale parameter does not
explain any additional variance in the data. However, the AIC value for
this model is lower (AIC = 250.2) than for the model with a RE only on
the asymptote (AIC = 269.7). This is typical of what I have seen with my
dataset, where the biological inference drawn from the estimates does
not agree with the relative AIC values. I recognize that it may be a
stretch to fit multiple random effects in this tiny Orange dataset, but
I see the same issues using a much larger dataset.
I have included the code for the orange data below.
Thank you for your input,
Helen
Helen Sofaer
PhD Candidate in Ecology
Colorado State University
Orange_Asym <- nlmer(circumference ~ SSlogis(age, Asym, xmid, scal) ~
Asym|Tree, data = Orange, start = c(Asym = 200, xmid = 725, scal = 350),
verbose = TRUE, nAGQ = 5)
summary(Orange_Asym)
# adaptive quad: AIC = 269.7
# Laplace: AIC = 1901
Orange_scal <- nlmer(circumference ~ SSlogis(age, Asym, xmid, scal) ~
scal|Tree, data = Orange, start = c(Asym = 200, xmid = 725, scal = 350),
verbose = TRUE, nAGQ = 5)
summary(Orange_scal)
# adaptive quad: AIC = 314.4
# Laplace: AIC = 8927
Orange_Ascal <- nlmer(circumference ~ SSlogis(age, Asym, xmid, scal) ~
(scal|Tree) + (Asym|Tree), data = Orange, start = c(Asym = 200, xmid =
725, scal = 350), verbose = TRUE, nAGQ = 5)
summary(Orange_Ascal)
# adaptive quad: AIC = 250.2
# Laplace: AIC = 1574
More information about the R-sig-mixed-models
mailing list