[R-sig-ME] upcoming changes to lme4 default optimizers (lmer only)

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Tue Jan 22 18:57:43 CET 2019


 tl;dr If you want your results to stay identical in the upcoming
release of lme4 (1.1-20), you'll need to use
lmerControl(optimizer="bobyqa") to specify the current (but changing)
default optimizer.

  As of 1.1-20 (headed to CRAN soon) the default optimizer for lmer
changes from "bobyqa" (Powell's BOBYQA method as implemented in the
minqa package) to "nloptwrap" (the same method as implemented in the
nloptr package).  We have found only minor changes (often for the
better) in our own tests, and we haven't seen any problems with
downstream package tests, but this modification *will* change results
from lmer; generally only by a small amount, but in some unstable cases
could lead do quite different answers. For example, here:

https://stats.stackexchange.com/questions/384528/lme-and-lmer-giving-conflicting-results/384539#384539

bobyqa gives the wrong answer (it finds a mode away from zero) while
nloptwrap gets it right. In this case the difference is a clear
improvement, but nonlinear optimization being what it is we can't
guarantee that some changes won't be for the worse.

  We have not changed the glmer default (time window is too short for
this release, which should go to CRAN by 27 Jan), but probably will in
the future.

  If you can test the development version (on GitHub) and report [here
or on the lme4 issues list] any significant problems you encounter  in
the next few days, that would be great.

  cheers
    Ben Bolker



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