I have some data with 200+ variables/columns (30% numerical, 30% Likert 1-5 scale and 40% Likert 1-10 scale). I want to do principal component analysis (PCA) in R. I think I should scale the data before calling psych::principal.

My questions:

  1. Is it correct to scale the data having both numerical and categorical variables?

  2. Does scaling of categorical variables make sense?

I believe the answer is NO for both questions.

  • $\begingroup$ Likert scale variables are not categorical! They are ordinal. $\endgroup$ – amoeba Oct 1 '15 at 19:15
  • $\begingroup$ Though we often assume even further that they are interval. $\endgroup$ – jlimahaverford Oct 1 '15 at 19:22

PCA unfortunately only makes sense with numerical data. For instance, if you have a variable that can take the values {'car', 'train', 'boat'}, it will be difficult to do arithmetic with them. If we replace them with $\{0, 1, 2\}$, we can do arithmetic, but that arithmetic will really not achieve what we want, because we'll be treating these labels like real numbers. As if (train + train = boat), or even train being closer to car than boat is. However we have another option, to create dummy variables, one variable for each value that this categorical variable can take, setting them equal to 1 or 0 accordingly.

(Note: some people would use one less variable than the number of values, letting all 0 indicate the remaining variable, but geometrically this is troubling because the all-zero-variable is closer to all the other variables than they are to eachother, so I would not do that with PCA).

These values can be rescaled and PCA can be applied. It may not be ideal, but at least it's not crazy!


I had not noticed the word Likert in your post some how. Likert scales are ordinal, rather than categorical variables. In fact, typically one assumes Likert scales are interval, essentially meaning that the difference between 1 and 2 is the same as the difference between 4 and 5. Because of this scale absolutely makes sense! I have changed your title to use the word "ordinal" rather than "categorical."

  • $\begingroup$ These are valid points, but note that the OP is asking about variables on the Likert scale, which means they are ordinal and not really "categorical" (even though @Shiv called them like that). Arguable treating Likert scale variables like usual numerical variables would make some sense. Perhaps you want to expand your answer to discuss that? $\endgroup$ – amoeba Oct 1 '15 at 18:48
  • 1
    $\begingroup$ @amoeba thanks a lot. I hadn't seen that. Since he used the word categorical, my brain kicked into speed. I am going to edit the title. $\endgroup$ – jlimahaverford Oct 1 '15 at 19:03
  • $\begingroup$ Thank you @jlimahaverford and amoeba. To summarize my understanding, scaling of Ordinal may make sense but not necessarily Categorical $\endgroup$ – Shiv Oct 2 '15 at 5:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.