MCMCglmm rcov term
Hi Fiona, us(trait):units in the rcov term is fitting a 3x3 covariance matrix for the residuals of the three PC scores. It makes sense that the covariances are close to zero and the variances get smaller given they are PC scores, but this doe not have to be the case because the PC's are defined at the level of the raw data rather than the residuals. The term us(trait):units:isoline is equivalent because each unit (row of the data frame) belongs to a single isoline so there is a on to one mapping between units and units:isoline. The remaining parts of the model (fixed and random) are at the moment a little odd, because you don't form interactions between trait and other terms. This means that the effect of food and temperature in the fixed effects are constrained to be the same across the three PCs. The isoline effects within a treatment/temperature are assumed to be equivalent across the three PC's (i.e. the correlations between isoline effects within a treatment/temperature on the three PC's are assumed to be 1 - they are probably closer to zero given they're PC's, and they are assumed to have the same variance). They are are allowed to differ across food/temperature treatments although the assumption is that the correlation between isoline effects on PC1 (for example) in different treatments is zero (I would expect it to be positive, but perhaps not 1). When forming interactions with random effects I always try and determine what this means in terms of covariance matrices - its easier this way. Table 3.1 (p 70) of the CourseNotes and Chapter 5 on multi-response models may be helpful. With 60 isoline effects you need to be cautious about over-fitting/prior sensitivity with parameter- rich multi-response models. Cheers, Jarrod
On 2 Aug 2011, at 17:39, Ingleby, Fiona wrote:
Dear all,
I am using the MCMCglmm package to form a model with a multivariate
response (three principal components), two fixed effects
(temperature and food with two factor levels each), and isoline (or
genotype, with 60 factor levels) as a random effect. I'm also
interested in the interaction between isoline and both food and
temperature, and have therefore included these interactions in the
random effects. My prior and model therefore look like this:
prior<-list(R=list(V=diag(3),nu=2),G=list(G1=list(V=1,nu=0.02),
G2=list(V=1,nu=0.02),G3=list(V=1,nu=0.02),G4=list(V=1,nu=0.02)))
model<-MCMCglmm(cbind(PC1,PC2,PC3)~trait+Temperature*Food-1,
random=~Temperature:Isoline+Food:Isoline+Isoline
+Isoline:Food:Temperature,rcov=~us(trait):units,
prior=prior,data=data,family=rep("gaussian",3),verbose=F)
My problem is that I am struggling to understand the use and
interpretation of the 'rcov' term. I think I understand that as I
have written it in the above model, I have defined a unique residual
for each of the PCs (trait) for each individual (unit)?
When I call summary(model), I get this output table relating to the
rcov term:
R-structure: ~us(trait):units
post.mean l-95% CI u-95% CI eff.samp
PC1:PC1.units 10.67864 10.0780 11.2944 1000.0
PC2:PC1.units 0.10204 -0.1432 0.3343 1000.0
PC3:PC1.units 0.01738 -0.1224 0.1665 1000.0
PC1:PC2.units 0.10204 -0.1432 0.3343 1000.0
PC2:PC2.units 3.18642 3.0058 3.3625 1000.0
PC3:PC2.units -0.83016 -0.9082 -0.7585 727.5
PC1:PC3.units 0.01738 -0.1224 0.1665 1000.0
PC2:PC3.units -0.83016 -0.9082 -0.7585 727.5
PC3:PC3.units 1.06151 1.0092 1.1272 1000.0
I'm not quite sure what this means. It seems to be that there is a
lot of variance in PC1, slightly less in PC2, and slightly less
again in PC3, and very low covariance between different PCs. These
values are similar to the individual-level phenotypic covariance
matrix that I can get directly from my data using the cov(data) R
command. Given my current understanding of the rcov term, it makes
sense that these are similar, but since I'm not sure about how I'm
using the rcov term in this model, I can't be sure of my
interpretation either. Can anyone clarify this for me? I also
thought that, IF the covariance between my PCs is nearly 0, should I
use the 'idh' matrix instead of an unstructured one? Additionally, I
am more interested in covariance between my PCs at the genotype
level rather than the individual level, and so I tried to see if I
could look at this by using a slightly different rcov term in my
model:
rcov=~us(trait):units:Isoline
I guess I was trying to group the individuals by isoline, but
whatever this command actually does, the resulting output table is
almost identical to that from the previous model, and so I don't
think I achieved what I meant to. I would really appreciate it if
anyone has any idea how to do this correctly, or if anyone could
explain what I have done here and why the two models might give near-
identical output.
I would be really grateful for any help.
Thanks,
Fiona
...............................................................................................................
Fiona C Ingleby
http://biosciences.exeter.ac.uk/cec/staff/postgradresearch/fionaingleby/
Centre for Ecology and Conservation
University of Exeter, Tremough Campus
Cornwall
TR10 9EZ
Tel: 01326 371852
_______________________________________________ R-sig-mixed-models at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.