anc.ML {phytools} | R Documentation |
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"), ...)
Arguments
tree |
an object of class |
x |
a vector of tip values for species; |
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 |
... |
optional arguments. |
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.
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 |
Author(s)
Liam Revell liam.revell@umb.edu
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
## 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)