PDF version (NAG web site
, 64-bit version, 64-bit version)
NAG Toolbox: nag_mv_rot_promax (g03bd)
Purpose
nag_mv_rot_promax (g03bd) calculates a ProMax rotation, given information following an orthogonal rotation.
Syntax
[
fp,
r,
phi,
fs,
ifail] = g03bd(
stand,
x,
ro,
power, 'n',
n, 'm',
m)
[
fp,
r,
phi,
fs,
ifail] = nag_mv_rot_promax(
stand,
x,
ro,
power, 'n',
n, 'm',
m)
Description
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_rot_orthomax (g03ba), 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
Optionally, the rows of target matrix can be scaled by the communalities of loadings.
References
None.
Parameters
Compulsory Input Parameters
- 1:
– string (length ≥ 1)
-
Indicates how loadings are normalized.
- Rows of are (Kaiser) normalized by the communalities of the loadings.
- Rows are not normalized.
Constraint:
or .
- 2:
– double array
-
ldx, the first dimension of the array, must satisfy the constraint
.
The loadings matrix following an orthogonal rotation, .
- 3:
– double array
-
ldro, the first dimension of the array, must satisfy the constraint
.
The orthogonal rotation matrix, .
- 4:
– double scalar
-
, the value of exponent.
Constraint:
.
Optional Input Parameters
- 1:
– int64int32nag_int scalar
-
Default:
the first dimension of the array
x.
, the number of points.
Constraint:
.
- 2:
– int64int32nag_int scalar
-
Default:
the first dimension of the array
ro and the second dimension of the arrays
x,
ro. (An error is raised if these dimensions are not equal.)
, the number of dimensions.
Constraint:
.
Output Parameters
- 1:
– double array
-
The factor pattern matrix, .
- 2:
– double array
-
The ProMax rotation matrix, .
- 3:
– double array
-
The matrix of inter-factor correlations, .
- 4:
– double array
-
The factor structure matrix, .
- 5:
– int64int32nag_int scalar
unless the function detects an error (see
Error Indicators and Warnings).
Error Indicators and Warnings
Errors or warnings detected by the function:
-
-
Constraint: .
Constraint: .
Constraint: or .
-
-
Constraint: .
Constraint: .
Constraint: .
Constraint: .
Constraint: .
Constraint: .
Constraint: .
-
-
SVD failed to converge.
-
-
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.
-
An unexpected error has been triggered by this routine. Please
contact
NAG.
-
Your licence key may have expired or may not have been installed correctly.
-
Dynamic memory allocation failed.
Accuracy
The calculations are believed to be stable.
Further Comments
None.
Example
This example reads a loadings matrix and calculates a varimax transformation before calculating , and for a ProMax rotation.
Open in the MATLAB editor:
g03bd_example
function g03bd_example
fprintf('g03bd example results\n\n');
fl = [0.74215 -0.57806;
0.71370 -0.55515;
0.87899 -0.15847;
0.62533 0.76621;
0.71447 0.67936];
stand = 's';
g = 1;
[n,m] = size(fl);
nvar = int64(n);
[~, x, ro, iter, ifail] = g03ba( ...
stand, g, nvar, fl);
power = 3;
[fp, r, phi, fs, ifail] = g03bd( ...
stand, x, ro, power);
mtitle = 'Factor pattern';
matrix = 'General';
diag = ' ';
[ifail] = x04ca( ...
matrix, diag, fp, mtitle);
fprintf('\n');
mtitle = 'Promax rotation';
[ifail] = x04ca( ...
matrix, diag, r, mtitle);
fprintf('\n');
mtitle = 'Inter-factor correlations';
[ifail] = x04ca( ...
matrix, diag, phi, mtitle);
fprintf('\n');
mtitle = 'Factor structure';
[ifail] = x04ca( ...
matrix, diag, fs, mtitle);
g03bd example results
Factor pattern
1 2
1 0.9556 -0.0979
2 0.9184 -0.0935
3 0.7605 0.3393
4 -0.0791 1.0019
5 0.0480 0.9751
Promax rotation
1 2
1 0.7380 0.5420
2 -0.7055 0.8653
Inter-factor correlations
1 2
1 1.0000 0.2019
2 0.2019 1.0000
Factor structure
1 2
1 0.9358 0.0950
2 0.8995 0.0919
3 0.8290 0.4928
4 0.1232 0.9860
5 0.2448 0.9848
PDF version (NAG web site
, 64-bit version, 64-bit version)
© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015