SPSS command: SPSS FACTOR
Exploratory factor analysis and PCA in your browser
Factor analysis looks for a small number of underlying dimensions that explain the correlations among many variables.
Free · No account · Files stay on your device · Updated 18 October 2026
What it tells you
Crosstabs runs SPSS FACTOR in your browser with principal components, principal axis factoring and maximum likelihood extraction, KMO and Bartlett's test, a scree plot, and varimax, quartimax, equamax, direct oblimin or promax rotation.
- Whether the variables are correlated enough to factor (KMO and Bartlett's test of sphericity).
- How many factors or components are worth keeping, from the eigenvalues and the scree plot.
- Which variables belong together, from the rotated loadings or the pattern and structure matrices.
- How much of each variable's variance the factors explain (communalities), and whether a maximum-likelihood model fits (chi-square goodness-of-fit test).
When to use it
Use it when
- Checking that a questionnaire's items group into the subscales they were written for.
- Reducing many correlated attitude or rating variables to a few components for segmentation or regression.
- Exploring the dimensions behind a new item pool before a confirmatory study.
Use something else when
- Testing a specific, pre-specified factor model: that needs confirmatory factor analysis (structural equation modelling), which this panel does not do.
- Nominal or ordinal categories with few levels: use categorical PCA or multiple correspondence analysis.
- Fewer than about five cases per variable: loadings will be unstable.
How to run it in Crosstabs
- 01
Load the variables
Open the file and switch to Statistics mode; use numeric items with at least two distinct values.
- 02
Choose Factor analysis
In the Scale group, pick Factor analysis (FACTOR) and tick three or more Variables.
- 03
Set extraction
Choose the Extraction method (Principal components, Principal axis factoring or Maximum likelihood), Analyze the correlation or covariance matrix, and Extract by Eigenvalues greater than a value or a Fixed number of factors.
- 04
Choose a rotation
Pick Varimax (default), Quartimax, Equamax, Direct Oblimin (set delta) or Promax (set kappa), or None.
- 05
Choose what to display
Under Display, KMO and Bartlett's test, Scree plot and Sort loadings by size are on by default; add Anti-image matrices or the Correlation matrix, and Suppress small loadings for readability. Results update as you change options.
- 06
Save factor scores
Under Factor scores, pick the Score method (Regression, Bartlett or Anderson–Rubin) and, if you like, Display factor score coefficient matrix. After Run, Save factor scores adds FAC1_1, FAC2_1 and so on to the dataset as a recorded step in Data › Transform.
Worked example
Computed by the Crosstabs engine from the synthetic data below when this page was built — not typed in.
Data
150 synthetic respondents rating six attitude statements. p1–p3 are driven by price sensitivity and t1–t3 by brand trust, two unrelated traits, plus item-specific noise. Generated with a fixed seed.
| Item | Value |
|---|---|
| Kaiser-Meyer-Olkin Measure of Sampling Adequacy | 0.686 |
| Bartlett's Test of Sphericity: Approx. Chi-Square | 311.600 |
| df | 15 |
| Sig. | <.001 |
| Component | Initial Eigenvalues: Total | % of Variance | Cumulative % | Rotation Sums of Squared Loadings: Total | % of Variance |
|---|---|---|---|---|---|
| 1 | 2.342 | 39.035 | 39.035 | 2.319 | 38.654 |
| 2 | 2.009 | 33.490 | 72.526 | 2.032 | 33.872 |
| 3 | 0.559 | 9.320 | 81.846 | ||
| 4 | 0.450 | 7.508 | 89.353 | ||
| 5 | 0.364 | 6.060 | 95.414 | ||
| 6 | 0.275 | 4.586 | 100.000 |
Extraction Method: Principal Component Analysis. Rotation Method: Varimax with Kaiser Normalization.
| Item | 1 | 2 |
|---|---|---|
| p1 | 0.895 | −0.009 |
| p2 | 0.867 | −0.028 |
| p3 | 0.866 | −0.015 |
| t1 | −0.077 | 0.849 |
| t2 | 0.083 | 0.830 |
| t3 | −0.054 | 0.788 |
Rotation converged in 2 iterations.
| Item | 1 | 2 |
|---|---|---|
| p1 | 0.386 | 0.012 |
| p2 | 0.374 | 0.002 |
| p3 | 0.374 | 0.008 |
| t1 | −0.018 | 0.417 |
| t2 | 0.051 | 0.411 |
| t3 | −0.009 | 0.387 |
Regression method (FACTOR /SAVE REG). Scores are the standardised items times these coefficients.
How to read it
KMO = 0.686 and Bartlett's test (χ² = 311.6, df = 15, p < .001) say the correlations are worth factoring. 2 components have eigenvalues above 1 and together explain 72.5% of the variance. After varimax rotation the price items and the trust items load on separate components, recovering the two traits that generated the data. Save factor scores adds the regression scores to the data as FAC1_1 and FAC2_1, computed from the coefficients in the last table.
Output tables explained
- KMO and Bartlett's Test
- The Kaiser-Meyer-Olkin measure of sampling adequacy and Bartlett's test of sphericity; KMO above about 0.6 and a small p mean factoring is worthwhile.
- Communalities
- Initial and extraction communalities: the share of each variable's variance reproduced by the retained factors.
- Total Variance Explained
- Initial eigenvalues with % of variance and cumulative %, then extraction and rotation sums of squared loadings for the retained factors.
- Scree Plot
- Eigenvalues against component number; keep the factors above the elbow.
- Component Matrix / Factor Matrix
- Unrotated loadings of each variable on each retained component or factor.
- Rotated Component Matrix / Pattern and Structure Matrix
- Loadings after an orthogonal rotation, with the transformation matrix; oblique rotations give pattern and structure matrices and the factor correlation matrix.
- Goodness-of-fit Test
- For maximum likelihood only: a chi-square test of whether the chosen number of factors reproduces the correlations.
- Component / Factor Score Coefficient Matrix
- The weights that turn standardised items into factor scores for the chosen method; saved scores (FAC1_1, …) use exactly these coefficients.
Assumptions and notes
- Relationships among variables are roughly linear and the variables are measured on interval-like scales.
- Cases are complete on all variables (listwise deletion); principal axis and maximum likelihood need a positive-definite correlation matrix.
- Bartlett's test and the ML goodness-of-fit test assume multivariate normality and are withheld under a sampling weight.
How the results are validated
KMO, MSA, anti-image matrices and Bartlett's test match factor_analyzer 0.5.1 (within 1e-12, chi-square 1e-9); principal components match NumPy eigenvectors within 1e-10; SPSS-style principal axis iteration and varimax, quartimax, equamax and promax rotations match independent NumPy implementations within 1e-10; converged principal axis and oblimin agree with R psych 2.6.9 and GPArotation within 1e-6, and maximum likelihood within 1e-4. Saved factor scores match R psych::factor.scores (regression, Bartlett and Anderson–Rubin) within 1e-8 for principal components, 1e-5 for converged principal axis factoring and 1e-3 for maximum likelihood. Validation evidence
Questions
Principal components or factor analysis?
Principal components summarises all the variance and suits data reduction. Principal axis factoring and maximum likelihood model only the shared variance and suit finding latent constructs; maximum likelihood also gives a goodness-of-fit test.
How many factors should I keep?
Eigenvalues above 1 is the default rule, but check the scree plot and whether each factor is interpretable. You can switch Extract to a Fixed number of factors to compare solutions.
Orthogonal or oblique rotation?
If the underlying traits are likely to be correlated, as most attitudes are, use direct oblimin or promax and read the pattern matrix. Varimax keeps factors uncorrelated and is easier to report when that assumption is reasonable.
What does a Heywood case warning mean?
A communality estimate exceeded 1 during iteration, so the solution is improper. Extract fewer factors, drop a near-duplicate variable or switch to principal components.
Can I save factor scores as variables?
Yes. Choose the Score method and press Save factor scores after the run. The scores become FAC1_1, FAC2_1 and so on, appear in every table and procedure, are recorded in Data › Transform (where they can be undone) and recompute when the project is replayed on new data. In SPSS syntax, FACTOR … /SAVE REG(ALL) does the same.
Does the analysis run locally?
Yes. The correlation matrix, extraction and rotation are all computed in your browser.
Related procedures
- Reliability AnalysisRELIABILITY
- Categorical Principal Components (CATPCA)CATPCA
- Bivariate CorrelationsCORRELATIONS
- Multidimensional Scaling (PROXSCAL)PROXSCAL
- Correspondence AnalysisCORRESPONDENCE
- Free SPSS alternative: full coverage list
Run Factor Analysis on your own data
Open a .sav, CSV or Excel file. Everything runs in your browser; the file never leaves your device.
SPSS is a trademark of IBM Corp. Crosstabs is not affiliated with or endorsed by IBM.