vegan (version 2.4-2)

goodness.cca: Diagnostic Tools for [Constrained] Ordination (CCA, RDA, DCA, CA, PCA)


Functions goodness and inertcomp can be used to assess the goodness of fit for individual sites or species. Function vif.cca and alias.cca can be used to analyse linear dependencies among constraints and conditions. In addition, there are some other diagnostic tools (see 'Details').


"goodness"(object, display = c("species", "sites"), choices, model = c("CCA", "CA"), statistic = c("explained", "distance"), summarize = FALSE, addprevious = FALSE, ...) inertcomp(object, display = c("species", "sites"), statistic = c("explained", "distance"), proportional = FALSE) spenvcor(object) intersetcor(object) vif.cca(object) "alias"(object, names.only = FALSE, ...)


A result object from cca, rda or capscale.
Display "species" or "sites". Species are not available in capscale.
Axes shown. Default is to show all axes of the "model".
Show constrained ("CCA") or unconstrained ("CA") results.
Statistic used: "explained" gives the cumulative percentage accounted for, "distance" shows the residual distances.
Show only the accumulated total.
Add the variation explained by previous components when statistic="explained". For model="CCA" add conditionened (partialled out) variation, and for model="CA" add both conditioned and constrained variation. This will give cumulative explanation. The argument has no effect when statistic="distance", but this will always show the residual distance after current axis and all previous components.
Give the inertia components as proportional for the corresponding total.
Return only names of aliased variable(s) instead of defining equations.
Other parameters to the functions.


The functions return matrices or vectors as is appropriate.


Function goodness gives the diagnostic statistics for species or sites. The alternative statistics are the cumulative proportion of inertia accounted for up to the axes, and the residual distance left unaccounted for.

Function inertcomp decomposes the inertia into partial, constrained and unconstrained components for each site or species. Instead of inertia, the function can give the total dispersion or distances from the centroid for each component.

Function spenvcor finds the so-called “species -- environment correlation” or (weighted) correlation of weighted average scores and linear combination scores. This is a bad measure of goodness of ordination, because it is sensitive to extreme scores (like correlations are), and very sensitive to overfitting or using too many constraints. Better models often have poorer correlations. Function ordispider can show the same graphically.

Function intersetcor finds the so-called “interset correlation” or (weighted) correlation of weighted averages scores and constraints. The defined contrasts are used for factor variables. This is a bad measure since it is a correlation. Further, it focuses on correlations between single contrasts and single axes instead of looking at the multivariate relationship. Fitted vectors (envfit) provide a better alternative. Biplot scores (see scores.cca) are a multivariate alternative for (weighted) correlation between linear combination scores and constraints. Function vif.cca gives the variance inflation factors for each constraint or contrast in factor constraints. In partial ordination, conditioning variables are analysed together with constraints. Variance inflation is a diagnostic tool to identify useless constraints. A common rule is that values over 10 indicate redundant constraints. If later constraints are complete linear combinations of conditions or previous constraints, they will be completely removed from the estimation, and no biplot scores or centroids are calculated for these aliased constraints. A note will be printed with default output if there are aliased constraints. Function alias will give the linear coefficients defining the aliased constraints, or only their names with argument names.only = TRUE.


Greenacre, M. J. (1984). Theory and applications of correspondence analysis. Academic Press, London.

Gross, J. (2003). Variance inflation factors. R News 3(1), 13--15.

See Also

cca, rda, capscale, vif.


Run this code
mod <- cca(dune ~ A1 + Management + Condition(Moisture), data=dune.env)
goodness(mod, addprevious = TRUE)
goodness(mod, addprevious = TRUE, summ = TRUE)
# Inertia components
inertcomp(mod, prop = TRUE)
inertcomp(mod, stat="d")
# vif.cca 
# Aliased constraints
mod <- cca(dune ~ ., dune.env)
with(dune.env, table(Management, Manure))
# The standard correlations (not recommended)

Run the code above in your browser using DataLab