# Ordinal Logical Regression in R using polr interpretation

I'm using the polr package to do a ordinal logistic regression on my data. We did a survey for university students asking them a bunch of questions. To analyse the results i want to do an ordinal logistic regression for the satisfaction with their living situation.

This is an overview of my variables:

Dependent variable:

• Satisfaction with their living situation (Ordinal). Levels: (Very) satisfied; neither, (Very) dissatisfied

Independent Variables:

• Type of Hosuing (Nominal). Levels: Shared flat, with parents, alone, with partner and/or children, student hall of residence, other
• Rent (numeric)
• Commuting time (numeric)

The summery of the regression is as follows:

    polr(formula = Satisfaction_category ~ Housing_ + Rent + Commuting_Time,
data = wohnen_english, Hess = TRUE)

Coefficients:
Value Std. Error t value
Housing_Shared Flat                 -0.4576984  0.1476243 -3.1004
Housing_With parents                -0.0695956  0.2031696 -0.3425
Housing_Alone                       -0.6447934  0.2300704 -2.8026
Housing_With parner and/or children -0.6181128  0.2085561 -2.9638
Housing_Student hall of residence    0.2524551  0.5477611  0.4609
Housing_Other                       -0.4506929  0.3711785 -1.2142
Rent                                -0.0003418  0.0002263 -1.5101
Commuting_Time                      -0.0024082  0.0026482 -0.9094

Intercepts:
Value    Std. Error t value
(Very) dissatisfied|(Very) satisfied  -2.4992   0.1921   -13.0083
(Very) satisfied|Neither               1.7141   0.1989     8.6171

Residual Deviance: 1751.174
AIC: 1771.174
(49 observations deleted due to missingness)


EDIT 1: This is the updated output the following has been changed:

• Independent Variable Satisfaction is now an ordered factor with (Very) dissatisfied < Neither < (Very satisfied)
• The Predictor variable "Housing" is now a factor wohnen_english$Housing_ <- factor(wohnen_english$Housing_)  --> This changed the number of levels of the Housing predictor in the regression model. "Shared flat" has disappeared.
polr(formula = Satisfaction_category ~ Housing_ + Rent + Commuting_Time,
data = Wohnen_english_clean, Hess = TRUE)

Coefficients:
Value Std. Error t value
Housing_With parents                -0.8871301  0.2148701 -4.1287
Housing_Alone                       -0.3660180  0.2595436 -1.4102
Housing_With parner and/or children -0.0409912  0.2446531 -0.1675
Housing_Student hall of residence    0.8844630  0.0126353 69.9992
Housing_Other                       -0.1635978  0.4694203 -0.3485
Rent                                -0.0002885  0.0002354 -1.2254
Commuting_Time                      -0.0064948  0.0023769 -2.7325

Intercepts:
Value    Std. Error t value
(Very) dissatisfied|Neither  -2.6118   0.2031   -12.8612
Neither|(Very) satisfied     -1.9759   0.1954   -10.1126

Residual Deviance: 1721.161
AIC: 1739.161
(50 observations deleted due to missingness)


I calculated the p value and combined them with the results and got the following table:

EDIT 2: Updated the table to the new regression model

EDIT 3: Ignore the old questions, new questions have arised:

New Questions:

• I can see which predictors are significant. but I'm not sure why the "Shared flat" level of the "Housing" variable has disappeared from the regression model. Do the predictor variables have to be specified somehow? (Have a certain type or scale that R needs to know about?)
• The outcome of the regression model heavily changes if "Housing" is not defined as a factor. Then the "Shared flat" level is part of the regression model, so I'm not sure which model is the correct one.

Old Questions that can be ignored for the moment below

To my question: I'm having trouble interpreting the results. I'm fairly sure that I used the correct statistical method, since me DV is ordinally scaled. But i don't really know what they mean. the p values indicate that only the Types of Housing "shared flat"; "with partner and/or children"and "alone" are significant. (alone almost with p = 0.0507).

How should the significant coefficients be interpreted?

• Are students in shared flats (coef = -0.46) more or less satisfied with their living situation? and how much more? same for Students living with partner (coef = - 0.62) and Students living alone (coef = - 0.64)
• Can the following be definetaly stated: The satisfaction with the student's living situation is NOT significantly influenced by rent (v_25_1), commuting time (v_26_1) and the other Types of Housing?

Furthermore:

