FAQ/cancorr - CBU statistics Wiki
location: FAQ / cancorr

Canonical Correlation

Canonical correlation is a multivariate correlation between two sets of variables e.g. two sets of questionnaire items. There is qualified support for using binary variables with one replierhere saying he has seen binary variables used in Canonical Correlation quite often.

This cannot be implemented using the SPSS menu system but a macro is available in a file called Canonical correlation.sps located in a folder of form C:\Program Files(x86)\IBM\SPSS\Statistics\19\Samples\English which can be run from a SPSS syntax window. A worked example running this SPSS macro is given here.

The output from the SPSS macro includes the percentage of variance explained in the variables in Set 2 by each canonical variate in Set 1 (and vice-versa) and is equal to the sum of the squares of each outputted column of cross-loadings for Set 1 divided by the number of variables in Set 1 (equal to 3 in the example). So, for instance in the example data, the percentage of variance in Set 2 due to the first canonical variate in Set 1 = [ (-0.233)2 + (-0.291)2 + (-0.257)2 ] / 3 = 0.068 since the first column of 'Cross Loadings for Set-1' equals -0.233, -0.291, -0.257.

Canonical Correlation can also be run using SPSS syntax with the MANOVA command (note: MANOVA cannot be run using the SPSS menu). Tabachnick and Fidell (2007, pages 567-606) in a chapter on Canonical Correlation mention both approaches together with SAS CANCORR but recommend the SPSS macro as its output is easier to understand than that produced by MANOVA.

The CCA package may also be used to fit canonical variates using R. This link also includes a suggestion on how to report the results from a canonical variate analysis.


Clark, M. J. (2006). Canonical correlation with SPSS. Benchmarks Online: RSS Matters, 01/2006. (Available here)

Tabachnick BG and Fidell LS (2007) Using multivariate statistics. Fifth Edition. Pearson International:Boston.

None: FAQ/cancorr (last edited 2019-02-06 10:16:36 by PeterWatson)