statsmodels.multivariate.factor_rotation.target_rotation(A, H, full_rank=False)[source]

Analytically performs orthogonal rotations towards a target matrix, i.e., we minimize:

\[\phi(L) =\frac{1}{2}\|AT-H\|^2.\]

where \(T\) is an orthogonal matrix. This problem is also known as an orthogonal Procrustes problem.

Under the assumption that \(A^*H\) has full rank, the analytical solution \(T\) is given by:

\[T = (A^*HH^*A)^{-\frac{1}{2}}A^*H,\]

see Green (1952). In other cases the solution is given by \(T = UV\), where \(U\) and \(V\) result from the singular value decomposition of \(A^*H\):

\[A^*H = U\Sigma V,\]

see Schonemann (1966).

  • A (numpy matrix (default None)) – non rotated factors

  • H (numpy matrix) – target matrix

  • full_rank (boolean (default FAlse)) – if set to true full rank is assumed


Return type

The matrix \(T\).


[1] Green (1952, Psychometrika) - The orthogonal approximation of an oblique structure in factor analysis

[2] Schonemann (1966) - A generalized solution of the orthogonal procrustes problem

[3] Gower, Dijksterhuis (2004) - Procustes problems