[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:36:15 CET 2011
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
More information about the R-sig-phylo
mailing list