|
Computes the factor structure and the variance explained by each factor.
A — NVAR by NF matrix of unrotated factor loadings. (Input)
T — NF by NF factor rotation matrix. (Input)
VAR — Vector of
length NVAR
containing the variances of the original variables. (Input)
If
standardized variables were used (i.e., the loadings are from a correlation
matrix), then set VAR(1) to any negative
number. In this case, VAR may be dimensioned
of length one.
S — NVAR by NF factor structure matrix. (Output)
FVAR — Vector of length NF containing the variance accounted for by each of the NF rotated factors. (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).
LDT — Leading
dimension of T
exactly as specified in the dimension statement in the calling
program. (Input)
Default: LDT = size (T,1).
LDS — Leading
dimension of S
exactly as specified in the dimension statement in the calling
program. (Input)
Default: LDS = size (S,1).
Generic: CALL FRVAR (A, T, VAR, S, FVAR [,…])
Specific: The specific interface names are S_FRVAR and D_FRVAR.
Single: CALL FRVAR (NVAR, NF, A, LDA, T, LDT, VAR, S, LDS, FVAR)
Double: The double precision name is DFRVAR.
Routine FRVAR computes the factor structure matrix (the matrix of correlations between the observed variables and the hypothesized factors) and the variance explained by each of the factors (for orthogonal rotations). For oblique rotations, FRVAR computes a measure of the importance of the factors, the sum of the squared elements in each column.
Let Δ denote the diagonal matrix containing the elements of the vector VAR along its diagonal. The estimated factor structure matrix S is computed as
while the elements of FVAR are computed as the diagonal elements of
If the factors were obtained from a correlation matrix (or the factor variances for standardized variables are desired), then the elements of the vector VAR should either all be 1.0, or the first element of VAR should be set to any negative number. In either case, variances of 1.0 are used.
The user should be careful to input the unrotated loadings. When obliquely rotated loadings are input, the output vector FVAR contains a measure of each factors importance, but it does not contain the variance of each factor.
Workspace may be explicitly provided, if desired, by use of F2VAR/DF2VAR. The reference is
CALL F2VAR (NVAR, NF, A, LDA, T, LDT, VAR, S, LDS, FVAR, TINV, WK, IWK)
The additional arguments are as follows:
TINV — Work vector of length NF2.
WK — Work vector of NF * (1 + NVAR).
IWK — Work vector of length NF.
The following example illustrates the use of routine FRVAR when the structure and and an index of factor importance for obliquely rotated loadings (obtained from routine are desired. Note in this example that the elements of FVAR are not variances since the rotation is oblique.
USE FRVAR_INT
USE WRRRN_INT
IMPLICIT NONE
INTEGER LDA, LDS, LDT, NF, NVAR
PARAMETER (LDA=9, LDS=9, LDT=3, NF=3, NVAR=9)
!
REAL A(LDA,NF), FVAR(NF), S(LDS,NF), T(LDT,NF), VAR(NVAR)
!
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 T/0.611, 0.923, 0.042,
-0.462, 0.813, 0.728, 0.203, -0.249, &
1.050/
!
DATA VAR/9*1.0/
!
CALL FRVAR (A, T, VAR, S, FVAR)
!
CALL WRRRN ('S', S)
CALL WRRRN ('FVAR', FVAR, 1, NF, 1)
END
S
1
2 3
1 0.3958
-0.6825 0.5274
2 0.4662 -0.7385
0.3093
3 0.2715 -0.6171 0.2052
4
0.8673 -0.5328 0.3010
5 0.7712
-0.4473 0.1338
6 0.8897 -0.4348
0.3654
7 0.3606 -0.7618 0.4397
8
0.2160 -0.3860 0.7270
9 0.4303
-0.8437 0.5566
FVAR
1
2 3
2.170 2.559
0.915
PHONE: 713.784.3131 FAX:713.781.9260 |