Chapter 9: Covariance Structures and Factor Analysis

FGCRF

TextonSpedometerHPClogo.gif

 

Computes direct oblique rotation according to a generalized fourth-degree polynomial criterion.

Required Arguments

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)

Optional Arguments

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).

FORTRAN 90 Interface

Generic:                              CALL FGCRF (A, W, B, T, FCOR [,…])

Specific:                             The specific interface names are S_FGCRF and D_FGCRF.

FORTRAN 77 Interface

Single:            CALL FGCRF (NVAR, NF, A, LDA, NRM, W, MAXIT, EPS, B, LDB, T, LDT, FCOR, LDFCOR)

Double:                              The double precision name is DFGCRF.

Description

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 T1 (T1)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.

Notes

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.

Comments

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.

 

Example

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

Output

 

              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



http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260