psych (version 1.0-97)

Promax: Perform promax or targeted rotations and return the inter factor angles


promax is an oblique rotation function introduced by Hendrickson and White (1964) and implemented in the promax function in the stats package. Unfortunately, promax does not report the inter factor correlations. Promax does. target.rot does general target rotations to an arbitrary target matrix. The default target rotation is for an independent cluster solution.


Promax(x, m = 4)


A loadings matrix
the power to which to raise the varimax loadings (for Promax)
An arbitrary target matrix, can be composed of any weights, but probably -1,0, 1 weights. If missing, the target is the independent cluster structure determined by assigning every item to it's highest loaded factor.


  • loadingsOblique factor loadings
  • rotmatThe rotation matrix applied to the original loadings to produce the promax soluion or the targeted matrix
  • PhiThe interfactor correlation matrix


Promax is a very direct adaptation of the stats::promax function. The addition is that it will return the interfactor correlations as well as the loadings and rotation matrix.

In addition, it will take output from either the factanal, fa or ealier (, factor.minres or principal) functions and select just the loadings matrix for analysis.

The target.rot function is an adaptation of a function of Michael Browne's to do rotations to arbitrary target matrices. Suggested by Pat Shrout.

The default for target.rot is to rotate to an independent cluster structure (every items is assigned to a group with its highest loading.)

target.rot will not handle targets that have linear dependencies (e.g., a pure bifactor model where there is a g loading and a group factor for all variables).


Hendrickson, A. E. and White, P. O, 1964, British Journal of Statistical Psychology, 17, 65-70.

See Also

promax,, factor.minres, or principal


Run this code
jen <- sim.hierarchical()
f3 <- factor.minres(jen,3)
m3 <- factanal(covmat=jen,factors=3)
Promax(m3)  #example of taking the output from factanal
#compare this rotation with the solution from a targeted rotation aimed for an independent cluster solution

Run the code above in your browser using DataCamp Workspace