IBM Support

Exploratory Factor Analysis with categorical variables



I need to run exploratory factor analysis for some categorical variables (on 0,1,2 likert scale). In the Factor procedure dialogs (Analyze->Dimension Reduction->Factor), I do not see an option for defining the variables as categorical. Do I need to set the Measure for each variable to 'Ordinal' in the Variable View of the Data Editor?

Resolving The Problem

The Factor procedure actually ignores the measurement scale of the variables as declared in the Measure column of the Variable view and treats the variables as if they are on an interval scale. (String variables are not accepted.) It is not uncommon for researchers to factor analyze ordinal variables as if they were interval scale variables, particularly as the number of levels for the variables increases, but this approach is controversial and prone to particular problems. One problem that arises with factor analysis of binary items (and could possibly affect 3-level items) is the appearance of 'difficulty' factors, i.e. factors based on items with similar distributions rather than similar content or skill similarities. The existence and definition of difficulty factors is also controversial. There is some discussion of noncontinuous variables in Gorsuch (1983, Chap. 14).

Gorsuch, R.L. (1983). Factor Analysis (2nd Ed.). Hillsdale NJ: Erlbaum.

The SPSS Categories Module has a procedure called CATPCA which is designed for principal component analysis of categorical variables. If you have the Categories module installed, you will find the CATPCA procedure in the menu system at
Analyze->Data Reduction->Optimal Scaling . In the initial Optimal Scaling dialog, click the radio buttons beside 'Some variable(s) not multiple nominal' (under 'Optimal Scaling Level') and 'One set' (under 'Number of Sets of Variables') and then click 'Define'. These steps will place you in the Categorical Principal Components (CATPCA) dialog. (If Categories is not installed, you will not see an 'Optimal Scaling' option under Analyze->Data Reduction.) There is a case study for CATPCA available in the Help menu of SPSS which includes two examples of running CATPCA analyses and interpreting output. In the Help menu, clicking Case Studies will open a browser. In the Contents tree on the left side of the browser, expand the section Case Studies, then Categories Option under Case Studies. Clicking the link for Categorical Principal Components Analysis will begin the case study for CATPCA. Also, three of the Categories module developers at Leiden University have published a book chapter on CATPCA which is available for free downloading from the publisher's web site (as one of 2 sample chapters). The chapter includes examples of CATPCA analysis and comparisons to related methods. The chapter is available at

and the citation is:

Meulman, J.J., Van Der Kooij, A.J., & Heiser, W.J. (2004). Principal components analysis with nonlinear optimal scaling transformations for ordinal and nominal data. In D. Kaplan (Ed.) "The Sage Handbook of Quantitative Methodology for the Social Sciences". Thousand Oaks CA: Sage. (Chap. 3, pp 49-70).

One approach to adapting factor analysis for ordinal variables is to use polychoric correlations, rather than the Pearson correlations that are used by SPSS Factor. SPSS does not have a built-in procedure for computing polychoric correlations, but there is an extension command (SPSSINC HETCOR) to print polychoric and polysrial correlations available in the SPSS Community for SPSS Statistics versions from 17.0 upwards. (Click the "Downloads for IBM SPSS Statistics" link, then the "Extension Commands" link under "Tools and Utilities". Look for the downloadable file in the list of extension commands there. This command calculates polyserial, polychoric, and Pearson correlations between variables with the type determined by the variable measurement levels. The package includes a dialog box interface for the procedure. Beginning with Version 19, this file is installed with R Essentials.. The Programmability Plug-ins and Essentials for SPSS Statistics versions 19 and above are available on the "Downloads for IBM SPSS Statistics" page. There may also be SPSS macros available on the internet to do this. See Technote 1479694 for instructions to read a correlation matrix in text format into SPSS and then analyze that matrix with the Factor procedure.

[{"Product":{"code":"SSLVMB","label":"IBM SPSS Statistics"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"Not Applicable","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Historical Number


Document Information

Modified date:
16 April 2020