Learn R Programming

phytools (version 2.1-1)

evolvcv.lite: Likelihood test for a shift in the evolutionary correlation between traits

Description

Fits a multi-regime model for differences in the evolutionary variance-covariance structure or correlation between two continuous traits, following Revell & Collar (2009) and Revell et al. (2022).

Usage

evolvcv.lite(tree, X, maxit=2000, tol=1e-10, ...)

Value

A list with the results summarized for each model.

Arguments

tree

an object of class "simmap". If tree is an object of class "phylo" then a simple multivariate Brownian motion model will be fit to the data in X.

X

an n x m matrix of tip values for m continuously valued traits in n species - row names should be species names. If X is supplied as a data frame it will be coerced into a matrix without warning.

maxit

an optional integer value indicating the maximum number of iterations for optimization - may need to be increased for large trees.

tol

tolerance value for "L-BFGS-B" optimization.

...

other optional arguments. The most important optional argument is probably models which species the models to be fit. See Description for more information. A second useful argument is error_vcv which should be supplied as a list of matrices of sampling variances and covariances for (and between) the means of each species. The sampling variance for the mean is just the square of the sampling error. Sampling covariances will tend to be zero (or close to zero) if error for different traits is uncorrelated, for instance, because different specimens were used to estimate the means for different traits, and non-zero otherwise.

Author

Liam Revell liam.revell@umb.edu

Details

This function takes an object of class "simmap" with a mapped binary or multi-state trait and data for two and only two continuously valued character. It then fits (by default) four different evolutionary models: common rates and correlation; different rates, common correlation; different correlations, common rates; no common structure.

In addition to the four default models specified above, evolvcv.lite now fits an additional four additional models.

The set of models to be fit can be specified using the optional argument models in multiple ways.

First, if left unspecified, then the four models listed above will be fit.

Second, if models is set to "all models" than eight models will be fit.

Lastly, one or more (up to all eight) models can be fit by encoding the models to be fit into a single vector containing a subset or all of the following elements: "1", "2", "2b", "3", "3b", "3c", and "4". These codes correspond to the following eight models: 1. common rates, common correlation; 2. different rates, common correlation; 2b. different rates for trait 1 only, common correlation; 2c. different rates for trait 2 only, common correlation; 3. common rates, different correlations; 3b. different rates for trait 1 only, different correlations; 3c. different rates for trait 2 only, different correlation; and 4. no common structure.

References

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

Revell, L. J., and D. C. Collar (2009) Phylogenetic analysis of the evolutionary correlation using likelihood. Evolution, 63, 1090-1100.

Revell, L. J., K. S. Toyama, and D. L. Mahler (2022) A simple hierarchical model for heterogeneity in the evolutionary correlation on a phylogenetic tree. PeerJ, 10, e13910.

See Also

brownie.lite, evol.vcv

Examples

Run this code
## load data from Revell & Collar (2009)
data(sunfish.tree)
data(sunfish.data)
## fit heirarchical common-structure models
sunfish.fit<-evolvcv.lite(sunfish.tree,
    sunfish.data[,2:3],models="all models")
## print fitted models
print(sunfish.fit)
## compare models
anova(sunfish.fit)

Run the code above in your browser using DataLab