Ben,

Thanks for the response.  Your method generates an answer that is slightly different than what I 
was looking for.  In the Orthodont dataset there are 4 age groups (8, 10, 12, 14).  I would like to 
calculate the correlation of "distance" for all combinations of the categorical variable 
"age".  The anticipated output would therefore be a matrix with 4 columns and 4 rows and 
a diagonal of ones.

For example, in such a table I would be able to look at the mean within 
individual correlation coefficient for distance b/t ages 8 and 10 or, 
alternatively, ages 10 and 14.  Is there a function in nlme or lme4 that does 
this?

Brant

On Feb 28, 2011, at 02:24 AM, Ben Bolker <bbol...@gmail.com> wrote:

Brant Inman <brant.inman <at> mac.com> writes:

>
> R-helpers:
>
> I would like to measure the correlation coefficient between the repeated
measures of a single variable
> that is measured over time and is unbalanced. As an example, consider the
Orthodont dataset from package
> nlme, where the model is:
>
> fit <- lmer(distance ~ age + (1 | Subject), data=Orthodont)
>
> I would like to measure the correlation b/t the variable "distance" at
different ages such that I would have
> a matrix of correlation coefficients like the following:
>
> age08 age09 age10 age11 age12 age13 age14
> age08 1
> age09 1
> age10 1
> age11 1
> age12 1
> age13 1
> age14 1
>
> The idea would be to demonstrate that the correlations b/t
> repeated measures of the variable "distance"
> decrease as the time b/t measures increases. For example,
> one might expect the correlation
> coefficient b/t age08 and age09 to be higher than that
> between age08 and age14.
>

This stuff is not currently possible in lmer/lme4 but is
easy in nlme:

library(nlme)
Orthodont$age0 <- Orthodont$age/2-3
## later code requires a time index of consecutive integers
## (which apparently must also start at 1, although not stated)

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

## compute autocorrelation on the basis of lag only, plot
a <- ACF(fit)
plot(a,alpha=0.05)


fit2 <- update(fit, correlation=corSymm(form=~age0|Subject))
fit3 <- update(fit, correlation=corAR1(form=~age0|Subject))

AIC(fit,fit2,fit3)
## at least on the basis of AIC, this extra complexity is
## not warranted

anova(fit,fit2) ## likelihood ratio test

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to