# The FACTOR Procedure

This example illustrates how you can use the standard errors and confidence intervals to understand the pattern of factor loadings under the maximum likelihood estimation. There are nine tests and you want a three-factor solution (N=3) for a correlation matrix based on 200 observations. The following statements define the input data set and specify the desirable analysis by the FACTOR procedure:

```data test(type=corr);
title 'Quartimin-Rotated Factor Solution with Standard Errors';
input _name_ \$ test1-test9;
_type_ = 'corr';
datalines;
Test1      1  .561  .602  .290  .404  .328  .367  .179 -.268
Test2   .561     1  .743  .414  .526  .442  .523  .289 -.399
Test3   .602  .743     1  .286  .343  .361  .679  .456 -.532
Test4   .290  .414  .286     1  .677  .446  .412  .400 -.491
Test5   .404  .526  .343  .677     1  .584  .408  .299 -.466
Test6   .328  .442  .361  .446  .584     1  .333  .178 -.306
Test7   .367  .523  .679  .412  .408  .333     1  .711 -.760
Test8   .179  .289  .456  .400  .299  .178  .711     1 -.725
Test9  -.268 -.399 -.532 -.491 -.466 -.306 -.760 -.725     1
;
```
```title2 'A nine-variable-three-factor example';
proc factor data=test method=ml reorder rotate=quartimin
nobs=200 n=3 se cover=.45 alpha=.1;
run;
```

In the PROC FACTOR statement, you apply quartimin rotation with (default) Kaiser normalization. You define loadings with magnitudes greater than 0.45 to be salient (COVER= 0.45) and use 90% confidence intervals (ALPHA= 0.1) to judge the salience. The REORDER option is specified so that variables that have similar loadings with factors are clustered together.

After the quartimin rotation, the correlation matrix for factors is shown in Output 37.4.1.

Output 37.4.1: Quartimin-Rotated Factor Correlations with Standard Errors

Inter-Factor Correlations
With 90% confidence limits
Estimate/StdErr/LowerCL/UpperCL
Factor1 Factor2 Factor3
Factor1
 1.00000 0.00000 . .
 0.41283 0.06267 0.30475 0.51041
 0.38304 0.0606 0.27919 0.47804
Factor2
 0.41283 0.06267 0.30475 0.51041
 1.00000 0.00000 . .
 0.47006 0.05116 0.38177 0.54986
Factor3
 0.38304 0.0606 0.27919 0.47804
 0.47006 0.05116 0.38177 0.54986
 1.00000 0.00000 . .

The factors are medium to highly correlated. The confidence intervals seem to be very wide, suggesting that the estimation of factor correlations might not be very accurate for this sample size. For example, the 90% confidence interval for the correlation between `Factor1` and `Factor2` is (0.30, 0.51), a range of 0.21. You might need a larger sample to get a narrower interval, or you might need a better estimation.

Output 37.4.2: Using the Rotated Factor Pattern to Interpret the Factors

Rotated Factor Pattern (Standardized Regression Coefficients)
With 90% confidence limits; Cover |*| = 0.45?
Estimate/StdErr/LowerCL/UpperCL/Coverage Display
Factor1 Factor2 Factor3
test8
 0.86810 0.03282 0.80271 0.91286 0*[]
 -0.05045 0.03185 -0.10265 0.00204 *[0]
 0.00114 0.03087 -0.04959 0.05187 [0]*
test7
 0.73204 0.04434 0.65040 0.79697 0*[]
 0.27296 0.05292 0.18390 0.35758 0[]*
 0.01098 0.03838 -0.05211 0.07399 [0]*
test9
 -0.79654 0.03948 -0.85291 -0.72180 []*0
 -0.01230 0.04225 -0.08163 0.05715 *[0]
 -0.17307 0.04420 -0.24472 -0.09955 *[]0
test3
 0.27715 0.05489 0.18464 0.36478 0[]*
 0.91156 0.04877 0.78650 0.96481 0*[]
 -0.19727 0.02981 -0.24577 -0.14778 *[]0
test2
 0.01063 0.05060 -0.07248 0.09359 [0]*
 0.71540 0.05148 0.61982 0.79007 0*[]
 0.20500 0.05496 0.11310 0.29342 0[]*
