Knowledge Base / Exploratory Factor Analysis (EFA) Advanced Analysis 43 min read

Exploratory Factor Analysis (EFA)

Comprehensive reference guide for exploratory factor analysis and latent structure discovery.

Exploratory Factor Analysis: Zero to Hero Tutorial

This comprehensive tutorial takes you from the foundational concepts of Exploratory Factor Analysis (EFA) all the way through advanced interpretation, model evaluation, and practical usage within the DataStatPro application. Whether you are encountering factor analysis for the first time or looking to deepen your understanding, this guide builds your knowledge step by step.


Table of Contents

  1. Prerequisites and Background Concepts
  2. What is Exploratory Factor Analysis?
  3. The Mathematics Behind EFA
  4. Assumptions of EFA
  5. Types of Factor Analysis
  6. Using the EFA Component
  7. Factor Extraction Methods
  8. Determining the Number of Factors
  9. Factor Rotation
  10. Interpreting EFA Results
  11. Model Fit and Evaluation
  12. Worked Examples
  13. Common Mistakes and How to Avoid Them
  14. Troubleshooting
  15. Quick Reference Cheat Sheet

1. Prerequisites and Background Concepts

Before diving into Exploratory Factor Analysis, it is helpful to be familiar with the following foundational statistical and mathematical concepts. Each is briefly explained below.

1.1 Variables and Correlation

A variable is any measurable characteristic (e.g., age, anxiety score, test result). The correlation coefficient rr between two variables XX and YY measures the strength and direction of their linear relationship:

rXY=i=1n(XiXˉ)(YiYˉ)i=1n(XiXˉ)2i=1n(YiYˉ)2r_{XY} = \frac{\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum_{i=1}^{n}(X_i - \bar{X})^2 \sum_{i=1}^{n}(Y_i - \bar{Y})^2}}

In EFA, the correlation matrix R\mathbf{R} (or covariance matrix Σ\boldsymbol{\Sigma}) is the primary input — the goal is to explain the patterns of correlation among many observed variables.

1.2 Variance and Covariance

The variance of a variable XX measures how spread out its values are:

Var(X)=σX2=1n1i=1n(XiXˉ)2\text{Var}(X) = \sigma^2_X = \frac{1}{n-1}\sum_{i=1}^{n}(X_i - \bar{X})^2

The covariance between two variables XX and YY measures how they vary together:

Cov(X,Y)=σXY=1n1i=1n(XiXˉ)(YiYˉ)\text{Cov}(X, Y) = \sigma_{XY} = \frac{1}{n-1}\sum_{i=1}^{n}(X_i - \bar{X})(Y_i - \bar{Y})

The relationship between correlation and covariance is:

rXY=Cov(X,Y)σXσYr_{XY} = \frac{\text{Cov}(X, Y)}{\sigma_X \sigma_Y}

1.3 Standardisation (Z-Scores)

Standardising a variable transforms it so that it has a mean of 0 and a standard deviation of 1:

Zi=XiXˉσXZ_i = \frac{X_i - \bar{X}}{\sigma_X}

EFA is typically performed on standardised variables (i.e., on the correlation matrix), which ensures that variables measured on different scales contribute equally to the analysis.

1.4 Linear Combinations

A linear combination of variables X1,X2,,XpX_1, X_2, \dots, X_p is a weighted sum:

L=w1X1+w2X2++wpXpL = w_1 X_1 + w_2 X_2 + \dots + w_p X_p

Factors in EFA are linear combinations of the observed variables. Understanding this concept is fundamental to interpreting what a factor "is."

1.5 Eigenvalues and Eigenvectors

For a square matrix A\mathbf{A}, an eigenvector v\mathbf{v} and its corresponding eigenvalue λ\lambda satisfy:

Av=λv\mathbf{A}\mathbf{v} = \lambda\mathbf{v}

In EFA, eigenvalues of the correlation matrix indicate how much variance each factor explains. A higher eigenvalue means the corresponding factor accounts for more of the total variance. Eigenvectors define the direction (loadings) of the factors.

1.6 Matrix Notation

EFA makes heavy use of matrix algebra. Key notation used throughout this tutorial:

SymbolMeaning
R\mathbf{R}Correlation matrix (p×pp \times p)
Λ\boldsymbol{\Lambda}Factor loading matrix (p×mp \times m)
Ψ\boldsymbol{\Psi}Unique variance (uniqueness) matrix (p×pp \times p, diagonal)
ppNumber of observed variables
mmNumber of extracted factors
nnNumber of observations (sample size)

2. What is Exploratory Factor Analysis?

2.1 The Core Idea

Imagine you administer a 20-item psychological questionnaire to 500 participants. Each item measures something slightly different, but you suspect that the 20 items do not all measure independent constructs — instead, you believe they reflect a smaller number of underlying latent dimensions (e.g., "anxiety", "depression", "wellbeing").

Exploratory Factor Analysis (EFA) is a statistical technique that identifies this smaller set of unobserved (latent) variables — called factors — that explain the pattern of correlations among a larger set of observed variables (also called manifest variables or indicators).

The key insight is: if several variables are highly correlated with each other, they probably share a common underlying cause (a factor).

2.2 Formal Definition

EFA is a dimension reduction and structure discovery technique. Given pp observed variables X1,X2,,XpX_1, X_2, \dots, X_p, EFA decomposes their variance into:

  1. Common variance (communality): Variance shared with other variables, attributable to the common factors.
  2. Unique variance (uniqueness): Variance specific to each variable, not shared with others (includes both specific variance and measurement error).

The goal is to represent the pp observed variables as functions of mpm \ll p common factors, where mm is much smaller than pp.

2.3 Exploratory vs. Confirmatory Factor Analysis

It is crucial to understand the distinction between the two main types of factor analysis:

FeatureExploratory Factor Analysis (EFA)Confirmatory Factor Analysis (CFA)
PurposeDiscover factor structureTest a hypothesised factor structure
Prior theory required?No — structure emerges from dataYes — structure is pre-specified
Factor-variable assignmentsNot pre-specifiedPre-specified by researcher
Cross-loadingsAllowedTypically constrained to zero
Software outputLoadings, rotation, fit indicesModel fit, modification indices
Typical useScale development, early researchScale validation, theory testing
DataStatPro feature✅ This tutorial❌ Separate module

2.4 Real-World Applications

EFA is used across a wide range of disciplines:

2.5 The Fundamental Goal: Parsimony

