Phylogenetic signal in brms

Hello, I have a question of clarification. When constructing a model using the phylogenetic method described in the brms vignette (https://cran.r-project.org/web/packages/brms/vignettes/brms_phylogenetics.html), does the variance covariance matrix assume a phylogenetic signal that perfectly mirrors Brownian motion (the equivalent of lambda = 1), or does it weight the VCV matrix by the estimate of the phylogenetic signal that you can extract using the hypothesis method? In other words, if I wanted to simulate a PGLS, would I need to multiply the VCV by an estimate of lambda, or does the covariance among the residuals that is used to fit the model reflects an estimate of the phylogenetic signal?

Thank you,

Ethan

1 Like

Maybe @Ax3man knows the answer.

As far as I know brms is estimating the “phylogenetic mixed model”. A good reference is this Am Nat paper by Housworth, Martins & Lynch: https://doi.org/10.1086/380570. From that paper:

We note that the univariate phylogenetic heritability estimator is mathematically equivalent to the phylogenetic correlation estimator lambda examined recently in Freckleton et al. (2002) despite those authors’ claim to the contrary. The Freckleton et al. article makes a very nice companion to our current work because those authors determined the value of lambda & h2 for numerous real phylogenies and data sets from the biology literature.

The h2 (heritability) they talk about there is:

In quantitative genetics, the heritability of a trait is the proportion of the variance in the trait explained by the relationship between individuals as given in the pedigree. Similarly, we define the phylogenetic heritability of a character as the proportion of variance in the character explained by the relationship among taxa as given by the phylogeny. In both cases, the mathematical formula is h2 = sigma_a ^ 2 / (sigma_a ^ 2 + sigma_e ^ 2 ).

See also here: Phylogenetic signal for binomial and lognormal families.

So the model does not assume perfect Brownian motion (lambda = 1) but scales the effect of the phylogeny the same way as Pagel’s lambda model does. The phylogenetic signal explained in the vignette is the phylogenetic heritability that Housworth et al. are talking about, and the same as lambda in a PGLS.

edit:

For completeness, here is how the referenced Freckleton et al. paper (https://doi.org/10.1086/343873) argues that lambda and phylogenetic h2 are not the same:

For traits evolving along the branches of a phylogeny entirely by Brownian motion, the expected values of both lambda and H2 are equal to 1.0. Conversely, both measures are expected to be equal to 0 for traits that have no phylogenetic component. However, the two measures are not identical since lambda is not interpretable as the percentage of variance attributable to phylogenetic effects. This difference between the two parameters arises because one optimizes its estimates on the basis of partitioning the data into the phylogenetic and nonphylogenetic components, whereas the other optimizes its estimates on the total or unpartitioned variance in the trait. Thus, l is defined as the transformation of the phylogeny that makes the unpartitioned trait data best fit the Brownian motion model. This means that lambda can also adopt values > 1.0. A value of lambda > 1.0 can arise if, for instance, traits are more similar than that predicted by Brownian motion, given the phylogeny. As an example, the value of H2 is 1.0 for Lynch’s (1991) data on body size, but lamba = 1.24 . In practice, however, the range of values > 1.0 that lambda can adopt is restricted since the off-diagonal elements in V cannot be larger than the diagonal elements.

So lambda is not constrained to be between 0 and 1, but h2 is. (In my personal and limited experience, lambda > 1 doesn’t come up that often, and you’re more likely to see lambda < 0. Lamda < 0 could be interpreted as closely related species being more different than unrelated species, perhaps because of displacement or competition. Also note that some implementations of PGLS will estimate lambda but restrict it to [0, 1] without telling you.)

5 Likes

Thank you! That was very helpful.