hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

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 XX and YY denote nn by mm matrices each representing a set of nn points in an mm-dimensional space. The XX matrix is a matrix of loadings as returned by nag_mv_rot_orthomax (g03ba), that is following an orthogonal rotation of a loadings matrix ZZ. The target matrix YY is calculated as a power transformation of XX that preserves the sign of the loadings. Let XijXij and YijYij denote the (i,j)(i,j)th element of matrices XX and YY. Given a value greater than one for the exponent pp:
Yij = δij Xijp ,
Yij = δij Xij p ,
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:
XW = Y , X,Y n × m , ​ W m × m ,
XW=Y , X,Y n×m , ​ W m×m ,
is found for WW in the least squares sense by use of singular value decomposition of the orthogonal loadings XX. The ProMax rotation matrix RR is then given by
R = OW , O, ​ m × m ,
R=OW W~ , O, ​ W~ m×m ,
where OO is the rotation matrix from an orthogonal transformation, and W~ is a matrix with the square root of diagonal elements of (WTW)1(WTW)-1 on its diagonal and zeros elsewhere.
The ProMax factor pattern matrix PP is given by
P = X W , P n × m ;
P = X W W~ , P n×m ;
the inter-factor correlations ΦΦ are given by
Φ = (QTQ)1 , Φ m × m ;
Φ= (QT Q)-1 , Φ m×m ;
where Q = WQ=WW~; and the factor structure SS is given by
S = PΦ , S n × m .
S=PΦ , S n×m .
Optionally, the rows of target matrix YY can be scaled by the communalities of loadings.

References

None.

Parameters

Compulsory Input Parameters

1:     stand – string (length ≥ 1)
Indicates how loadings are normalized.
stand = 'S'stand='S'
Rows of YY are (Kaiser) normalized by the communalities of the loadings.
stand = 'U'stand='U'
Rows are not normalized.
Constraint: stand = 'U'stand='U' or 'S''S'.
2:     x(ldx,m) – double array
ldx, the first dimension of the array, must satisfy the constraint ldxnldxn.
The loadings matrix following an orthogonal rotation, XX.
3:     ro(ldro,m) – double array
ldro, the first dimension of the array, must satisfy the constraint ldromldrom.
The orthogonal rotation matrix, OO.
4:     power – double scalar
pp, the value of exponent.
Constraint: power > 1.0power>1.0.

Optional Input Parameters

1:     n – int64int32nag_int scalar
Default: The first dimension of the array x.
nn, the number of points.
Constraint: nmnm.
2:     m – 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.)
mm, the number of dimensions.
Constraint: m1m1.

Input Parameters Omitted from the MATLAB Interface

ldx ldro ldfp ldr ldphi ldfs

Output Parameters

1:     fp(ldfp,m) – double array
ldfpnldfpn.
The factor pattern matrix, PP.
2:     r(ldr,m) – double array
ldrmldrm.
The ProMax rotation matrix, RR.
3:     phi(ldphi,m) – double array
ldphimldphim.
The matrix of inter-factor correlations, ΦΦ.
4:     fs(ldfs,m) – double array
ldfsnldfsn.
The factor structure matrix, SS.
5:     ifail – int64int32nag_int scalar
ifail = 0ifail=0 unless the function detects an error (see [Error Indicators and Warnings]).

Error Indicators and Warnings

Errors or warnings detected by the function:
  ifail = 1ifail=1
On entry,stand'U'stand'U' or 'S''S',
orm < 1m<1,
orpower1.0power1.0.
  ifail = 2ifail=2
On entry,n < mn<m,
orldx < nldx<n,
orldro < mldro<m,
orldfp < nldfp<n,
orldfs < nldfs<n,
orldr < mldr<m,
orldphi < mldphi<m.
  ifail = 20ifail=20
An SVD decomposition failed to converge.
  ifail = 100ifail=100
An internal error occurred in the calculations. Check array declarations and calls to nag_mv_rot_promax (g03bd). Please contact NAG.

Accuracy

The calculations are believed to be stable.

Further Comments

None.

Example

function nag_mv_rot_promax_example
stand = 's';
x = [0.94072, -4e-05;
     0.90419, 0.00055;
     0.79085, 0.41509;
     0.02255, 0.98874;
     0.14625, 0.97499];
ro = [0.78895, 0.61446;
     -0.61446, 0.78895];
power = 3;
[fp, r, phi, fs, ifail] = nag_mv_rot_promax(stand, x, ro, power)
 

fp =

    0.9556   -0.0979
    0.9184   -0.0935
    0.7605    0.3393
   -0.0791    1.0019
    0.0480    0.9751


r =

    0.7380    0.5420
   -0.7055    0.8653


phi =

    1.0000    0.2019
    0.2019    1.0000


fs =

    0.9358    0.0950
    0.8995    0.0919
    0.8290    0.4929
    0.1232    0.9860
    0.2448    0.9848


ifail =

                    0


function g03bd_example
stand = 's';
x = [0.94072, -4e-05;
     0.90419, 0.00055;
     0.79085, 0.41509;
     0.02255, 0.98874;
     0.14625, 0.97499];
ro = [0.78895, 0.61446;
     -0.61446, 0.78895];
power = 3;
[fp, r, phi, fs, ifail] = g03bd(stand, x, ro, power)
 

fp =

    0.9556   -0.0979
    0.9184   -0.0935
    0.7605    0.3393
   -0.0791    1.0019
    0.0480    0.9751


r =

    0.7380    0.5420
   -0.7055    0.8653


phi =

    1.0000    0.2019
    0.2019    1.0000


fs =

    0.9358    0.0950
    0.8995    0.0919
    0.8290    0.4929
    0.1232    0.9860
    0.2448    0.9848


ifail =

                    0



PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2013