Statistics::OrthogonalRotation Function

bool OrthogonalRotation(TMtx *X, TMtx *Y, TMtx *R, const double Gamma = 1.0, const bool Normalize = true, const double Tolerance = SQRTEPS, const int MaxIter = 200);

Orthogonal rotation of matrix.

#NameTypeDescription
1XTMtx *Defines original matrix (to be rotated).
2YTMtx *Stores rotated matrix (X*R, where R is calculated rotation matrix).
3RTMtx *Returns the rotation matrix, used for calculating Y=X*R.
4Gamma = 1.0const doubleDefines different types of Varimax rotation (see above).
5Normalize = trueconst boolIf true, X matrix is normalized (by rows) prior to rotation. After the rotation the result is then renormalized.
6Tolerance = SQRTEPSconst doubleConvergence tolerance in iteration algorithm.
7MaxIter = 200const intMaximum number of rotations. Together with Tolerance parameter it defines convergence criteria.

Returns: true, if number of rotation did not exceed maximum number of iterations for rotation.

Remarks:

Performs orthogonal rotation of X matrix. Based on the Gamma parameter value, the following rotations can be performed:

  • Gamma = 1 => Varimax rotation
  • Gamma <> 1 => Orthomax rotation
  • Gamma = X.Cols div 2 => Equimax rotation
  • Gamma = 0 => Quartimax rotation
See Also: Statistics::PCA
Declared in Dew::Stats::Units::Statistics · Dew.Stats/Units.Statistics.h · Cross-compiler