# compar.lynch

##### 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).

- Keywords
- regression

##### Usage

`compar.lynch(x, G, eps = 1e-4)`

##### Arguments

- x
eiher a matrix, a vector, or a data.frame containing the data with species as rows and variables as columns.

- G
a matrix that can be interpreted as an among-species correlation matrix.

- eps
a numeric value to detect convergence of the EM algorithm.

##### Details

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 `eps`

.

##### Value

A list with the following components:

estimated residual variance-covariance matrix.

estimated additive effect variance covariance matrix.

estimates of the phylogeny-wide means.

addtitive value estimates.

residual values estimates.

logarithm of the likelihood for the entire set of observed taxon-specific mean.

##### Note

The present function does not perform the estimation of ancestral phentoypes as proposed by Lynch (1991). This will be implemented in a future version.

##### References

Lynch, M. (1991) Methods for the analysis of comparative data in
evolutionary biology. *Evolution*, **45**, 1065--1080.

##### See Also

##### Examples

```
# NOT RUN {
### 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 = "\n")
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))
# }
```

*Documentation reproduced from package ape, version 5.3, License: GPL (>= 2)*