nag_mv_promax (g03bdc) calculates a ProMax rotation, given information following an orthogonal rotation.
Let
and
denote
by
matrices each representing a set of
points in an
-dimensional space. The
matrix is a matrix of loadings as returned by
nag_mv_orthomax (g03bac), that is following an orthogonal rotation of a loadings matrix
. The target matrix
is calculated as a power transformation of
that preserves the sign of the loadings. Let
and
denote the
th element of matrices
and
. Given a value greater than one for the exponent
:
for
- ;
- ;
-
The above power transformation tends to increase the difference between high and low values of loadings and is intended to increase the interpretability of a solution.
In the second step a solution of:
is found for
in the least squares sense by use of singular value decomposition of the orthogonal loadings
. The ProMax rotation matrix
is then given by
where
is the rotation matrix from an orthogonal transformation, and
is a matrix with the square root of diagonal elements of
on its diagonal and zeros elsewhere.
The ProMax factor pattern matrix
is given by
the inter-factor correlations
are given by
where
; and the factor structure
is given by
None.
- 1:
stand – Nag_RotationLoadingInput
-
On entry: indicates how loadings are normalized.
- Rows of are (Kaiser) normalized by the communalities of the loadings.
- Rows are not normalized.
Constraint:
or .
- 2:
n – IntegerInput
-
On entry: the number of points.
Constraint:
.
- 3:
m – IntegerInput
-
On entry: , the number of dimensions.
Constraint:
.
- 4:
x[] – const doubleInput
-
Note: the th element of the matrix is stored in .
On entry: the loadings matrix following an orthogonal rotation, .
- 5:
pdx – IntegerInput
-
On entry: the stride separating matrix column elements in the array
x.
Constraint:
.
- 6:
ro[] – const doubleInput
-
Note: the th element of the matrix is stored in .
On entry: the orthogonal rotation matrix, .
- 7:
pdro – IntegerInput
-
On entry: the stride separating matrix column elements in the array
ro.
Constraint:
.
- 8:
power – doubleInput
-
On entry: , the value of exponent.
Constraint:
.
- 9:
fp[] – doubleOutput
-
Note: the th element of the matrix is stored in .
On exit: the factor pattern matrix, .
- 10:
pdfp – IntegerInput
-
On entry: the stride separating matrix column elements in the array
fp.
Constraint:
.
- 11:
r[] – doubleOutput
-
Note: the th element of the matrix is stored in .
On exit: the ProMax rotation matrix, .
- 12:
pdr – IntegerInput
-
On entry: the stride separating matrix column elements in the array
r.
Constraint:
.
- 13:
phi[] – doubleOutput
-
Note: the th element of the matrix is stored in .
On exit: the matrix of inter-factor correlations, .
- 14:
pdphi – IntegerInput
-
On entry: the stride separating matrix column elements in the array
phi.
Constraint:
.
- 15:
fs[] – doubleOutput
-
Note: the th element of the matrix is stored in .
On exit: the factor structure matrix, .
- 16:
pdfs – IntegerInput
-
On entry: the stride separating matrix column elements in the array
fs.
Constraint:
.
- 17:
fail – NagError *Input/Output
-
The NAG error argument (see
Section 3.6 in the Essential Introduction).
- NE_ALLOC_FAIL
Dynamic memory allocation failed.
- NE_BAD_PARAM
On entry, argument had an illegal value.
- NE_INT
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INT_2
On entry, and .
Constraint: .
On entry, and .
Constraint: .
On entry, and .
Constraint: .
On entry, and .
Constraint: .
On entry, and .
Constraint: .
On entry, and .
Constraint: .
On entry, and .
Constraint: .
- NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact
NAG for assistance.
- NE_REAL_ARG_LE
On entry, .
Constraint: .
- NE_SVD_FAIL
SVD failed to converge.
The calculations are believed to be stable.
None.
This example reads a loadings matrix and calculates a varimax transformation before calculating , and for a ProMax rotation.