1. Home
2. FACROTATE directive

# FACROTATE directive

Rotates factor loadings from a principal components, canonical variates or factor analysis.

### Options

`PRINT` = string tokens Printed output required (`communalities`, `loadings`, `orthogonalrotationmatrix`, `rotation`); default `*` i.e. no printing Criterion (`varimax, quartimax`); default `vari` Sets the number of dimensions to rotate from the original loadings; default `*` i.e. all

### Parameters

`OLDLOADINGS` = matrices Original loadings Rotated loadings for each set of `OLDLOADINGS` Communalities of the variables in each rotation Saves the orthogonal rotation from the original solution to the rotated space

### Description

`FACROTATE` rotates factor loadings from a principal components, canonical variates or factor analysis (see the `PCP`, `CVA` and `FCA` directives, respectively). The first parameter, `OLDLOADINGS`, specifies a list of matrices, that contain the loadings for the original dimensions. These can be obtained from the first element of the LRV structures, that can be saved by the `LRV` parameter of `PCP`, `CVA` and `FCA`. The matrices to save the new loadings are specified by the `NEWLOADINGS` parameter. The `ROTATION` parameter can save the orthogonal rotations from the original solutions to the rotated spaces.

Principal components and canonical variates and factor analyses all define a set of dimensions (sometimes called axes) that are linear combinations of the original variables. The individual coefficients of these combinations are called loadings, and can be used to interpret the dimensions. With principal components analysis, the loadings must lie in the range [-1, +1]; this is the situation that we discuss initially. The situation with canonical variates and factor analysis is slightly different and is described later.

When several dimensions are considered it is possible to define an equivalent set of new dimensions, whose loadings are linear combinations of the original loadings. If the absolute values of the loadings for a new dimension are either close to 0 or close to 1, you can interpret the dimension as mainly representing only those original variables with large positive (or negative) loadings. You may sometimes want new dimensions determined by loadings like these, because they are easier to interpret. The methods by which these new dimensions can be obtained are generally known collectively as factor rotation because the new dimensions represent a rotation of the axes of the original dimensions. The `FACROTATE` directive provides two methods of orthogonal factor rotation: varimax rotation and quartimax rotation (Cooley & Lohnes 1971). The default method, varimax rotation, maximizes the variance of the squares of the loadings within each new dimension: the effect of this rotation should be to spread out the squared-loadings to the extremes of their range. Quartimax rotation uses the fourth power of the loadings instead of the second power.

Under either method of factor rotation, the total contribution of each of the original variables always remains the same as in the input set of loadings (for mathematical reasons). These contributions are called the communalities of the variables, and can be expressed as the sum of the squared loadings: they indicate how much of the variation of each of the original variables is retained in either set of dimensions (whether the original set from the principal component analysis, or the new set from the rotation). They can be saved using the `COMMUNALITIES` parameter. If you keep all the loadings from a principal components analysis, each of the variables will have communality 1. Factor rotation in this case will simply give a set of new loadings, each of which will represent just one of the variables, with loading 1. Thus factor rotation is sensible only if you keep merely the higher-dimensional loadings.

The loadings from canonical variates analysis are not constrained to lie in the range [-1, +1]. The factor rotation methods operate in a similar manner as for principal component loadings. Again, the objective is to obtain loading values, such that each is either relatively small or relatively large. Also the communalities of the variables remain the same in the rotated loadings as in the original loadings, and the new loadings are obtained as an orthogonal rotation of the old loadings. However, the complete set of loadings can generally be retained from canonical variate analysis and used for factor rotation, without giving meaningless results. This is because the original dimensions from the canonical variates analysis do not contain all the dimensionality of the original variables, unless the number of variables is less than the number of groups. So a factor rotation of all the dimensions will not merely recover the original variables, as would happen with loadings from principal components analysis. Likewise, loadings from the full set of available dimensions in a factor analysis can be also be retained for rotation without recovering the original variables.

Printed output is controlled by the `PRINT` option, with the following settings:

    `communalities` to print the communalities; to print the rotated loadings, under the caption “Rotated factors”; to print the rotation matrix; this is the original setting used to print the rotated loadings. It is retained as a synonym of `loadings` to allow earlier programs to run. However, in view of the confusion with the `ROTATION` parameter, it may be deleted in a future release.

By default, nothing is printed.

The `NROOTS` option sets the number of dimensions to rotate from the original loadings (the other dimensions are left unchanged). The default is to rotate them all.

Options: `PRINT`, `METHOD`, `NROOTS`.

Parameters: `OLDLOADINGS`, `NEWLOADINGS`, `COMMUNALITIES`, `ROTATION`.

### Reference

Cooley, W.W. & Lohnes, P.R. (1971). Multivariate Data Analysis. Wiley, New York.

### See also

Directives: `CVA`, `FCA`, `PCP`, `ROTATE`.

Procedures: `GENPROCRUSTES`, `PCOPROCRUSTES`.

Commands for: Multivariate and cluster analysis.

### Example

```" Examples 2:6.4a "
UNITS [NVALUES=12]
POINTER [VALUES=Height,Length,Width,Weight] Dmat
READ [PRINT=errors] Dmat[]
4.1 5.2 1.2 3.1 4.2 1.5 3.2 5.6 2.3 0.2 0.1 0.2
6.2 4.1 4.1 4.1 2.3 6.2 6.3 5.1 0.2 0.9 4.9 7.3
10.1 5.6 3.2 9.4 1.2 9.8 1.0 1.0 6.1 9.7 1.0 3.7
6.1 9.6 9.7 5.5 2.3 5.0 9.4 8.1 4.5 4.9 0.3 1.8  :
LRV [ROWS=Dmat; COLUMNS=2] Latent
PCP [PRINT=loadings] Dmat; LRV=Latent
FACROTATE [PRINT=rotation,communalities] Latent
```
Updated on March 8, 2019