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:
- in the data block brms defines
K
andKc
. Why would the number of covariates change after centering them?? - 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 thecumulative_probit_lpmf
function, but I’m confused about the fact that i don’t see it anywhere in the math notation. - 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!