[R-sig-ME] BOBYQA warning message
Ben Bolker
bbolker at gmail.com
Sun May 4 17:04:03 CEST 2014
On 14-05-03 04:18 PM, Devin Kearns wrote:
> Hello List:
>
>
>
> I am getting the following warning message when running a model with BOBYQA
> optimization. I am not sure how to interpret it:
>
>
>
> Warning message:
>
> In commonArgs(par, fn, control, environment()) :
>
> maxfun < 10 * length(par)^2 is not recommended.
You have 32 parameters (20 fixed and 12 random-effects
variance-covariance parameters), unless I miscounted. That means that
BOBYQA recommends that the maximum number of function evaluations should
be at least 10*32^2 = 10240. It's a bit hard to dig out the default
value of maxfun, but it's 10000 (so you only missed by a little bit).
Arguably lme4 should make this adjustment automatically; someone could
add an issue at https://github.com/lme4/lme4/issues if they wanted.
Bottom line:
* you can use control=glmerControl(optCtrl=list(maxfun=1e5)) to adjust
the maximum number of function evaluations.
* if @optinfo$feval will tell you how many function evaluations were
actually used.
>
>> summary(model)
>
> Generalized linear mixed model fit by maximum likelihood (Laplace
> Approximation) ['glmerMod']
>
> Family: binomial ( logit )
>
> Formula: wr ~ 1 + a + b + c + d*e + f*e + g*e + h*e + i +
>
> i*k + k*e + l*e + m + (1+f+i|w) + (-1+d|w) + (1+m|x) + (1|y) + (1| z)
>
> Data: m
>
> Control: glmerControl(optimizer = "bobyqa")
>
>
>
> AIC BIC logLik deviance df.resid
>
> 6198.5 6426.2 -3067.3 6134.5 9058
>
>
>
> Scaled residuals:
>
> Min 1Q Median 3Q Max
>
> -10.7164 -0.2638 0.1284 0.3356 10.3950
>
>
>
> Random effects:
>
> Groups Name Variance Std.Dev. Corr
>
> (Intercept) 0.189556 0.43538
>
> x m 0.087545 0.29588 0.24
>
> w d 0.385553 0.62093
>
> w.1 (Intercept) 1.673762 1.29374
>
> f 0.045596 0.21353 -0.39
>
> i 0.036892 0.19207 -0.55 -0.36
>
> y (Intercept) 0.005768 0.07595
>
> z (Intercept) 0.000000 0.00000
>
> Number of obs: 9090, groups: x, 202; w, 45; y, 23; z, 6
>
>
>
> Fixed effects:
>
> Estimate Std. Error z value Pr(>|z|)
>
> (Intercept) 1.72456 0.21281 8.104 5.32e-16 ***
>
> a 0.29682 0.06380 4.652 3.28e-06 ***
>
> b -0.06976 0.17471 -0.399 0.689698
>
> c 0.12498 0.09981 1.252 0.210496
>
> d 1.00641 0.13625 7.387 1.51e-13 ***
>
> e 1.28465 0.20023 6.416 1.40e-10 ***
>
> f 0.17962 0.08665 2.073 0.038175 *
>
> g 1.30007 0.08096 16.057 < 2e-16 ***
>
> h 0.16457 0.07051 2.334 0.019601 *
>
> i 0.01631 0.07326 0.223 0.823805
>
> k 0.76396 0.21435 3.564 0.000365 ***
>
> l -0.35635 0.19711 -1.808 0.070633 .
>
> m 0.30247 0.22093 1.369 0.170979
>
> d:e 0.08819 0.13846 0.637 0.524198
>
> e:f -0.01060 0.06633 -0.160 0.873059
>
> e:g 0.04057 0.05732 0.708 0.479095
>
> e:h 0.02144 0.05099 0.421 0.674085
>
> i:k 0.14288 0.05095 2.804 0.005045 **
>
> e:k -0.31092 0.19069 -1.630 0.103000
>
> e:l -0.28359 0.22508 -1.260 0.207682
>
>
>
> If it is not clear above, "w" and "x" are perfectly crossed effects (there
> are no missing values). In multilevel language, "x" is nested within "y"
> which is nested within "z".
>
>
>
> "a" is continuous and varies across "x".
>
> "b" is binary and varies across "x".
>
> "c" and "d" are binary and vary across "w" and "x".
>
> "e", "k", "l", and "m" are continuous and vary across "w".
>
> "f", "g", "h", "i", and "I" are continuous and vary across "x".
>
>
>
> To explain the random intercepts and slopes, these were derived from a model
> building procedure that involved the addition of a random slope for each
> fixed effect and testing whether the model without the random slope fit
> worse than that with it (the idea was to follow the "forward selection"
> approach Bates described here:
> https://stat.ethz.ch/pipermail/r-sig-mixed-models/2010q2/003921.html).
> Correlations were added in the same way. The "maximal" strategy is ideal,
> but the model with all possible random slopes and correlations did not
> converge, nor did a "near maximal" model. Barr, Levy, Scheepers, and Tily
> (2013) suggested that this approach controls Type I error almost as well as
> the maximal strategy, which is why it was used here.
>
>
>
> It is not clear to me what this warning means or why it occurred. Here were
> my initial thoughts:
>
>
>
> "z" has almost no variability (and it is a random effect with only six
> levels). I was included because the unconditional model without fit worse
> than that with it (the p value for the likelihood ratio test was .07, which
> is significant for these). I am therefore reluctant to remove this term,
> although I suspected the error might relate to the lack of information
> related to z.
>
>
>
> I also wondered whether the number of "w" covariates was too large given
> that I have only 45 "w" cases. I have seen papers where authors have
> included more covariates with fewer numbers (I've seen as many as 8
> covariates for a random effect with only 39 levels). In logistic regression,
> there is the 10:1 rule of thumb for observations to covariates, but there do
> not seem to be any such rules of thumb for these models. It is my
> understanding that lme4 includes some tests for overfitting, but this seems
> to be under development: https://github.com/lme4/lme4/issues/7). So, I
> considered the possibility of overfitting (although the standard errors do
> not raise concerns).
>
>
>
> Of course, "warnings" are not "errors" and it is possible that nothing is
> wrong. However, I am reluctant to believe that!
>
>
>
> Would anyone be able to explain this warning? Is there something I could do
> differently?
>
>
>
> Thank you for your time. I am very appreciative of the list's help.
>
>
>
> Devin.
>
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-mixed-models at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>
More information about the R-sig-mixed-models
mailing list