[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