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!
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It only takes a minute to sign up.
Sign up to join this communityIf 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!
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.
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.
grm
function in package ltm
is the best one for a mix of variables with different levels
$\endgroup$
Feb 7, 2012 at 10:33