[R-sig-ME] Poor fits with corCAR1 in lme and phi estimate near 1

Weigand, Stephen D. Weigand.Stephen at mayo.edu
Fri Mar 16 22:09:52 CET 2007


I'm trying to understand why I get poor fits with a lme model
using CAR1 autocorrelation structure.

I'm modeling the volume of a part of a person's brain over time 
using lme. The volume depends on head size, sex, age, and age^2.
I give each person a random intercept.

To give you an idea of my sample sizes here is

table(table(mydata$group))

  3  4  5  6  7  8
16 16  4  7  1  2

My lme call is like this

   ccc <- list(returnObject = TRUE,
               msVerbose = TRUE,
               maxIter = 200,
               msMaxIter = 200,
               msMaxEval = 500)

   fit <-
     lme(vol ~ size + sex + age + I(age^2),
         random = ~ 1 | id,
         correlation = corCAR1(form = ~ age | id),
         data = dG1,
         control = ccc)

I get convergence in 49 iterations with no warnings.

My first indication of a problem is that I get an estimate of phi 
to be 0.996. What's happening is that the fitted values are all 
above or below the observed values. Here's the data for four 
people with a call to xyplot() below to illustrate.

mydata <- structure( list( y = c(101.513696992828,
108.67123416, 121.77207312, 121.364514, 122.44394352,
126.28247856, 66.4450535719635, 71.06907726, 73.34944657,
77.73755495, 73.712, 77.188, 77.802, 22.6576319594522,
24.08128381, 23.3368159, 25.57910501, 26.39909865,
27.52373389 ), age = c(81.4784394250513, 83.4469541409993,
86.7405886379192, 89.0184804928131, 90.3655030800821,
92.413415468857, 73.1663244353183, 76.0602327173169,
78.1629021218344, 79.7125256673511, 80.807665982204,
82.9075975359343, 84.1697467488022, 84.3997262149213,
85.719370294319, 87.0581793292266, 88.558521560575,
91.419575633128, 93.5277207392197 ), g = structure(c(4, 4,
4, 4, 4, 4, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3), .Label =
c("1", "2", "3", "4"), class = "factor"), yhat =
c(58.5700637637191, 61.2504094310121, 65.7874577250516,
68.9636770643335, 70.8566873027208, 73.7557021229065,
55.8860711627563, 59.8790531221204, 62.8120620013217,
64.9907426560824, 71.0988108284064, 74.0280180708455,
75.8014293467406, 50.2485578022043, 52.0817661160286,
53.9523602784579, 56.0615306867955, 60.1213127021499,
63.1444086154206 )), .Names = c("y", "age", "g", "yhat"),
row.names = c(NA, 19), class = "data.frame")

### plot illustrating the "missed fits":
require(lattice)
xyplot(y + yhat ~ age | g, data = mydata,
        xlab = "Age",
        ylab = "Volume",
        lwd = 2,
        type = "b",
        col.symbol = c("black", "transparent"),
        col.line = c("transparent", "black"))


When I use Gaussian-decay autocorrelation, things look fine. I'm 
wondering if anybody has insight into this. I'd be happy to stay 
away from the CAR1 autocorrelation but in similar models the 
likelihood is higher with CAR1 than with Gaussian decay (even 
when there are no problems with the CAR1 model).

Thanks for any thoughts,

Stephen


-- 
::::::::::::::::::::::::::::::::::
Stephen Weigand
Division of Biostatistics
Mayo Clinic Rochester, Minn., USA
Phone (507) 266-1650, fax 284-9542




More information about the R-sig-mixed-models mailing list