This function performs phylogenetic PCA following Revell (2009).
phyl.pca(tree, Y, method="BM", mode="cov", ...)
# S3 method for phyl.pca
biplot(x, ...)
scores(object, ...)
# S3 method for phyl.pca
scores(object, ...)
as.princomp(x, ...)
as.prcomp(x, ...)
An object of class "phyl.pca"
consisting of a list with some or all of the following elements:
diagonal matrix of eigenvalues.
matrix with eigenvectors in columns.
matrix with scores.
matrix with loadings.
fitted value of \(\lambda\) (method="lambda"
only).
log-likelihood for \(\lambda\) model (method="logL"
only).
phylogeny as an object of class "phylo"
.
data matrix with traits in columns.
method to obtain the correlation structure: can be "BM"
or "lambda"
.
is the mode for the PCA: can be "cov"
or "corr"
.
object of class "phyl.pca"
for biplot
, as.princomp
, and as.prcomp
methods.
object of class "phyl.pca"
for scores
method.
for S3 plotting method biplot.phyl.pca
, other arguments to be passed to biplot
.
Liam Revell liam.revell@umb.edu, Joan Maspons
If method="lambda"
then \(\lambda\) will be optimized on the interval (0,1) using optimize
. Optimization method can be set using the option opt
which can take values "ML"
, "REML"
, or "fixed"
. If the last of these is selected than the user should also specify a value of \(\lambda\) to use via the argument lambda
.
S3 methods (print
, summary
, and biplot
) are modified from code provided by Joan Maspons and are based on the same methods for objects of class "prcomp"
. Function biplot
now permits the argument choices
to be supplied, which should be a vector of length two indicated the two PC axes to be plotted.
S3 method scores
extracts or computes (for a matrix of newdata
) PC scores given an object of class "phyl.pca"
.
S3 methods as.prcomp
and as.princomp
convert the object of class "phyl.pca"
to objects of class "prcomp"
and "princomp"
, respectively.
Revell, L. J. (2009) Size-correction and principal components for interspecific comparative studies. Evolution, 63, 3258-3268.
Revell, L. J. (2024) phytools 2.0: an updated R ecosystem for phylogenetic comparative methods (and other things). PeerJ, 12, e16505.
## load data from Mahler et al. (2010)
data(anoletree)
data(anole.data)
## run phylogenetic PCA
anole.pca<-phyl.pca(anoletree,anole.data)
print(anole.pca)
## plot results
plot(anole.pca)
biplot(anole.pca)
Run the code above in your browser using DataLab