Cluster analysis of ordinal variables (Likert scale) I want to do clustering of my data in R, using kmeans or hclust (I am a new R user).
My data is ordinal, Likert scale, to measure the causes of cost escalation. I have 41 causes "variables" that scaled from 1 to 5 (1: no effect, 5: major effect). I have about 160 observations "who rate the causes".
I would like to cluster the variables (the columns, not the rows) in terms of similarity of occurrence in observations, but I don't know how to start.
Do I have to convert the scale to percentage or z-score before clustering?
My data is available and shared as a Google Drive spreadsheet.
 A: You are trying to determine an appropriate distance measure, and clearly you are noticing how tricky this can be. 
Ordinal data is not interval data. You should consider:


*

*whether the distance between each category is the same (is the distance between 2 and 3 the same as the distance between 3 and 4?) 

*whether special consideration needs to be given to the neutral/null category (in your case, 1: no effect). 

*whether several of your causes variables need to be considered together. For example, you may decide to sum 2 related variables together and treat them as one (derivative) variable for purposes of clustering. 


These considerations have psychological roots. For example, people tend to give more weight to the difference between options at the ends of the scale than in the middle. 
You may decide on an approach based on these considerations that involves: 
 - cleaning the data
 - transforming the current scale into one in Euclidean space. 
... or, you may decide this is not necessary for your purposes.
Existing research that uses the Likert scale often utilizes distance measures based on Cosine distance and Pearson Correlation. 
You may find the following useful: 


*

*Under what conditions should Likert scales be used as ordinal or interval data?

*https://news.ycombinator.com/item?id=2423313
A: I am not sure about the amount of data you need to fit the a model, but you are asking for a common usage of Factor Analysis. Check this page of Quick-R that will help you to deal with some initials examples on how to map your questions to a latent space. You can use it to see the relations among similar questions that will be loaded in the same factors
http://www.statmethods.net/advstats/factor.html
The previous technique is part of Exploratory Factor Analysis. I am not an expert, but summarizing what the link I mentioned says, for Confirmatory Factor Analysis you would try Structural Equation Modelling, which you can try with R via the sem package 
http://socserv.mcmaster.ca/jfox/Misc/sem/SEM-paper.pdf
Good luck.
A: You need multiple correspondence analysis (MCA). Check out this article: https://datascienceplus.com/using-mca-and-variable-clustering-in-r-for-insights-in-customer-attrition/
