SPSS command: SPSS MULTIPLE CORRESPONDENCE
Multiple correspondence analysis of survey categories
Multiple correspondence analysis (homogeneity analysis) places the categories of several nominal variables in one low-dimensional space, so categories chosen by the same respondents land close together.
Free · No account · Files stay on your device · Updated 18 October 2026
What it tells you
Crosstabs runs the SPSS MULTIPLE CORRESPONDENCE (HOMALS) procedure in your browser, with passive or listwise missing values and four normalizations.
- How much of the variation in the categorical data each dimension captures, with its eigenvalue and Cronbach's alpha.
- Which variables drive each dimension (discrimination measures) and which barely matter.
- Where every category sits, its frequency, mass and how well it is represented.
- A score for every respondent on each dimension, ready to download for segmentation or further modelling.
When to use it
Use it when
- Three or more nominal variables — plan type, channel, region, usage band — whose joint pattern you want to see.
- Exploring a survey before clustering: object scores give each respondent continuous coordinates.
- Some answers are missing and you want respondents to keep contributing through the questions they did answer (passive missing values).
Use something else when
- Exactly two variables: simple correspondence analysis gives the classic row-and-column map and a chi-square test.
- Ordinal or numeric variables whose order should be respected: use categorical principal components (CATPCA).
- Variables with dozens of rare categories: merge sparse categories first, or they dominate the solution (the panel lists variables with 2–30 categories).
How to run it in Crosstabs
- 01
Open your data
Open a .sav, CSV or Excel file in the workspace and switch to Statistics mode. The file is read in your browser.
- 02
Choose Multiple correspondence analysis
In the Dimension reduction group, pick Multiple correspondence analysis (MULTIPLE CORRESPONDENCE).
- 03
Tick the analysis variables
Under Analysis variables (nominal), tick at least two variables; every one is treated as nominal.
- 04
Set dimensions, normalization and missing values
Choose Dimensions in solution (default 2), a Normalization method (Variable principal, Object principal, Symmetrical or Independent) and Missing values: Passive (exclude from that variable) or Exclude cases listwise.
- 05
Run and explore the joint plot
Click Run multiple correspondence analysis. Tick Show object points to overlay respondents on the Joint Plot of Category Points.
- 06
Export scores
Use Download all object scores to save every respondent's dimension scores as CSV; the on-screen table shows the first 25 cases.
Worked example
Computed by the Crosstabs engine from the synthetic data below when this page was built — not typed in.
Data
150 synthetic subscribers described by four nominal variables: plan, purchase channel, tenure and region. Three hidden segments drive plan, channel and tenure (a Basic–Store–new segment, a Plus–Web–mid segment and a Premium–App–long-tenure segment); region is pure noise. A fixed seed makes the file identical on every build.
| Dimension | Cronbach's Alpha | Total (Eigenvalue) | Inertia | % of Variance |
|---|---|---|---|---|
| 1 | 0.643 | 1.933 | 0.483 | 48.32 |
| 2 | 0.540 | 1.680 | 0.420 | 42.00 |
| Total | 3.613 | 0.903 | ||
| Mean | 0.595 | 1.807 | 0.452 | 45.16 |
Mean Cronbach's Alpha is based on the mean eigenvalue.
| Variable | Dimension 1 | Dimension 2 | Mean |
|---|---|---|---|
| plan | 0.632 | 0.458 | 0.545 |
| channel | 0.538 | 0.642 | 0.590 |
| tenure | 0.535 | 0.480 | 0.507 |
| region | 0.228 | 0.101 | 0.165 |
| Active Total | 1.933 | 1.680 | 1.807 |
| Category | Frequency | Coordinate 1 | Coordinate 2 |
|---|---|---|---|
| Basic | 49 | −0.891 | −0.740 |
| Plus | 49 | 1.056 | −0.191 |
| Premium | 52 | −0.155 | 0.878 |
Variable principal normalization: category points are centroids of the object scores.
How to read it
Dimension 1 explains 48.3% of the variance (eigenvalue 1.933, Cronbach's α 0.643) and dimension 2 a further 42.0%. Plan has the largest discrimination measure on dimension 1 (0.632), so it separates the segments best, while region has the smallest mean discrimination (0.165): the analysis correctly treats it as unrelated to the others. The plan category points show where each plan sits on the map; categories close together are chosen by the same subscribers.
Output tables explained
- Case Processing Summary
- Valid active cases, weighted valid cases when a weight is on, and excluded cases, with a note on how missing values were handled.
- Model Summary
- Cronbach's alpha, total (eigenvalue), inertia and % of variance per dimension, plus the total and the mean across dimensions.
- Discrimination Measures
- The variance of each variable's category quantifications on each dimension; a large value means the variable separates respondents along that dimension.
- Category Points: {variable}
- One table per variable with each category's frequency, mass, inertia, coordinates and contributions in both directions.
- Joint Plot of Category Points
- All categories on dimensions 1 and 2; categories close together tend to be chosen by the same respondents.
- Object Scores
- Each case's score per dimension with its mass and inertia; the CSV download contains every case.
Assumptions and notes
- Every analysis variable is nominal and has at least two observed categories.
- Categories with very few cases receive extreme coordinates; merge or drop them before interpreting the map.
- A weight is used as a replication weight for the category frequencies and quantifications.
How the results are validated
Reference values come from correspondence analysis of the indicator matrix in numpy, checked against R FactoMineR::MCA (agreement to about 1e-14), and, for passive missing values, from a direct implementation of the SPSS alternating-least-squares iteration. Tests on complete, frequency-weighted and passive-missing datasets require eigenvalues, Cronbach's alpha and discrimination measures to agree within 1e-10, and object scores, category coordinates and contributions within 1e-10 (1e-9 with passive missing values); object principal scores match FactoMineR within 1e-9. Validation evidence
Questions
What does a discrimination measure tell me?
It is the variance of a variable's category quantifications on a dimension — equivalently the squared correlation ratio (η²) of the object scores across that variable's categories. Values near 0 mean the variable plays no part in that dimension; the dimension's eigenvalue is the sum over variables.
Passive or listwise missing values?
Passive is the SPSS default: a respondent with one missing answer still contributes through the other variables, which keeps sample size. Listwise uses only complete cases and makes every variable rest on the same respondents.
Why are the percentages of variance so low?
With nominal indicator data the explained share per dimension is naturally modest. Judge the solution by whether the discrimination measures and category positions make substantive sense, not by a high percentage.
Which normalization should I use?
Variable principal (the default) places category points at the centroids of their respondents and is best for comparing categories. Object principal is best for comparing respondents; symmetrical and independent are compromises for a joint display.
Can I use the object scores in a cluster analysis?
Yes. Download all object scores as CSV, add them to your data and cluster on the dimensions — a common way to segment respondents described only by categorical answers.
Related procedures
- Correspondence AnalysisCORRESPONDENCE
- Categorical Principal Components (CATPCA)CATPCA
- TwoStep ClusterTWOSTEP CLUSTER
- K-Means ClusterQUICK CLUSTER
- Factor AnalysisFACTOR
- Free SPSS alternative: full coverage list
Run Multiple Correspondence 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.