Introduction
Canonical correlation analysis (CCA) summarizes association between two sets of variables by forming paired linear combinations. Its output can look deceptively simple: a list of canonical correlations, weights, loadings, and test results. The difficulty is that these quantities answer different questions. Confusing them can turn a valid numerical result into an incorrect scientific interpretation.
This tutorial focuses on five recurring errors: treating weights as variable–variate correlations, assigning substantive meaning to arbitrary signs, overinterpreting repeated roots, reading significance tests as stronger evidence than they provide, and calculating redundancy incorrectly. The goal is not merely to recognize a mistake, but to replace it with a precise reading of the output.
Weights, Loadings, and Cross-Loadings Are Not Interchangeable
Weights specify how variables are combined to form a canonical variate. A weight is not the correlation of its variable with that variate. Structure loadings directly describe those correlations, while cross-loadings describe correlations with the paired variate from the other set. These summaries can tell different stories, especially when variables within a set are correlated.
Weights also depend on the scale and coordinate system used to represent the variables. Standardized weights remove units but do not become structure loadings: they remain coefficients in a linear combination. A large coefficient does not, by itself, establish that the corresponding variable has the strongest marginal association with the canonical variate. For assessing which original variables are associated with a variate, inspect the loadings alongside the weights.
Worked Example: A Large Weight Is Not a Large Loading
Suppose a reported first canonical variate for a set of three standardized variables has weights \(a_1=(0.72,0.10,-0.08)^\mathsf{T}\), while its structure loadings are \((0.54,0.81,0.05)\). What can be concluded?
The first variable has the largest listed weight, \(0.72\), so it contributes strongly to the stated linear combination in this coordinate representation. But its loading is \(0.54\), whereas the second variable's loading is \(0.81\). Thus the second variable has the stronger correlation with the canonical variate in this output. The two statements are not contradictory: weights describe the construction of the variate, and loadings describe correlations with it.
It would be incorrect to say “the first variable is most strongly related to the canonical variate” based only on the weight. The appropriate reading is to report the coefficient pattern and the loading pattern separately, then interpret them in light of the variables' scales and dependence.
For a canonical pair with variates standardized to variance 1, the cross-loading of \(X_k\) on \(V_j\) is related to its structure loading on \(U_j\) by \(\operatorname{Corr}(X_k,V_j)=\rho_j\operatorname{Corr}(X_k,U_j)\); the corresponding relation holds for variables in \(Y\). This makes cross-loadings useful for describing how strongly variables in one set relate to the canonical variate in the other set. But they are still a distinct summary, not the weights used to construct that other variate.
Signs Are a Convention, Not a Substantive Finding
Canonical variates have an unavoidable sign indeterminacy. If both variates in a pair are multiplied by \(-1\), the pair represents the same association: both sets of loadings change signs, while the canonical correlation remains positive and unchanged. If only one variate is reversed, the signed correlation changes sign, but the magnitude of the association does not.
To verify this, write \(U_j=a_j^\mathsf{T}X\) and \(V_j=b_j^\mathsf{T}Y\). Under the joint reversal, the new variates are \(-U_j\) and \(-V_j\). Their covariance is \(\operatorname{Cov}(-U_j,-V_j)=\operatorname{Cov}(U_j,V_j)\); their variances are unchanged. Therefore their correlation is unchanged. For any \(X_k\), \(\operatorname{Corr}(X_k,-U_j)=-\operatorname{Corr}(X_k,U_j)\), and likewise for variables in \(Y\). Under a reversal of \(U_j\) alone, the covariance with \(V_j\) changes sign while both variances remain fixed, so the correlation changes sign. Since canonical correlations are conventionally reported as nonnegative magnitudes, either orientation can be chosen for the pair. \(\square\)
Worked Example: Reading Opposite Sign Patterns
Suppose one software output reports loadings \(0.80\) and \(0.60\) for two \(X\)-variables on \(U_1\), and \(0.75\) for a \(Y\)-variable on \(V_1\). Another output reports \(-0.80\), \(-0.60\), and \(-0.75\), respectively, with the same canonical correlation.
The second output has reversed both variates. It describes the same canonical pair: the relative signs within each set are unchanged, and the strength of the paired association is unchanged. It is not evidence that the association reversed in a substantive sense.
By contrast, if only the \(Y\)-variate had been reversed, the signed correlation would switch sign and the \(Y\)-loading would reverse, while the \(X\)-loadings would not. The magnitude of the canonical correlation would still be identical. Interpret relative loading patterns and the declared sign convention; do not interpret an isolated plus or minus sign as a direction of causal effect.
Repeated Roots Identify Directions Only Up to a Subspace
A repeated canonical correlation creates another interpretation trap. If two or more roots are equal, individual canonical directions within their shared space need not be uniquely determined. Small numerical differences in software output, or a different valid choice of basis, can produce different-looking weights and loadings even when the underlying repeated-root subspace is the same.
A simple example shows why. Let \(X=(X_1,X_2)^\mathsf{T}\) and \(Y=(Y_1,Y_2)^\mathsf{T}\) each have identity covariance matrix, and let their cross-covariance matrix be \(0.6I_2\). The joint covariance matrix is valid: its eigenvalues are \(1.6\) and \(0.4\), each with multiplicity two, so it is positive definite. For the coordinate directions, the paired canonical correlations are both \(0.6\). But any common orthogonal rotation of the two coordinates gives another valid pair of canonical directions with the same two correlations.
Indeed, for any orthogonal matrix \(Q\), define \(U=Q^\mathsf{T}X\) and \(V=Q^\mathsf{T}Y\). Both within-set covariance matrices remain \(I_2\), and \(\operatorname{Cov}(U,V)=Q^\mathsf{T}(0.6I_2)Q=0.6I_2\). Thus the two rotated pairs remain uncorrelated across indices and each paired correlation is \(0.6\). There is no unique pair of axes singled out by the data in this example. The repeated-root subspace is the stable object to describe; individual directions within it require an additional convention or external scientific rationale. \(\square\)
Worked Example: Avoiding an Overinterpretation of Equal Roots
Suppose a two-dimensional CCA output reports \(\hat\rho_1=0.60\) and \(\hat\rho_2=0.60\), and one printed solution assigns nearly all the first variate's weight to \(X_1\), while another assigns it to a mixture of \(X_1\) and \(X_2\).
Because the roots are equal, these reported axes can be different bases for the same two-dimensional canonical subspace. It is not justified to conclude that \(X_1\) uniquely defines the first association and \(X_2\) uniquely defines the second. Report the repeated root and interpret the joint subspace, or use a clearly stated rotation or scientific criterion if separate axes are essential.
Significance Tests Answer Specific Null Questions
For sample canonical correlations \(\hat\rho_1,\ldots,\hat\rho_m\), the global null concerns whether all population canonical correlations are zero. A sequential test after the first \(s-1\) roots concerns the remaining roots. The usual Wilks statistic for the latter null is \(\Lambda_s=\prod_{j=s}^{m}(1-\hat\rho_j^2)\). The global test is the special case \(s=1\). A small p-value for the global test is evidence against the claim that every canonical correlation is zero; it does not show that every root is nonzero.
Sequential tests can help assess how many dimensions have evidence of association, but their conclusions depend on the specified testing procedure, its assumptions, and the chosen error rate. In particular, a nonsignificant test is not proof that the remaining population roots are exactly zero. Nor does statistical significance alone show that an association is large enough to matter scientifically or that either set causes the other.
Worked Example: Global Significance Does Not Mean Every Root Is Significant
Suppose a CCA with three roots reports \(\hat\rho_1=0.62\), \(\hat\rho_2=0.31\), and \(\hat\rho_3=0.08\). For illustration, suppose the calibrated sequential test p-values are \(0.003\) for the global null, \(0.041\) for the null that roots 2 and 3 are both zero, and \(0.28\) for the null that root 3 is zero. At a 5% testing level, the first two nulls are rejected and the last is not.
The defensible conclusion is that the global test finds evidence against no canonical association, and the stated sequential procedure also finds evidence remaining after the first root. It does not find evidence for the third root at this level. It would be wrong to use only the global p-value of \(0.003\) to claim all three roots are significant. These illustrative p-values are given as test output; they cannot be calculated from the three root estimates alone without the sample size, dimensions, and test calibration.
Redundancy Is Not the Square of a Canonical Correlation
A canonical correlation measures association between a paired pair of variates. It does not by itself measure how much of the original variables in one set is represented by the other set. The redundancy index combines the canonical correlation with squared structure loadings, so it reflects both the strength of the paired association and how well a canonical variate represents its own variable set.
The factor \(\rho_j^2\) matters because \(U_j\) and \(V_j\) are correlated, not identical. If a canonical variate represents its own set well but its paired correlation is small, it contributes little redundancy across sets. Conversely, a high canonical correlation does not guarantee high redundancy if the variate has weak loadings on most of the original variables.
Worked Example: Calculating Redundancy Without Rounding Early
Suppose \(p=3\). For the first canonical variate, the sum of squared structure loadings in \(X\) is \(1.04\); for the second, it is \(0.86\). The corresponding canonical correlations are \(0.70\) and \(0.40\). Calculate the redundancy in \(X\) attributable to these two variates.
The variance extracted for the first variate is \(A_{X1}=1.04/3\). Its redundancy contribution is \[ (1.04/3)(0.70^2)=(1.04/3)(0.49)=0.169866666\ldots . \]
For the second variate, \(A_{X2}=0.86/3\), and its contribution is \[ (0.86/3)(0.40^2)=(0.86/3)(0.16)=0.045866666\ldots . \]
Using the unrounded contributions, the total is \[ R_{X\mid Y}=(1.04/3)(0.49)+(0.86/3)(0.16)=0.215733333\ldots . \] Thus redundancy is approximately \(0.2157\), or about \(21.6\%\). It is not \(0.70^2+0.40^2\): that sum ignores how well each canonical variate represents the original \(X\)-variables. Keeping full precision until the final rounding also avoids a small discrepancy in the reported total.
Common Mistakes and a Better Reading Routine
Most errors arise from treating every CCA output column as if it had the same meaning. A careful interpretation keeps the constructions, associations, and tests separate.
- Using weights as variable–variate correlations. Weights define linear combinations; use structure loadings to describe correlations with those combinations.
- Assigning meaning to a sign in isolation. A simultaneous reversal of a canonical pair changes loading signs but not the association. State the sign convention and focus on relative patterns.
- Giving unique labels to axes with repeated roots. Equal roots permit rotations within the repeated-root space. Interpret the subspace unless an additional convention identifies axes.
- Taking a significant global test to mean every root matters. The global test addresses the joint null of all roots being zero; sequential tests address specified remaining-root nulls.
- Calling redundancy the squared canonical correlation. Redundancy also weights each squared correlation by the average squared structure loading for the set being described.
- Equating statistical evidence with practical importance or causation. CCA summarizes linear association between sets; the tests do not establish causal direction or practical value by themselves.
Ask whether the output is a weight, structure loading, cross-loading, root, test statistic, or redundancy index.
Remember that signs depend on orientation, and repeated roots may leave individual directions unidentified.
Distinguish the global null from sequential nulls for remaining roots, and report the testing procedure and level.
Average squared structure loadings within the set, multiply by the squared canonical correlation, and sum without premature rounding.
Check Your Understanding
For each item, state the interpretation that is justified and identify the tempting overstatement to avoid.
- A variable has a small canonical weight but a large structure loading. What does each number describe?
- Both sets of loadings reverse signs in a second output, while the canonical correlation is unchanged. What transformation could explain this?
- Two consecutive canonical correlations are equal. Why might their individual weight vectors differ across valid outputs?
- A global test is significant, but the final sequential test is not. What does the global result establish, and what does it not establish?
- For one canonical variate, the mean squared structure loading for \(X\) is \(0.50\), and its canonical correlation is \(0.40\). What is its contribution to redundancy in \(X\), and why is it not \(0.40^2\)?