Re: Computing heritability
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Computing heritability

Dear Rob,
I'm trying to tidy my desk and found you email of 9 months ago
which I probably never responded to.

> X-Authentication-Warning: petidomo set sender 
to using -f
> Date: Thu, 06 May 1999 15:17:57 -0400
> To:
> From: Rob Tempelman <>
> Subject: Computing heritability
> Mime-Version: 1.0
>   I have been combing through the recent ASREML listserver email archive
> with plenty of confusion in terms of my understanding how does one simply
> compute the variance of y and the variance of u (e.g. any terms that
> involve genetics or animal) on a day by day basis when one has repeated
> measures on animals in a pedigreed (i.e. animal model) ASREML analysis.
> I've been trying to think through such a derivation on a random
> coefficients model basis.  Given the 'mixed model' structure of spline models:
>    y = X beta + Z u + e
> I might be inclined to write the variance-covariance of y as:
>     Z var(u) Z' + var(e)
> and the variance-covariance of u as:
>     Z var(u) Z'
> and use that to determine the heritability on a day by day basis.  Also,
> since the spline(day) term is really not a 'random effect' per se (i.e. it
> is a term that is constant across all animals and measures deviation from
> linear trend...isn't it?), I would not include this in the determination of
> the variance of y.
> There are undoubtedly several things wrong with my loose cannon thinking
> here and so my question is... what are they?  

The development of repeated measures models depends a little on the
actual context.  If we assume (more or less) complete repeated
measures data, we can do a univariate analysis of each time
   Fixed effects (Age, Breed)
   Direct Genetic effects )Ainverse)
   We can extend this to a multivariate model  so that we
   have an unstructred matrix for Genetic and Error variation.
   Now you are talking about fitting a smoothed model acriss time.
   You can use spline to pick up a trend in the means [I would 
   probably fit fixed means for each time but if a spline was to be used,
   also include random independent time component 
       mu lin(time) !r spl(time) fac(time)
       [fac(time) may also be coded as dev(time) or as time if time is a factor]
   Similarly, the MANOVA will fit  Time.fixed which could be partitioned
   to lin(time), spl(time) and fac(time)  components for each fixed term.
   Alternatively, you could use a pol(time) function instead of the spline
    function , especially if there were many times but they were irregular
    [animal.time table is sparse]   

   Conceptually, the same split up could be made at the genetic level.
   Genetic variance at specific times is much more straight forward under the
   pol() structure than the spl() model although I suppose it could be worked 
   I am not aware that this has been successfully done [other than in very small
   examples possibly] as it would be very compute intersive for a reasonably
   number of times.
   In any case, I would not fit other than a full unstructured variance
   structure at the error level.  If there are duplicate measures
   [as in forestry 5 tree plots of each genotype, the unstructured error
   must be used at the plot level as well as the tree level.
   My experience suggests that funny things can happen in variance models
   when 'smoothed' structures are fitted and the 'lack of fit' is not 
   fitted - it can end up in unexpected places.
> I read in a previous email: 
> " I could change the spl(time) component without changing the fit of the
> spline"
> and then in another email:
>  "The component for spl(time) is a variance component, but it controls the
> amount of smoothing. If this component (actually the ratio gamma) tends to
> zero, the spline fit tends to a straight line, as it gets larger the fit
> tends to interpolation"
> These responses appear to conflict with each other (?)

Actually they are orthogonal.  The actual variance component you get
can be changed by rescaling the units of 'time'  in the standard
formulation.  In ASREML I now convert time to a standard scale
with range (k-1) where k is the number of knot points.  So, this
is no longer a point of confusion within ASREML but may well apply in
other spine packages.

For a given scale of the knot points, the second point holds.  I.e.
If you had two variates and you fitted separate models involving a
spline, the one with the smaller variance component will have the
smoother line.

> Also, what is the meaning of the "overall heritability" that is given in
> the .pvs file when genetic, environmental variances are potentially
> heterogeneous over days and the random effects 'design matrix' is not
> necessarily 0's and 1's?

  I have trouble with the concept of heritability now that we have
  moved into much more complex variance models.  I believe it was
  devised in the context of much simpler variance component models.
  The problem being that genetic variances change over time and
  residual variances also change over time.  We further complicate
  the issue if we use something like a spline to model changes
  in the mean over time.  In plant breeding, the unit is often a plot 
  rather than a plant and variance components depend on plot size in a
  fairly unpredictable way.  Also, correlation between neighbouring plots
  confuses the issue.  So, if someone is to calculate an 'overall heritability',
  they had better spell out exactly which components of variance
  are included. 
> I look forward to your comments...
Well, I kept you waiting.  I hope my comments are still of interest.


> Sincerely,
> Rob
> --
> Asreml mailinglist archive:

Arthur Gilmour PhD        
Principal Research Scientist (Biometrics)            fax: <61> 2 6391 3899
NSW Agriculture                                           <61> 2 6391 3922
Orange Agricultural Institute             telephone work: <61> 2 6391 3815
Forest Rd, ORANGE, 2800, AUSTRALIA                  home: <61> 2 6362 0046

ASREML is still free by anonymous ftp from pub/aar on
    or point your web browser at 

To join the asreml discussion list, send the message  

To send messages to the list,

Asreml list archive:

                        <> <> <> <> <> <> <>
"Christ Jesus came into the world to save sinners"   I Timothy 1:15.


Asreml mailinglist archive: