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.