The driving principle behind EFA is parsimony — explaining as much of the observed complexity as possible with as few underlying factors as necessary. A good factor solution accounts for a large proportion of the total variance in the observed variables using a small number of interpretable factors.


3. The Mathematics Behind EFA

3.1 The Common Factor Model

The mathematical foundation of EFA is the common factor model. For pp standardised observed variables and mm common factors, the model states that each observed variable XjX_j can be written as:

Xj=λj1F1+λj2F2++λjmFm+ϵjX_j = \lambda_{j1} F_1 + \lambda_{j2} F_2 + \dots + \lambda_{jm} F_m + \epsilon_j

Where:

In matrix notation for all pp variables simultaneously:

X=ΛF+ϵ\mathbf{X} = \boldsymbol{\Lambda} \mathbf{F} + \boldsymbol{\epsilon}

Where:

3.2 Model Assumptions

The common factor model is built on the following mathematical assumptions:

  1. Factors are standardised: E(Fk)=0E(F_k) = 0 and Var(Fk)=1\text{Var}(F_k) = 1.
  2. Unique factors have zero mean and are uncorrelated with factors: E(ϵj)=0E(\epsilon_j) = 0 and Cov(F,ϵ)=0\text{Cov}(\mathbf{F}, \boldsymbol{\epsilon}) = \mathbf{0}.
  3. Unique factors are mutually uncorrelated: Cov(ϵj,ϵj)=0\text{Cov}(\epsilon_j, \epsilon_{j'}) = 0 for jjj \neq j'.
  4. (For orthogonal rotation): Factors are uncorrelated with each other: Cov(Fk,Fk)=0\text{Cov}(F_k, F_{k'}) = 0 for kkk \neq k'.

3.3 The Fundamental Theorem of Factor Analysis

Under the above assumptions, the reproduced correlation matrix is:

R=ΛΛT+Ψ\mathbf{R} = \boldsymbol{\Lambda}\boldsymbol{\Lambda}^T + \boldsymbol{\Psi}

Where:

This equation is the heart of EFA. The goal is to find Λ\boldsymbol{\Lambda} and Ψ\boldsymbol{\Psi} such that ΛΛT+Ψ\boldsymbol{\Lambda}\boldsymbol{\Lambda}^T + \boldsymbol{\Psi} approximates the observed correlation matrix R\mathbf{R} as closely as possible.

3.4 Communality and Uniqueness

For each observed variable XjX_j, the total standardised variance (= 1) is partitioned into:

1Total Variance=hj2Communality+ψjUniqueness\underbrace{1}_{\text{Total Variance}} = \underbrace{h_j^2}_{\text{Communality}} + \underbrace{\psi_j}_{\text{Uniqueness}}

Communality (hj2h_j^2): The proportion of variance in XjX_j explained by the common factors:

hj2=k=1mλjk2=λj12+λj22++λjm2h_j^2 = \sum_{k=1}^{m} \lambda_{jk}^2 = \lambda_{j1}^2 + \lambda_{j2}^2 + \dots + \lambda_{jm}^2

Uniqueness (ψj\psi_j): The proportion of variance in XjX_j NOT explained by the common factors:

ψj=1hj2\psi_j = 1 - h_j^2

ValueInterpretation
hj21h_j^2 \approx 1Almost all variance in XjX_j is shared with other variables (good indicator)
hj20h_j^2 \approx 0Variable shares almost no variance with others (poor indicator of any factor)
hj2<0.30h_j^2 < 0.30Variable is a weak indicator — consider removing it
hj2>0.70h_j^2 > 0.70Variable is a strong, reliable indicator of its factor

3.5 Factor Loadings Interpretation

A factor loading λjk\lambda_{jk} is the correlation between observed variable XjX_j and factor FkF_k (under orthogonal rotation). Therefore:

SSLk=j=1pλjk2\text{SSL}_k = \sum_{j=1}^{p} \lambda_{jk}^2

Proportion of Variancek=SSLkp\text{Proportion of Variance}_k = \frac{\text{SSL}_k}{p}

Cumulative Variance=k=1mSSLkp\text{Cumulative Variance} = \frac{\sum_{k=1}^{m} \text{SSL}_k}{p}

3.6 The Residual Matrix

After fitting the factor model, the residual matrix is the difference between the observed correlation matrix and the reproduced correlation matrix:

E=R(ΛΛT+Ψ)\mathbf{E} = \mathbf{R} - (\boldsymbol{\Lambda}\boldsymbol{\Lambda}^T + \boldsymbol{\Psi})

Ideally, residuals should be small (close to 0). Large residuals indicate that the factor model is not fitting the data well.


4. Assumptions of EFA

EFA rests on several important assumptions. Violating these can lead to misleading or uninterpretable results.

4.1 Adequate Sample Size

EFA requires a sufficiently large sample for stable, reproducible factor solutions. Common guidelines:

Rule of ThumbRecommendation
Absolute minimumn100n \geq 100
General guidelinen200n \geq 200
Subject-to-variable ratioAt least 5:1 (preferably 10:1 or higher)
MacCallum et al. (1999)Larger communalities allow smaller samples

⚠️ With small samples (n<100n < 100), factor solutions are highly unstable and may not replicate. Always verify your solution with a new sample (cross-validation).

4.2 Adequate Correlations Among Variables (Factorability)

EFA only makes sense if the variables are sufficiently correlated with each other. If all variables are uncorrelated, there are no common factors to extract. Two formal tests assess factorability:

Bartlett's Test of Sphericity: Tests the null hypothesis that the correlation matrix is an identity matrix (all correlations = 0):

H0:R=IH_0: \mathbf{R} = \mathbf{I}

The test statistic is approximately chi-squared:

χ2[(n1)2p+56]lnR\chi^2 \approx -\left[(n-1) - \frac{2p+5}{6}\right] \ln|\mathbf{R}|

With degrees of freedom df=p(p1)/2df = p(p-1)/2.

A significant result (p<0.05p < 0.05) indicates that correlations are sufficiently large for factor analysis to be appropriate.

Kaiser-Meyer-Olkin (KMO) Measure of Sampling Adequacy: Compares the magnitude of observed correlations to partial correlations. For the overall sample:

KMO=jkrjk2jkrjk2+jkpjk2\text{KMO} = \frac{\sum_{j \neq k} r_{jk}^2}{\sum_{j \neq k} r_{jk}^2 + \sum_{j \neq k} p_{jk}^2}

Where rjkr_{jk} are the observed correlations and pjkp_{jk} are the partial correlations between variables jj and kk after controlling for all other variables.

KMO ValueInterpretation
0.90\geq 0.90Marvellous
0.800.890.80 - 0.89Meritorious
0.700.790.70 - 0.79Middling
0.600.690.60 - 0.69Mediocre
0.500.590.50 - 0.59Miserable
<0.50< 0.50Unacceptable — do not proceed with EFA

4.3 Continuous (or Approximately Continuous) Variables

EFA is most appropriate for continuous or ordinal variables with 5+ ordered categories treated as approximately continuous. For truly dichotomous or nominal variables, alternative methods such as tetrachoric/polychoric correlation matrices should be used as input.

4.4 Multivariate Normality

EFA estimation methods based on maximum likelihood (ML) assume multivariate normality of the observed variables. Other methods (e.g., Principal Axis Factoring) are more robust to violations of this assumption.

Multivariate normality can be assessed using:

4.5 Linearity

The common factor model assumes linear relationships between the observed variables and the underlying factors. Non-linear relationships between variables will not be captured by standard EFA.

4.6 No Extreme Multicollinearity or Singularity

While EFA requires meaningful correlations, perfect or near-perfect correlations (multicollinearity) are problematic because they make the correlation matrix singular (non-invertible), which prevents the mathematical computations required.

Check for this by examining:

4.7 No Significant Outliers

Outliers can distort the correlation matrix and lead to factors that reflect extreme cases rather than the true underlying structure. Identify multivariate outliers using Mahalanobis distance:

Di2=(xixˉ)TS1(xixˉ)D^2_i = (\mathbf{x}_i - \bar{\mathbf{x}})^T \mathbf{S}^{-1} (\mathbf{x}_i - \bar{\mathbf{x}})

Where S\mathbf{S} is the sample covariance matrix. Under multivariate normality, Di2D^2_i follows a chi-squared distribution with pp degrees of freedom.


5. Types of Factor Analysis

5.1 Exploratory vs. Confirmatory

FeatureEFACFA
Theory requiredNoYes
Factor structureData-drivenPre-specified
All variables load on all factorsYes (in principle)No (constrained)
Used forScale developmentScale validation

5.2 EFA vs. Principal Component Analysis (PCA)

EFA and PCA are frequently confused but are fundamentally different:

FeatureEFAPCA
GoalIdentify latent factors causing correlationsMaximally summarise variance into components
ModelX=ΛF+ϵ\mathbf{X} = \boldsymbol{\Lambda}\mathbf{F} + \boldsymbol{\epsilon}C=WTX\mathbf{C} = \mathbf{W}^T\mathbf{X} (no error term)
Unique varianceExplicitly modelled (Ψ\boldsymbol{\Psi})Ignored (all variance is decomposed)
Factors/ComponentsRepresent latent constructsAre linear combinations of observed variables
Diagonal of RReplaced with communality estimatesKept as 1s
InterpretationCausal/latent structureDescriptive summary
When to useConstructing scales, finding latent traitsData compression, preprocessing for ML

💡 Rule of thumb: Use EFA when you believe there are latent constructs causing the correlations among your variables. Use PCA when you simply want to reduce dimensionality without assuming underlying causes.

5.3 R-Mode vs. Q-Mode Factor Analysis

The DataStatPro application implements standard R-mode EFA.


6. Using the EFA Component

The EFA component in DataStatPro provides a complete end-to-end workflow for performing exploratory factor analysis on your datasets.

Step-by-Step Guide

Step 1 — Select Dataset

Choose the dataset you wish to analyse from the "Dataset" dropdown. Ensure your dataset contains multiple numeric variables that you believe may reflect underlying latent constructs.

💡 Tip: EFA works best with variables that are theoretically related to each other. Running EFA on a random collection of unrelated variables will not produce meaningful factors.

Step 2 — Select Variables

Select the observed variables to include in the analysis from the "Variables" dropdown. All selected variables should be numeric (continuous or ordinal).

⚠️ Important: Include only variables you have a theoretical reason to include. Avoid including variables that are clearly unrelated to the constructs of interest, as they can distort the factor structure.

Step 3 — Select Extraction Method

Choose the method used to extract factors from the "Extraction Method" dropdown:

💡 Recommendation: Use PAF as the default. Use ML if you want model fit statistics and your data are approximately multivariate normal.

Step 4 — Select Number of Factors

Specify the number of factors mm to extract, or let the application determine this automatically using:

💡 Tip: Always review the scree plot alongside the Kaiser criterion. Parallel analysis is the gold standard for determining the number of factors.

Step 5 — Select Rotation Method

Choose a rotation method from the "Rotation" dropdown:

💡 Recommendation: Start with Varimax. If factors are theoretically expected to correlate (e.g., cognitive abilities, personality traits), use Oblimin or Promax.

Step 6 — Set Communality Estimation

For PAF, the initial communality estimates are set in the diagonal of the correlation matrix:

Step 7 — Display Options

Select which outputs and visualisations to display:

Step 8 — Run the Analysis

Click "Run EFA". The application will:

  1. Compute the correlation matrix.
  2. Assess factorability (KMO, Bartlett's test).
  3. Extract factors using the chosen method.
  4. Rotate the factor loading matrix.
  5. Compute communalities, eigenvalues, and variance explained.
  6. Display all selected outputs.

7. Factor Extraction Methods

Factor extraction is the process of computing the initial (unrotated) factor loading matrix Λ\boldsymbol{\Lambda} from the observed correlation matrix R\mathbf{R}.

7.1 Principal Axis Factoring (PAF)

Principal Axis Factoring is the most widely recommended extraction method in the social and behavioural sciences. It differs from PCA in one crucial way: instead of using 1s in the diagonal of the correlation matrix (which represents total variance), PAF replaces them with communality estimates (which represent shared variance only).

Algorithm:

  1. Initialise communality estimates hj2(0)h_j^{2(0)} (typically using Squared Multiple Correlations — the R2R^2 from regressing XjX_j on all other variables).

  2. Replace the diagonal of R\mathbf{R} with communality estimates to form R\mathbf{R}^*:

R=RΨ(t)\mathbf{R}^* = \mathbf{R} - \boldsymbol{\Psi}^{(t)}

  1. Eigen-decompose R\mathbf{R}^*:

R=VΔVT\mathbf{R}^* = \mathbf{V} \boldsymbol{\Delta} \mathbf{V}^T

Where Δ=diag(δ1,δ2,,δp)\boldsymbol{\Delta} = \text{diag}(\delta_1, \delta_2, \dots, \delta_p) contains the eigenvalues and V\mathbf{V} contains the eigenvectors.

  1. Extract the mm factors corresponding to the mm largest eigenvalues. The loading matrix is:

Λ=VmΔm1/2\boldsymbol{\Lambda} = \mathbf{V}_m \boldsymbol{\Delta}_m^{1/2}

Where Vm\mathbf{V}_m contains the first mm eigenvectors and Δm1/2\boldsymbol{\Delta}_m^{1/2} is the diagonal matrix of square roots of the first mm eigenvalues.

  1. Update communality estimates: hj2(t+1)=k=1mλjk2h_j^{2(t+1)} = \sum_{k=1}^{m} \lambda_{jk}^2.

  2. Iterate steps 2–5 until communality estimates converge (change is below a threshold, e.g., 10510^{-5}).

7.2 Maximum Likelihood Factoring (MLF)

Maximum Likelihood Factoring finds the loading matrix Λ\boldsymbol{\Lambda} and uniqueness matrix Ψ\boldsymbol{\Psi} that maximise the likelihood of observing the sample correlation matrix R\mathbf{R}, assuming multivariate normality.

The log-likelihood function is:

(Λ,Ψ)=n2[lnΣ+tr(SΣ1)lnSp]\ell(\boldsymbol{\Lambda}, \boldsymbol{\Psi}) = -\frac{n}{2} \left[\ln|\boldsymbol{\Sigma}| + \text{tr}(\mathbf{S}\boldsymbol{\Sigma}^{-1}) - \ln|\mathbf{S}| - p\right]

Where:

Advantages of MLF:

Disadvantages of MLF:

7.3 Comparison of Extraction Methods

MethodBest ForNormality RequiredProvides Fit TestIterative
PAFMost social science applicationsNoNoYes
MLFTheory testing, formal fit evaluationYesYesYes
PCData reduction, preprocessingNoNoNo

8. Determining the Number of Factors

One of the most consequential decisions in EFA is choosing how many factors to extract. Too few factors leads to an under-factored solution (some structure is missed); too many leads to an over-factored solution (noise is interpreted as meaningful structure).

8.1 The Kaiser Criterion (Eigenvalue >1> 1 Rule)

The Kaiser criterion retains factors whose eigenvalues exceed 1. The logic is that a factor should account for at least as much variance as a single observed variable (which has a standardised variance of 1).

Retain factor k if λk>1\text{Retain factor } k \text{ if } \lambda_k > 1

Advantages: Simple, widely used, implemented in virtually all software.
Disadvantages: Known to over-extract factors with large pp and under-extract with small pp. Should not be used as the sole criterion.

8.2 The Scree Plot

A scree plot displays the eigenvalues (y-axis) against the factor number (x-axis), sorted in descending order. The number of factors is chosen at the "elbow" — the point where the curve changes from steep to relatively flat (like the scree, or rubble, at the base of a cliff).

Retain factors before the elbow of the eigenvalue curve\text{Retain factors before the elbow of the eigenvalue curve}

Advantages: Visual and intuitive.
Disadvantages: The location of the elbow is subjective. With real data, the elbow may not be clearly defined.

💡 Plot the scree plot and ask: "Where does the steep descent level off?" Retain the factors in the steep part.

8.3 Parallel Analysis (Horn's Method) — Gold Standard

Parallel analysis compares the eigenvalues from your actual data against eigenvalues derived from random data matrices of the same size (n×pn \times p), generated many times (e.g., 1,000 replications). Retain only factors whose eigenvalues exceed the corresponding eigenvalues from the random data.

Algorithm:

  1. Generate BB random data matrices of size n×pn \times p (e.g., B=1000B = 1000).
  2. Compute the correlation matrix for each and extract eigenvalues.
  3. For each factor position kk, compute the 95th percentile of eigenvalues across all BB replications: λkrandom,95\lambda_k^{\text{random}, 95}.
  4. Retain factor kk if: λkobserved>λkrandom,95\lambda_k^{\text{observed}} > \lambda_k^{\text{random}, 95}

Advantages: Most statistically rigorous criterion. Corrects for sampling error.
Disadvantages: Requires simulation; slightly more complex to implement.

💡 Recommendation: Always use Parallel Analysis as the primary criterion, supported by the scree plot. The Kaiser criterion can serve as a secondary reference but should not override Parallel Analysis.

8.4 Minimum Average Partial (MAP) Test

Velicer's MAP test successively partials out factors from the correlation matrix and examines the average squared partial correlation. The number of factors is chosen at the point where the average squared partial correlation is minimised:

rˉk2=j<jrjjF1Fk2p(p1)/2\bar{r}^2_k = \frac{\sum_{j < j'} r_{jj' \cdot F_1 \dots F_k}^2}{p(p-1)/2}

Retain mm factors where rˉm2\bar{r}^2_m is minimised.

8.5 The Likelihood Ratio Chi-Squared Test (MLF only)

When using Maximum Likelihood Factoring, the fit of the mm-factor model can be tested against the saturated model:

χ2=(n12p+4m+56)lnΣS\chi^2 = (n - 1 - \frac{2p + 4m + 5}{6}) \ln\frac{|\boldsymbol{\Sigma}|}{|\mathbf{S}|}

With degrees of freedom: df=(pm)2(p+m)2df = \frac{(p-m)^2 - (p+m)}{2}

A non-significant χ2\chi^2 (p>0.05p > 0.05) suggests the mm-factor model fits the data adequately. Increase mm until the test is non-significant.

⚠️ The chi-squared test is very sensitive to sample size — with large nn, even trivially small discrepancies from the model are flagged as significant. Use fit indices (RMSEA, SRMR) alongside the chi-squared test.

8.6 Summary Recommendation

CriterionRecommended UseWeight
Parallel AnalysisPrimary criterion⭐⭐⭐⭐⭐
Scree PlotVisual support⭐⭐⭐⭐
MAP TestSecondary criterion⭐⭐⭐⭐
Chi-Squared Test (ML)When using ML extraction⭐⭐⭐
Kaiser criterionQuick reference only⭐⭐
Percentage of variance explainedContextual support⭐⭐

💡 Best practice: Use parallel analysis as the primary guide, examine the scree plot for visual confirmation, and then extract solutions with m1m-1, mm, and m+1m+1 factors, choosing the one that produces the most interpretable, theoretically coherent structure.


9. Factor Rotation

9.1 Why Rotation is Necessary

The unrotated factor solution is mathematically correct but often difficult to interpret, because each factor tends to have moderate-to-large loadings on many variables. Rotation redistributes the variance among factors to achieve simple structure — a solution where each variable loads highly on ideally one factor and near-zero on all others.

Crucially, rotation does not change:

Rotation only changes how the variance is distributed among factors, making the solution easier to interpret.

9.2 Simple Structure (Thurstone's Criteria)

The target of rotation is simple structure, defined by Thurstone's criteria:

  1. Each variable has at least one near-zero loading.
  2. Each factor has a set of variables with near-zero loadings.
  3. For every pair of factors, there are several variables that load on one but not the other.
  4. When more than 4 factors are extracted, most variables load on only one factor.
  5. For every pair of factors, only a few variables load on both.

9.3 Orthogonal Rotation — Factors Are Uncorrelated

Orthogonal rotation maintains the assumption that factors are uncorrelated (perpendicular in factor space). The rotation applies an orthogonal transformation matrix T\mathbf{T}:

Λ=ΛT,where TTT=I\boldsymbol{\Lambda}^* = \boldsymbol{\Lambda} \mathbf{T}, \quad \text{where } \mathbf{T}^T\mathbf{T} = \mathbf{I}

Varimax (most common orthogonal rotation)

Varimax maximises the sum of variances of the squared loadings within each factor (across variables), which simplifies the columns of the loading matrix:

V=1pk=1m[j=1pλjk4(j=1pλjk2)2p]V = \frac{1}{p} \sum_{k=1}^{m} \left[\sum_{j=1}^{p} \lambda_{jk}^{*4} - \frac{(\sum_{j=1}^{p} \lambda_{jk}^{*2})^2}{p}\right]

This encourages each factor to have a few large loadings and many near-zero loadings.

Quartimax

Quartimax maximises the variance of squared loadings within each variable (across factors):

Q=j=1pk=1mλjk4Q = \sum_{j=1}^{p} \sum_{k=1}^{m} \lambda_{jk}^{*4}

This tends to produce one large general factor with others being more specific. Less popular than Varimax.

Equamax

Equamax is a compromise between Varimax (simplifies factors) and Quartimax (simplifies variables):

E=m2pQ+p12VE = \frac{m}{2p} Q + \frac{p-1}{2} V

9.4 Oblique Rotation — Factors Are Allowed to Correlate

Oblique rotation allows factors to correlate with each other, which is more realistic for most psychological and social science constructs (e.g., cognitive abilities, personality traits). The rotation applies a non-orthogonal transformation.

With oblique rotation, two matrices are produced:

Pattern Matrix (ΛP\boldsymbol{\Lambda}^P): Contains the regression weights (partial relationships between each variable and each factor, controlling for other factors). These are analogous to standardised regression coefficients. Use this matrix to identify which variables define each factor.

Structure Matrix (ΛS\boldsymbol{\Lambda}^S): Contains the correlations between each variable and each factor (not controlling for other factors):

ΛS=ΛPΦ\boldsymbol{\Lambda}^S = \boldsymbol{\Lambda}^P \boldsymbol{\Phi}

Where Φ\boldsymbol{\Phi} is the m×mm \times m factor correlation matrix.

💡 When reporting oblique solutions, report the Pattern Matrix (for identifying factor membership) and the Factor Correlation Matrix (to show how factors relate to each other).

Direct Oblimin (δ\delta-parameterised)

Minimises a criterion that depends on the parameter δ\delta:

δ=0\delta = 0: Oblimin — the most common default setting. Allows mild to moderate obliqueness.
δ<0\delta < 0: Produces more orthogonal (less correlated) factors.
δ>0\delta > 0: Produces more oblique (more correlated) factors (generally not recommended).

Promax

Promax first applies Varimax rotation, then raises the loadings to a power κ\kappa (typically 3 or 4) and uses the result as a target for an oblique rotation:

λjkPromax=sign(λjkVarimax)×λjkVarimaxκ\lambda_{jk}^{\text{Promax}} = \text{sign}(\lambda_{jk}^{\text{Varimax}}) \times |\lambda_{jk}^{\text{Varimax}}|^\kappa

This is computationally faster than Oblimin and tends to produce similar results.

9.5 Choosing Between Orthogonal and Oblique Rotation

ScenarioRecommended Rotation
Factors are theoretically independentOrthogonal (Varimax)
Factors are theoretically relatedOblique (Oblimin / Promax)
UnsureRun both; check the factor correlation matrix
Factor correlations $r
Factor correlations $r

💡 Start with an oblique rotation. Examine the factor correlation matrix. If factors are essentially uncorrelated (r<0.30|r| < 0.30), you can switch to orthogonal rotation for simplicity. If factors are correlated, oblique rotation is the better choice.


10. Interpreting EFA Results

10.1 Reading the Factor Loading Matrix

The factor loading matrix is the primary output of EFA. Each cell λjk\lambda_{jk} is the loading of variable jj on factor kk.

Conventions for interpreting loadings:

| Loading Magnitude (λjk|\lambda_{jk}|) | Interpretation | | :------------------------------------ | :------------- | | 0.70\geq 0.70 | Excellent — strong relationship | | 0.630.690.63 - 0.69 | Very Good | | 0.550.620.55 - 0.62 | Good | | 0.450.540.45 - 0.54 | Fair | | 0.320.440.32 - 0.44 | Poor — consider excluding | | <0.32< 0.32 | Negligible — typically suppressed in output |

💡 Most researchers apply a loading cut-off of 0.30 or 0.40 — loadings below this threshold are considered negligible and suppressed in the output table for clarity.

10.2 Identifying Factor Membership

Each variable is primarily associated with the factor on which it has the highest loading (assuming a clean simple structure). Label each factor based on the common content of the variables that load most strongly on it.

Example — 3-Factor Solution:

VariableFactor 1Factor 2Factor 3h2h^2
Anxiety0.820.120.080.69
Worry0.790.180.110.67
Fear0.740.050.140.57
Sadness0.150.810.090.68
Hopeless0.210.770.100.65
Fatigue0.190.680.220.55
Energy0.070.140.800.66
Focus0.120.180.750.61
Sleep0.240.280.610.50

Interpretation:

10.3 Cross-Loadings

A cross-loading occurs when a variable loads substantially on two or more factors (e.g., λj1=0.55\lambda_{j1} = 0.55 and λj2=0.48\lambda_{j2} = 0.48). Cross-loadings are problematic because:

Options when cross-loadings are present:

  1. Accept it if it is theoretically meaningful (the variable genuinely reflects multiple constructs).
  2. Remove the variable from the analysis if it does not clearly belong to any factor.
  3. Try oblique rotation — cross-loadings in orthogonal solutions sometimes resolve with oblique rotation.
  4. Try a different number of factors — cross-loadings sometimes indicate that more (or fewer) factors should be extracted.

10.4 Naming and Interpreting Factors

Factor naming is a theoretical exercise, not a statistical one. To name a factor:

  1. Identify all variables with loadings >0.40> 0.40 on the factor.
  2. Look for a common theme or construct that unites these variables.
  3. Choose a name that is:
    • Theoretically meaningful and grounded in prior literature.
    • As specific as possible.
    • Consistent with the direction of the loadings (positive vs. negative).

⚠️ Factor names are always interpretive and provisional. Different researchers may label the same factor differently. The statistical output does not name factors — the researcher does.

10.5 Variance Explained Table

The variance explained table summarises how much of the total variance in the observed variables is accounted for by each factor:

FactorEigenvalue (SSL)% VarianceCumulative %
F1SSL1\text{SSL}_1SSL1/p×100\text{SSL}_1 / p \times 100
F2SSL2\text{SSL}_2SSL2/p×100\text{SSL}_2 / p \times 100
\vdots\vdots\vdots\vdots
FmSSLm\text{SSL}_mSSLm/p×100\text{SSL}_m / p \times 100Total

💡 A common goal is for the retained factors to explain at least 50–60% of the total variance collectively, though this benchmark varies by field and the number of variables.

10.6 Factor Scores

Factor scores are estimates of each individual's standing on each latent factor. They can be used as variables in subsequent analyses (e.g., regression, ANOVA).

Several methods exist for computing factor scores:

Regression Method (Thomson):

F^=ZR1Λ\hat{\mathbf{F}} = \mathbf{Z}\mathbf{R}^{-1}\boldsymbol{\Lambda}

Where Z\mathbf{Z} is the matrix of standardised observed scores. Factor scores are standardised (mean = 0, SD = 1) but may correlate even under orthogonal rotation.

Bartlett Method:

F^=(ΛTΨ1Λ)1ΛTΨ1Z\hat{\mathbf{F}} = (\boldsymbol{\Lambda}^T \boldsymbol{\Psi}^{-1} \boldsymbol{\Lambda})^{-1} \boldsymbol{\Lambda}^T \boldsymbol{\Psi}^{-1} \mathbf{Z}

Produces unbiased factor score estimates. Preferred when unique variances differ substantially.

Anderson-Rubin Method:

Produces factor scores that are uncorrelated with each other even under oblique rotation.

⚠️ Factor scores are estimates of the latent factors, not the true factors (which are unobservable). Factor score indeterminacy means multiple sets of scores are consistent with the same loadings.


11. Model Fit and Evaluation

11.1 Reproduced Correlation Matrix

The reproduced correlation matrix R^\hat{\mathbf{R}} is the correlation matrix implied by the factor model:

R^=ΛΛT+Ψ\hat{\mathbf{R}} = \boldsymbol{\Lambda}\boldsymbol{\Lambda}^T + \boldsymbol{\Psi}

Comparing R^\hat{\mathbf{R}} to the observed R\mathbf{R} reveals how well the model fits.

11.2 Residual Correlations

The residual matrix contains the differences between observed and reproduced correlations:

ejj=rjjr^jje_{jj'} = r_{jj'} - \hat{r}_{jj'}

Key diagnostic: The proportion of absolute residuals greater than 0.05:

The Root Mean Square of Residuals (RMSR):

RMSR=2j<jejj2p(p1)\text{RMSR} = \sqrt{\frac{2\sum_{j < j'} e_{jj'}^2}{p(p-1)}}

RMSRInterpretation
<0.05< 0.05Good fit
0.050.080.05 - 0.08Adequate fit
>0.08> 0.08Poor fit

11.3 Chi-Squared Test (Maximum Likelihood Only)

When using ML extraction, the chi-squared goodness-of-fit test assesses whether the mm-factor model fits the observed data:

χ2=(n12p+4m+56)(lnΣ^lnS+tr(SΣ^1)p)\chi^2 = (n - 1 - \frac{2p + 4m + 5}{6})(\ln|\hat{\boldsymbol{\Sigma}}| - \ln|\mathbf{S}| + \text{tr}(\mathbf{S}\hat{\boldsymbol{\Sigma}}^{-1}) - p)

df=(pm)2(p+m)2df = \frac{(p-m)^2 - (p+m)}{2}

⚠️ The chi-squared test is almost always significant with large samples, even when fit is practically adequate. Always supplement with RMSEA and SRMR.

11.4 RMSEA (Root Mean Square Error of Approximation)

RMSEA measures the discrepancy between the model-implied and observed correlation matrices, per degree of freedom:

RMSEA=max(χ2dfdf(n1),0)\text{RMSEA} = \sqrt{\max\left(\frac{\chi^2 - df}{df(n-1)}, 0\right)}

RMSEAInterpretation
0.05\leq 0.05Close fit
0.050.080.05 - 0.08Adequate fit
0.080.100.08 - 0.10Mediocre fit
>0.10> 0.10Poor fit

11.5 SRMR (Standardised Root Mean Square Residual)

SRMR is the standardised average of the residual correlations:

SRMR=2jj(sjjσ^jjsjjsjj)2p(p+1)\text{SRMR} = \sqrt{\frac{2 \sum_{j \leq j'} \left(\frac{s_{jj'} - \hat{\sigma}_{jj'}}{\sqrt{s_{jj}s_{j'j'}}}\right)^2}{p(p+1)}}

SRMRInterpretation
<0.05< 0.05Good fit
0.050.100.05 - 0.10Acceptable fit
>0.10> 0.10Poor fit

11.6 Tucker-Lewis Index (TLI) / Non-Normed Fit Index (NNFI)

The TLI compares the fit of the target model to the null model (no factors), penalised for complexity:

TLI=χnull2/dfnullχmodel2/dfmodelχnull2/dfnull1\text{TLI} = \frac{\chi^2_{\text{null}}/df_{\text{null}} - \chi^2_{\text{model}}/df_{\text{model}}}{\chi^2_{\text{null}}/df_{\text{null}} - 1}

TLIInterpretation
>0.95> 0.95Good fit
0.900.950.90 - 0.95Acceptable fit
<0.90< 0.90Poor fit

11.7 Summary of Fit Indices

IndexGood Fit ThresholdAvailable With
RMSR<0.05< 0.05PAF and MLF
Residuals >0.05> 0.05<50%< 50\%PAF and MLF
RMSEA0.05\leq 0.05MLF only
SRMR<0.05< 0.05MLF only
TLI>0.95> 0.95MLF only
χ2\chi^2 pp-value>0.05> 0.05MLF only

12. Worked Examples

Example 1: Well-Being Survey (Simple 2-Factor Solution)

A researcher administers an 8-item well-being questionnaire to n=350n = 350 participants. Items are rated 1–7 (Strongly Disagree to Strongly Agree):

ItemContent
WB1I feel calm and relaxed.
WB2I feel free from anxiety.
WB3I do not feel worried.
WB4I feel positive about my life.
WB5I feel happy most of the time.
WB6I feel my life has purpose.
WB7I feel energetic and motivated.
WB8I feel physically healthy.

Step 1 — Assess Factorability

Step 2 — Determine Number of Factors

Eigenvalues from PAF:

FactorEigenvalue% VarianceCumulative %
13.2140.1%40.1%
21.4418.0%58.1%
30.718.9%67.0%
40.587.2%74.2%

Decision: Extract 2 factors.

Step 3 — Factor Extraction and Rotation (PAF, Varimax)

Final Rotated Loading Matrix:

ItemFactor 1Factor 2h2h^2
WB10.810.140.67
WB20.780.190.65
WB30.720.110.53
WB40.160.790.65
WB50.220.760.63
WB60.090.710.51
WB70.180.680.50
WB80.130.620.40
SSL2.002.25
% Var25.0%28.1%

Note: Loadings <0.30< 0.30 suppressed for clarity.

Step 4 — Interpret the Factors

Step 5 — Evaluate Fit

Conclusion: A 2-factor structure adequately describes the 8-item well-being questionnaire. Factor 1 reflects freedom from anxiety/worry (Emotional Calm) and Factor 2 reflects positive psychological and physical well-being. Both factors are well-defined with high communalities and clean simple structure.


Example 2: Cognitive Ability Battery (Oblique 3-Factor Solution)

A psychologist administers 9 cognitive tests to n=500n = 500 students:

TestContent
T1Verbal Comprehension
T2Vocabulary
T3Reading Speed
T4Arithmetic
T5Number Series
T6Spatial Reasoning
T7Mental Rotation
T8Pattern Recognition
T9Abstract Reasoning

Factorability: KMO = 0.91 (Marvellous), Bartlett's p<0.001p < 0.001.
Number of factors: Parallel analysis suggests 3 factors.
Extraction: PAF with Promax rotation (oblique — cognitive abilities are expected to correlate).

Rotated Pattern Matrix:

TestFactor 1Factor 2Factor 3h2h^2
T10.830.080.050.72
T20.800.110.090.68
T30.690.090.160.55
T40.100.820.070.70
T50.070.790.110.65
T60.090.670.180.53
T70.110.090.850.75
T80.080.140.790.66
T90.190.220.680.59

Factor Correlation Matrix (Φ\boldsymbol{\Phi}):

F1F2F3
F11.000.420.38
F20.421.000.45
F30.380.451.00

Interpretation:

Factor Correlations: All three factors are moderately correlated (r0.380.45r \approx 0.38 - 0.45), consistent with the concept of general intelligence (g) — a higher-order factor that accounts for the positive correlations among cognitive ability factors. This justifies the use of oblique rotation.

Variance Explained:

FactorSSL (Pattern)% Variance
F11.9521.7%
F21.8820.9%
F32.0022.2%
Total5.8364.8%

The 3-factor oblique solution explains 64.8% of total variance, with a clean simple structure and theoretically meaningful factor labels.


13. Common Mistakes and How to Avoid Them

Mistake 1: Using EFA With Too Few Variables Per Factor

Problem: Having only 1–2 variables per factor produces an under-determined, unstable factor that may not replicate.
Solution: Aim for at least 3–5 variables per factor. A factor defined by 3+ variables with loadings >0.50> 0.50 is generally considered reliable.

Mistake 2: Using the Kaiser Criterion as the Sole Decision Rule

Problem: The eigenvalue-greater-than-1 rule is known to over-extract factors with large pp and under-extract with small pp. Relying on it exclusively can lead to extracting the wrong number of factors.
Solution: Use parallel analysis as the primary criterion, supported by the scree plot. Treat the Kaiser criterion as one of several inputs.

Mistake 3: Defaulting to Orthogonal Rotation Without Justification

Problem: Assuming factors are uncorrelated is often unrealistic in psychology and social sciences. Forcing orthogonality can distort the loading structure and mask meaningful factor relationships.
Solution: Default to oblique rotation (Oblimin or Promax). If the factor correlations turn out to be near zero (r<0.30|r| < 0.30), you can switch to orthogonal rotation for simplicity.

Mistake 4: Interpreting Factors Without Adequate Communality

Problem: Retaining variables with very low communalities (h2<0.30h^2 < 0.30) means that most of their variance is unique/error variance — they are poor indicators of any common factor.
Solution: Examine communalities before interpreting the solution. Consider removing variables with h2<0.30h^2 < 0.30 and re-running the analysis.

Mistake 5: Running EFA With an Inadequate Sample Size

Problem: With small samples (n<100n < 100), factor solutions are highly unstable, and loadings are poorly estimated. The solution may not replicate in a new sample.
Solution: Collect at least n=200n = 200 observations, and aim for a 10:1 subject-to-variable ratio. If you have a small sample, interpret results cautiously and seek replication.

Mistake 6: Including Variables That Are Not Conceptually Related

Problem: Including variables from completely unrelated domains forces unnatural groupings, producing factors that are statistically driven rather than theoretically meaningful.
Solution: Only include variables that are theoretically expected to reflect common constructs. Use domain knowledge to guide variable selection before running EFA.

Mistake 7: Confusing EFA With PCA

Problem: Using PCA when EFA is appropriate (or vice versa) leads to conceptually incorrect conclusions. PCA components are not latent factors.
Solution: Use EFA when you want to identify latent constructs causing the correlations. Use PCA when you simply want to reduce data dimensionality without positing latent causes.

Mistake 8: Ignoring Cross-Loadings and Item-Factor Mismatches

Problem: Accepting a factor solution without scrutinising cross-loadings or theoretically misplaced items can lead to scale construction errors.
Solution: Inspect the full loading matrix. Remove or re-examine variables that: (a) cross-load substantially on two or more factors, (b) load on a factor that does not make theoretical sense, or (c) have communalities below 0.30.

Mistake 9: Treating Factor Scores as Error-Free

Problem: Using factor scores in subsequent analyses without acknowledging their uncertainty (due to factor score indeterminacy) can lead to overconfident conclusions.
Solution: Acknowledge that factor scores are estimates of latent variables and interpret subsequent analyses with appropriate caution.

Mistake 10: Reporting an Unrotated Solution

Problem: Publishing an unrotated factor solution is almost always uninterpretable and inappropriate.
Solution: Always rotate the factor solution (Varimax as a minimum; Oblimin/Promax when correlations are expected). Report the rotated loading matrix, not the unrotated matrix.


14. Troubleshooting

ProblemLikely CauseSolution
KMO <0.50< 0.50Variables are too weakly correlatedReview variable selection; remove irrelevant variables
Bartlett's test not significantCorrelations are too small for EFAAdd more strongly related variables; reconsider analysis
Algorithm fails to convergeToo many factors; small sample; Heywood casesReduce the number of factors; increase sample size
Heywood case (communality >1> 1 or uniqueness <0< 0)Over-factoring; small sample; multicollinearityReduce number of factors; remove highly collinear variables; increase nn
All variables load on one large factorVariables are too similar or highly intercorrelatedRe-examine variable selection; check for redundancy
No clean simple structure after rotationWrong number of factors; inappropriate rotationTry different mm; switch between orthogonal/oblique
Very low communalities (h2<0.30h^2 < 0.30)Variables are poor indicators of any common factorRemove poor variables; add better indicator variables
Large proportion of residuals >0.05> 0.05Too few factors extractedIncrease the number of factors
Factors are uninterpretableVariables are theoretically mixed; too many factorsRe-examine variable selection and factor number
Eigenvalues all near-equalNo clear factor structure; essentially random dataReconsider whether EFA is appropriate for this data
Cross-loadings on many variablesOver-factoring or under-factoringTry m1m-1 and m+1m+1 solutions; try oblique rotation

15. Quick Reference Cheat Sheet

Core Equations

FormulaDescription
Xj=k=1mλjkFk+ϵjX_j = \sum_{k=1}^m \lambda_{jk} F_k + \epsilon_jCommon factor model (per variable)
X=ΛF+ϵ\mathbf{X} = \boldsymbol{\Lambda}\mathbf{F} + \boldsymbol{\epsilon}Common factor model (matrix form)
R=ΛΛT+Ψ\mathbf{R} = \boldsymbol{\Lambda}\boldsymbol{\Lambda}^T + \boldsymbol{\Psi}Fundamental theorem of factor analysis
hj2=k=1mλjk2h_j^2 = \sum_{k=1}^{m} \lambda_{jk}^2Communality of variable jj
ψj=1hj2\psi_j = 1 - h_j^2Uniqueness of variable jj
SSLk=j=1pλjk2\text{SSL}_k = \sum_{j=1}^{p} \lambda_{jk}^2Sum of squared loadings (eigenvalue) for factor kk
Vark=SSLk/p\text{Var}_k = \text{SSL}_k / pProportion of total variance explained by factor kk
E=RR^\mathbf{E} = \mathbf{R} - \hat{\mathbf{R}}Residual correlation matrix
RMSR=2j<jejj2p(p1)\text{RMSR} = \sqrt{\frac{2\sum_{j < j'} e_{jj'}^2}{p(p-1)}}Root mean square of residuals
RMSEA=max(χ2dfdf(n1),0)\text{RMSEA} = \sqrt{\max\left(\frac{\chi^2 - df}{df(n-1)}, 0\right)}Root mean square error of approximation

Factorability Benchmarks

TestThreshold for Proceeding
Bartlett's Testp<0.05p < 0.05
KMO Overall0.60\geq 0.60 (minimum), 0.70\geq 0.70 (recommended)
Correlation matrix determinant>0.00001> 0.00001

Number of Factors Decision Guide

CriterionDecision Rule
Parallel AnalysisRetain factors where λobs>λrandom95th\lambda_{\text{obs}} > \lambda_{\text{random}}^{95\text{th}}
Scree PlotRetain factors in the steep part, before the elbow
Kaiser CriterionRetain factors with λ>1\lambda > 1 (secondary only)
MAP TestRetain mm that minimises average squared partial correlation

Loading Interpretation Guide

| λjk|\lambda_{jk}| | Strength | | :--------------- | :------- | | 0.70\geq 0.70 | Excellent | | 0.550.690.55 - 0.69 | Good | | 0.450.540.45 - 0.54 | Fair | | 0.320.440.32 - 0.44 | Poor | | <0.32< 0.32 | Negligible — suppress |

Rotation Decision Guide

ScenarioRotation
Factors assumed independentVarimax (orthogonal)
Factors expected to correlateOblimin or Promax (oblique)
UnsureRun oblique first; check Φ\boldsymbol{\Phi}

Fit Index Benchmarks

IndexGood FitAcceptable FitPoor Fit
RMSR<0.05< 0.050.050.080.05 - 0.08>0.08> 0.08
RMSEA<0.05< 0.050.050.080.05 - 0.08>0.10> 0.10
SRMR<0.05< 0.050.050.100.05 - 0.10>0.10> 0.10
TLI>0.95> 0.950.900.950.90 - 0.95<0.90< 0.90
Residuals >0.05> 0.05<25%< 25\%2550%25 - 50\%>50%> 50\%

This tutorial provides a comprehensive foundation for understanding, applying, and interpreting Exploratory Factor Analysis using the DataStatPro application. For further reading, consult Fabrigar & Wegener's "Exploratory Factor Analysis" (2012), Costello & Osborne's "Best Practices in Exploratory Factor Analysis" (2005), or Gorsuch's "Factor Analysis" (1983). For feature requests or support, contact the DataStatPro team.