Oblimin Rotations of Loadings Matrix

DESCRIPTION:
Finds the optimal oblimin rotation for a loading matrix. Possible rotations include quartimin, covarimin, and Crawford-Ferguson.

USAGE:
obliquemin(amat, gamma=1, kappa=NULL, normalize=T, iter.max=100,
        eps=1e-05)

REQUIRED ARGUMENTS:
amat:
a p by k orthogonal matrix with p < k. Missing values are not accepted.

OPTIONAL ARGUMENTS:
gamma:
a number giving the parameter for the oblimin family of rotations. Members of the family and the corresponding value of gamma are: covarimin (1), biquartimin (.5), and quartimin (0). Generally positive values are used for gamma, but negative values are possible.
kappa:
length 4 vector containing the values of the coefficients to use in the general symmetric family of quartic criteria. The default is to produce oblimin rotations using gamma. If kappa is specified with parameters c(0,K1,K2,-K1-K2), then the resulting rotation is a Crawford-Ferguson rotation. Other values for kappa result in general symmetric family quartic rotations.
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 criterion is less than eps from one iteration to the next, convergence is assumed.

VALUE:
a list containing the following components:
rmat:
the rotated version of amat.
correlation:
matrix of the correlations of the rotated factors. This is equal (within numerical precision) to solve(tmat) %*% t(solve(tmat)).
tmat:
the transformation matrix. Thus amat %*% tmat is equal to rmat up to numerical precision.
iterations:
the number of iterations used.
kappa:
the value of kappa used.
normalize:
the input value of normalize.
orthogonal:
the value FALSE.

DETAILS:
This is an implementation of direct oblique rotation for an arbitrary fourth-degree polynomial criterion as discussed by Clarkson and Jennrich (1988). The criterion that is being minimized is: kappa[1] * sum(lam)^2 + kappa[2] * sum(apply(lam, 1, sum)^2) + kappa[3] * sum(apply(lam, 2, sum)^2) + kappa[4] * sum(lam^2) where lam is the (possibly) normalized version of the rmat output with all elements squared.

WARNING:
Notice that not all values for kappa lead to "stable" rotations, where "stable" means that a bounded criterion function with a minimum is to be obtained.

REFERENCES:
Clarkson, D. B. and Jennrich, R. L. (1988). Quartic rotation criteria and algorithms. Psychometrika 35 251-259.

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:
orthomax , procrustes , rotate .

EXAMPLES:
prim9.pcl <- princomp(prim9)$loadings

# Crawford-Ferguson rotation obliquemin(prim9.pcl[,1:4], kappa=c(0,7,3,-10))