[R-sig-ME] Error in variance estimation using bivariate animal model

Stephane Chantepie chantepie at mnhn.fr
Tue May 15 18:11:43 CEST 2012


Dear all,

I am using MCMCglmm function to construct bivariate animal models of bustard 
sperm production according to age. Until six years old, each age are 
considered as a trait. After 6 years old, age-class "7-8" and "9-11" are 
computed to have enought information.

In a first part, additive genetic variance have been estimated by using simple 
animal model. Results are not sensitive to prior and give quite realistic 
estimations

In a second part, I have tried to estimate covariance between these ages. And 
I have some problems in estimating variance-covariance for the bivariate 
models which use the age class "7-8" or "9-11". For example, when I compute 
the model cbind(age_1,age_9_11), the estimation of variance for age_1 and 
age_9_11 are similar to estimations of the  simple animal models. The 
estimation of covariance also appears consistent with the others covariance 
results, so it pretty good. But when I do cbind(age_2,age_9_11), the variance 
estimation of age_9_11 become really hight (out of the range I have found in 
the simple model). So the covariance estimation appears really hight too. I do 
not really understand why it works when I use age_1 against my age-class and 
not when I use the age 2 3 4 5 6. The chains seem to converge and there is no 
autocorrelation 
All variance estimation given by bivariate model wich do not use age-class are 
consistent with the simple models.

result for cbind(age_1,age_9_11) : http://ubuntuone.com/2xewilItvXmqvZZhMW3sTN
result for cbind(age_2,age_9_11) : http://ubuntuone.com/7hVy0DZ2z0qNHkfiZUZXis

I run five times the same model (as below) and concatenate results (same  
prior,same burning, same thin and random seed)
I have just added a ID random parameter when I use a age-class as one of 
bivariate trait (because I have repeated measures)

** spz_var=as.numeric(cbind(var(na.omit(age_2)/2),var(na.omit(age_7_8)/2)))
** prior<-list(R=list(V=diag(2)*spz_var,nu=2), 		
G=list(G1=list(V=diag(2)*spz_var, nu=2),
G2=list(V=diag(2)*spz_var, nu=2),
G3=list(V=diag(2)*spz_var, nu=2)))
** spz<-MCMCglmm(cbind(age_2,age_7_8)~ trait-1, random=~us(trait):animal + 
us(trait):birth + us(trait):ID, rcov=~us(trait):units,nitt=1300000, thin=1000, 
burnin=300000, prior=prior, verbose=TRUE, pedigree=ped, 
family=c("gaussian","gaussian"), data=dat)

Should I modify  "us(trait):ID" to fit random parameter only on the second 
trait? How can I do that? Is my results arenormal?

If you have any idea

Many thanks for your reply

--
Stephane Chantepie
CNRS Phd  candidate
Muséum national d'Histoire naturelle
55 rue Buffon
75005 paris
E-mail : chantepie_at_mnhn_dot_fr
--



More information about the R-sig-mixed-models mailing list