Perform Rotations

DESCRIPTION:

Computes rotations, the possible rotations include procrustes , promax, the oblimin family, and the orthomax family.

This function is an S Version 3 generic (see Methods); method functions can be written to handle specific S Version 3 classes of data. Classes which already have methods for this function include:
factanal , princomp.

USAGE:

rotate(x, ...) 
rotate.default(x, rotation=NULL, orthogonal=T, parameters=NULL,  
               normalize=T) 

REQUIRED ARGUMENTS:

x
an object of an appropriate class for rotate, and a matrix (generally with fewer columns than rows) for rotate.default.

OPTIONAL ARGUMENTS:

rotation
character string partially matching the name of a rotation. The names are: "varimax", "quartimax", "equamax", "parsimax", "orthomax", "covarimin", "biquartimin", "quartimin", "oblimin", "crawford.ferguson", "procrustes", "promax", "none". If rotation is NULL, then the remaining arguments define the rotation.
orthogonal
logical flag: if TRUE, the rotation is constrained to be orthogonal.
parameters
parameters for the rotation. Most rotations will ignore these, but the families ( "oblimin", "orthomax" and "crawford.ferguson") will use them. This is required for Procrustes rotations and must be a matrix of the same dimension as x. If parameters is NULL, then the default for orthogonal rotations is parameters=1, and for oblique rotations the default is parameters=c(1/p, 1, -1/p, -1) where p is the number of rows of x.
normalize
logical flag: if TRUE, then Kaiser normalization is performed.

VALUE:

the return value depends on the method of rotate that is used.

rotate.default returns a list which depends on the type of rotation (see obliquemin, orthomax and procrustes). The list that is returned will always contain the following components:
rmat
the rotated version of the matrix.
tmat
the transformation matrix. Thus x %*% tmat is equal to rmat up to numerical precision.

DETAILS:

The parameters argument provides a means of selecting a specific rotation. For orthogonal rotations ( rotation=orthomax, or rotation=NULL and orthogonal=T ), parameters must be of length 1. For the oblimin family, parameters should be of length 1 or length 4. Crawford-Ferguson rotations allows parameters to be of length 2 or 4.

REFERENCES:

Harman, H. H. (1976). Modern Factor Analysis, 3rd Edition. University of Chicago Press, Chicago.

Mardia, K. V., Kent, J. T. and Bibby, J. M. (1979). Multivariate Analysis. Academic Press, London.

SEE ALSO:

, , .

EXAMPLES:

amat <- matrix(c(2,-1,-2,3,2,1,-2,-4),4) 
rotate(amat) # varimax rotation 
rotate(amat, "quartimin") 
rotate(amat, ortho=T, param=10)