Ordinal Logistic Regression in R – How to Use with Random Effects

lme4-nlmelogisticordered-logitpolrr

In my study I will be measuring workload with several metrics. With heart-rate variability (HRV), electrodermal activity (EDA) and with a subjective scale (IWS). After normalization the IWS has three values:

  1. Workload lower than normal
  2. Workload is average
  3. Workload is higher than normal.

I want to see how well the physiological measures can predict subjective workload.

Therefore I want to use ratio data to predict ordinal values. According to: How do I run Ordinal Logistic Regression analysis in R with both numerical / categorical values? this is easily done by using the MASS:polr function.

However, I also want to account for random effects such as between-subject differences, gender, smoking etc. Looking at this tutorial, I don't see how I can add random effects to MASS:polr. Alternatively lme4:glmer would then be an option, but this function only allows the prediction of binary data.

Is it possible to add random effects to an ordinal logistic regression?

Best Answer

In principle you can make the machinery of any logistic mixed model software perform ordinal logistic regression by expanding the ordinal response variable into a series of binary contrasts between successive levels (e.g. see Dobson and Barnett Introduction to Generalized Linear Models section 8.4.6). However, this is a pain, and luckily there are a few options in R:

The latter two options are implemented within Bayesian MCMC frameworks. As far as I know, all of the functions quoted (with the exception of ordinal::clmm2) can handle multiple random effects (intercepts, slopes, etc.); most of them (maybe not MCMCglmm?) can handle choices of link function (logit, probit, etc.).

(If I have time I will come back and revise this answer with a worked example of setting up ordinal models from scratch using lme4)