[R-sig-ME] glmer optimization questions

Ben Bolker bbolker at gmail.com
Tue Sep 17 21:27:10 CEST 2013


Tobias Heed <tobias.heed at ...> writes:

> 
> Hello,
> 
> I am trying to understand the different options for fitting with glmer.
> I have been unable to find an overview over which options are 
> appropriate in which cases.
> If there is a document out there that explains these things, 
> I'd be thankful for a link.

  No (want to write one?)

> 
> My specific questions are:

> 1, what is the difference in using maxIter in the function call
> vs. using maxfun in glmerControl()? Which one is better or more
> important to change when a model doesn't converge (i.e., what kind
> of iteration do they stand for)? Maxiter seems not to be documented
> in the help of lme4 1.1.0, does this mean it should not be used
> anymore?

  maxIter is old/obsolete.
  maxfun controls the iteration counter in the BOBYQA/Nelder-Mead
phase (i.e., optimization over the 'theta' (Cholesky factor of
random-effects variance-covariance matrices) parameter vector)

> 2, I have a model that does not converge with Nelder-Mead, but does
> converge with bobyqa -- from googling around, it seems that some
> people like one or the other better, but are there specific things I
> should look out for when using the one or the other? Or, are there
> specific cases in which using one or the other would be more
> recommendable?

  We don't know enough about this (yet) to make strong recommendations
 
> 3, what kind of result or warning message would indicate that 
> I should use the restart_edge option?

   If you get parameters on the boundary (i.e. 0 variances,
+/-1 correlations) it may be worth trying.  However, I'm not
sure it's actually implemented for glmer!

>  4, I got this warning: 2: In commonArgs(par, fn, control,
> environment()) : maxfun < 10 * length(par)^2 is not recommended.
> par appears to be the vector with parameters passed to the
> optimizer. Is it necessary (or just "better", but not imperative) to
> set maxfun to the value indicated in this equation, or higher? Why
> is a higher value for maxfun not used automatically when appropriate
> - does it have any negative consequences? Can I read out par easily
> somewhere?

   I believe this is coming from BOBYQA, but I'm not sure. 


> 5, when a model converges only after tinkering with any of the
> options (e.g., optimizer, maxfun, restart_edge) or maxiter, does
> this say anything about the quality or reliability of the fit?

  I would certainly be more careful to assess convergence in
these cases.  Do the answers look sensible?  (We hope to add
some more functionality for checking convergence ...)
 
> 6, when reporting a GLMM, should these kinds of options be reported?
> It doesn't seem that people do, but it would seem appropriate when
> they are necessary to achieve convergence etc., wouldn't it?

  Absolutely.  You should always report *everything* necessary
for someone to reproduce your results (in an appendix or online
supplement, if necessary).

  cheers
    Ben Bolker



More information about the R-sig-mixed-models mailing list