|
Computes direct oblique rotation according to a generalized fourth-degree polynomial criterion.
A NVAR by NF matrix of unrotated factor loadings. (Input)
W Vector of length 4 containing the constants ω1, ω2, ω3, ω4 necessary to define the rotation. (Input)
Some common rotations are
Rotation |
W(1) |
W(2) |
W(3) |
W(4) |
Quartimin |
0 |
1 |
0 |
−1 |
Covarimin |
−1/NVAR |
1 |
1/NVAR |
−1 |
Oblimin |
−γ/NVAR |
1 |
γ/NVAR |
−1 |
Crawford-Ferguson |
0 |
K1 |
K2 |
−K1 − K2 |
where K1, K2, and γ are constants (determined by the user).
B NVAR
by NF matrix of
rotated factor loadings. (Output)
If A is not needed, A and B can share the same
storage locations.
T NF by NF matrix containing the rotation transformation matrix. (Output)
FCOR NF by NF matrix of factor correlations. (Output)
NVAR Number of
variables. (Input)
Default: NVAR = size (A,1).
NF Number of
factors. (Input)
Default: NF = size (A,2).
LDA Leading
dimension of A
exactly as specified in the dimension statement in the calling
program. (Input)
Default: LDA = size (A,1).
NRM Row
normalization option. (Input)
If NRM = 1, then row
(i.e., Kaiser) normalization is performed. If NRM = 0, row
normalization is not performed.
Default: NRM = 1.
MAXIT Maximum
number of iterations. (Input)
MAXIT = 30 is typical.
MAXIT ≤ 30 defaults to
30 iterations.
Default: MAXIT = 30.
EPS Convergence
constant. (Input)
When the relative change in the criterion
function is less than EPS from one iteration
to the next, convergence is assumed. EPS = 0.0001 is
typical. EPS
≤
0.0 defaults to 0.0001.
Default: EPS = 0.0.
LDB Leading
dimension of B
exactly as specified in the dimension statement in the calling
program. (Input)
Default: LDB = size (B,1).
LDT Leading
dimension of T
exactly as specified in the dimension statement in the calling
program. (Input)
Default: LDT = size (T,1).
LDFCOR Leading
dimension of FCOR exactly as
specified in the dimension statement in the calling program.
(Input)
Default: LDFCOR = size (FCOR,1).
Generic: CALL FGCRF (A, W, B, T, FCOR [, ])
Specific: The specific interface names are S_FGCRF and D_FGCRF.
Single: CALL FGCRF (NVAR, NF, A, LDA, NRM, W, MAXIT, EPS, B, LDB, T, LDT, FCOR, LDFCOR)
Double: The double precision name is DFGCRF.
Routine FGCRF performs direct oblique factor rotation for an arbitrary fourth-degree polynomial criterion function. Let p = NVAR denote the number of variables, and let k = NF denote the number of factors. Then, the criterion function
is minimized by finding a rotation matrix T such that (λij) = Λ = AT and T−1 (T−1)T is a correlation matrix. Here, ωi= W(i), i = 1, , 4 are user specified constants. The rotation is said to be direct because it minimizes Q with respect to the factor loadings directly, ignoring the reference structure (see, e.g., Harman, 1976).
Kaiser normalization (Harman, 1976) is specified when option parameter NRM = 1. When Kaiser normalization is performed, the rows of A are first normalized by dividing each row by the square root of the sum of its squared elements. The rotation is then performed. The rows of B are then denormalized by multiplying each row by the initial row normalizing constant.
The criterion function Q was first proposed by Jennrich (1973). It generalizes the oblimin criterion function and the criterion function proposed by Crawford and Ferguson (1970) to an arbitrary fourth degree criterion. Q is optimized by accumulating simple rotations where a simple rotation is defined to be an optimal factor rotation (with respect to Q) for two columns of Λ, and for which the requirement that T −1 (T −1)T be a correlation matrix is satisfied. FGCRF determines the optimal simple rotation by finding the roots of a cubic polynomial equation. The details are contained in Clarkson and Jennrich (1988).
Criterion |
ω1 |
ω2 |
ω3 |
ω4 |
Quartimin |
0 |
1 |
0 |
−1 |
Covarimin |
−1/p |
1 |
1/p |
−1 |
Oblimin |
−γ/p |
1 |
γ/p |
−1 |
Crawford-Ferguson |
0 |
K1 |
K2 |
−K1 − K2 |
Table 1: Specific Criteria in the General Symmetric Family
An iteration is complete after all possible
k(k − 1) simple
rotations have been performed. When the relative change in Q from one
iteration to the next is less than EPS,
the algorithm stops.
EPS
= .0001 is usually sufficient. Alternatively, the algorithm stops when
the user specified maximum number of iterations, MAXIT,
is reached. MAXIT
= 30 is typical.
The parameters in the rotation, ω1, provide for a
two-dimensional family of rotations. When
ω1 = −γ/p,
ω2 = 1, ω3 = γ/p, and
ω4 = −1, then a direct
oblimin rotation with parameter γ is performed. Direct oblimin rotations are
also performed by routine FDOBL, which is
somewhat faster. For ω1 = 0, ω2 = K1, ω3 = K2, and ω4 = − (K1 + K2) direct
Crawford-Ferguson rotation with parameters K1 and K2 results (see Crawford
and Ferguson 1970, or Clarkson and Jennrich 1988). Other values of ω yield other
rotations. Common values for ω are as in Table 1.
1. Workspace may be explicitly provided, if desired, by use of F2CRF/DF2CRF. The reference is:
CALL F2CRF (NVAR, NF, A, LDA, NRM, W, MAXIT, EPS, B, LDB, T, LDT, FCOR, LDFCOR, RWK1, RWK2, RWK3)
The additional arguments are as follows:
RWK1 Work vector of length NVAR.
RWK2 Work vector of length NVAR * (NF + 1).
RWK3 Work vector of length NF2.
2. Informational Error
Type Code
3 1 The algorithm did not converge within MAXIT iterations.
The example is a continuation of the example in routine FACTR. It involves nine variables. A Crawford-Ferguson rotation with row normalization and 3 factors is performed.
USE FGCRF_INT
USE WRRRN_INT
INTEGER LDA, LDB, LDFCOR, LDT, NF, NVAR
PARAMETER (LDA=9, LDB=9, LDFCOR=3, LDT=3, NF=3, NVAR=9)
!
REAL A(LDA,NF), B(LDB,NF), FCOR(LDFCOR,NF), T(LDT,NF), W(4)
!
DATA A/.6642, .6888, .4926,
.8372, .7050, .8187, .6615, .4579, &
.7657, -.3209, -.2471, -.3022, .2924, .3148, .3767, -.3960, -.2955,
&
-.4274, .0735, -.1933, -.2224, -.0354,
-.1528, .1045, -.0778, .4914, &
-.0117/
DATA W/0.0, 7.0, 1.0, -8.0/
!
CALL FGCRF (A, W, B, T, FCOR)
!
CALL WRRRN ('B', B)
CALL WRRRN ('T', T)
CALL WRRRN ('FCOR', FCOR)
END
B
1
2 3
1 0.1156
-0.3875 0.3992
2 0.2161 -0.5831
0.0924
3 0.0422 -0.5859 0.0264
4
0.8051 -0.0906 0.0886
5 0.7495
-0.1373 -0.0839
6 0.8639 0.1045
0.1987
7 0.0527 -0.5792 0.2671
8
-0.0162 0.0779 0.7748
9 0.0852
-0.5765
0.3803
T
1 2
3
1 0.632 -0.327 0.290
2
0.935 0.737 -0.399
3 -0.060
0.907
1.066
FCOR
1 2
3
1 1.000 -0.434 0.365
2
-0.434 1.000 -0.498
3 0.365
-0.498 1.000
PHONE: 713.784.3131 FAX:713.781.9260 |