PCA, EFA or CFA: which method should you choose?
Use PCA to reduce variables, EFA to explore common factors and CFA to test a measurement model specified before analysis.
Direct answer
Choose PCA, EFA or CFA from the question, not the software.
Use PCA to reduce variables, EFA to explore common factors and CFA to test a measurement model specified before analysis.
01
The 30-second decision rule
ACP / PCA
Reduce several numeric variables to a few components retaining the most observed variance.
AFE / EFA
Explore how many common factors may explain correlations among indicators.
AFC / CFA
Test a measurement model specified before analysis and inspect where it reproduces observed covariances poorly.
Jolliffe & Cadima (2016) Costello & Osborne (2005) Goretzko, Siemund & Sterner (2024)
02
Three reading levels
- 1
Decision-maker: choose from the expected deliverable, not the software menu.
- 2
Practitioner: declare population, variables, correlation matrix, dimensionality rule and validation before computing.
- 3
Analyst: distinguish total variance, common variance and model-implied covariance, then quantify stability.
03
Concrete marketing situation
A research team has twelve indicators of trust, perceived value and preference. It may want to compress them for a dashboard, discover their common structure, or test a theory-defined three-dimensional scale. The same file may support all three questions, but estimands, assumptions and conclusions differ.
04
Why a default method can fail
- PCA can produce useful components without establishing that a latent construct exists.
- EFA depends on the chosen matrix, extraction, factor count and rotation.
- CFA fitted after many data-driven modifications is no longer independent confirmation.
05
PCA, EFA and CFA answer different questions
| Method | Question | Modelled variance | Main output | Decisive check |
|---|---|---|---|---|
| ACP / PCA | How can X be summarized with fewer axes? | Total observed variance | Components, scores, explained variance | Scaling, outliers, axis stability |
| AFE / EFA | Which common factors are plausible? | Common variance, with uniquenesses | Loadings, communalities, factor correlations | Retention, oblique rotation, replication |
| AFC / CFA | Does the specified model reproduce covariances sufficiently well? | Covariance implied by model parameters | Parameters, residuals, uncertainty and fit | Identification, residuals, sensitivity, independent sample |
06
Required data and preparation
- One row per respondent and one column per indicator, with population, period, collection mode and exclusions documented.
- Choose covariance or correlation for PCA. For ordinal items, justify an appropriate correlation and estimator instead of automatically treating categories as continuous.
- Declare missingness, distributions, sampling design and dependencies. No universal sample size replaces a design-specific stability study.
- Reserve an independent sample or collection to confirm a structure discovered by EFA.
07
Formal models and symbols
ACP / PCA
zₖ = Xaₖ ; aₖ′aₖ = 1 ; Var(zₖ) = λₖX is the centered or standardized matrix, aₖ an eigenvector, zₖ a component score and λₖ the variance carried by that component.
AFE / EFA
x = Λη + ε ; Σ = ΛΦΛ′ + ΘΛ contains loadings, Var(η)=Φ, Cov(η,ε)=0 and Var(ε)=Θ. Φ is a correlation matrix only when factors are standardized.
AFC / CFA
Σ(θ) = ΛΦΛ′ + Θ ; F = distance[S, Σ(θ)]Before estimation, the model declares which parameters are free or constrained. Fit compares observed covariance S with implied covariance Σ(θ).
08
Declared calculation, step by step
- 01
PCA: standardize when units are not comparable, decompose the matrix, order λₖ, then inspect explained variance and stability.
- 02
EFA: choose the matrix, estimate communalities, compare factor-retention rules, apply a suitable rotation and interpret loadings and factor correlations.
- 03
CFA: specify and identify the model, choose the estimator, estimate θ, inspect parameters and residuals, then evaluate fit without an automatic universal cutoff.
09
Reproducible numerical example
Synthetic matrix created for learning. It describes no real survey.
Six standardized indicators form two groups of three variables. Correlations are 0.64 within groups and 0.256 across groups. By construction, the matrix corresponds to two factors with loadings 0.80, correlation 0.40 and uniqueness 0.36.
v1 v2 v3 v4 v5 v6
v1 1.000 0.640 0.640 0.256 0.256 0.256
v2 0.640 1.000 0.640 0.256 0.256 0.256
v3 0.640 0.640 1.000 0.256 0.256 0.256
v4 0.256 0.256 0.256 1.000 0.640 0.640
v5 0.256 0.256 0.256 0.640 1.000 0.640
v6 0.256 0.256 0.256 0.640 0.640 1.000Download the CSV matrixACP / PCA
PCA: λ = 3.048, 1.512, 0.360, 0.360, 0.360, 0.360. The first two components explain 76.0% of total variance, with 50.8% for the first.
AFE / EFA
EFA: the generating solution has two oblique factors. Each indicator loads 0.80 on its factor, Φ₁₂ = 0.40 and Θ = 0.36. An empirical estimate would not recover these values exactly.
AFC / CFA
CFA: the two-factor model exactly reproduces this population matrix because the matrix was constructed from that model. This tautological result illustrates computation; it validates no real scale.
Uncertainty limit: the file contains an exact synthetic matrix, not 300 observations. N = 300 is only an illustrative pseudo-count supplied to software so the commands can run; it creates no observed sampling uncertainty. Any standard errors, intervals or fit tests must therefore not be interpreted. Quantifying uncertainty requires respondent-level data or an empirical covariance matrix with its actual sample size.
10
Assumptions translated into operational questions
| Method | Question |
|---|---|
| ACP | Are units variance-comparable, and do outliers dominate the axes? |
| AFE | Is a common-factor model substantively plausible, and does rotation allow expected correlations? |
| AFC | Was the model specified before seeing these results, is it identified, and does the estimator match the data? |
| All | Do population, collection design, missingness and observation dependence support the intended generalization? |
11
Diagnostics, stability and uncertainty
ACP
Recompute with covariance and correlation when scaling is debatable, inspect influential observations and remember that axis signs are arbitrary. Compare explained variance and contributions without interpreting an axis as a latent construct.
AFE
Compare parallel analysis, neighbouring solutions, communalities, cross-loadings, factor correlations and replication on new data. A solution sensitive to factor count, extraction or rotation remains exploratory.
AFC
Report parameters, standard errors or intervals, residuals, the global test and several fit indices. Investigate misfit rather than applying a magic cutoff.
12
How to interpret the result
- PCA: “two components summarize 76% of the variance in this synthetic matrix.”
- EFA: “a two-correlated-factor common structure is compatible with the matrix and requires testing on new data.”
- CFA: “the specified model reproduces covariance with the reported uncertainty and discrepancies in the confirmation sample.”
13
Supported and forbidden conclusions
Supported
- Describe PCA reduction without relabelling it as a latent factor.
- Propose a candidate EFA structure with alternatives and stability evidence.
- Evaluate a prespecified CFA model in a declared population and sample.
Forbidden
- Claim that high explained variance proves construct validity.
- Present an unstable EFA solution as a true or universal structure.
- Declare a scale validated from one fit index or a CFA modified on the same exploratory sample.
14
Possible marketing decision
- 01
Build a provisional operational PCA score while retaining its definition as a descriptive combination.
- 02
Revise the item pool after EFA, then plan independent data collection for CFA.
- 03
Retain, revise or abandon a measurement model using parameters, residuals, uncertainty, business consequences and external evidence, never one score.
15
When to use and when not to use
Use
- PCA for descriptive compression of numeric variables.
- EFA when common structure remains uncertain.
- CFA when a testable model is defined before analysis.
Do not use
- None of these methods to establish marketing causality.
- PCA or EFA as an automatic substitute for prespecified CFA.
- CFA when the model is underidentified or all changes are dictated by the same sample.
16
Alternative methods to consider
- Correspondence analysis for a contingency table, not to be confused with confirmatory factor analysis.
- Item response models when item functioning and information along the latent trait are central.
- Exploratory structural equation modelling or Bayesian approaches when cross-loadings near zero are more plausible than exact zeros.
17
Reproducible implementations
Python 3.13.7 · NumPy 2.3.2 · pandas 2.3.2 · factor_analyzer 0.5.1
# Synthetic R; n_obs=300 is an illustrative pseudo-count only.
import numpy as np
import pandas as pd
from factor_analyzer import (FactorAnalyzer, ConfirmatoryFactorAnalyzer,
ModelSpecificationParser)
R = np.array([
[1,.64,.64,.256,.256,.256],
[.64,1,.64,.256,.256,.256],
[.64,.64,1,.256,.256,.256],
[.256,.256,.256,1,.64,.64],
[.256,.256,.256,.64,1,.64],
[.256,.256,.256,.64,.64,1]])
eigenvalues = np.linalg.eigvalsh(R)[::-1]
print(eigenvalues, eigenvalues[:2].sum() / 6)
efa = FactorAnalyzer(n_factors=2, method="minres",
rotation="oblimin", is_corr_matrix=True)
efa.fit(R)
print(efa.loadings_, efa.phi_, efa.get_uniquenesses())
names = [f"v{i}" for i in range(1, 7)]
definition = {"F1": names[:3], "F2": names[3:]}
template = pd.DataFrame(np.zeros((1, 6)), columns=names)
spec = ModelSpecificationParser.parse_model_specification_from_dict(
template, definition)
cfa = ConfirmatoryFactorAnalyzer(
spec, n_obs=300, is_cov_matrix=True, disp=False)
cfa.fit(R)
print(cfa.loadings_, cfa.factor_varcovs_, cfa.error_vars_)
print(cfa.get_model_implied_cov())R 4.5.1 · psych 2.5.6 · lavaan 0.6-20
# Synthetic R; n.obs=300 is an illustrative pseudo-count only.
R <- matrix(c(
1,.64,.64,.256,.256,.256,
.64,1,.64,.256,.256,.256,
.64,.64,1,.256,.256,.256,
.256,.256,.256,1,.64,.64,
.256,.256,.256,.64,1,.64,
.256,.256,.256,.64,.64,1), 6, 6, byrow=TRUE)
colnames(R) <- rownames(R) <- paste0("v", 1:6)
eigen(R)$values
psych::fa(R, nfactors=2, n.obs=300,
fm="minres", rotate="oblimin")
model <- 'F1 =~ v1 + v2 + v3
F2 =~ v4 + v5 + v6'
fit <- lavaan::cfa(model, sample.cov=R,
sample.nobs=300, std.lv=TRUE)
lavaan::summary(fit, fit.measures=TRUE, standardized=TRUE)IBM SPSS Statistics 31.0.0.0 · PCA / EFA
* Synthetic R; N=300 is an illustrative pseudo-count only.
MATRIX DATA VARIABLES=ROWTYPE_ v1 TO v6
/FORMAT=FULL.
BEGIN DATA
N 300 300 300 300 300 300
CORR 1 .64 .64 .256 .256 .256
CORR .64 1 .64 .256 .256 .256
CORR .64 .64 1 .256 .256 .256
CORR .256 .256 .256 1 .64 .64
CORR .256 .256 .256 .64 1 .64
CORR .256 .256 .256 .64 .64 1
END DATA.
FACTOR MATRIX IN(COR=*) /ANALYSIS=v1 TO v6
/CRITERIA=FACTORS(2) /EXTRACTION=PC /ROTATION=NONE.
FACTOR MATRIX IN(COR=*) /ANALYSIS=v1 TO v6
/CRITERIA=FACTORS(2) /EXTRACTION=PAF /ROTATION=OBLIMIN.
* Confirmatory analysis requires an explicit Amos model.SAS 9.4 TS1M8 · PROC FACTOR · PROC CALIS
* Synthetic R; N=300 is an illustrative pseudo-count only;
data corr(type=corr);
input _type_ $ _name_ $ v1-v6;
datalines;
N . 300 300 300 300 300 300
CORR v1 1 .64 .64 .256 .256 .256
CORR v2 .64 1 .64 .256 .256 .256
CORR v3 .64 .64 1 .256 .256 .256
CORR v4 .256 .256 .256 1 .64 .64
CORR v5 .256 .256 .256 .64 1 .64
CORR v6 .256 .256 .256 .64 .64 1
;
proc factor data=corr method=prin nfact=2 rotate=none; run;
proc factor data=corr method=prin priors=smc nfact=2 rotate=promax; run;
proc calis data=corr corr nobs=300;
factor F1 ---> v1-v3,
F2 ---> v4-v6;
pvar F1=1., F2=1.;
cov F1 F2;
run;Versions are declared to make the protocol auditable. Outputs may differ with estimator, rotation, sign conventions and starting values. Software never validates the method choice.
18
Expected final deliverable
- 01
Question, population, unit of analysis, variables and matrix used.
- 02
PCA, EFA or CFA rationale stated before results.
- 03
Specification, estimator, rotation, retention criteria and software versions.
- 04
Complete results, diagnostics, sensitivity, uncertainty and convergence failures.
- 05
Supported conclusion, forbidden conclusion and next human decision.
19
Scientific sources and evidence level
- Jolliffe & Cadima (2016)Methodological review
Establishes PCA’s descriptive goal, successive variance maximization, and sensitivity to scaling and outliers. It does not establish marketing construct validity.
- Costello & Osborne (2005)Applied review with empirical analyses
Distinguishes components from common factors and documents extraction, retention and rotation choices. Its recommendations are not universal cutoffs.
- Goretzko, Siemund & Sterner (2024)Empirical review of 221 studies
Shows why fit indices cannot be read with one absolute cutoff and recommends full parameter, residual and model evaluation reporting. The validation context still needs declaration.
Dataset · Tool
Method connections
