Introduction

Alongside modularity, the strength of integration of a set of traits can affect the degree to which phenotypic variation is exposed, and responds to selection. This is particularly important when assessing the strength of integration in the same set of traits across several species or sets of data. Differences in the strength of integration of the same traits among different species could, for example, be a reflection of a biomechanical constraint that is present in one, but not the other species.

Here, we make the distinction between integration among multiple sets of traits, most commonly assessed via two-block partial least squares analysis, and integration within one set of traits. The latter of these is most commonly quantified with statistics that assess the eccentricity of eigenvalues of a covariance or correlation matrix. Based on simulations performed by Conaway and Adams (2022) the geomorph function integration.Vrel allows the user to assess the strength of integration within a set of traits using the Relative Eigenvalue Variance (Pavlicev, 2009). In addition, the function generates an effect size (Z-score), also based on the procedures in Conaway and Adams (2022). This effect size is also translated to a positive scale to ease interpretation

integration.Vrel()
  • \(A\): A 3D array (p x k x n) containing Procrustes shape variables for all specimens, or a matrix (n x variables)
  • \(phy\): A phylogenetic tree of class phylo



Example of Analysis

Below is example code using the “plethodon” dataset, available by default with the geomorph package.

int <- integration.Vrel(lmks$coords)
int
## $Re.obs
## [1] 0.1867365
## 
## $Z.obs
## [1] -0.7356783
## 
## $ZR
## [1] 0.125705
## 
## $ZR.var
## [1] 0.1666667
## 
## attr(,"class")
## [1] "rel.eig"



If one’s observations are related by a phylogeny, the phylogeny can also be included in analyses:

int <- integration.Vrel(lmks$coords, phy = phy)
int
## $Re.obs
## [1] 0.2001352
## 
## $Z.obs
## [1] -0.6927248
## 
## $ZR
## [1] 0.1686585
## 
## $ZR.var
## [1] 0.1666667
## 
## attr(,"class")
## [1] "rel.eig"



This function returns an object of class “rel.eig”, which is a list containing the following:

integration.Vrel output
  • \(re.obs\): The observed relative eigenvalue index (Vrel).
  • \(Z.obs\): The associated Z-score, which represents the effect size of Vrel
  • \(ZR\): The effect size translated to a positive scale (so that no integration is ZR = 0).
  • \(ZR.var\): The variance of the effect size.