I'm trying to run a regression on Likert (1-5) data. My dependent variable $Y$ is customer satisfaction and the 10 independent variables are ratings of various attributes (price, ease of use, etc.). The data come from a survey. The problem is, everyone is either satisfied (300/800) or very satisfied (450/800), making the data extremely left-skewed. The $X$'s also more or less behave like that.

The results of the regression seem sensible, but I keep wondering if it's justified to run in on data like that. I know that linear regression only requires that the residuals be normally distributed (which they are), but I thought skewness messes with OLS (I'm doing this in R with the lm function, perhaps it automatically takes care of that?)

I don't think it makes sense to apply any transformations to an ordinal scale like that, but I feel uneasy about my results and am wondering how they could be improved? I'd like to stick to a linear model if possible, because that's what I'm most familiar with. What should I look into? Any suggestions or references are welcome.

If a linear model is really not salvageable, I'm guessing I should try some kind of ordinal regression - would be grateful for any advice on the best way to go about that in R.

EDIT: I should add that I'm mostly interested in qualitative results, i.e. which attributes are significant and how they roughly rank.

  • 1
    $\begingroup$ +1. Ultimately, perhaps the best resolution is to use a much finer scale of customer satisfaction. $\endgroup$
    – whuber
    Apr 13, 2018 at 16:07
  • $\begingroup$ How was customer satisfaction measured? What sample was taken? What is the goal of this regression? $\endgroup$
    – Peter Flom
    Apr 13, 2018 at 16:21
  • 1
    $\begingroup$ ¿Have you thought about an ordinal regression model? $\endgroup$
    – Gregg H
    Apr 13, 2018 at 21:01
  • $\begingroup$ The ordinal package makes ordinal regression relatively easy in R. There are a few tricks, tho, so make sure you find a good example. In general, read the package documentation and vignettes; they are pretty good. One important thing is that the dependent variable has to be an ordered factor. car::Anova can be used, but only with the RVAideMemoire package, and the packages have to called in order. emmeans can be used for group separations. There are tests of assumptions with the nominal_test and scale_test functions. $\endgroup$ Apr 13, 2018 at 22:01
  • $\begingroup$ @PeterFlom It was a survey. Each respondent rated their satisfaction with their provider, and also how the provider ranks in 10 categories (price, ease of use, etc.) on a scale of 1-5. The goal is to figure out the most relevant drivers of customer satisfaction. The sample consists of 800 respondents from 4 countries, i.e. 200 per country. $\endgroup$ Apr 14, 2018 at 17:02

1 Answer 1


In a comment, the OP SpineFeast said that this was a survey, with 200 people from each of 4 countries and that the goal is to find out drivers of satisfaction.

The first thing I'd be concerned about is the sample. People who respond to satisfaction surveys tend not to be representative of the overall population of users - they tend to be at the extremes of satisfaction rather than in the middle. What efforts were made to get people to respond? What efforts were made to assess how similar they are to the general user population? This problem may not be solvable.

I might possibly be concerned with non-independent errors, if the product (whatever it is) is different in different countries, or if people in a particular country would tend to be more similar than people across countries. This would lead me to look at a multilevel model.

Then I would think about the ordinal nature of the DV. It's good that the residuals are normal, but linear regression also assumes that the response is continuous. This might be reasonable and it might not. It's hard to say without substantive knowledge of what you are doing the survey about and whether there were anchor points or descriptions of the five levels (e.g. "Very satisfied" and so on).

I'd certainly try an ordinal logistic regression, possibly a multilevel version. But I might also try other things.

And if important business decisions are going to be made based on this analysis, I might hire a consultant to help.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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