Variables in factor analysis with different metrics/response categories

If my data has different response categories (i.e. a 3-category vs. 4-category ordinal data), can I use standard factor analysis procedures? Do I need to transform my data in any way before starting analysis?

Thank you!

2 Answers

One option is to use polychoric correlations for your ordinal data to develop a correlation matrix, and then use that correlation matrix as the basis for your factor analysis. Polychoric correlations are designed specifically for ordinal variables.

The R package polycor has a function to calculate polychoric correlations and factanal() can take a correlation matrix as its starting point.

• Good point. I totally forgot about polychoric corr when I was answering. It is the 3rd possibility. One inconvenience, though, that factor scores will not be able to compute because the correlation matrix looses its direct relation to the initial data. Feb 7, 2012 at 11:03

The fact that Likert variables differ in the number of levels doesn't pose a problem for FA, as long as the number of levels is greater than 2. However, if you are not ready to accept the variables as interval, and insist that they are ordinal, I see two possibilities for you. First one, to use nonlinear PCA, known as CATPCA, to transform your variables "optimally", so that you can treat them as interval and use in standard FA. Second one, to use IRT, known also as latent trait model, instead of FA. There exist a version of IRT specially for ordinal variables.

• as an addendum, the grm function in package ltm is the best one for a mix of variables with different levels Feb 7, 2012 at 10:33