Consider the following dataset:
library(nlme)
library(lme4)
data<-sleepstudy
data<-data[data$Days<5,]
data$b<-sample(0:1,nrow(data), rep=T)
I am trying to replicate the results of this Stata code in R:
use data, clear
xtmixed Reaction Days##b || Subject: , nocon reml residuals(un, t(Days) by(b) )
This is basically a model for longitudinal data with unstructured mean and covariance matrix, and heteroscedasticity by a grouping factor b.
Since, due to the nocon option, there is no random effect, I thought the right function to use was gls. Currently I was fitting the following model:
fit <- gls(Reaction ~ Days*b , data = data, corr=corSymm(form=~1|Subject),
weights=varIdent(form=~1|Days*b), method="REML", na.action=na.omit)
However, looking at the output:
Correlation Structure: General
Formula: ~1 | Subject
Parameter estimate(s):
Correlation:
1 2 3 4
2 0.859
3 0.703 0.876
4 0.732 0.870 0.951
5 0.625 0.743 0.815 0.931
Variance function:
Structure: Different standard deviations per stratum
Formula: ~1 | Days * b
Parameter estimates:
0*1 1*0 2*1 3*1 4*0 0*0 1*1 2*0 4*1
1.0000000 1.3521764 0.5289573 1.5353564 1.2546706 1.2076804 0.9908704 1.1038659 1.5339758
3*0
1.0425169
this seems to correctly give a different variance for each level of b and time point, but a common correlation for both levels of grouping factor b. I tried with corr=corSymm(form=~1|Subject/b) but this did not make a difference.
Is it possible to allow for grouping level b-specific correlations?