I’m fitting an ordinal model with family = cumulative(probit). I’d like the discrimination parameter \alpha to vary across groups (i.e., people in my data) using a hierarchical approach. In your ordinal tutorial (section 3.1.2), you point out how, when using a single-level approach, it’s important to fix the reference group using a combination of the 0 + … syntax and cmc = FALSE. Is that necessary when modeling \alpha with a hierarchical structure?
I put this here because this is a simplified version of a fuller IRT model where multiple Likert-type items are modeled hierarchically (as opposed to within a multivariate model as explored above). Thus, a fuller version of the formula syntax I’d like to use would be something like
I see that code like that also returns a population-level effect for disc_Intercept. My concern is that I was under the impression that I’d want the grand mean to stay fixed at \alpha = 1 when using the family = cumulative(probit).
If you assume the thresholds to be the same across items, then disc can have an intercept. But it may be more sensible to model varying thresholds across items. See ?resp_thres for how to achieve this (requires brms >= 2.11.0).
Thank you, @paul.buerkner. This is helpful. Simplifying for a moment, the formula bf(y | thres(3, gr = item) ~ 1 + (1 | item) + (1 | id)) gives me thresholds varying by item in a fixed-effect way, which is a big improvement from holding them equal. Is there a way to use thres() to partially pool across item?
Not with the cumulative family due to the order requirements of the thresholds. Other ordinal families support that via adding a (cs(1) | item). Note that I don’t like the current category specific (cs) syntax for varying effects and might change them to cs(1 | item) at some point.
A new paper by (http://dx.doi.org/10.23668/psycharchives.2725) proposes partially pooled thresholds for the cumulative family and a generalization of this method may find its way into brms eventually.