test1
 -0.07356 0.04245 -0.14292 -0.00348 *[]0
 0.63815 0.05380 0.54114 0.71839 0*[]
 0.13983 0.05597 0.04682 0.23044 0[]*
test5
 0.00863 0.04394 -0.06356 0.08073 [0]*
 0.03234 0.04387 -0.03986 0.10421 [0]*
 0.91282 0.04509 0.80030 0.96323 0*[]
test4
 0.22357 0.05956 0.12366 0.31900 0[]*
 -0.07576 0.03640 -0.13528 -0.01569 *[]0
 0.67925 0.05434 0.57955 0.75891 0*[]
test6
 -0.04295 0.05114 -0.12656 0.04127 *[0]
 0.21911 0.07481 0.09319 0.33813 0[]*
 0.53183 0.06905 0.40893 0.63578 0[*]

The coverage displays in Output 37.4.2 show that `Test8`, `Test7`, and `Test9` have salient relationships with `Factor1`. The coverage displays are either ‘0*[ ]’ or ‘[ ]*0’, indicating that the entire 90% confidence intervals for the corresponding loadings are beyond the salience value at 0.45. On the other hand, the coverage display for `Test3` on `Factor1` is ‘0[ ]*’. This indicates that even though the loading estimate is significantly larger than zero, it is not large enough to be salient. Similarly, `Test3`, `Test2`, and `Test1` have salient relationships with `Factor2`, while `Test5` and `Test4` have salient relationships with `Factor3`. For `Test6`, its relationship with `Factor3` is a little bit ambiguous; the 90% confidence interval approximately covers values between 0.40 and 0.64. This means that the population value might have been smaller or larger than 0.45. It is marginal evidence for a salient relationship.

For oblique factor solutions, some researchers prefer to examine the factor structure loadings, which represent correlations, for determining salient relationships. In Output 37.4.3, the factor structure loadings and the associated standard error estimates and coverage displays are shown.

Output 37.4.3: Using the Factor Structure to Interpret the Factors

Factor Structure (Correlations)
With 90% confidence limits; Cover |*| = 0.45?
Estimate/StdErr/LowerCL/UpperCL/Coverage Display
Factor1 Factor2 Factor3
test8
 0.84771 0.02871 0.79324 0.88872 0*[]
 0.30847 0.06593 0.19641 0.41257 0[]*
 0.30994 0.06263 0.20363 0.40904 0[]*
test7
 0.84894 0.02688 0.79834 0.88764 0*[]
 0.58033 0.05265 0.48721 0.66041 0*[]
 0.41970 0.06060 0.31523 0.51412 0[*]
test9
 -0.86791 0.02522 -0.90381 -0.81987 []*0
 -0.42248 0.06187 -0.51873 -0.31567 [*]0
 -0.48396 0.05504 -0.56921 -0.38841 [*]0
test3
 0.57790 0.05069 0.48853 0.65528 0*[]
 0.93325 0.02953 0.86340 0.96799 0*[]
 0.33738 0.06779 0.22157 0.44380 0[]*
test2
 0.38449 0.06143 0.27914 0.48070 0[*]
 0.81615 0.03106 0.75829 0.86126 0*[]
 0.54535 0.05456 0.44946 0.62883 0[*]
test1
 0.24345 0.06864 0.12771 0.35264 0[]*
 0.67351 0.04284 0.59680 0.73802 0*[]
 0.41162 0.05995 0.30846 0.50522 0[*]
test5
 0.37163 0.06092 0.26739 0.46727 0[*]
 0.46498 0.04979 0.37923 0.54282 0[*]
 0.93132 0.03277 0.85159 0.96894 0*[]
test4
 0.45248 0.05876 0.35072 0.54367 0[*]
 0.33583 0.06289 0.22867 0.43494 0[]*
 0.72927 0.04061 0.65527 0.78941 0*[]
test6
 0.25122 0.07140 0.13061 0.36450 0[]*
 0.45137 0.05858 0.34997 0.54232 0[*]
 0.61837 0.05051 0.52833 0.69465 0*[]

The interpretations based on the factor structure matrix do not change much from that based on the factor loadings except for `Test3` and `Test9`. `Test9` now has a salient correlation with `Factor3`. For `Test3`, it has salient correlations with both `Factor1` and `Factor2`. Fortunately, there are still tests that have salient correlations only with either `Factor1` or `Factor2` (but not both). This would make interpretations of factors less problematic.