[R-sig-ME] convergence issues on lme4 and incoherent error messages

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Fri Jun 14 00:29:56 CEST 2019


  The only other think I can think of is that you may have a *complete
separation* issue or near-complete separation, i.e. some combinations of
predictor variables may have responses that are all-zero or all-one ...

On 2019-06-13 1:02 p.m., Cristiano Alessandro wrote:
> Thanks! I do have the call:
> 
> dataframe$predictor1<-as.factor(dataframe$predictor1)
> dataframe$predictor2<-as.factor(dataframe$predictor2)
> 
> at the beginning of my code.
> Cristiano
> 
> On Thu, Jun 13, 2019 at 10:20 AM René <bimonosom using gmail.com
> <mailto:bimonosom using gmail.com>> wrote:
> 
>     sorry... "then the model should [not] care about scaling "
> 
>     Am Do., 13. Juni 2019 um 17:19 Uhr schrieb René <bimonosom using gmail.com
>     <mailto:bimonosom using gmail.com>>:
> 
>         Hi, :)
> 
>         "But the predictor variables are all categorical with "sum"
>         coding; I am not sure what it means to center and scale a
>         categorical
>         variable."
> 
>         Sure means nothing :))
>         If your predictors are actually categorical, then the model
>         should care about scaling at all (and should not come up with
>         this). 
>         The implies, that you might want to check, whether the
>         categorical predictors are actually factorized in the dataframe.
>         e.g.
>         dataframe$predictor1<-as.factor(dataframe$predictor1)
>         dataframe$predictor2<-as.factor(dataframe$predictor2)
> 
>         or (the same but less affected by how the variable is coded
>         beforehand... )
>         dataframe$predictor1<-as.factor(as.character(dataframe$predictor1))
> 
> 
>         Best, René
> 
> 
>         Am Do., 13. Juni 2019 um 16:27 Uhr schrieb Cristiano Alessandro
>         <cri.alessandro using gmail.com <mailto:cri.alessandro using gmail.com>>:
> 
>             Thanks a lot for your help!
> 
>             Regarding "centering and scaling". I am not familiar with
>             this; I will
>             check this out. But the predictor variables are all
>             categorical with "sum"
>             coding; I am not sure what it means to center and scale a
>             categorical
>             variable. Is there a theory behind this or a text I could
>             look at?
> 
>             Best
>             Cristiano
> 
>             On Wed, Jun 12, 2019 at 11:31 PM Ben Bolker
>             <bbolker using gmail.com <mailto:bbolker using gmail.com>> wrote:
> 
>             >   Details below
>             >
>             > On Wed, Jun 12, 2019 at 12:38 AM Cristiano Alessandro
>             > <cri.alessandro using gmail.com
>             <mailto:cri.alessandro using gmail.com>> wrote:
>             > >
>             > > Hi all,
>             > >
>             > > I am having trouble fitting a mixed effect model. I keep
>             getting the
>             > > following warning, independently on the optimizer that I
>             use (I tried
>             > > almost all of them):
>             > >
>             > > Warning messages:
>             > > 1: 'rBind' is deprecated.
>             > >  Since R version 3.2.0, base's rbind() should work fine
>             with S4 objects
>             >
>             >   This warning is harmless; it most likely comes from an
>             outdated
>             > version of lme4 (we fixed it in the devel branch 15 months
>             ago:
>             >
>             >
>             https://github.com/lme4/lme4/commit/9d5d433d40408222b290d2780ab6e9e4cec553b9
>             > )
>             >
>             > > 2: 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.
>             >
>             >    Have you tried scaling & centering the predictor variables?
>             >
>             > > 3: Model failed to converge with 5 negative eigenvalues:
>             -2.5e-01
>             > -5.8e-01
>             > > -8.2e+01 -9.5e+02 -1.8e+03
>             > >
>             > > This suggests that the optimization did not converge. On
>             the other hand,
>             > if
>             > > I call summary() of the "fitted" model, I receive (among
>             the other
>             > things)
>             > > a convergence code = 0, which according to the
>             documentation means that
>             > the
>             > > optimization has indeed converged. Did the optimization
>             converged or not?
>             > >
>             > > convergence code: 0
>             >
>             >    These do look large/worrying, but could be the result
>             of bad
>             > scaling (see above).  There are two levels of checking for
>             convergence
>             > in lme4: one at the level of the nonlinear optimizer
>             itself (L-BFGS-B,
>             > which gives a convergence code of zero) and a secondary
>             attempt to
>             > estimate the Hessian and scaled gradient at the reported
>             optimum
>             > (which is giving you the "model failed to converge" warning).
>             > ?convergence gives much more detail on this subject ...
>             >
>             > > 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.
>             > >
>             > > Note that I used 'optimx' ("L-BFGS-B") for this specific
>             run of the
>             > > optimization
>             >
>             >   I would *not* generally recommend this.  We don't have
>             > analytically/symbolically computed gradients for the
>             mixed-model
>             > likelihood, so derivative-based optimizers like L-BFGS-B
>             will be using
>             > finite differencing to estimate the gradients, which is
>             generally slow
>             > and numerically imprecise.  That's why the default choices are
>             > derivative-free optimizers (BOBYQA, Nelder-Mead etc.).
>             >
>             >   I see there's much more discussion at the SO question, I
>             may or may
>             > not have time to check that out.
>             >
>             > . I also get other weird stuff that I do not understand:
>             > > negative entries in the var-cov matrix, which I could
>             not get rid of even
>             > > if I simplify the model a lot (see
>             > >
>             >
>             https://stats.stackexchange.com/questions/408504/variance-covariance-matrix-with-negative-entries-on-mixed-model-fit
>             > > , with data). I thought of further simplify the var-cov
>             matrix making it
>             > > diagonal, but I am still struggling on how to do that in
>             lme4 (see
>             > >
>             >
>             https://stats.stackexchange.com/questions/412345/diagonal-var-cov-matrix-for-random-slope-in-lme4
>             > > ).
>             > >
>             > > Any help is highly appreciated. Thanks!
>             > >
>             > > Cristiano
>             > >
>             > >         [[alternative HTML version deleted]]
>             > >
>             > > _______________________________________________
>             > > R-sig-mixed-models using r-project.org
>             <mailto:R-sig-mixed-models using r-project.org> mailing list
>             > > https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>             >
> 
>                     [[alternative HTML version deleted]]
> 
>             _______________________________________________
>             R-sig-mixed-models using r-project.org
>             <mailto:R-sig-mixed-models using 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