I am using CLMM to run the ordinal mixed logistic regression model as the DV is ordinal number from 1 to 9 (rating scale). First I read the file and change the DV into ordinal using these commands:

> data1.frame <- read.delim("happy.txt", fileEncoding="UTF-16")
> data1.frame$response <- ordered(data1.frame$response)

Then I run CLMM function:

> mm1 <- clmm (response ~ group + (1|listeners),data=data1.frame)

And because I have three groups and I would like to see all pair contrasts, I run Tukey's pairwise comparison:

> lsmeans(mm1, pairwise~group, adjust="tukey")
 group        lsmean        SE df asymp.LCL asymp.UCL
 english -0.63348352 0.4555165 NA -1.526388 0.2594206
 L2      -0.01566743 0.4424304 NA -0.882920 0.8515852
 thai    -0.39563590 0.4546666 NA -1.286874 0.4956022

Confidence level used: 0.95 

 contrast         estimate        SE df   z.ratio p.value
 english - L2   -0.6178161 0.1564433 NA -3.949137  0.0002
 english - thai -0.2378476 0.1873555 NA -1.269499  0.4125
 L2 - thai       0.3799685 0.1538963 NA  2.468991  0.0362

P value adjustment: tukey method for a family of 3 means 

However, as you can see, in the 'lsmean' column, the mean of each group change into minus zero instead of something from 1 to 9. My question is: is this common when I change the DV from 1 to 9 into ordinal numbers?

If yes, it seems like when plotting the graph, I have to use the actual means of each group, rather than relying on the means provided by this pairwise comparison.


The default output from lsmeans is on the latent-variable scale -- a bit hard to explain but one way to think of it is that the common model involves a linear predictor for the logit of the cumulative probabilities, and the latent value is the average of that linear prediction of each grid value across cut points.

If you want the predicted average class number on the 1-9 scale, it's easy to get:

lsmeans(..., mode = "mean.class")

For more details, see ? models with lsmeans loaded.

  • $\begingroup$ Hi rvl, I have used this command 'lsmeans(mm1, pairwise~group, adjust="tukey", mode = "mean.class")' as suggested, but get this message: ''Error in match.arg(mode) : 'arg' should be one of “latent”, “linear.predictor”, “cum.prob”, “prob”" $\endgroup$ – user3288202 Jul 28 '15 at 7:29
  • 1
    $\begingroup$ You have an old version of lsmeans. Update it. $\endgroup$ – Russ Lenth Jul 28 '15 at 13:05
  • $\begingroup$ Yeah!!! It works this time after updating. Thank you so so much rvl. You have made my day! $\endgroup$ – user3288202 Jul 29 '15 at 7:24

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.