[R] lme convergence

Doran, Harold HDoran at air.org
Fri Jun 30 18:57:57 CEST 2006


In the old version of lme, one could construct a grouped data object and
this would alleviate the need to specify the random portion of the
model. So, Spencer's call is equivalent to 

fm1 <- lme(distance ~ age, random= ~age| Subject, data = Orthodont)

This condition does not hold under lmer, however.

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch 
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of 
> Michael Jerosch-Herold
> Sent: Friday, June 30, 2006 12:37 PM
> To: spencer.graves at pdf.com
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] lme convergence
> 
> It looks like in the call to lme
> 
>  fm1 <- lme(distance ~ age, data = Orthodont,
> +            control=lmeControl(msMaxIter=1))
> 
> you did not specify any random effects. Why not try:
> 
>  fm1 <- lme(distance ~ age, random= ~1| groupID, data = Orthodont,
> +            control=lmeControl(msMaxIter=1))
> 
> where groupID is some factor that can be used to stratify the data.
> 
> Also, the "Othodont" data set is used in Pinheiro & Bates 
> book, and you may want to consult that book to see the models 
> they use in connection with that data set. For the Orthodont 
> data set the groupID would most likely be the subject ID 
> ("Subject" variable).
> 
> So a possible model would be:
> 
> > fm1 <- lme(distance ~ age, random= ~1|Subject, data=Orthodont)
> > summary(fm1)
> Linear mixed-effects model fit by REML
>  Data: Orthodont 
>        AIC      BIC    logLik
>   455.0025 465.6563 -223.5013
> 
> Random effects:
>  Formula: ~1 | Subject
>         (Intercept) Residual
> StdDev:    2.114724 1.431592
> 
> Fixed effects: distance ~ age 
>                 Value Std.Error DF  t-value p-value
> (Intercept) 16.761111 0.8023952 80 20.88885       0
> age          0.660185 0.0616059 80 10.71626       0
>  Correlation: 
>     (Intr)
> age -0.845
> 
> Standardized Within-Group Residuals:
>         Min          Q1         Med          Q3         Max 
> -3.66453932 -0.53507984 -0.01289591  0.48742859  3.72178465 
> 
> Number of Observations: 108
> Number of Groups: 27 
> 
> So this runs fine.
> 
> As, I said this data set and its analysis is discussed 
> extensively in Pinheiro and Bates book
> 
> Michael Jerosch-Herold
> 
> 
> >>> "Spencer Graves" <spencer.graves at pdf.com> 06/29/06 7:08 PM >>>
> 	  Does anyone know how to obtain the 'returnObject' 
> from an 'lme' run that fails to converge?  An argument of 
> this name is described on the 'lmeControl' help page as, "a 
> logical value indicating whether the fitted object should be 
> returned when the maximum number of iterations is reached 
> without convergence of the algorithm. Default is 'FALSE'."
> 
> 	  Unfortunately, I've so far been unable to get it to 
> work, as witnessed by the following modification of an 
> example from the '?lme' 
> help page:
> 
>  > library(nlme)
>  > fm1 <- lme(distance ~ age, data = Orthodont,
> +            control=lmeControl(msMaxIter=1))
> Error in lme.formula(distance ~ age, data = Orthodont, 
> control = lmeControl(msMaxIter = 1)) :
> 	iteration limit reached without convergence (9)  > fm1
> Error: object "fm1" not found
>  > fm1 <- lme(distance ~ age, data = Orthodont,
> +            control=lmeControl(msMaxIter=1,
> +              returnObject=TRUE))
> Error in lme.formula(distance ~ age, data = Orthodont, 
> control = lmeControl(msMaxIter = 1,  :
> 	iteration limit reached without convergence (9)  > fm1
> Error: object "fm1" not found	
> 
> 	  I might be able to fix the problem myself, working 
> through the 'lme' 
> code line by line, e.g., using 'debug'.  However, I'm not 
> ready to do that just now.
> 
> 	  Best Wishes,
> 	  Spencer Graves
> 
> Ravi Varadhan wrote:
> > Use "try" to capture error messages without breaking the loop.
> > ?try
> > 
> > 
> ----------------------------------------------------------------------
> > ----
> > Ravi Varadhan, Ph.D.
> > Assistant Professor,  The Center on Aging and Health Division of 
> > Geriatric Medicine and Gerontology Johns Hopkins University
> > Ph: (410) 502-2619
> > Fax: (410) 614-9625
> > Email:  rvaradhan at jhmi.edu
> > Webpage: 
> > http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html
> > 
> ----------------------------------------------------------------------
> > ----
> > 
> >> -----Original Message-----
> >> From: r-help-bounces at stat.math.ethz.ch [mailto:r-help- 
> >> bounces at stat.math.ethz.ch] On Behalf Of Pryseley Assam
> >> Sent: Wednesday, June 28, 2006 12:18 PM
> >> To: R-Users
> >> Subject: [R] lme convergence
> >>
> >> Dear R-Users,
> >>
> >>   Is it possible to get the covariance matrix from an lme 
> model that 
> >> did not converge ?
> >>
> >>   I am doing a simulation which entails fitting linear 
> mixed models, 
> >> using a "for loop".
> >>   Within each loop, i generate a new data set and analyze 
> it using a 
> >> mixed model.  The loop stops When the "lme function" does not 
> >> converge for a simulated dataset. I want to inquire if there is a 
> >> method to suppress the error message from the lme 
> function, or better 
> >> still, a way of going about this issue of the loop ending 
> once the lme function does not converge.
> >>
> >>   Thanks in advance,
> >>   Pryseley
> >>
> >>
> >> ---------------------------------
> >>
> >>
> >> 	[[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> R-help at stat.math.ethz.ch mailing list 
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide! 
> http://www.R-project.org/posting- 
> >> guide.html
> > 
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! 
> > http://www.R-project.org/posting-guide.html
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! 
> http://www.R-project.org/posting-guide.html
>



More information about the R-help mailing list