Lynch's Comparative Method
This function computes the heritable additive value and the residual deviation for continous characters, taking into account the phylogenetic relationships among species, following the comparative method described in Lynch (1991).
compar.lynch(x, G, eps = 1e-4)
- eiher a matrix, a vector, or a data.frame containing the data with species as rows and variables as columns.
- a matrix that can be interpreted as an among-species correlation matrix.
- a numeric value to detect convergence of the EM algorithm.
The parameter estimates are computed following the EM
(expectation-maximization) algorithm. This algorithm usually leads to
convergence but may lead to local optima of the likelihood
function. It is recommended to run several times the function in order
to detect these potential local optima. The `optimal' value for
eps depends actually on the range of the data and may be
changed by the user in order to check the stability of the parameter
estimates. Convergence occurs when the differences between two
successive iterations of the EM algorithm leads to differences between
both residual and additive values less than or equal to
- A list with the following components:
vare estimated residual variance-covariance matrix. vara estimated additive effect variance covariance matrix. u estimates of the phylogeny-wide means. A addtitive value estimates. E residual values estimates. lik logarithm of the likelihood for the entire set of observed taxon-specific mean.
The present function does not perform the estimation of ancestral phentoypes as proposed by Lynch (1991). This will be implemented in a future version.
Lynch, M. (1991) Methods for the analysis of comparative data in evolutionary biology. Evolution, 45, 1065--1080.
### The example in Lynch (1991) cat("((((Homo:0.21,Pongo:0.21):0.28,", "Macaca:0.49):0.13,Ateles:0.62):0.38,Galago:1.00);", file = "ex.tre", sep = "") tree.primates <- read.tree("ex.tre") unlink("ex.tre") X <- c(4.09434, 3.61092, 2.37024, 2.02815, -1.46968) Y <- c(4.74493, 3.33220, 3.36730, 2.89037, 2.30259) compar.lynch(cbind(X, Y), G = vcv.phylo(tree.primates, cor = TRUE))