goodness.cca {vegan}R Documentation

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').


## S3 method for class 'cca':
goodness(object, display = c("species", "sites"), choices,
    model = c("CCA", "CA"), statistic = c("explained", "distance"),
    summarize = FALSE, ...)
inertcomp(object, display = c("species", "sites"),
    statistic = c("explained", "distance"), proportional = FALSE)
## S3 method for class 'cca':
alias(object, ...)


object A result object from cca, rda, capscale or decorana.
display Display "species" or "sites".
choices Axes shown. Default is to show all axes of the "model".
model Show constrained ("CCA") or unconstrained ("CA") results.
statistic Statistic used: "explained" gives the cumulative percentage accounted for, "distance" shows the residual distances. Distances are not available for sites in constrained or partial analyses.
summarize Show only the accumulated total.
proportional Give the inertia components as proportional for the corresponding total.
... Other parameters to the functions.


Function goodness gives the diagnostic statistics for species or sites. The alternative statistics are the cumulative proportion of inertia accounted for by the axes, and the residual distance left unaccounted for. The conditional (``partialled out'') constraints are always regarded as explained and included in the statistics.

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.


The functions return matrices or vectors as is appropriate.


It is a common practise to use goodness statistics to remove species from ordination plots, but this may not be a good idea, as the total inertia is not a meaningful concept in cca, in particular for rare species.

Function vif is defined as generic in package car (vif), but if you have not loaded that package you must specify the call as vif.cca. Variance inflation factor is useful diagnostic tool for detecting nearly collinear constraints, but these are not a problem with algorithm used in this package to fit a constrained ordination.


Jari Oksanen. The vif.cca relies heavily on the code by W. N. Venables. alias.cca is a simplified version of alias.lm.


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, decorana, vif.


mod <- cca(dune ~ A1 + Management + Condition(Moisture), data=dune.env)
goodness(mod, 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)

[Package vegan version 1.16-32 Index]