SPSS command: SPSS CORRESPONDENCE

Correspondence analysis and perceptual maps in your browser

Correspondence analysis decomposes the chi-square association in a two-way table into a few dimensions and plots row and column categories on one map, so you can see which categories go together.

Free · No account · Files stay on your device · Updated 18 October 2026

What it tells you

Crosstabs runs the SPSS CORRESPONDENCE (ANACOR) procedure on your device, from two categorical variables or from a table of counts already stored in the data.

  • How much association the table holds (total inertia = χ² / N) and whether it is significant.
  • How many dimensions are needed: each dimension's singular value, inertia and proportion of inertia accounted for.
  • Where each row and column category sits on the map (scores) and how heavily it weighs (mass).
  • Which categories define each dimension (contribution of point to dimension) and how well each point is represented (contribution of dimension to point).

When to use it

Use it when

  • A crosstab with many rows or columns — brand by attribute, region by preferred product, age band by news source — that is too large to read cell by cell.
  • You already have an aggregated table of counts (one row per category, one column per category) rather than raw responses.
  • You need a brand or positioning map for a report and want the numbers behind it (masses, contributions, quality).

Use something else when

  • Three or more categorical variables at once: use multiple correspondence analysis.
  • You only need to test whether two variables are associated: the crosstab chi-square test answers that directly.
  • The table holds measurements or percentages rather than nonnegative counts or frequencies.
  • A tiny table (2 × 2 or 2 × k) has only one dimension, so a map adds little beyond the row and column profiles.

How to run it in Crosstabs

  1. 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.

  2. 02

    Choose Correspondence analysis

    In the Dimension reduction group, pick Correspondence analysis (CORRESPONDENCE).

  3. 03

    Set the Data source

    Under Data choose Two categorical variables and pick a Row variable and a Column variable (each with 2–40 categories), or choose Table stored in the data, tick the Columns of the table (nonnegative counts) and pick a variable for Row labels.

  4. 04

    Pick dimensions and normalization

    Set Dimensions in solution (default 2) and a Normalization method: Symmetrical, Principal, Row principal, Column principal, or Custom (q) with q between −1 (column principal) and 1 (row principal).

  5. 05

    Run and read the map

    Click Run correspondence analysis. With three or more dimensions, use Map dimensions to switch the pair of axes plotted; the map can be exported with its labels.

  6. 06

    Check weights and missing values

    A whole-number weight is used as a frequency weight; a fractional weight still builds the table but the significance is withheld. Cases missing either variable, and user-missing codes, are excluded.

Worked example

Computed by the Crosstabs engine from the synthetic data below when this page was built — not typed in.

Try with example data

Data

400 synthetic survey respondents, each with an age band (four groups) and a main news source (four channels). Younger groups were simulated to lean towards social media and older groups towards television and print; draws use a fixed seed, so every build cross-tabulates the same file.

Correspondence Table
Age bandNews sitesPrintSocial mediaTelevisionActive Margin
18–29308391289
30–44407301996
45–5938232528114
60+2828540101
Active Margin136669999400
Summary
DimensionSingular ValueInertiaChi SquareSig.Proportion accounted forCumulative
10.3920.15370.9450.945
20.0880.00780.0480.992
30.0350.00120.0081.000
Total0.162765.07<.0011.0001.000

9 degrees of freedom.

Overview Row Points
Age bandMassScore 1Score 2InertiaQuality
18–290.2230.751−0.3470.0520.996
30–440.2400.4370.4850.0231.000
45–590.285−0.136−0.1310.0030.758
60+0.253−0.924−0.0080.0850.997

Symmetrical normalization. Quality is the share of the point's inertia explained by the two retained dimensions.

Overview Column Points
News sourceMassScore 1Score 2InertiaQuality
News sites0.3400.1680.3180.0070.958
Print0.165−0.770−0.4490.0420.994
Social media0.2470.886−0.2600.0780.999
Television0.247−0.6040.1230.0360.984

Symmetrical normalization. Each dimension's sign is arbitrary; it is fixed so the largest column score is positive.

How to read it

The table shows a clear association (χ²(9) = 65.07, p < .001), with a total inertia of 0.163 (χ² divided by the 400 cases). Dimension 1 alone carries 94.5% of that inertia and the first two dimensions 99.2%, so the two-dimensional map summarizes the table with little loss. On dimension 1, 18–29 (score 0.75) sits on the same side as Social media (0.89), while 60+ (−0.92) sits with Print (−0.77): the first axis is an age gradient from digital to traditional news.

Output tables explained

Correspondence Table
The analysed counts (weighted if a weight is on) with the Active Margin of every row and column. Categories with a zero margin are left out and listed in a warning.
Summary
Singular value, inertia and proportion of inertia (accounted for and cumulative) per dimension, with the total chi-square, its degrees of freedom and significance.
Perceptual map: {rows} and {columns}
Row and column points on two dimensions, with axis titles showing each dimension's share of inertia. In a symmetrical map read directions from the origin, not row-to-column distances.
Overview Row Points
For each row category: mass, score in each dimension, inertia, the point's contribution to each dimension's inertia and each dimension's contribution to the point, with the total (quality).
Overview Column Points
The same statistics for column categories. Each dimension's sign is fixed so that the largest column score is positive.

Assumptions and notes

  • Cells are nonnegative counts or frequencies; every retained row and column needs a positive total.
  • The chi-square significance assumes independent observations and reasonably large expected counts; correspondence analysis itself is descriptive.
  • The map shows the dimensions you keep: check the cumulative proportion of inertia and each point's quality before interpreting positions.

How the results are validated

Reference values come from an independent numpy implementation of the SPSS CORRESPONDENCE formulas, cross-checked against R's ca package and Python's prince (largest difference about 1e-15). On three tables — the smoke data from ca, a random 6 × 5 and a wide 3 × 7 table — tests require singular values and inertias to agree within 1e-12, chi-square within 1e-9, masses, point inertias and contributions within 1e-10, and row and column scores under all four named normalizations within 1e-10. Validation evidence

Questions

Which normalization should I choose?

Symmetrical (the default) spreads inertia evenly and suits a joint map read by direction. Row principal is best when you want to compare row categories with each other, column principal for columns, and principal when you will interpret distances within rows and within columns but not between them.

Can I measure the distance between a row point and a column point?

Not in a symmetrical map. Read associations by direction: a row and a column category in the same direction from the origin, both far from it, are associated. Distances are only meaningful among points of the same set under the matching principal normalization.

How many dimensions should I keep?

Look at the Summary table: keep the dimensions that together account for most of the inertia, usually two for a map. A table with r rows and c columns has at most min(r, c) − 1 dimensions.

My data is already a table of counts. Do I need raw cases?

No. Choose Table stored in the data, tick the count columns and pick the variable that holds the row labels; each data row becomes a table row.

Why is the significance missing?

Your weight variable has fractional values, so it is not a frequency weight and ordinary chi-square inference would be wrong. The map and inertias are still shown; use the complex-samples procedures for design-based tests.

Run Correspondence Analysis on your own data

Open a .sav, CSV or Excel file. Everything runs in your browser; the file never leaves your device.

Open the workspace

SPSS is a trademark of IBM Corp. Crosstabs is not affiliated with or endorsed by IBM.