[R] lme convergence

Spencer Graves spencer.graves at pdf.com
Fri Jun 30 19:28:19 CEST 2006


	  Harold is correct.  The help page for 'Orthodont' includes the 
following example:

 > formula(Orthodont)
distance ~ age | Subject

	  If 'random' is not specified, 'lme' sets random = formula(data).  If 
that's NULL, the 'lme' help page says it "Defaults to a formula 
consisting of the right hand side of 'fixed'."  This will generally 
return an error, indicated by the following example:

 > tstDF <- data.frame(gp=rep(1:2, 2), y=1:4)
 > lme(y~1, tstDF)
Error in getGroups.data.frame(dataMix, groups) :
	Invalid formula for groups
 > lme(y~1, tstDF, random=~1)
Error in getGroups.data.frame(dataMix, groups) :
	Invalid formula for groups
 >
	  Hope this helps.
	  Spencer

Doran, Harold wrote:
> 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
>>
> 
> ______________________________________________
> 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