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.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | TMtx * | Defines original matrix (to be rotated). |
| 2 | Y | TMtx * | Stores rotated matrix (X*R, where R is calculated rotation matrix). |
| 3 | R | TMtx * | Returns the rotation matrix, used for calculating Y=X*R. |
| 4 | Gamma = 1.0 | const double | Defines different types of Varimax rotation (see above). |
| 5 | Normalize = true | const bool | If true, X matrix is normalized (by rows) prior to rotation. After the rotation the result is then renormalized. |
| 6 | Tolerance = SQRTEPS | const double | Convergence tolerance in iteration algorithm. |
| 7 | MaxIter = 200 | const int | Maximum 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