Learn R Programming

phytools (version 2.1-1)

anc.ML: Ancestral character estimation using likelihood

Description

This function estimates the evolutionary parameters and ancestral states for Brownian evolution using likelihood. It is also possible (for model="BM") to allow for missing data for some tip taxa.

Usage

anc.ML(tree, x, maxit=2000, model=c("BM","OU","EB"), ...)

Value

An object of class "anc.ML" with at least the following four elements (if not more, depending on model):

sig2

the variance of the BM process.

ace

a vector with the ancestral states.

logLik

the log-likelihood.

convergence

the value of convergence returned by optim (0 is good).

Arguments

tree

an object of class "phylo".

x

a vector of tip values for species; names(x) should be the species names.

maxit

an optional integer value indicating the maximum number of iterations for optimization.

model

model of continuous character evolution on the tree. It's possible that only model="BM" & model="EB" work in the present version as model="OU" has not be thoroughly tested & some bugs were reported for an earlier version.

...

optional arguments.

Author

Liam Revell liam.revell@umb.edu

Details

Because this function relies on a high dimensional numerical optimization of the likelihood function, fastAnc should probably be preferred for most purposes. If using anc.ML, users should be cautious to ensure convergence.

This issue has been ameliorated in phytools >= 0.2-48 by seeding the ML optimization with the result from fastAnc.

For model="EB" this should also not be a problem as the numerical optimization is performed for only sig2 and r, while the ML values of the ancestral states are obtained during every iteration of the optimization algorithmically using the re-rooting method.

References

Revell, L. J. (2024) phytools 2.0: an updated R ecosystem for phylogenetic comparative methods (and other things). PeerJ, 12, e16505.

Schluter, D., Price, T., Mooers, A. O., and Ludwig, D. (1997) Likelihood of ancestor states in adaptive radiation. Evolution 51, 1699-1711.

See Also

ace, anc.Bayes, fastAnc, optim

Examples

Run this code
## load data from Garland et al. (1992)
data(mammal.tree)
data(mammal.data)
## extract character of interest
ln.bodyMass<-log(setNames(mammal.data$bodyMass,
    rownames(mammal.data)))
## estimate ancestral state under BM model
fit.BM<-anc.ML(mammal.tree,ln.bodyMass)
print(fit.BM)

Run the code above in your browser using DataLab