• Brownian motion;
  • evolutionary model;
  • generalised least squares;
  • phylogenetic contrasts


1. Modern comparative approaches use model-based methods to describe evolutionary processes. Generalised least squares calculations lie at the heart of many methods; however, they can be computationally intensive. This is because it is necessary to form a variance–covariance matrix, then to calculate the inverse and determinant of this.

2. Based on an algorithm provided by Felsenstein (American Journal of Human Genetics, 1973, 25, 471), I show how to perform comparative calculations that avoid these computational steps.

3. I apply the method to several problems in comparative analysis, including calculating likelihoods, estimating Pagel’s λ for one or several traits and fitting linear models.

4. R code is provided, which implements the algorithm described. Examples are included to demonstrate the computational gains possible for several commonly used comparative methods.