Learn R Programming

geomorph (version 4.0.10)

physignal.eigen: Assessing dimensions of phylogenetic signal in Procrustes shape variables

Description

Function calculates the degree of phylogenetic signal across dimensions of shape space from Procrustes shape variables

Usage

physignal.eigen(
  Y,
  phy = NULL,
  Cov = NULL,
  Blomberg = FALSE,
  unit.tree = TRUE,
  lambda = 1,
  test = TRUE,
  iter = 999,
  seed = NULL,
  tol = 0.001
)

Value

Function returns a list with the following components:

KC

The K-components from an eigenanalysis of the phylogenetic signal matrix, K.

eib.obs

The observed eigenvalues of the phylogenetic signal matrix, K.

rand.eigen.values

The set of eigenvalues from the permuted datasets.

traceK.obs

The observed traceK statistic.

traceK

The set of traceK statistics from the permuted datasets.

p.traceK

The p-value of traceK from permutation.

Z.traceK

The effect size of traceK.

detK.obs

The observed detK statistic.

detK

The set of detK statistics from the permuted datasets.

p.detK

The p-value of detK from permutation.

Z.detK

The effect size of detK.

Kmult.obs

The observed Kmult statistic.

Kmult

The set of Kmult statistics from the permuted datasets.

p.Kmult

The p-value of multK from permutation.

Z.Kmult

The effect size of Kmult.

permutations

The number of random permutations used in the resampling procedure.

call

The matched call

Arguments

Y

A matrix (n x [p x k]) or 3D array (p x k x n) containing Procrustes shape variables for a set of specimens (it is assumed that the data have been subjected to a Generalized Procrustes Analysis)

phy

A phylogenetic tree of class = "phylo" - see read.tree in library ape

Cov

An object covariance matrix describing the phylogenetic relationships among species, which may be used in place of `tree

Blomberg

A logical value to indicate whether GLS-centering or OLS-centering (the default) should be used

unit.tree

A logical value to indicate whether the tree should be scaled to unit height

lambda

An optional value for scaling the tree by its phylogenetic signal (as represented by the parameter lambda)

test

A logical value to indicate whether significance testing should be performed

iter

Number of iterations for significance testing

seed

An optional argument for setting the seed for random permutations of the resampling procedure. If left NULL (the default), the exact same P-values will be found for repeated runs of the analysis (with the same number of iterations). If seed = "random", a random seed will be used, and P-values will vary. One can also specify an integer for specific seed values, which might be of interest for advanced users.

tol

A value indicating the magnitude below which components should be omitted, following projection. See ordinate for details.

Author

Dean Adams and Michael Collyer

Details

The function estimates the degree of phylogenetic signal across dimensions of shape space, based on Procrustes shape variables for a given phylogeny. The method is intended to interrogate patterns of phylogenetic signal that are not uniformly distributed across shape space, but rather are concentrated in one or a few dimensions. The degree of phylogenetic signal in data is estimated using a matrix generalization of Blomberg's Kappa (K), and the phylogenetic signal represented by this matrix is decomposed into linear combinations that describe directions of phylogenetic signal within the dataspace containing decreasing levels of phylogenetic signal (Mitteroecker et al. 2024). Two summary measures based on the eigenvalues of K are calculated: the determinant of K (detK) and the trace of K (traceK). Both describe the degree of phylogenetic signal in multivariate data. In addition, the multivariate version of the K-statistic (Kmult: Adams 2014) is also provided. All three statistics are evaluated via permutation, where the shape data is permuted among the tips of the phylogeny. Effect sizes are also provided.

It should be noted that by default the function uses OLS centering when calculating the phylogenetic signal matrix, unlike most authors who have used GLS centering. Both OLS and GLS centering were proposed in Blomberg et al.s (2003) original exploration of phylogenetic signal. However, for both mathematical and computational reasons OLS is used here (see justification in Mitteroecker et al. 2024). Both measures are highly rank correlated with one another (Mitteroecker et al. 2024). Additionally, using using BLOMBERG = TRUE will result in GLS centering, in which case the statistic Kmult obtained with this function will be identical to that obtained when using physignal.

Importantly, because detK and traceK are based on the covariance matrix K, singularity can become an issue. In particular, geometric morphometric shape data will not be of full rank, as several dimensions are standardized during the Generalized Procrustes Analysis (one may also have fewer observations than variables, which will also generate redundancies). For this reason, a principal components analysis of the data is performed, and the redundant dimensions are removed so that detK and traceK may be computed (see Mitteroecker et al. 2024). Additionally, in cases where the number of trait dimensions (p) exceeds the number of species (n), i.e., p > n, there are n - 1 rather than p dimensions, but there are no more than n - 2 dimensions of K, because of additional singularity imposed by a matrix product that finds ratio of residual covariance matrices. In these cases, an additional dimension is removed (leaving n - 2) to ensure that K-statistics across permutations are not invariant.

The generic functions, print, summary, and plot all work with physignal.eigen. The ability to plot the species in the space of K-components is available (see example).

References

Mitteroecker, P., M.L. Collyer, and D.C. Adams. 2024. Exploring phylogenetic signal in multivariate phenotypes by maximizing Blomberg's K. Systematic Biology. (In Press).

Blomberg SP, Garland T, Ives AR. 2003. Testing for phylogenetic signal in comparative data: behavioral traits are more labile. Evolution, 57:717-745.

Adams, D.C. 2014. A generalized K statistic for estimating phylogenetic signal from shape and other high-dimensional multivariate data. Systematic Biology. 63:685-697.

See Also

gm.prcomp, physignal

Examples

Run this code
if (FALSE) {
data(plethspecies) 
Y.gpa <- gpagen(plethspecies$land)    #GPA-alignment    

#Test for phylogenetic signal in shape
PSe.shape <- physignal.eigen(Y = Y.gpa$coords, phy = plethspecies$phy)
summary(PSe.shape)
plot(PSe.shape)
plot(PSe.shape, type = "vectors")
KC.plot <- plot(PSe.shape$KC)
add.tree(KC.plot, plethspecies$phy, edge.col = 4)

}

Run the code above in your browser using DataLab