[R-sig-ME] MCMCglmm R-structure problem in heteroskedastic model
j.hadfield at ed.ac.uk
Wed Feb 2 12:21:35 CET 2011
When you fit an animal model, MCMCglmm introduces "phantom" parents
with missing data. These phantom parents allow the inverse of A (the
relationship matrix) to be a) calculated easily b) very sparse and c)
permuted for solving the mixed model equations more quickly. When an
interaction is fitted between animal and a factor like asthma.family
phantom records are set up for all asthma.family/animal combinations,
hence 6730 missing records in models 2 and 3. If the pedigree links
do not exist between individuals phenotyped in the two groups, then
there would be more efficient ways of setting up the model, but they
are not implemented. When the number of missing records is large it
can even be more efficient (in terms of effective sample size per
second) to do away with phantom parents and use a denser inverse A
(specify nodes="TIPS" in the call to MCMCglmm).
If some individuals in mfs.fam have not been phenotyped you can use
prunePed to remove useless individuals (make sure make.base=TRUE).
In model3 the phantom parents have not been assigned an asthma.family
because you have a simple random term ~animal. When it comes to build
the R-structure it does not "know" what to do with the individuals.
These phantom parents could be assigned any asthma.family and it would
make no difference to the posterior, but unfortunatley I did not think
that far head when writing MCMCglmm. I will try and fix this in later
versions. The work around is to add the phantom parents to mfs.fam,
assigning them anything for the fixed effects but having NA for the
response. It should then run as intended.
On 2 Feb 2011, at 01:11, Paul Johnson wrote:
> I'm using MCMCglmm to estimate heritability of lung function in a
> data set with 1346 nuclear families, each family having 2 parents
> and at least 1 offspring (total n=4777). I'm having trouble with a
> particular model:
> + MCMCglmm(fixed.form,
> + random=~animal,
> + pedigree=pedigree,
> + rcov=~idh(asthma.family):units,
> + prior=prior.model3,
> + data=mfs.fam,nitt=nitt,thin=thin,burnin=burnin)
> Warning in MCMCglmm(fixed.form, random = ~animal, pedigree =
> pedigree, rcov = ~idh(asthma.family):units, :
> some combinations in animal do not exist and 2692 missing records
> have been generated
> Error in MCMCglmm(fixed.form, random = ~animal, pedigree = pedigree,
> rcov = ~idh(asthma.family):units, :
> R-structure does not define unique residual for each data point
> What I'm trying to do is estimate two different residual variances,
> one in families with at least 1 asthmatic (n=722 individuals) and
> one in the rest (n=4055 individuals), but as you can see I get an
> error. Can anyone see what the problem is?
> Similar models work fine, including
> 1. a model with two variances [random=~animal, rcov=~units]
> 2. a model with 4 variances [random=~idh(asthma.family):animal,
> 3. a 3-variance model with a single residual variance and two animal
> variances [random=~idh(asthma.family):animal, rcov=~units].
> (An odd thing about 2 and 3 above is that MCMCglmm warns me that
> "6730 missing records have been generated" which is exactly 2.5
> times the 2692 that I'd expect).
> Thanks for any help,
> Paul Johnson
> PS other details:
>  "R version 2.12.0 (2010-10-15)"
> sysname release version nodename
> machine login user
> "Windows" "7 x64" "build 7600" "PAUL-PC"
> "x86" "Paul" "Paul"
> Package "MCMCglmm"
> LibPath "C:\\Users\\Paul\\Documents/R/win-library/2.12"
> Version "2.10"
> Priority NA
> Depends "tensorA, Matrix, coda, ape, corpcor"
> Imports NA
> LinkingTo NA
> Suggests "rgl, combinat, mvtnorm, orthopolynom"
> Enhances NA
> OS_type NA
> License "GPL (>= 2)"
> Archs "i386, x64"
> Built "2.12.1"
> The University of Glasgow, charity number SC004401
> R-sig-mixed-models at r-project.org mailing list
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: not available
More information about the R-sig-mixed-models