SPSS command: SPSS CATPCA
Categorical principal components analysis (CATPCA)
Categorical principal components analysis is PCA for variables that are not interval: it assigns optimal numeric values to the categories of nominal and ordinal items while extracting components.
Free · No account · Files stay on your device · Updated 18 October 2026
What it tells you
Crosstabs runs the SPSS CATPCA procedure in your browser by alternating least squares, with nominal, ordinal and numeric scaling levels per variable.
- How much variance of the optimally scaled variables each component accounts for, with eigenvalues and Cronbach's alpha.
- How strongly each variable is associated with each component (component loadings).
- The numeric value each category receives (quantifications), which shows whether the steps between rating points are really equal.
When to use it
Use it when
- Likert-type or 0–10 rating items where you doubt that the distance between adjacent points is equal.
- A mix of nominal (plan, region), ordinal (agreement) and numeric (counts) variables that should be summarized together.
- Building a small number of index scores from survey items with nonlinear relationships.
Use something else when
- All variables are continuous and roughly linear: ordinary factor analysis or PCA is simpler and gives rotation options.
- Every variable is nominal: multiple correspondence analysis is the special case designed for that.
- You need spline scaling levels, rotation, supplementary variables or passive missing-value imputation: these are not in the panel.
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 Categorical principal components
In the Dimension reduction group, pick Categorical principal components (CATPCA).
- 03
Give each variable a scaling level
Under Analysis variables and their scaling levels, set at least two variables (2–40 categories each) to Nominal, Ordinal or Numeric; leave the rest on Not used. The first five eligible variables start switched on, text variables as nominal and numeric codes as ordinal.
- 04
Set the number of dimensions
Choose Dimensions in solution (default 2).
- 05
Run and read the output
Click Run categorical principal components. Cases with a missing value on any analysis variable are excluded listwise; a weight acts as a replication weight.
Worked example
Computed by the Crosstabs engine from the synthetic data below when this page was built — not typed in.
Data
200 synthetic customers answering five survey items: satisfaction (1–5), likelihood to recommend (0–10), waiting-time complaint (1–4), price fairness (1–5) and plan (Basic, Family, Business). Two hidden factors — service quality and perceived value — generate the answers through uneven category cut-points, so the items are ordinal rather than interval. Analysis levels: the four ratings Ordinal, plan Nominal; seed fixed.
| Dimension | Cronbach's Alpha | Total (Eigenvalue) | % of Variance |
|---|---|---|---|
| 1 | 0.734 | 2.421 | 48.42 |
| 2 | 0.513 | 1.697 | 33.94 |
| Total | 0.946 | 4.118 | 82.37 |
200 cases used; variable principal normalization; 26 iterations.
| Variable | Scaling level | Dimension 1 | Dimension 2 |
|---|---|---|---|
| satisfaction | Ordinal | 0.921 | −0.044 |
| recommend | Ordinal | 0.896 | −0.055 |
| waiting | Ordinal | −0.861 | 0.132 |
| fairPrice | Ordinal | 0.156 | 0.910 |
| plan | Nominal | 0.066 | 0.920 |
| Category | Frequency | Quantification |
|---|---|---|
| Basic | 47 | −1.250 |
| Business | 38 | 1.818 |
| Family | 115 | −0.090 |
Optimal scaling level: Nominal.
How to read it
Two components account for 82.4% of the variance of the optimally scaled variables (dimension 1 48.4%, dimension 2 33.9%). Satisfaction (0.92), recommendation (0.90) and the waiting-time complaint (−0.86) load on the first dimension, while price fairness (0.91) and plan (0.92) define the second — the two hidden factors are recovered. Because plan is nominal, its categories receive free quantifications rather than the codes 1–3.
Output tables explained
- Model Summary
- Cronbach's alpha, total (eigenvalue) and % of variance for each dimension and in total, with the cases used and excluded.
- Component Loadings
- Correlations between each quantified variable and each dimension, shown as a table and as a loading plot of dimensions 1 and 2.
- Quantifications: {variable}
- One table per variable with each category's frequency and the numeric value assigned to it under the chosen scaling level.
Assumptions and notes
- The scaling level matches what you are willing to assume: nominal frees the category values, ordinal keeps their order, numeric keeps their spacing.
- Each analysis variable has at least two categories among the complete cases, and rare categories are merged so they do not dominate.
- Solutions use variable principal normalization; loadings and quantifications are descriptive, with no significance tests.
How the results are validated
Reference values come from an independent numpy implementation of the SPSS CATPCA alternating-least-squares scheme. Its eigenvalues match numpy PCA on all-numeric data (difference about 4e-16) and agree with R Gifi::princals within about 2e-5 on mixed data. Tests on a numeric and a mixed nominal/ordinal/numeric dataset require eigenvalues within 1e-9, Cronbach's alpha within 1e-8, loadings and quantifications within 1e-5 and object scores within 1e-4. Validation evidence
Questions
How is CATPCA different from ordinary PCA?
Ordinary PCA treats the category codes 1, 2, 3 … as equally spaced numbers. CATPCA estimates the best values for those categories at the same time as the components; with every variable set to Numeric the two give the same eigenvalues.
Which scaling level should I pick for a 5-point Likert item?
Ordinal is the usual choice: it keeps the order of the answers but lets the distances between them differ. Check the quantifications — if they come out roughly equally spaced, a numeric level would have done as well.
What does Cronbach's alpha mean here?
It is the internal consistency of the component scores, computed from each dimension's eigenvalue and the number of variables. A high alpha for dimension 1 means the quantified variables measure one common thing.
Why are cases with missing values dropped?
The panel excludes cases listwise, as noted under the Model Summary. SPSS's default imputes missing values passively, so results can differ when data are incomplete; compare the case counts.
Related procedures
- Factor AnalysisFACTOR
- Multiple Correspondence AnalysisMULTIPLE CORRESPONDENCE
- Categorical Regression (CATREG)CATREG
- Reliability AnalysisRELIABILITY
- Multidimensional Scaling (PROXSCAL)PROXSCAL
- Free SPSS alternative: full coverage list
Run Categorical Principal Components (CATPCA) 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.