The function quantifies the degree of morphological integration between modular partitions of shape data as
defined by Procrustes shape variables. It is assumed that the landmarks have previously been aligned using
Generalized Procrustes Analysis (GPA) [e.g., with gpagen
]. The function may be used to assess
the degree of morphological integration between two or more sets of variables.
The function estimates the degree of morphological integration using a two-block partial least squares
analysis (PLS). When used with landmark data, this analysis is referred to as singular warps analysis
(Bookstein et al. 2003). If more than two partitions are defined, the average pairwise PLS correlation is utilized as
the test statistic. The observed test value is then compared to a distribution of values obtained by randomly permuting
the individuals (rows) in one partition relative to those in the other. A significant result is found when the
observed PLS correlation is large relative to this distribution, and implies that the structures are integrated with one
another (see Bookstein et al. 2003). In addition, a multivariate effect size describing the strength of the effect is
estimated from the empirically-generated sampling distribution (see details in Adams and Collyer 2019).
If only two partitions are specified, a plot of PLS scores along the first
set of PLS axes is optionally displayed, and thin-plate spline deformation grids along these axes are also shown if data were
input as a 3D array.
Input for the analysis can take one of two forms. First, one can input a single dataset (as a matrix or 3D array, along with
a vector describing which variables correspond to which partitions (for the case of a 3D array, which landmarks belong to which
partitions is specified). Alternatively, when evaluating the integration between two structures or partitions, two datasets may be provided.
The generic functions, print
, summary
, and plot
all work with integration.test
.
The generic function, plot
, produces a two-block.pls plot. This function calls plot.pls
, which produces an ordination plot.
An additional argument allows one to include a vector to label points. Starting with version 3.1.0, warpgrids are no longer available with plot.pls
but after making a plot, the function returns values that can be used with picknplot.shape
or a combination of
shape.predictor
and plotRefToTarget
to visualize shape changes in the plot (via warpgrids).
Similarity to two.b.pls
and compare.pls
Note that integration.test
performed on two matrices or arrays returns the same results as two.b.pls
.
However, two.b.pls
is limited to only two modules. It might be of interest with 3+ modules to perform integration tests
between all pairwise comparisons of modules. This can be done, test by test, and the levels of integration can be compared with
compare.pls
. Such results are different than using the average amount of integration, as performed by integration.test
when more than two modules are input.
Using phylogenies and PGLS
If one wishes to incorporate a phylogeny, phylo.integration
is the function to use. This function is exactly the same as integration.test
but allows PGLS estimation of PLS vectors. Because integration.test
can be used on two blocks, phylo.integration
likewise allows one to
perform a phylogenetic two-block PLS analysis.
Notes for geomorph 3.0.4 and subsequent versions
Compared to previous versions of geomorph, users might notice differences in effect sizes. Previous versions used z-scores calculated with
expected values of statistics from null hypotheses (sensu Collyer et al. 2015); however Adams and Collyer (2016) showed that expected values
for some statistics can vary with sample size and variable number, and recommended finding the expected value, empirically, as the mean from the set
of random outcomes. Geomorph 3.0.4 and subsequent versions now center z-scores on their empirically estimated expected values and where appropriate,
log-transform values to assure statistics are normally distributed. This can result in negative effect sizes, when statistics are smaller than
expected compared to the average random outcome. For ANOVA-based functions, the option to choose among different statistics to measure effect size
is now a function argument.