Does canonical correlation analysis (P.G.N. Digby).

### Option

`PRINT` = string tokens |
Printed output from the analysis (`correlations` , `pcoeff` , `qcoeff` , `pscores` , `qscores` ); default `*` i.e. no output |
---|

### Parameters

`PVARIATES` = pointers |
Pointer to P-set of variates to be analysed |
---|---|

`QVARIATES` = pointers |
Pointer to Q-set of variates to be analysed |

`CORRELATIONS` = diagonal matrices |
Stores the canonical correlations from each analysis |

`PCOEFF` = matrices |
Stores the coefficients for the P-set of variates |

`QCOEFF` = matrices |
Stores the coefficients for the Q-set of variates |

`PSCORES` = matrices |
Stores the unit scores from the P-set of variates |

`QSCORES` = matrices |
Stores the unit scores from the Q-set of variates |

### Description

`CANCORRELATION`

does canonical correlation analysis; see, for example, Mardia, Kent & Bibby (1979) or Digby & Kempton (1987).

The data for the procedure are two pointers specified by the `PVARIATES`

and `QVARIATES`

parameters; these must point directly to two sets of variates. The variates may have missing values, or be restricted: any units with any values missing will be excluded from the analysis; any restrictions on the variates must be consistent (the rules here are exactly as used by the `FSSPM`

directive).

Printed output is controlled by the option `PRINT`

with settings: `correlations`

to print the canonical correlations (also expressed as percentages, and cumulative percentages, of their total); `pcoeff`

to print the canonical correlation coefficients for the P-set of variates; `qcoeff`

to print the canonical correlation coefficients for the Q-set of variates; `pscores`

to print the canonical correlation scores for the units calculated from the P-set of variates; `qscores`

to print the canonical correlation scores for the units calculated from the Q-set of variates.

Results from the analysis can be saved using the parameters `CORRELATIONS`

, `PCOEFF`

, `QCOEFF`

, `PSCORES`

and `QSCORES`

. The structures specified for these parameters need not be declared in advance.

Option: `PRINT`

.

Parameters: `PVARIATES`

, `QVARIATES`

, `CORRELATIONS`

, `PCOEFF`

, `QCOEFF`

, `PSCORES`

, `QSCORES`

.

### Method

The method used is as described in Digby & Kempton (1987). Spectral decompositions (*LRL*′) of the SSPMs for the P-set and Q-set are used to form the inverse square root matrices, *F* and *G* (as *L R*^{-½}) ). The singular value decomposition ( *U* *S* *V* ′ ) of ( *F* ′ *C* *G* )is then formed, where *C* is the matrix of sums of products between the two sets of variates. The diagonal matrix *S* contains the canonical correlations; the canonical correlation coefficients for the two sets of variates are ( *F* *U* ) and ( *G* *V* ). The scores for the units from the two sets of variates are formed by subtracting the variate means and applying the matrices of coefficients as loadings.

### References

Digby, P.G.N. & Kempton, R.A. (1987). *Multivariate Analysis of Ecological Communities*. Chapman & Hall, London.

Mardia, K.V., Kent, J.T. & Bibby, J.M. (1979). *Multivariate Analysis*. Academic Press, London.

### See also

Commands for: Multivariate and cluster analysis.

### Example

CAPTION 'CANCORRELATION example',\ 'Data from Table 3.7 of Digby & Kempton (1987).';\ STYLE=meta,plain TEXT Plot; !T('1d','3a','3d','4a','4d','7a','7d','8a','8d','9a','9d',\ '10a','10d','11/1a','11/1d','11/2a','11/2d','14a','14d','16a','16d',\ '17a','17d','18d') POINTER Treats; !P(N,Nstar,P,K,Lime) & Species; !P(Axis_1,Axis_2,Axis_3,Axis_4) VARIATE [NVALUES=Plot] Treats[],Species[] READ Treats[] 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 1 0 1 2 0 1 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 0 2 0 1 1 1 2 0 1 1 0 2 0 1 0 1 2 0 1 0 0 3 0 1 1 1 3 0 1 1 0 3 0 1 1 1 3 0 1 1 0 0 2 1 1 1 0 2 1 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 2 0 0 1 0 : READ Species[] 354 177 -173 85 211 -406 2 -170 299 -294 -11 -46 191 11 246 209 331 226 -262 28 -333 -145 -212 36 200 -149 -11 -6 136 -347 -7 -100 162 -302 29 -194 -416 59 -27 19 281 257 -130 -154 9 -28 166 182 333 228 -251 33 -386 111 86 -92 52 242 52 -349 -387 98 42 -50 36 252 72 -346 -391 -127 -170 196 -419 30 -137 118 -333 -143 -171 149 -254 -89 -121 12 102 -388 11 -140 135 -260 -68 -60 331 238 -245 38 : CALCULATE Species[] = Species[] / 100 PRINT Plot,Treats[],Species[]; FIELDWIDTH=7; DECIMALS=(0)6,(2)4 & 'Use CANCORRELATION, printing all results, saving SCORES only.' MATRIX [ROWS=Plot; COLUMNS=4] Specs_Sc,Treat_Sc CANCORRELATION [PRINT=correlations,pcoeff,qcoeff,pscores,qscores]\ Treats; Species; PSCORES=Treat_Sc; QSCORES=Specs_Sc PRINT Specs_Sc