[R-sig-ME] correct specification and interpretation of multivariate mixed-model in lme
David Villegas Ríos
chirleu at gmail.com
Mon Jun 22 11:16:55 CEST 2015
Dear list,
I have a dataset of 8 response variables measured every month during a
period of 3 years for 290 individuals. Not all individuals have the same
number of replicates (range=3-18, mean=8). I'm trying to specify a
multivariate mixed-model using lme because *I'm interested in getting the
among-individual variace-covariance matrix.* I have made some attempts in
MCMCglmm using the following model:
mcmc1=MCMCglmm(cbind(t1,t2,t3,t4,t5,t6,t7,t8)~trait-1,random=~us(trait):id,rcov=~us(trait):units,data=wide2,
family=c("gaussian","gaussian","gaussian","gaussian","gaussian","gaussian","gaussian","gaussian"),verbose=FALSE,prior=prior1,pr=TRUE)
However, there is strong temporal autocorrelation inside each individual
time series, and this is reflected in the residuals of the MCMCglmm model.
So my only alternative is to use lme (I guess). The univariate lme models
for each trait separately included an autocorrelation term (corAR1 in most
cases) which completely accounted for the temporal autocorrelation. So I
wanted to use the same approach for the multivariate model. Nevertheless I
haven't found much information on how to fit a multivariate lme. I have
checked the following sources:
-
http://stats.stackexchange.com/questions/108779/multivariate-model-in-lme-with-independent-random-effect-similar-to-mcmcglmm
-
http://scs.math.yorku.ca/index.php/Mixed_Models_with_R/Multivariate_Mixed_Models.Rmd
-
http://rstudio-pubs-static.s3.amazonaws.com/3336_03636030d93d47de9131e625b72f58c6.html
- Alain Zuur book on "Mixed effects models and extensions in Ecology
with R"
However I'm still not sure about how to specify the model I need.
This is the head() and str() of my data (which is already in long format):
> head(long)
key trait value id month_year month year
1 2011-05 5491 t1 0.5039553 5491 2011-05 5 2011
2 2011-05 5492 t1 1.1132514 5492 2011-05 5 2011
3 2011-05 5493 t1 1.7398036 5493 2011-05 5 2011
4 2011-05 5494 t1 -0.1328723 5494 2011-05 5 2011
5 2011-05 5495 t1 0.5433441 5495 2011-05 5 2011
6 2011-05 5496 t1 0.8299277 5496 2011-05 5 2011
> str(long)
'data.frame': 17992 obs. of 7 variables:
$ key : Factor w/ 2249 levels "2011-05 5491",..: 1 2 3 4 5 6 7 8 9
10 ...
$ trait : Factor w/ 8 levels "t1","t2","t3",..: 1 1 1 1 1 1 1 1 1 1 ...
$ value : num 0.504 1.113 1.74 -0.133 0.543 ...
$ id : Factor w/ 274 levels "5488","5489",..: 3 4 5 6 7 8 23 24 25
26 ...
$ month_year: chr "2011-05" "2011-05" "2011-05" "2011-05" ...
$ month : num 5 5 5 5 5 5 5 5 5 5 ...
$ year : Factor w/ 4 levels "2011","2012",..: 1 1 1 1 1 1 1 1 1 1 ...
Ideally, I want to fit exactly the same model I fit with MCMCglmm but
including the correlation term. This is my best attempt so far:
model=lme(value~trait-1, random=~trait-1|id,
weights=varIdent(form=~1|trait),
correlation=corAR1(form=trait~1|id),data=long)
My questions are:
1. Correlation term: I need to account for temporal autocorrelation
within each response variable and for each individual. Is it correctly
specified? Or should I create a "timer" variable that specifies the
temporal order of the data, and include it in the correlation term? Because
right now I'm not telling the correlation term that the replicates follow a
temporal order I think. How could I specify that? In the univariate models
my correlation term was corAR1(form=~timer), being timer a dummy variable
reflecting the "time sequence".
2. My aim including the weights term is to account for different
variances of the different response variables. I guess this is strictly
neccesary, correct?
3. There are no fixed effects in the model yet, so the fixed part is
reduced to trait-1. Correct? In case I want to account for month variation
within each reponse variable, how should I include it in the fixed part of
the model: (trait*month-1)?
Of course I'm aware that the model might not converge with 8 response
variables (actually it doesn't...but maybe because it is not correctly
specified), but once I know how to specifiy what I want properly, I can try
with less variables (perhaps 3-4). However, one last very general question:
4. In general, if a MCMCglmm model with 8 responses converge, should
I expect convergence as well in lme?
I'd trully appreciate your advise. Please let me know if providing the
dataset helps.
Many thanks,
David
[[alternative HTML version deleted]]
More information about the R-sig-mixed-models
mailing list