Orthomax Rotations of Orthogonal Matrices

DESCRIPTION:

Finds the optimal othomax rotation for a matrix of loadings. Varimax, quartimin, and equimax rotations are selected through the gamma argument.

USAGE:

orthomax(amat, gamma=1, normalize=T, iter.max=100, eps=1e-05) 

REQUIRED ARGUMENTS:

amat
a p by k orthogonal matrix with p < k.

OPTIONAL ARGUMENTS:

gamma
parameter which determines the type of rotation performed. Common rotations and the corresponding value of gamma are: varimax (1), quartimax (0), and equamax ( k/2). Generally positive values (not larger than about 5*k) are used for gamma, but negative values are possible.
normalize
logical flag: if TRUE, Kaiser normalization is performed. In Kaiser normalization (Kaiser, 1958), the criterion is adjusted so that the rows in amat are adjusted to an L-2 norm of 1.
iter.max
the maximum number of iterations allowed.
eps
when the change in the orthomax criterion is less than eps from one iteration to the next, convergence is assumed.

VALUE:

a list with the following components:
rmat
the rotated version of amat.
gamma
the value of gamma used.
normalize
the input value of normalize.
iterations
the number of iterations used.
tmat
the transformation matrix. Thus amat %*% tmat is equal to rmat up to numerical precision.
orthogonal
the value TRUE.

DETAILS:

This computes rotations for the orthomax family of rotations by performing rotations on pairs of columns. The criterion that is being minimized is: sum(lam^2) - gamma/p * sum(apply(lam, 1, sum)^2) where lam is the (possibly) normalized version of the rmat output with all elements squared.

REFERENCES:

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

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

SEE ALSO:

, , .

EXAMPLES:

prim9.pcl <- princomp(prim9)$loadings 
orthomax(prim9.pcl[,1:4], gamma=3)