00.GPArotation: Gradient Projection Algorithms for Factor Rotation

00.GPArotationR Documentation

Gradient Projection Algorithms for Factor Rotation

Description

GPA Rotation for Factor Analysis

The GPArotation package contains functions for the rotation of factor loadings matrices. The functions implement Gradient Projection (GP) algorithms for orthogonal and oblique rotation. Additionally, a number of rotation criteria are provided. The GP algorithms minimize the rotation criterion function and provide the corresponding rotation matrix. For oblique rotation, the covariance/correlation matrix of the factors is also provided. The rotation criteria implemented in this package are described in Bernaards and Jennrich (2005). Theory of the GP algorithm is described in Jennrich (2001, 2002).

Additionally, two rotation methods are provided that do not rely on GP (eiv and echelon).

Four vignettes are provided covering general usage, local minima diagnostics, bifactor rotation and reliability, and derivative-free gradient projection. Access them via Access them via browseVignettes("GPArotation").

Package: GPArotation
Depends: R (>= 3.5.0)
License: GPL Version 2.

Index of functions:

Rotations using gradient projection algorithms

oblimin Oblimin rotation
quartimin Quartimin rotation
targetT Orthogonal target rotation
targetQ Oblique target rotation
pstT Orthogonal partially specified target rotation
pstQ Oblique partially specified target rotation
oblimax Oblimax rotation
entropy Minimum entropy rotation
quartimax Quartimax rotation
Varimax Varimax rotation
simplimax Simplimax rotation
bentlerT Orthogonal Bentler invariant pattern simplicity rotation
bentlerQ Oblique Bentler invariant pattern simplicity rotation
tandemI Tandem criteria principle I rotation
tandemII Tandem criteria principle II rotation
geominT Orthogonal Geomin rotation
geominQ Oblique Geomin rotation
bigeominT Orthogonal Bi-Geomin rotation
bigeominQ Oblique Bi-Geomin rotation
cfT Orthogonal Crawford-Ferguson family rotation
cfQ Oblique Crawford-Ferguson family rotation
equamax Equamax rotation
parsimax Parsimax rotation
infomaxT Orthogonal Infomax rotation
infomaxQ Oblique Infomax rotation
mccammon McCammon minimum entropy ratio rotation
varimin Varimin rotation
bifactorT Orthogonal bifactor rotation
bifactorQ Oblique bifactor rotation
lpT Orthogonal L^p rotation
lpQ Oblique L^p rotation

Other rotations not using gradient projection algorithms

eiv Errors-in-variables rotation
echelon Echelon rotation
varimax varimax [The R Stats Package]
promax promax [The R Stats Package]

Core gradient projection algorithms

GPForth Orthogonal rotation function
GPFoblq Oblique rotation function

Random-start wrappers and internal engine

GPFRSorth Random-start wrapper for orthogonal rotation
GPFRSoblq Random-start wrapper for oblique rotation
.GPA_RS_engine Internal random-start engine (not exported)

Legacy gradient projection algorithms (code unchanged since 2008)

GPForth.legacy Orthogonal rotation, original implementation (not exported)
GPFoblq.legacy Oblique rotation, original implementation (not exported)

Utility functions

print.GPArotation Print results (S3 method)
summary.GPArotation Summary of results (S3 method)
.sortGPALoadings Sort and sign-correct factors (not exported)
Random.Start Random starting matrix for factor rotation
NormalizingWeight Normalizing weights utility (not exported)
GPForth.lp Single-start L^p orthogonal rotation
GPFoblq.lp Single-start L^p oblique rotation

Rotation criterion functions (not exported)

vgQ.oblimin Oblimin
vgQ.quartimin Quartimin
vgQ.target Target
vgQ.pst Partially specified target
vgQ.oblimax Oblimax
vgQ.entropy Minimum entropy
vgQ.quartimax Quartimax
vgQ.varimax Varimax
vgQ.simplimax Simplimax
vgQ.bentler Bentler invariant pattern simplicity
vgQ.tandemI Tandem criteria principle I
vgQ.tandemII Tandem criteria principle II
vgQ.geomin Geomin
vgQ.bigeomin Bi-Geomin
vgQ.cf Crawford-Ferguson family
vgQ.infomax Infomax
vgQ.mccammon McCammon minimum entropy ratio
vgQ.varimin Varimin
vgQ.bifactor Bifactor
vgQ.lp.wls Weighted least squares for L^p rotation

Data sets

Harman8 Harman's 8 physical variables; centroid loadings
NetherlandsTV Wansbeek and Meijer Netherlands TV viewership; correlation matrix
box26 Thurstone's 26 box variables; unrotated factor loadings
box20 Thurstone's 20 box variables (deprecated, use box26)
CCAI CCAI Climate-Friendly Purchasing Choices domain; correlation matrix, pattern matrix, and factor intercorrelations

Vignettes

GPA1guide Gradient Projection Factor Rotation (main guide)
GPA2local Assessing Local Minima in Factor Rotation
GPA3bifactor Bifactor Rotation and Reliability Coefficients

Author(s)

Coen A. Bernaards and Robert I. Jennrich with some R modifications by Paul Gilbert.

References

The software reference is:

Bernaards, C.A. and Jennrich, R.I. (2005). Gradient projection algorithms and software for arbitrary rotation criteria in factor analysis. Educational and Psychological Measurement, 65, 676–696. doi: 10.1177/0013164404272507

Theory of gradient projection algorithms:

Jennrich, R.I. (2001). A simple general procedure for orthogonal rotation. Psychometrika, 66, 289–306. doi: 10.1007/BF02294840

Jennrich, R.I. (2002). A simple general method for oblique rotation. Psychometrika, 67, 7–19. doi: 10.1007/BF02294706

A clear and accessible introduction to gradient projection algorithms for factor rotation is provided in:

Mansolf, M. and Reise, S.P. (2016). Exploratory bifactor analysis: The Schmid-Leiman orthogonalization and Jennrich-Bentler analytic rotations. Multivariate Behavioral Research, 51(5), 698–717. doi: 10.1080/00273171.2016.1215898

See Also

GPFRSorth, GPFRSoblq, rotations, vgQ browseVignettes("GPArotation")


GPArotation documentation built on April 29, 2026, 9:08 a.m.