[R-sig-phylo] How to detect phylogenetic signal (lambda) in one unscaled trait?

tgarland at ucr.edu tgarland at ucr.edu
Tue Mar 22 20:56:23 CET 2011


Hi Alberto,

>Do I understand correctly then that the K statistic cannot be calculated in
>a regression model?

It might be possible to get the K directly from a regression model, rather than doing the scaling first, but I have not seen a formula for that nor code in R, Matlab, etc.  In any case, you would want to check to make sure the numbers came out the same.

>In other words, the trait needs to be scaled first and
>then to proceed as you outlined?

Correct.

>Also, I am confused by the logarithmic transformation of traits in PGLS and
>when calculating K.  This transformation reduces the distance between means
>along the right hand tail of a sample (thus helping achieve normality), but
>this turns ratio scale data into ordinal data - since relative distances
>between means are not preserved.  Is log transformation therefore a bad idea
>prior to doing PGLS or calculating K?  It seems it would affect signal values greatly.

I am not sure I am following all of your points.  In general, for traits that scale allometrically (at least across a substantial range in body size), the double-log transform is done in order to linearize the relation (and hence allow fitting of linear regressions, whether OLS, PGLS, etc.) and homogenize variances about the line (achieve homoscedasticity).  Usually, inspection of the log-log plots indicates this works, although it's obviously good to check for any particular trait and set of  species.  Anyway, we used log-log analyses to get our slopes, then proceeded as indicated.  I would do the same to make things comparable, but also feel free to do other things as may seem warranted.

Cheers,
Ted

   

Theodore Garland, Jr.
Professor
Department of Biology
University of California, Riverside
Riverside, CA 92521
Office Phone:  (951) 827-3524
Wet Lab Phone:  (951) 827-5724
Dry Lab Phone:  (951) 827-4026
Home Phone:  (951) 328-0820
Facsimile:  (951) 827-4286 = Dept. office (not confidential)
Email:  tgarland at ucr.edu

Main Departmental page:
http://www.biology.ucr.edu/people/faculty/Garland.html

List of all Publications:
http://www.biology.ucr.edu/people/faculty/Garland/GarlandPublications.html

Garland and Rose, 2009
http://www.ucpress.edu/books/pages/10604.php


  ---- Original message ----

    Date: Tue, 22 Mar 2011 21:45:43 +0200
    From: Alberto Gallano <alberto.gc8 at gmail.com>
    Subject: Re: [R-sig-phylo] How to detect phylogenetic signal
    (lambda) in one unscaled trait?
    To: tgarland at ucr.edu
    Cc: r-sig-phylo at r-project.org

    >Thanks Ted,
    >
    >Do I understand correctly then that the K statistic cannot be
    calculated in
    >a regression model? In other words, the trait needs to be scaled
    first and
    >then to proceed as you outlined?
    >
    >Also, I am confused by the logarithmic transformation of traits in
    PGLS and
    >when calculating K. This transformation reduces the distance
    between means
    >along the right hand tail of a sample (thus helping achieve
    normality), but
    >this turns ratio scale data into ordinal data - since relative
    distances
    >between means are not preserved. Is log transformation therefore a
    bad idea
    >prior to doing PGLS or calculating K? It seems it would affect
    signal values
    >greatly.
    >
    >
    >kind regards,
    >
    >Alberto
    >
    >
    >On Tue, Mar 22, 2011 at 9:36 PM, <tgarland at ucr.edu> wrote:
    >
    >> Hi Alberto,
    >>
    >> I'll jump in here. Aside from anything you would do with Pagel's
    >> lambda, Grafen's rho, or an OU or ACDC transform, it is useful to
    have a
    >> value for the K statistic, as presented here:
    >>
    >> Blomberg, S. P., T. Garland, Jr., and A. R. Ives. 2003. Testing
    for
    >> phylogenetic signal in comparative data: behavioral traits are
    more labile.
    >> Evolution 57:717-745.
    >>
    >> In that paper (see pages 720-721), we surveyed a lot of traits on
    a lot of
    >> trees, and so you can compare your K values with what we show.
    For the
    >> traits that were obviously correlated with body mass (e.g., leg
    length,
    >> brain mass, metabolic rate), we first computed size-corrected
    values in the
    >> following way.
    >>
    >> 1. log-transform the trait and body mass.
    >>
    >> 2. Use a phylogenetic regression method (e.g. independent
    contrasts, PGLS,
    >> maybe a regression with a transform) to obtain the allometric
    equation.
    >>
    >> 3. Divide the trait by body mass raised to the allometric scaling
    exponent
    >> (i.e., the slope from #2), then take the log of that quantity.
    >>
    >> 4. Compute the K statistic.
    >>
    >> Cheers,
    >> Ted
    >>
    >>
    >>
    >> ---- Original message ----
    >>
    >> Date: Tue, 22 Mar 2011 20:37:58 +0200
    >> From: Alberto Gallano <alberto.gc8 at gmail.com>
    >> Subject: [R-sig-phylo] How to detect phylogenetic signal (lambda)
    in
    >> one unscaled trait?
    >> To: r-sig-phylo at r-project.org
    >>
    >> >This is a repost of an earlier question, after my colleague
    helped
    >> me with
    >> >my English:
    >> >
    >> >
    >> >To calculate signal in PGLS multiple regression (with say two
    >> independent
    >> >variables) I can use the following model:
    >> >
    >> >lambdaModel <- gls(Y ~ X + bodymass, correlation=corPagel(1,
    tree),
    >> >method="ML")
    >> >
    >> >This will take account of body mass when assessing the strength
    of
    >> >relationship between Y and X. This calculates lambda for the
    >> residuals and
    >> >is better than calculating lambda for each trait (according to
    >> Revell,
    >> >2010). My question is, If I only want to find phylogenetic
    signal
    >> in one
    >> >(unscaled) variable, should I use the model:
    >> >
    >> >lambdaModel <- gls(Y ~ bodymass, correlation=corPagel(1, tree),
    >> method="ML")
    >> >
    >> >Will this give the lambda value for Y after controlling for body
    >> mass? Or,
    >> >would it be better to 'correct' for body mass first, using a
    ratio
    >> (Y /
    >> >body mass), and then calculate lambda for this scaled trait,
    using
    >> for
    >> >example:
    >> >
    >> >lambdaModel <- fitContinuous(tree, scaled_Y, model="lambda")
    >> >
    >> >
    >> >
    >> >kind regards,
    >> >
    >> >Alberto
    >> >
    >> > [[alternative HTML version deleted]]
    >> >
    >> >_______________________________________________
    >> >R-sig-phylo mailing list
    >> >R-sig-phylo at r-project.org
    >> >https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
    >>
    >
    > [[alternative HTML version deleted]]
    >
    >_______________________________________________
    >R-sig-phylo mailing list
    >R-sig-phylo at r-project.org
    >https://stat.ethz.ch/mailman/listinfo/r-sig-phylo



More information about the R-sig-phylo mailing list