Stata 15 help for rotate

[MV] rotate -- Orthogonal and oblique rotations after factor and pca


rotate [, options]

rotate, clear

options Description ------------------------------------------------------------------------- Main orthogonal restrict to orthogonal rotations; the default, except with promax() oblique allow oblique rotations rotation_methods rotation criterion normalize rotate Kaiser normalized matrix factors(#) rotate # factors or components; default is to rotate all components(#) synonym for factors()

Reporting blanks(#) display loadings as blank when |loading| < #; default is blanks(0) detail show rotatemat output; seldom used format(%fmt) display format for matrices; default is format(%9.5f) noloading suppress display of rotated loadings norotation suppress display of rotation matrix

Optimization optimize_options control the maximization process; seldom used -------------------------------------------------------------------------

rotation_methods Description ------------------------------------------------------------------------- * varimax varimax (orthogonal only); the default vgpf varimax via the GPF algorithm (orthogonal only) quartimax quartimax (orthogonal only) equamax equamax (orthogonal only) parsimax parsimax (orthogonal only) entropy minimum entropy (orthogonal only) tandem1 Comrey's tandem 1 principle (orthogonal only) tandem2 Comrey's tandem 2 principle (orthogonal only)

* promax[(#)] promax power # (implies oblique); default is promax(3)

oblimin[(#)] oblimin with gamma=#; default is oblimin(0) cf(#) Crawford-Ferguson family with kappa=#, 0<=#<=1 bentler Bentler's invariant pattern simplicity oblimax oblimax quartimin quartimin target(Tg) rotate toward matrix Tg partial(Tg W) rotate toward matrix Tg, weighted by matrix W ------------------------------------------------------------------------- * varimax and promax ignore all optimize_options.


Statistics > Multivariate analysis > Factor and principal component analysis > Postestimation > Rotate loadings


rotate performs a rotation of the loading matrix after factor, factormat, pca, and pcamat; see [MV] factor and [MV] pca. Many rotation criteria (such as varimax and oblimin) are available that can be applied with respect to the orthogonal and oblique class of rotations.

rotate, clear removes the rotation results from the estimation results.

If you want to rotate a given matrix, see [MV] rotatemat.

If you want a Procrustes rotation, which rotates variables optimally toward other variables, see [MV] procrustes.


+------+ ----+ Main +-------------------------------------------------------------

orthogonal specifies that an orthogonal rotation be applied. This is the default.

See Rotation criteria below for details on the rotation_methods available with orthogonal.

oblique specifies that an oblique rotation be applied. This often yields more interpretable factors with a simpler structure than that obtained with an orthogonal rotation. In many applications (for example, after factor and pca) the factors before rotation are orthogonal (uncorrelated), whereas the oblique rotated factors are correlated.

See Rotation criteria below for details on the rotation_methods available with oblique.

clear specifies that rotation results be cleared (removed) from the last estimation command. clear may not be combined with any other option.

rotate stores its results within the e() results of pca and factor, overwriting any previous rotation results. Postestimation commands such as predict operate on the last rotated results, if any, instead of the unrotated results, and allow you to specify norotated to use the unrotated results. The clear option of rotate allows you to remove the rotation results from e(), thus freeing you from having to specify norotated for the postestimation commands.

normalize requests that the rotation be applied to the Kaiser normalization (Horst 1965) of the matrix A, so that the rowwise sums of squares equal 1. Kaiser normalization applies to the rotated columns only (see the factors() option below).

factors(#), and synonym components(#), specifies the number of factors or components (columns of the loading matrix) to be rotated, counted "from the left", that is, with the lowest column index. The other columns are left unrotated. All columns are rotated by default.

+-----------+ ----+ Reporting +--------------------------------------------------------

blanks(#) shows blanks for loadings with absolute values smaller than #.

detail displays the rotatemat output; seldom used.

format(%fmt) specifies the display format for matrices. The default is format(%9.5f).

noloading suppresses the display of the rotated loadings.

norotation suppresses the display of the optimal rotation matrix.

+--------------+ ----+ Optimization +-----------------------------------------------------

optimize_options are seldom used; see [MV] rotatemat.

Rotation criteria

In the descriptions below, the matrix to be rotated is denoted as A, p denotes the number of rows of A, and f denotes the number of columns of A (factors or components). If A is a loading matrix from factor or pca, p is the number of variables, and f the number of factors or components.

Criteria suitable only for orthogonal rotations

varimax and vgpf apply the orthogonal varimax rotation (Kaiser 1958). varimax maximizes the variance of the squared loadings within factors (columns of A). It is equivalent to cf(1/p) and to oblimin(1). varimax, the most popular rotation, is implemented with a dedicated fast algorithm and ignores all optimize_options. Specify vgpf to switch to the general GPF algorithm used for the other criteria.

quartimax uses the quartimax criterion (Harman 1976). quartimax maximizes the variance of the squared loadings within the variables (rows of A). For orthogonal rotations, quartimax is equivalent to cf(0) and to oblimax.

equamax specifies the orthogonal equamax rotation. equamax maximizes a weighted sum of the varimax and quartimax criteria, reflecting a concern for simple structure within variables (rows of A) as well as within factors (columns of A). equamax is equivalent to oblimin(p/2) and cf(f/(2p)).

parsimax specifies the orthogonal parsimax rotation. parsimax is equivalent to cf((f-1)/(p+f-2)).

entropy applies the minimum entropy rotation criterion (Jennrich 2004).

tandem1 specifies that the first principle of Comrey's tandem be applied. According to Comrey (1967), this principle should be used to judge which "small" factors should be dropped.

tandem2 specifies that the second principle of Comrey's tandem be applied. According to Comrey (1967), tandem2 should be used for "polishing".

Criteria suitable only for oblique rotations

promax[(#)] specifies the oblique promax rotation. The optional argument specifies the promax power. Not specifying the argument is equivalent to specifying promax(3). Values less than 4 are recommended, but the choice is yours. Larger promax powers simplify the loadings (generate numbers closer to zero and one) but at the cost of additional correlation between factors. Choosing a value is a matter of trial and error, but most sources find values in excess of 4 undesirable in practice. The power must be greater than 1 but is not restricted to integers.

Promax rotation is an oblique rotation method that was developed before the "analytical methods" (based on criterion optimization) became computationally feasible. Promax rotation comprises an oblique Procrustean rotation of the original loadings A toward the elementwise #-power of the orthogonal varimax rotation of A.

Criteria suitable for orthogonal and oblique rotations

oblimin[(#)] specifies that the oblimin criterion with gamma = # be used. When restricted to orthogonal transformations, the oblimin() family is equivalent to the orthomax criterion function. Special cases of oblimin() include

+------------------------------------+ | gamma Special case | |------------------------------------| | 0 quartimax / quartimin | | 1/2 biquartimax / biquartimin | | 1 varimax / covarimin | | p/2 equamax | +------------------------------------+ p = number of rows of A.

gamma defaults to zero. Jennrich (1979) recommends gamma < 0 is recommended for oblique rotations. For gamma > 0 it is possible that optimal oblique rotations do not exist; the iterative procedure used to compute the solution will wander off to a degenerate solution.

cf(#) specifies that a criterion from the Crawford-Ferguson (1970) family be used with kappa = #. cf(kappa) can be seen as (1-kappa)cf_1(A) + kappa cf_2(A), where cf_1(A) is a measure of row parsimony and cf_2(A) is a measure of column parsimony. cf_1(A) attains its greatest lower bound when no row of A has more than one nonzero element, whereas cf_2(A) reaches zero if no column of A has more than one nonzero element.

For orthogonal rotations, the Crawford-Ferguson family is equivalent to the oblimin() family. For orthogonal rotations, special cases include the following:

+----------------------------------------+ | kappa Special case | |----------------------------------------| | 0 quartimax / quartimin | | 1/p varimax / covarimin | | f/(2p) equamax | | (f-1)/(p+f-2) parsimax | | 1 factor parsimony | +----------------------------------------+ p = number of rows of A. f = number of columns of A.

bentler specifies that Bentler's "invariant pattern simplicity" criterion (Bentler 1977) be used.

oblimax specifies the oblimax criterion. oblimax maximizes the number of high and low loadings. oblimax is equivalent to quartimax for orthogonal rotations.

quartimin specifies that the quartimin criterion be used. For orthogonal rotations, quartimin is equivalent to quartimax.

target(Tg) specifies that A be rotated as near as possible to the conformable matrix Tg. Nearness is expressed by the Frobenius matrix norm.

partial(Tg W) specifies that A be rotated as near as possible to the conformable matrix Tg. Nearness is expressed by a weighted (by W) Frobenius matrix norm. W should be nonnegative, and usually is zero-one valued, with ones identifying the target values to be reproduced as closely as possible by the factor loadings, whereas zeros identify loadings to remain unrestricted.


Setup . webuse bg2 . factor bg2cost1-bg2cost6, factors(2)

Perform varimax rotation, the default . rotate

Perform oblique promax rotation with promax power equal to 2 . rotate, oblique promax(2)

Stored results

rotate adds stored results named e(r_name) to the stored results that were already defined by factor or pca.

rotate adds to the following results:

Scalars e(r_f) number of factors/components in rotated solution e(r_fmin) rotation criterion value

Macros e(r_class) orthogonal or oblique e(r_criterion) rotation criterion e(r_ctitle) title for rotation e(r_normalization) kaiser or none

Matrices e(r_L) rotated loadings e(r_T) rotation e(r_Phi) correlations between common factors (after factor only) e(r_Ev) explained variance by common factors (factor) or rotated components (pca)

The factors/components in the rotated solution are in decreasing order of e(r_Ev).


Bentler, P. M. 1977. Factor simplicity index and transformations. Psychometrika 42: 277-295.

Comrey, A. L. 1967. Tandem criteria for analytic rotation in factor analysis. Psychometrika 32: 277-295.

Crawford, C. B., and G. A. Ferguson. 1970. A general rotation criterion and its use in orthogonal rotation. Psychometrika 35: 321-332.

Harman, H. H. 1976. Modern Factor Analysis. 3rd ed. Chicago: University of Chicago Press.

Horst, P. 1965. Factor Analysis of Data Matrices. New York: Holt, Rinehart & Winston.

Jennrich, R. I. 1979. Admissible values of gamma in direct oblimin rotation. Psychometrika 44: 173-177.

------. 2004. Rotation to simple loadings using component loss functions: The orthogonal case. Psychometrika 69: 257-273.

Kaiser, H. F. 1958. The varimax criterion for analytic rotation in factor analysis. Psychometrika 23: 187-200.

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index