Tutorials › Multivariate Statistics (Graduate) › Worked Orthogonal Rotation of a Loading Matrix

Factor Rotation and Assessment · Tutorial 560 of 975

Worked Orthogonal Rotation of a Loading Matrix

Rotate a loading matrix by a specified orthogonal matrix, check the calculations, and assess how the resulting loading pattern differs from the original.

Advanced 9 min read

What You'll Learn

  • Apply a specified orthogonal rotation to a loading matrix using a consistent multiplication convention.
  • Check that a proposed rotation matrix is orthogonal.
  • Calculate communalities before and after rotation.
  • Evaluate and compare Varimax criteria for two loading matrices.
  • Distinguish preservation of communalities from preservation of individual loadings.
  • Recognize that an improved criterion at one angle does not prove a global optimum.

Why Work Through a Rotation Numerically?

An orthogonal rotation changes the coordinate axes used to describe common variation in a factor model. The loadings can become easier to interpret even though the model’s common covariance representation is unchanged. To assess a rotation, it is useful to do more than name the criterion: calculate the rotated loadings, check the matrix arithmetic, and verify what the rotation preserves.

This tutorial works with a particular loading matrix and a specified orthogonal rotation. The numerical example uses Varimax as the criterion for comparing loading patterns. It illustrates the effect of this rotation; it does not claim that the selected rotation is the global Varimax optimum.

Definition: Let \(\Lambda\) be a \(p\times m\) loading matrix and let \(Q\) be an \(m\times m\) orthogonal matrix, so \(Q'Q=QQ'=I_m\). The orthogonally rotated loading matrix is \(\Lambda^*=\Lambda Q\). If \(\lambda_i\) is row \(i\) of \(\Lambda\), its communality is \(h_i^2=\sum_{j=1}^m \lambda_{ij}^2\), the squared length of that row.

The multiplication convention matters: loadings are in the rows, so this tutorial rotates them by right multiplication, \(\Lambda Q\). For two factors, a convenient rotation matrix is

$$ Q(\theta)= \begin{pmatrix} \cos\theta&-\sin\theta\\ \sin\theta&\cos\theta \end{pmatrix}. $$

Its columns have unit length and are perpendicular, so \(Q(\theta)'Q(\theta)=I_2\). The angle’s sign determines the rotation direction under this convention. A computation using \(Q'\) instead of \(Q\) rotates in the opposite direction.

Worked Example: Rotate a Four-Variable Loading Matrix

Consider the loading matrix

$$ A= \begin{pmatrix} 0.70&-0.40\\ 0.68&-0.26\\ 0.56&0.58\\ 0.58&0.44 \end{pmatrix}, \qquad Q= \begin{pmatrix} 0.8&0.6\\ -0.6&0.8 \end{pmatrix}. $$

