Proportional odds ordinal model

I’m trying to relearn ordinal models after many years of not using them. As always, I found @bgoodri 's class the best way of doing this. Thanks Ben for making it available!

Ben writes the model as follows:

\begin{align*} \forall n : &\ y_n \equiv \begin{cases} 1 &\text{if } y_n^\star \lt \zeta_1 \\ 2 &\text{if } \zeta_1 \le y_n^\star \le \zeta_2\\ \vdots \\ J &\text{if } y_n^\star > \zeta_{J-1}\\ \end{cases} \\ \forall j: &\ \zeta_j \sim \mathcal{N}(m_j, s_k) \\ \forall n: &\ y_n^\star \equiv \eta_n + \epsilon_n \\ \forall n: &\ \epsilon_n \sim \mathcal{N}(0,1) \\ \forall n: &\ \eta_n \equiv \sum_{k=1}^K \beta_k (x_{nk} - \bar x_k) \\ \forall k: &\ \beta_k \sim \mathcal{N}(m_k, s_k) \\ \end{align*}

I’m having some troubles understanding what brms does differently, and why. These are my questions about the brms code:

  1. in the data block brms defines K and Kc. Why would the number of covariates change after centering them??
  2. In the transformed parameters block brms define real disc = 1; What is that parameter in the math notation above? I see that brms uses it in the cumulative_probit_lpmf function, but I’m confused about the fact that i don’t see it anywhere in the math notation.
  3. brms has lprior += student_t_lpdf(zeta | 3, 0, 2.5); in the transformed parameters block. If I want to implement the model as described by the math above, I should replace that with the following in the model block?
model{
...
 for (j in 1:J) {
    zeta[j] ~ normal(m[j], s[j]);
  }
...
}

??

Thanks a lot for the help!