[R] correlation structure in gls or lme/lmer with several observations per day

Olivier Renaud Olivier.Renaud at unige.ch
Mon Oct 13 14:07:24 CEST 2008


To simplify, suppose I have 2 observations each day for three days. I 
would like to define the correlation structure of these 6 observations 
as follows: the correlation of 2 observations on the same day is, say, 
alpha, the correlation for 2 observations one day apart is rho and the 
correlation for 2 observations 2 days apart is rho^2. I.e. I would like 
to have an AR1 correlation + a correlation for the same day. I tried 
with gls and lme from the nlme package, but with no success. One 
difficulty arises since corAR1 seems to require only one observation per 
day (see example below). Any idea on how to implement it, either with 
special correlation structures, or through random effects in lme/lmer ? 
should I try to define a "new" correlation structure corMultiAR1 ? If 
so, where can I find help on how to write such a piece of code ( 
nlme:::corAR1 is not clear to me) ?

Or is there a way to define a general parametrised covariance matrix in gls ?


> obs6 <- matrix( c(1,2,3,4,5,6, 1,1,2,2,3,3), byrow=F, nc=2)
> dimnames(obs6) <- list(NULL, c("y","time"))
> obs6 <- data.frame(obs6)
> obs6
y time
1 1    1
2 2    1
3 3    2
4 4    2
5 5    3
6 6    3
> gls (y~1, correl=corAR1(0.0,~time), data=obs6)
Error in Initialize.corAR1(X[[1L]], ...) :
Covariate must have unique values within groups for corAR1 objects

Olivier Renaud                          http://www.unige.ch/~renaud/
Methodology & Data Analysis - Psychology Dept - University of Geneva
UniMail, Office 4142  -  40, Bd du Pont d'Arve   -  CH-1211 Geneva 4

More information about the R-help mailing list