Skip to contents

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

obliminOblimin rotation
quartiminQuartimin rotation
targetTOrthogonal target rotation
targetQOblique target rotation
pstTOrthogonal partially specified target rotation
pstQOblique partially specified target rotation
oblimaxOblimax rotation
entropyMinimum entropy rotation
quartimaxQuartimax rotation
VarimaxVarimax rotation
simplimaxSimplimax rotation
bentlerTOrthogonal Bentler invariant pattern simplicity rotation
bentlerQOblique Bentler invariant pattern simplicity rotation
tandemITandem criteria principle I rotation
tandemIITandem criteria principle II rotation
geominTOrthogonal Geomin rotation
geominQOblique Geomin rotation
bigeominTOrthogonal Bi-Geomin rotation
bigeominQOblique Bi-Geomin rotation
cfTOrthogonal Crawford-Ferguson family rotation
cfQOblique Crawford-Ferguson family rotation
equamaxEquamax rotation
parsimaxParsimax rotation
infomaxTOrthogonal Infomax rotation
infomaxQOblique Infomax rotation
mccammonMcCammon minimum entropy ratio rotation
variminVarimin rotation
bifactorTOrthogonal bifactor rotation
bifactorQOblique bifactor rotation
lpTOrthogonal \(L^p\) rotation
lpQOblique \(L^p\) rotation

Other rotations not using gradient projection algorithms

eivErrors-in-variables rotation
echelonEchelon rotation
varimaxvarimax [The R Stats Package]
promaxpromax [The R Stats Package]

Core gradient projection algorithms

GPForthOrthogonal rotation function
GPFoblqOblique rotation function

Random-start wrappers and internal engine

GPFRSorthRandom-start wrapper for orthogonal rotation
GPFRSoblqRandom-start wrapper for oblique rotation
.GPA_RS_engineInternal random-start engine (not exported)

Legacy gradient projection algorithms (code unchanged since 2008)

GPForth.legacyOrthogonal rotation, original implementation (not exported)
GPFoblq.legacyOblique rotation, original implementation (not exported)

Utility functions

print.GPArotationPrint results (S3 method)
summary.GPArotationSummary of results (S3 method)
.sortGPALoadingsSort and sign-correct factors (not exported)
Random.StartRandom starting matrix for factor rotation
NormalizingWeightNormalizing weights utility (not exported)
GPForth.lpSingle-start \(L^p\) orthogonal rotation
GPFoblq.lpSingle-start \(L^p\) oblique rotation

Rotation criterion functions (not exported)

vgQ.obliminOblimin
vgQ.quartiminQuartimin
vgQ.targetTarget
vgQ.pstPartially specified target
vgQ.oblimaxOblimax
vgQ.entropyMinimum entropy
vgQ.quartimaxQuartimax
vgQ.varimaxVarimax
vgQ.simplimaxSimplimax
vgQ.bentlerBentler invariant pattern simplicity
vgQ.tandemITandem criteria principle I
vgQ.tandemIITandem criteria principle II
vgQ.geominGeomin
vgQ.bigeominBi-Geomin
vgQ.cfCrawford-Ferguson family
vgQ.infomaxInfomax
vgQ.mccammonMcCammon minimum entropy ratio
vgQ.variminVarimin
vgQ.bifactorBifactor
vgQ.lp.wlsWeighted least squares for \(L^p\) rotation

Data sets

Harman8Harman's 8 physical variables; centroid loadings
NetherlandsTVWansbeek and Meijer Netherlands TV viewership; correlation matrix
box26Thurstone's 26 box variables; unrotated factor loadings
box20Thurstone's 20 box variables (deprecated, use box26)
CCAICCAI Climate-Friendly Purchasing Choices domain; correlation matrix, pattern matrix, and factor intercorrelations

Vignettes

GPA1guideGradient Projection Factor Rotation (main guide)
GPA2localAssessing Local Minima in Factor Rotation
GPA3bifactorBifactor Rotation and Reliability Coefficients

Author

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")