singular convergence error in multilevel model

3,567 views
Skip to first unread message

Bonnie Dixon

unread,
Sep 11, 2014, 6:23:54 PM9/11/14
to davi...@googlegroups.com

Hi all.

I am getting a singular convergence error in a multilevel model I am trying to run using the package, nlme. Can anyone explain what a singular convergence is and what I can do to avoid this error? Here is what I did:

require(nlme)

control.list <- 
  lmeControl(maxIter = 500, msMaxIter = 500, msMaxEval=500,
             tolerance = 0.1, msTol = 0.1)

ps.ls.gender.cb.age.wpbh <- 
  lme(efficiency ~ 
        prior.sleep + sleepiness + gender + circ.bedtime + age.18 + WP.hunger, 
      ~ prior.sleep + sleepiness + circ.bedtime + WP.hunger | person, 
      data = mod.dat, na.action = na.exclude, method = "ML", 
      control = control.list)

And this is the error message I got:

Error in lme.formula(efficiency ~ prior.sleep + sleepiness + gender +  : 
  nlminb problem, convergence error code = 1
  message = singular convergence (7)

I was trying to use the lmeControl() settings to avoid the problem, but I have to admit that I don’t really know what I am doing with that. I also tried running the model with the default method, REML, but got the same error.

Let me know if anyone has any ideas. Thanks!

Bonnie

Michael Hannon

unread,
Sep 11, 2014, 7:43:08 PM9/11/14
to davi...@googlegroups.com
Hi, Bonnie. This article:

https://stat.ethz.ch/pipermail/r-help/2006-January/086368.html

states that:

In general, "singular convergence" means you were trying to estimate
k parameters when the data would support estimation k-1 or fewer.

-- Mike
> --
> Check out our R resources at
> http://www.noamross.net/davis-r-users-group.html
> ---
> You received this message because you are subscribed to the Google Groups
> "Davis R Users' Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to davis-rug+...@googlegroups.com.
> Visit this group at http://groups.google.com/group/davis-rug.
> For more options, visit https://groups.google.com/d/optout.

Bonnie Dixon

unread,
Sep 12, 2014, 2:21:39 PM9/12/14
to davi...@googlegroups.com
Thanks for the insight, Mike.  I finally figured out how to get my model to work by including the argument, sing.tol=1e-20, in lmeControl().

Bonnie
Reply all
Reply to author
Forward
0 new messages