resassoc.cca | R Documentation |
Function finds residual species association after fitting the
constraints (and conditions) in constrained ordination
(cca
, rda
).
resassoc.cca(x, rank)
x |
Constrained ordination result from
|
rank |
Number of unconstrained ordination axes that are used
to compute the species associations. If missing, the rank is
chosen by brokenstick distribution
( |
The residual unconstrained axes can be used to assess if there is
any important unexplained variation in constrained ordination. This
approach was proposed already in the first papers on constrained
ordination (ter Braak 1986). However, this has been rarely done,
mainly because there are no easily available tools to assess the
unconstrained axes. Bayesian analysis of species communities
(Tikhonov et al. 2020) is conceptually similar to constrained
ordination. There the random effects are analysed via
correlated species responses that are interpreted to be caused by
unknown environmental variables or residual inter-species
association. The random effects are found as Bayesian latent
factors which are conceptually similar to residual axes in
constrained ordination (although these are maximum likelihood
principal components). It is customary represent these residual
correlations as ordered correlation matrix (Tikhonov et al
2017). This function provides similar tools for constrained
correpsondence analysis (CCA) and redundancy analysis (RDA) as
perfomed in vegan functions cca
and
rda
.
In Bayesian framework, we only try to extract a low number of
latent factors needed to describe correlated random variation. In
constrained ordination, all residual variation is accounted for by
residual axes. For meaningful analysis, we should only look at some
first axes which may reflect systematic unexplained variation. With
all axes, the residual correlations are usually nearly zero and
systematic variation is masked by non-systematic noise. Therefore
we should only have a look at some first axes. Users can either
specify the number of axes used, and the default is to use
brokenstick distribution (vegan function
(bstick
) to assess the number of axes that
have surprisingly high eigenvalues and may reflect unaccounted
systematic variation. The function returns inter-species
associations as correlation-like numbers, where values nearly zero
mean non-associated species. These values can be plotted in
correlation plot or analysed directly. The correlations are
directly found from the residual ordination axes.
It is an attractive idea to interpret inter-species association to describe ecological interactions among species (Tikhonov et el. 2017). This indeed is possible, but there are other alternative explanations, such as missing environmental variables or modelling errors (model formula, scaling of species, scaling of environmental variables, assumptions on the shape of species response etc.). You should be cautious in interpreting the results (and the same applies also to the analogous Bayesian model).
Correlation-like association matrix between species with
added argument "rank"
of the unconstrained data used to
compute associations.
ter Braak, C.J.F. (1986) Canonical correspondence analysis: a new eigenvector technique for multivariate direct gradient analysis. Ecology 67, 1167–1179.
Tikhonov, G., Abrego, N., Dunson, D. and Ovaskainen, O. (2017) Using joint species distribution models for evaluating how species-to-species associations depend on the environmental context. Methods in Ecology and Evolution 8, 443- 452.
Tikhonov et al. (2020) Joint species distribution modelling with the R-package Hmsc. Methods in Ecology and Evolution 11, 442–447.
Hmsc has analogous function
computeAssociations
. However, in Hmsc the
associations are based on Bayesian latent factors which are an
essential natural component of the analysis whereas here we
apply post-analysis tricks to extract something similar.
library(vegan)
data(dune, dune.env)
mod <- cca(dune ~ A1 + Moisture, dune.env)
resassoc.cca(mod)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.