### 15.7 FACTOR

    FACTOR  {
             VARIABLES=var_list,
             MATRIX IN ({CORR,COV}={*,file_spec})
            }

            [ /METHOD = {CORRELATION, COVARIANCE} ]

            [ /ANALYSIS=var_list ]

            [ /EXTRACTION={PC, PAF}]

            [ /ROTATION={VARIMAX, EQUAMAX, QUARTIMAX, PROMAX[(k)], NOROTATE}]

            [ /PRINT=[INITIAL] [EXTRACTION] [ROTATION] [UNIVARIATE] [CORRELATION] [COVARIANCE] [DET] [KMO] [AIC] [SIG] [ALL] [DEFAULT] ]

            [ /PLOT=[EIGEN] ]

            [ /FORMAT=[SORT] [BLANK(n)] [DEFAULT] ]

            [ /CRITERIA=[FACTORS(n)] [MINEIGEN(l)] [ITERATE(m)] [ECONVERGE (delta)] [DEFAULT] ]

            [ /MISSING=[{LISTWISE, PAIRWISE}] [{INCLUDE, EXCLUDE}] ]

The `FACTOR` command performs Factor Analysis or Principal Axis Factoring on a dataset. It may be used to find common factors in the data or for data reduction purposes.

The `VARIABLES` subcommand is required (unless the `MATRIX IN` subcommand is used). It lists the variables which are to partake in the analysis. (The `ANALYSIS` subcommand may optionally further limit the variables that participate; it is useful primarily in conjunction with `MATRIX IN`.)

If `MATRIX IN` instead of `VARIABLES` is specified, then the analysis is performed on a pre-prepared correlation or covariance matrix file instead of on individual data cases. Typically the matrix file will have been generated by `MATRIX DATA` (see MATRIX DATA) or provided by a third party. If specified, `MATRIX IN` must be followed by ‘`COV`’ or ‘`CORR`’, then by ‘`=`’ and file_spec all in parentheses. file_spec may either be an asterisk, which indicates the currently loaded dataset, or it may be a filename to be loaded. See MATRIX DATA, for the expected format of the file.

The `/EXTRACTION` subcommand is used to specify the way in which factors (components) are extracted from the data. If `PC` is specified, then Principal Components Analysis is used. If `PAF` is specified, then Principal Axis Factoring is used. By default Principal Components Analysis will be used.

The `/ROTATION` subcommand is used to specify the method by which the extracted solution will be rotated. Three orthogonal rotation methods are available: `VARIMAX` (which is the default), `EQUAMAX`, and `QUARTIMAX`. There is one oblique rotation method, viz: `PROMAX`. Optionally you may enter the power of the promax rotation k, which must be enclosed in parentheses. The default value of k is 5. If you don’t want any rotation to be performed, the word `NOROTATE` will prevent the command from performing any rotation on the data.

The `/METHOD` subcommand should be used to determine whether the covariance matrix or the correlation matrix of the data is to be analysed. By default, the correlation matrix is analysed.

The `/PRINT` subcommand may be used to select which features of the analysis are reported:

- `UNIVARIATE` A table of mean values, standard deviations and total weights are printed.
- `INITIAL` Initial communalities and eigenvalues are printed.
- `EXTRACTION` Extracted communalities and eigenvalues are printed.
- `ROTATION` Rotated communalities and eigenvalues are printed.
- `CORRELATION` The correlation matrix is printed.
- `COVARIANCE` The covariance matrix is printed.
- `DET` The determinant of the correlation or covariance matrix is printed.
- `AIC` The anti-image covariance and anti-image correlation matrices are printed.
- `KMO` The Kaiser-Meyer-Olkin measure of sampling adequacy and the Bartlett test of sphericity is printed.
- `SIG` The significance of the elements of correlation matrix is printed.
- `ALL` All of the above are printed.
- `DEFAULT` Identical to `INITIAL` and `EXTRACTION`.

If `/PLOT=EIGEN` is given, then a “Scree” plot of the eigenvalues will be printed. This can be useful for visualizing which factors (components) should be retained.

The `/FORMAT` subcommand determined how data are to be displayed in loading matrices. If `SORT` is specified, then the variables are sorted in descending order of significance. If `BLANK(n)` is specified, then coefficients whose absolute value is less than n will not be printed. If the keyword `DEFAULT` is given, or if no `/FORMAT` subcommand is given, then no sorting is performed, and all coefficients will be printed.

The `/CRITERIA` subcommand is used to specify how the number of extracted factors (components) are chosen. If `FACTORS(n)` is specified, where n is an integer, then n factors will be extracted. Otherwise, the `MINEIGEN` setting will be used. `MINEIGEN(l)` requests that all factors whose eigenvalues are greater than or equal to l are extracted. The default value of l is 1. The `ECONVERGE` setting has effect only when iterative algorithms for factor extraction (such as Principal Axis Factoring) are used. `ECONVERGE(delta)` specifies that iteration should cease when the maximum absolute value of the communality estimate between one iteration and the previous is less than delta. The default value of delta is 0.001. The `ITERATE(m)` may appear any number of times and is used for two different purposes. It is used to set the maximum number of iterations (m) for convergence and also to set the maximum number of iterations for rotation. Whether it affects convergence or rotation depends upon which subcommand follows the `ITERATE` subcommand. If `EXTRACTION` follows, it affects convergence. If `ROTATION` follows, it affects rotation. If neither `ROTATION` nor `EXTRACTION` follow a `ITERATE` subcommand it will be ignored. The default value of m is 25.

The `MISSING` subcommand determines the handling of missing variables. If `INCLUDE` is set, then user-missing values are included in the calculations, but system-missing values are not. If `EXCLUDE` is set, which is the default, user-missing values are excluded as well as system-missing values. This is the default. If `LISTWISE` is set, then the entire case is excluded from analysis whenever any variable specified in the `VARIABLES` subcommand contains a missing value. If `PAIRWISE` is set, then a case is considered missing only if either of the values for the particular coefficient are missing. The default is `LISTWISE`.