help for rotate dialog: rotate
also see: rotatemat
-------------------------------------------------------------------------------
Title
[MV] rotate -- Orthogonal and oblique rotations after factor and pca
Syntax
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 |loadings| < #;
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
-------------------------------------------------------------------------
Main
* 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.
Menu
Statistics > Multivariate analysis > Factor and principal component
analysis > Postestimation > Rotate loadings
Description
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 which can be applied with
respect to the orthogonal and/or oblique class of rotations. rotate
stores in e() object of the estimation command in fields e(r_name). For
instance, e(r_L) will contain the rotated loadings.
rotate, clear removes the rotation results from the estimation results.
If you want to rotate a given matrix, see [MV] rotatemat. Actually,
rotate is implemented using rotatemat.
If you want a Procrustes rotation, which rotates variables optimally
toward other variables, see [MV] procrustes.
Options
+------+
----+ 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 those
obtained with an orthogonal rotation. In many applications (e.g.,
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 of the matrix A, so that the rowwise sums of squares
equal 1. Kaiser normalization applies to the rotated columns only
(see factors() and components() options below).
factors(#), and synonym components(#), specifies the number of factors or
components (columns of the loading matrix) to be rotated, counted
"from the left", i.e., 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. 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. 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.
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. 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 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 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.
Examples
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)
Saved results
See Saved results in [MV] rotate.
Reference
Comrey, A. L. 1967. Tandem criteria for analytic rotation in factor
analysis. Psychometrika 32: 277-295.
Also see
Manual: [MV] rotate
Help: [MV] rotatemat;
[MV] factor, [MV] factor postestimation, [MV] pca, [MV] pca
postestimation; [MV] procrustes