[R-sig-ME] bug or numerical problem in nlme's corCAR1
Fox, John
jfox at mcmaster.ca
Thu Jan 25 18:40:55 CET 2018
Dear Tamas Farenci,
You're mistaken: For the continuous first-order AR process, the unit of time matters. Measuring time in months implies a much larger autocorrelation at lag 1 than measuring time in years. As it turns out, 0.2 is a poor start values for the former:
> library(nlme)
> lme(distance ~ age + factor(Sex),random = ~ 1 | Subject,
+ cor=corCAR1(form=~age|Subject),data = Orthodont)
Linear mixed-effects model fit by REML
Data: Orthodont
Log-restricted-likelihood: -218.6984
Fixed: distance ~ age + factor(Sex)
(Intercept) age factor(Sex)Female
17.7214161 0.6594049 -2.3274848
Random effects:
Formula: ~1 | Subject
(Intercept) Residual
StdDev: 1.788899 1.454494
Correlation Structure: Continuous AR(1)
Formula: ~age | Subject
Parameter estimate(s):
Phi
0.2418536
Number of Observations: 108
Number of Groups: 27
> Orthodont$agemos <- Orthodont$age*12
> lme(distance ~ agemos + factor(Sex),random = ~ 1 | Subject,
+ cor=corCAR1(0.8, form=~agemos|Subject),data = Orthodont)
Linear mixed-effects model fit by REML
Data: Orthodont
Log-restricted-likelihood: -221.1833
Fixed: distance ~ agemos + factor(Sex)
(Intercept) agemos factor(Sex)Female
17.72141619 0.05495041 -2.32748480
Random effects:
Formula: ~1 | Subject
(Intercept) Residual
StdDev: 1.788899 1.454494
Correlation Structure: Continuous AR(1)
Formula: ~agemos | Subject
Parameter estimate(s):
Phi
0.8884427
Number of Observations: 108
Number of Groups: 27
> .8884427^12
[1] 0.2418539
Thus, the two solutions agree. I agree, however, that it's slightly disconcerting that lme() can't overcome the poor start value.
I hope this helps,
John
-----------------------------
John Fox, Professor Emeritus
McMaster University
Hamilton, Ontario, Canada
Web: socialsciences.mcmaster.ca/jfox/
> -----Original Message-----
> From: R-sig-mixed-models [mailto:r-sig-mixed-models-bounces at r-
> project.org] On Behalf Of Ferenci Tamas
> Sent: Thursday, January 25, 2018 12:05 PM
> To: r-sig-mixed-models at r-project.org
> Subject: [R-sig-ME] bug or numerical problem in nlme's corCAR1
>
> Dear list members,
>
> Consider the following example (yes, I haven't centered age, corCAR1 is not
> necessarily needed here etc., so it is perhaps not the most meaningful model,
> I use it just to show the problem):
>
> lme(distance ~ age + factor(Sex),random = ~ 1 | Subject,
> cor=corCAR1(form=~age|Subject),data = Orthodont)
>
> Everything works perfectly.
>
> Let's now multiply age, say, we measure it in months:
>
> Orthodont$agemos <- Orthodont$age*12
> lme(distance ~ agemos + factor(Sex),random = ~ 1 | Subject,
> cor=corCAR1(form=~agemos|Subject),data = Orthodont)
>
> It shouldn't make any difference, but check the autocorrelation coefficient!
> It changed from 0.2418536 to 0.2... i.e. it stuck at its default value, as if it
> was not optimized at all! (One can verify that it is indeed the case, and 0.2
> was not a coincidence by calling lme(distance ~ agemos +
> factor(Sex),random = ~ 1 | Subject,
> cor=corCAR1(0.1234,form=~agemos|Subject),data = Orthodont) which will
> return a coefficient of 0.1234 and so on.)
>
> What's going on...?
>
> Thank you in advance,
> Tamas Ferenci
>
> _______________________________________________
> R-sig-mixed-models at 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