First check orthogonality. Each column of \(Q\) has squared length \(0.8^2+(-0.6)^2=0.64+0.36=1\), and their inner product is \(0.8(0.6)+(-0.6)(0.8)=0.48-0.48=0\). Thus \(Q'Q=I_2\). This is \(Q(\theta)\) with \(\cos\theta=0.8\) and \(\sin\theta=-0.6\).

For a row \((a,b)\), right multiplication gives \((a,b)Q=(0.8a-0.6b,\ 0.6a+0.8b)\). Applying that operation to every row gives

$$ AQ= \begin{pmatrix} 0.8(0.70)-0.6(-0.40)&0.6(0.70)+0.8(-0.40)\\ 0.8(0.68)-0.6(-0.26)&0.6(0.68)+0.8(-0.26)\\ 0.8(0.56)-0.6(0.58)&0.6(0.56)+0.8(0.58)\\ 0.8(0.58)-0.6(0.44)&0.6(0.58)+0.8(0.44) \end{pmatrix} = \begin{pmatrix} 0.80&0.10\\ 0.70&0.20\\ 0.10&0.80\\ 0.20&0.70 \end{pmatrix} =B. $$

For example, the first row becomes \((0.56+0.24,\ 0.42-0.32)=(0.80,0.10)\). In the second row the result is \((0.544+0.156,\ 0.408-0.208)=(0.70,0.20)\). The other two rows are computed by the same row-by-matrix multiplication.

The loading pattern has changed substantially. In \(A\), several rows have moderate loadings on both factors, and the first two rows include negative second-factor loadings. In \(B\), each row has one loading of \(0.7\) or \(0.8\) and one of \(0.1\) or \(0.2\). This is a more concentrated pattern of loadings in this example.

What Orthogonal Rotation Preserves

A useful check is to calculate the row lengths on both sides. In \(A\), the four communalities are

$$ \begin{aligned} h_1^2&=0.70^2+(-0.40)^2=0.49+0.16=0.65,\\ h_2^2&=0.68^2+(-0.26)^2=0.4624+0.0676=0.53,\\ h_3^2&=0.56^2+0.58^2=0.3136+0.3364=0.65,\\ h_4^2&=0.58^2+0.44^2=0.3364+0.1936=0.53. \end{aligned} $$

For \(B\), they are \(0.80^2+0.10^2=0.65\), \(0.70^2+0.20^2=0.53\), \(0.10^2+0.80^2=0.65\), and \(0.20^2+0.70^2=0.53\). Each matches its corresponding value for \(A\).

Theorem: If \(Q\) is orthogonal and \(\Lambda^*=\Lambda Q\), then every variable has the same communality before and after rotation. In particular, \(\sum_{j=1}^m(\lambda^*_{ij})^2=\sum_{j=1}^m\lambda_{ij}^2\) for each row \(i\).

Proof. The rotated row \(i\) is \(\lambda_iQ\), where \(\lambda_i\) is a row vector. Its squared length is

$$ (\lambda_iQ)(\lambda_iQ)'=\lambda_iQQ'\lambda_i'=\lambda_iI_m\lambda_i'=\lambda_i\lambda_i'. $$

The first equality is the definition of squared length, and the second uses \(QQ'=I_m\), which follows from orthogonality. The last expression is the original row’s squared length. This proves the result for every row. \(\square\)

For the factor model with orthogonal factors, the common covariance component is \(\Lambda\Lambda'\). It is also preserved, since \((\Lambda Q)(\Lambda Q)'=\Lambda QQ'\Lambda'=\Lambda\Lambda'\). Thus rotation changes the coordinates used to express the loadings; it does not change the common covariance represented by those loadings.

Compare the Varimax Criterion

For a \(p\times m\) loading matrix \(L=(l_{ij})\), the Varimax criterion is the sum across factors of the variances of the squared loadings within each column:

$$ V(L)=\sum_{j=1}^{m} \left\{ \frac{1}{p}\sum_{i=1}^{p}l_{ij}^{4} - \left(\frac{1}{p}\sum_{i=1}^{p}l_{ij}^{2}\right)^2 \right\}. $$

A larger value indicates greater dispersion among the squared loadings within columns under this criterion. The squares mean that changing the sign of a loading does not affect this calculation. We now calculate \(V\) for both matrices in the example, taking care to square each squared loading when finding the fourth-power sum.

Worked Example: Calculate Varimax Before and After Rotation

For \(B\), the squared loadings in its first column are \(0.64, 0.49, 0.01, 0.04\). Their sum is \(1.18\), and the sum of their squares—that is, the sum of the fourth powers of the loadings—is

\(0.64^2+0.49^2+0.01^2+0.04^2=0.4096+0.2401+0.0001+0.0016=0.6514.\)

The first-column contribution to \(V(B)\) is therefore

\(0.6514/4-(1.18/4)^2=0.16285-0.295^2=0.16285-0.087025=0.075825.\)

The second column has the same set of squared loadings in a different order, so its contribution is also \(0.075825\). Thus \(V(B)=0.075825+0.075825=0.15165\).

For \(A\), the squared loadings in column one are \(0.49, 0.4624, 0.3136, 0.3364\). Their sum is \(1.6024\), and their squared sum is

\(0.49^2+0.4624^2+0.3136^2+0.3364^2=0.2401+0.21381376+0.09834496+0.11316496=0.66542368.\)

That column contributes \(0.66542368/4-(1.6024/4)^2=0.16635592-0.4006^2=0.16635592-0.16048036=0.00587556\).

Column two of \(A\) has squared loadings \(0.16, 0.0676, 0.3364, 0.1936\). Their sum is \(0.7576\), and their squared sum is

\(0.16^2+0.0676^2+0.3364^2+0.1936^2=0.0256+0.00456976+0.11316496+0.03748096=0.18081568.\)

Its contribution is \(0.18081568/4-(0.7576/4)^2=0.04520392-0.1894^2=0.04520392-0.03587236=0.00933156\). Therefore \(V(A)=0.00587556+0.00933156=0.01520712\). The specified rotation increases the criterion from \(0.01520712\) to \(0.15165\) for these matrices.

This numerical comparison supports the description of \(B\) as having a more concentrated loading pattern under Varimax. It does not show that \(B\) maximizes Varimax over all possible rotations: that claim would require evaluating or optimizing the criterion over the full set of orthogonal matrices. A specified rotation can be assessed by calculating its result and criterion, but a single comparison is not an optimization proof.

Worked Example: A Forty-Five-Degree Rotation

Consider a second loading matrix and a \(45\)-degree rotation:

$$ C= \begin{pmatrix} 0.8&0\\ 0&0.6\\ 0.6&0.8 \end{pmatrix}, \qquad Q(45^\circ)= \begin{pmatrix} 1/\sqrt{2}&-1/\sqrt{2}\\ 1/\sqrt{2}&1/\sqrt{2} \end{pmatrix}. $$

Since \(1/\sqrt{2}\) is approximately \(0.707107\), the first row \((0.8,0)\) becomes approximately \((0.565685,-0.565685)\). The second row becomes \((0.424264,0.424264)\), and the third becomes \((0.989949,0.141421)\). Hence

$$ CQ(45^\circ)\approx \begin{pmatrix} 0.565685&-0.565685\\ 0.424264&0.424264\\ 0.989949&0.141421 \end{pmatrix}. $$

The original communalities are \(0.8^2+0^2=0.64\), \(0^2+0.6^2=0.36\), and \(0.6^2+0.8^2=1\). After rotation, the first row has squared length approximately \(0.32+0.32=0.64\); the second, \(0.18+0.18=0.36\); and the third, \(0.98+0.02=1\). Rounding accounts for any tiny discrepancy in the displayed decimal values. The individual loadings change, while each row’s squared length remains the same.

Common Mistakes and a Practical Check

  • Using the wrong multiplication convention. With loadings stored as rows, the rotation is \(\Lambda Q\), not \(Q\Lambda\). Check the dimensions: a \(p\times m\) loading matrix can be multiplied on the right by an \(m\times m\) rotation matrix.
  • Using the wrong rotation direction. Replacing \(Q\) by \(Q'\) gives the inverse rotation. Verify the chosen matrix and multiply a row explicitly before proceeding.
  • Confusing communalities with individual loadings. The theorem preserves each row’s squared length, not the values or signs of its individual entries.
  • Miscomputing the fourth-power sum. In the Varimax calculation, square each squared loading. For example, a loading of \(0.8\) contributes \(0.8^4=0.4096\), not \(2(0.8^4)\) for a single entry.
  • Calling a candidate rotation optimal. A larger criterion than the starting matrix establishes an improvement for that comparison, not a global maximum over all orthogonal rotations.
1
Check the dimensions and convention.
Confirm that the loading matrix is multiplied on the right and that the proposed \(Q\) is square of the appropriate size.
2
Verify orthogonality.
Check \(Q'Q=I\), either by matrix multiplication or by checking that its columns are orthonormal.
3
Calculate the rotated loadings.
Show the row-by-row multiplication, retaining enough digits to check the result.
4
Check preservation and compare the pattern.
Compare row squared lengths before and after, then calculate the specified criterion if a criterion comparison is required.
Key takeaway: An orthogonal rotation redistributes loadings across factors while preserving every variable’s communality and the common covariance representation. The rotated pattern and the value of a rotation criterion must be calculated from the actual rotated matrix; neither should be inferred from the rotation angle alone.

Check Your Understanding

Use the definitions and calculations above to answer these questions.

  1. For a loading matrix with three factors, what dimensions must an orthogonal rotation matrix have, and on which side is it multiplied under this tutorial’s convention?
  2. Explain why an orthogonal rotation preserves each row’s squared length. Which identity for \(Q\) is used in the proof?
  3. In the Varimax calculation for \(B\), why is the first-column fourth-power sum \(0.6514\), rather than \(1.3028\)?
  4. What does it establish if a rotated matrix has a larger Varimax criterion than the original matrix? What does it not establish?
  5. Suppose a rotated row has loadings \((0.6,0.8)\). What is its communality, and why must the corresponding row before an orthogonal rotation have the same communality?
Clinical Biostats