Learn R Programming

EFA.dimensions (version 0.1.8.8)

PCA: Principal components analysis

Description

Principal components analysis

Usage

PCA(data, Nfactors=NULL, rotation='promax', corkind='pearson', 
                 Ncases=NULL, ppower = 3, delta = .01, 
                 verbose=TRUE, rotate)

Value

A list with the following elements:

loadingsNOROT

The unrotated factor loadings

loadingsROT

The rotated factor loadings

pattern

The pattern matrix

structure

The structure matrix

phi

The correlations between the factors

varexplNOROT1

The initial eigenvalues and total variance explained

varexplROT

The rotation sums of squared loadings and total variance explained for the rotated loadings

cormat_reprod

The reproduced correlation matrix, based on the rotated loadings

fit_coeffs

Model fit coefficients

communalities

The unrotated factor solution communalities

uniquenesses

The unrotated factor solution uniquenesses

Arguments

data

An all-numeric dataframe where the rows are cases & the columns are the variables, or a correlation matrix with ones on the diagonal.The function internally determines whether the data are a correlation matrix.

Nfactors

The number of components to extraction. If not specified, then the EMPKC procedure will be used to determine the number of components.

rotation

The factor rotation method for the analysis. The orthogonal rotation options are: 'varimax' (the default), 'quartimax', 'bentlerT', 'equamax', 'geominT', 'entropy', and 'none'. The oblique rotation options are: 'promax' (the default), 'quartimin', 'oblimin', 'oblimax', 'simplimax', 'bentlerQ', 'geominQ', and 'none'.

corkind

The kind of correlation matrix to be used if data is not a correlation matrix. The options are 'pearson', 'kendall', 'spearman', 'gamma', and 'polychoric'. Required only if the entered data is not a correlation matrix.

Ncases

The number of cases. Required only if data is a correlation matrix.

ppower

The power value to be used in a promax rotation (required only if rotation = 'promax'). Suggested value: 3

delta

When rotation = 'geominQ' or 'geominT', or when bifactor_kind = 'bigeominT' or 'bigeominQ', delta is a tuning parameter for the Geomin criterion. It acts as a small constant that is added to prevent mathematical problems when a factor loading is exactly zero. Delta is sometimes referred to as 'epsilon'.

verbose

Should detailed results be displayed in console? TRUE (default) or FALSE

rotate

(Deprecated.) Use 'rotation' instead.

Author

Brian P. O'Connor

Details

The factor rotation computations for the following methods are conducted using the GPArotation package (Bernaards & Jennrich, 2005, 2026): 'bentlerQ', 'bentlerT', 'entropy', 'geominQ', 'geominT', 'oblimax', 'oblimin', 'quartimax', 'quartimin', and 'simplimax'.

For factor rotation (see Jennrich, 2018, for a review):

  • bentlerQ is an oblique rotation based on Bentler's invariant pattern simplicity criterion.

  • bentlerT is an orthogonal rotation based on Bentler's invariant pattern simplicity criterion

  • bifactorQ is an oblique bifactor rotation designed for when a strong, overarching global dimension is expected alongside separate sub-domains that are allowed to correlate with each other.

  • bifactorT is an orthogonal bifactor rotation designed for situations where a single, overarching global dimension is expected alongside separate sub-domains, and when all factors should be uncorrelated.

  • bigeominQ is an oblique bifactor rotation designed for where there is a broad, overarching factor alongside sub-domains that are allowed to overlap.

  • bigeominT an orthogonal bifactor rotation method designed for exploratory bifactor analysis that tries to ensure that once the general factor's variance is pulled out, each item loads onto only one specific group factor.

  • entropy entropy is an orthogonal factor rotation that pushes factor loadings to be either strongly dominant (close to 1.0) or cleanly absent (close to 0.0), reducing the overall informational "noise" of the matrix.

  • equamax is an orthogonal rotation designed as a mathematical compromise between varimax and quartimax.

  • geominQ is an oblique factor rotation method that find a clean "simple structure" even when the data contains highly complex variables (variables that naturally load on multiple factors).

  • geominT is an orthogonal factor rotation that combines the strict geometric constraint of uncorrelated factors with Brownes flexible, product-based geomin complexity criterion.

  • oblimax is an oblique factor rotation method that maximizes the number of very high and very low (near-zero) factor loadings.

  • oblimin is an oblique factor rotation that allows factors to correlate freely to achieve the simplest possible loading structure.

  • promax is a two-stage oblique factor rotation method.

  • quartimax is an orthogonal factor rotation designed to spread the explained variance evenly across the factors, actively preventing a single general factor from dominating.

  • simplimax is an oblique factor rotation that attempts to recover complex or messy "simple structures" where traditional continuous methods like oblimin or geomin fail.

  • quartimin is an oblique factor rotation that focuses on simplifying the rows of the loading matrix.

  • varimax is an orthogonal factor rotation that maximizes the variance of the squared factor loadings within each individual factor column.

Run one of the following commands for more detailed descriptions of the above rotation methods:

  • RShowDoc("EFA_BIFACTOR_vignettes", package = "EFA.dimensions")

  • vignette("EFA_BIFACTOR_vignettes")

Examples

Run this code
# \donttest{
# the Harman (1967) correlation matrix
PCA(data_Harman, Nfactors=2, Ncases=305, rotation='oblimin')

# Rosenberg Self-Esteem scale items
PCA(data_RSE, corkind='polychoric', Nfactors=2)

# NEO-PI-R scales
PCA(data_NEOPIR, Nfactors=5, rotation='promax')
# }

Run the code above in your browser using DataLab