1. Home
  2. CCA procedure

CCA procedure

Performs canonical correspondence analysis (A.I. Glaser).


PRINT = string tokens Controls printed output (variance, loadings, roots, evalues, evectors, speciesscores, sitescores, fitsitescores, correlations, fitcorrelations); default vari, root
NROOTS = scalar Number of eigenvalues and eigenvectors to include in output; default * takes all the non-zero eigenvalues
NORMALIZE = string tokens Whether to normalize the Y, X and/or Z variates to have unit sums-of-squares before the analysis (x, y, z); default x, z
SCALING = string tokens Whether to scale for species or site score (species, site); default spec
TOLERANCE = scalar Tolerance for detecting non-zero eigenvalues; default 10-5


Y = pointers Each pointer defines a set of response variates to be modelled
X = pointers Explanatory variates or factors to use for each pointer of y-variates
Z = pointers Conditioning variates or factors to remove (“partial out”) before the analysis
LRV = LRVs LRV structure from each analysis, storing the eigenvectors, eigenvalues and total variance
SPECIESSCORES = matrices Save the “species scores” from each analysis
SITESCORES = matrices Save the “site scores” from each analysis
FITSITESCORES = matrices Save the fitted “site scores” from each analysis
CORRELATIONS = matrices Saves the correlations between the site scores and the x-variates
FITCORRELATIONS = matrices Saves the correlations between the fitted site scores and the x-variates
SAVE = pointers Save structure which provides information for use in CRBIPLOT and CRTRIPLOT


CCA performs canonical correspondence analysis and partial canonical correspondence analysis.

Canonical correspondence analysis is the canonical form of correspondence analysis. It is similar to redundancy analysis (see RDA). However, in CCA, we apply weighted multiple regression to a transformed data matrix with the fitted values subjected to correspondence analysis.

The Y parameter specifies the response data as a pointer to a set of y-variates. Each variate contains observations of numbers of a particular species at a set of sites (the same sites and in the same order for each species). The explanatory variables, which may be either variates or factors, are specified in a pointer by the X parameter. Similarly, the Z parameter can be used to specify conditioning variables, which again may be either variates or factors. When a pointer of z-variables is supplied, CCA performs a partial canonical correspondence analysis, in which the effects of the z-variables are removed prior to the canonical correspondence analysis. This can be useful when the effects of the elements of Z on Y are well known, or if we wish to isolate the effect of an single explanatory variable (in which case we would place all but one of the explanatory variables in Z). When all elements of a variable are equal to zero, CCA removes the variable.

The PRINT option controls printed output, with settings:

    roots the eigenvalues of the fitted values;
    evalues synonym of roots;
    loadings the eigenvectors associated with each eigenvalue, also known as the “species scores”;
    evectors synonym of loadings;
    speciesscores the “species scores” from the analysis (synonym of loadings and evectors);
    variance the fraction of the variance of the y-variates associated with each eigenvalue;
    sitescores the “site scores” of the y-variates (i.e. the ordination of the units in the y-variate space);
    fitsitescores the fitted “site scores” of the fitted values of the y-variates (i.e. the ordination of the units in the y-variate space);
    correlations the correlation between the site scores and the x-variables;
    fitcorrelations the correlation between the fitted site scores and the x-variables.

By default PRINT=roots,variance. The LRV, SPECIESSCORES, SITESCORES, FITSITESCORES, CORRELATIONS and FITCORRELATIONS parameters allow this information to be saved.

The NROOTS option specifies the number of eigenvalues and eigenvectors to include in the output. By default all the non-zero eigenvalues are included. The NORMALIZE option controls whether to normalize the Y variates, or X or Z variables to have unit sums-of-squares before the analysis. The default is to normalize the x and z-variables but not the y-variates. (Note: normalization of only the x’s and z’s does not affect the variances accounted for in the y-variates.)

The SCALING option controls which scores are scaled by CCA: either the species scores or the site scores. The scaling is done by multiplying them by their corresponding eigenvalues. Choosing ‘site’ is equivalent to Scaling type 1 in Legendre & Legendre (1998), whilst ‘species’ is equivalent to their Scaling type 2.

The TOLERANCE option specifies a threshold for the detection of non-zero eigenvalues (default 10-5). An eigenvalue is taken to be non-zero if is it greater than TOLERANCE.

The SAVE parameter allows you to save a pointer containing full details of the analysis. This can then be used to generate plots using the CRBIPLOT or CRTRIPLOT procedures. The most recent save structure is kept automatically inside Genstat to use as a default for the SAVE options of CRBIPLOT and CRTRIPLOT. So, you need save the pointer explicitly only if you want to display output from more than one analysis at a time.




CCA and partial CCA are explained in Sections 11.2 and 11.3 of Legendre & Legendre (1998). In Genstat the multiple regression is carried out using the QR decomposition (see QRD).

Action with RESTRICT

If any of the variate or factors in the Y, X or Z pointers are restricted, only the defined subset of the units will be used in the analysis.


Legendre, P. & Legendre, L. (1998). Numerical Ecology, Second English Edition. Elsevier, Amsterdam.

See also


Commands for: Multivariate and cluster analysis.


CAPTION 'CCA example','Example from Legendre & Legendre (1998)';\
" The data for this example come from Table 11.3 on page 590 of Legendre &
  Legendre. The data simulate fish observations at 10 sites from a beach at
  different water depths and substrates."
POINTER [VALUES=Depth_m,Coral,Sand,Other] X
VARIATE [NVALUES=10] Species[1...9],X[]; VALUES=\
        !(1, 0, 0, 11, 11, 9, 9, 7, 7, 5),\
        !(0, 0, 1, 4, 5, 6, 7, 8, 9, 10),\
        !(0, 0, 0, 0, 17, 0, 13, 0, 10, 0),\
        !(0, 0, 0, 0, 7, 0, 10, 0, 13, 0),\
        !(0, 0, 0, 8, 0, 6, 0, 4, 0, 2),\
        !(0, 0, 0, 1, 0, 2, 0, 3, 0, 4),\
        !(2, 5, 0, 6, 6, 10, 4, 6, 6, 0),\
        !(4, 6, 2, 2, 6, 1, 5, 6, 2, 1),\
        !(4, 1, 3, 0, 2, 4, 4, 4, 0, 3),\
        !(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),\
        !(0, 0, 0, 0, 1, 0, 1, 0, 1, 0),\
        !(1, 1, 1, 0, 0, 0, 0, 0, 0, 0),\
        !(0, 0, 0, 1, 0, 1, 0, 1, 0, 1)
CCA     Species; X
Updated on June 20, 2019

Was this article helpful?