• If i do an ordinal logical regression for Satisfaction ~ rent the p value is highly significant. I don't quite understand why the relationship between Satisfaction and the independent values changes based on the number of IVs in the regression?

It's imported that i correctly interpret these findings, and i don't want to claim something that is not true. Any advice how to interpret it?

## 2 Answers

One of the confusing things about ordinal logistic regression is that there are several different ways to model the odds ratio between the ordinal categories. I found Frank Harrell's book on regression modeling really helpful to understand this as well as this paper:

https://faculty.washington.edu/heagerty/Courses/b571/homework/Ananth-Kleinbaum-1997.pdf

The more common ordinal logistic regression models that I found in the literature were:

• Cumulative logit
• Proportional odds
• Partial proportional odds
• Non-proportional odds
• Continuation ratio
• Adjacent category
• Stereotype

I seem to recall that the vgam package in R had most (?all) of these models available.

http://users.stat.ufl.edu/~aa/ordinal/R_examples.pdf

Understanding the differences between these models will clear up interpretation of the ordinal regression output considerably.

Note # 1:

Can you edit your R output to use English names for your variables? For those of us who don't speak German, it's impossible to reconcile your explanations (which use English names for the variables) and your R output (which uses German names for the variables). Having English names for variables (and their categories) will make it more likely that you will receive an answer to your question. (My tablet won't let me add this as a comment, so I have to add it as an answer for now.)

Note #2:

Thank you for the edits. You are not quite ready to interpret your output because you missed out on an important step prior to fitting your ordinal logistic regression model: arranging the levels of your ordinal response variable - Satisfaction with their living situation - in a way that reflects their natural ordering.

Recall that you declared this variable to be:

Satisfaction with their living situation (Ordinal). Levels: (Very) satisfied; neither, (Very) dissatisfied

So its levels could be arranged, for example, from "low" to "high":

(Very) dissatisfied < Neither < (Very) satisfied


in which case you would expect to see something like this in your model summary output:

(Very) dissatisfied | Neither
Neither | (Very) satisfied


(Note that what you currently have in your output implies that your response categories are out of order.)

With the ordering suggested above, you will be modelling the following as a function of the predictor variables in your model:

1. Log odds of being (Very) dissatisfied versus being Neither or (Very) satisfied.

2. Log odds of being (Very) dissatisfied or Neither versus being (Very) satisfied.

The R command you need to order the levels of a response variable is the ordered() command. Something like this:

data$$response <- ordered(data$$response, c("low", "medium", "high"))


if the response variable has categories "low", "medium" and "high".

Once you re-order your response variable, you need to update your R output in your post above. Sorry for the extra homework! 😛

Note #3

How is your Housing variable represented in the data? Is it a variable with categories such as "Alone", "With partner and/or children", "Student hall of residence", etc. If yes, you will need to declare that variable as a factor in R prior to fitting your model:

Wohnen_english_clean$$Housing <- factor(Wohnen_english_clean$$Housing)


Note that R will arrange the levels of the Housing factor in alphabetical order:

levels(Wohnen_english_clean$Housing)  That is not always a good thing because it is an arbitrary arrangement. When R fits your model, it will set aside the first level of the factor: levels(Wohnen_english_clean$Housing)[1]


and create dummy variables for all other levels. This will allow you to compare the log odds of interest for the second level of Housing relative to the first level, controlling for the effects of the Rent and Commuting_Time; the log odds of interest for the third level of Housing relative to the first level, controlling for the effects of the Rent and Commuting_Time; etc.

The log odds of interest refer to (i) the log odds of being Very dissatisfied versus Neither or Very Satisfied and (ii) the log odds of being Very dissatisfied or Neither versus Very Satisfied.

If you don't like R's default choice of first (or reference) level for Housing, you can change it like this:

Wohnen_english_clean$$Housing <- relevel(Wohnen_english_clean$$Housing, ref = "Alone")

levels(Wohnen_english_clean\$Housing)

• Hey there, I changed it to english. Sorry for the inconvenience Commented Feb 18, 2021 at 20:19
• Thanks, Esteban! If I can, I will look at this tomorrow. If not, over the weekend. Commented Feb 19, 2021 at 4:32
• That's great, thank you:) Commented Feb 19, 2021 at 8:41
• Hey Isabella. Thank you already for the Tip! :) I did my homework and updated the regression model. The outcome variable is now ordered. Sadly I'm still confused about various things, see my Edits. Commented Feb 21, 2021 at 17:04
• See my last note in my response. Commented Feb 24, 2021 at 2:47