glmer warning: parameters or bounds appear to have different scalings

Viewed 713

I get the following warning from glmer:

m <- glmer(cbind(Y, N) ~ c1 + c2 + c3 + (1|g1:Year) + (1 + c1 + c2|g1) + (1|g1:Site), 
    family = binomial, data = data, 
    control = glmerControl(optimizer ='optimx', optCtrl=list(method='nlminb'))) 

# Warning in optimx.check(par, optcfg$ufn, optcfg$ugr, optcfg$uhess, lower,  :
#   Parameters or bounds appear to have different scalings.
#   This can cause poor performance in optimization. 
#   It is important for derivative free methods like BOBYQA, UOBYQA, NEWUOA.

This is interesting, since all my covariates are scaled (c1: mean = 5.410769e-16, sd = 1), (c2: mean = -2.411114e-16, sd = 1), (c3: mean = 7.602661e-18, sd = 1).

  1. What does this is warning actually mean? All my covariates are scaled, see above. Scaling them again won't fix it.
  2. Shall I have to be concerned about this warning in the sense my model could return unreliable estimates? I got no other warnings or errors.

Thank you!

PS: note - the warning seems to be kinda non-deterministic, on certain data sets in different runs I've observed it sometimes is present and sometimes isn't.

1 Answers

I am rather late with this but since you haven't got other answers maybe someone can still use it. The source of this message is the optimx package. You use optimx as the non-linear optimiser.

The message is the result of a scale check (see the scalecheck() function in the manual). It raises suspicion when the parameter space could be set too narrow. However, this function can also throw misleading warnings. John Nash himself wrote in the manual: "It is, however, an imperfect and heuristic tool, and could be improved." If you get good results, you are probably okay.

Hope this help, Jan

Related