statsmodels.multivariate.factor_rotation.target_rotation#

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).

Parameters:
Andarray

Non-rotated factors.

Hndarray

Target matrix.

full_rankbool, optional

If set to True full rank is assumed. Default is False.

Returns:
ndarray

The rotation matrix \(T\).

References

[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) - Procrustes problems