Restricting model parameters in cumulative logit model (or any ordinal model) Imagine a model where the linear predictor of the cumulative response probabilities are equal to:
$$y = b_0 + b_1x_1 + b_2x_2 + b_3x_1z_1 + b_4x_2z_1$$
Where $x_1$ and $x_2$ represent a 3 level categorical independent variable, and $z_1$ represents a dummy variable. $y$ is a 4 level ordinal outcome variable. I want $\dfrac{b_3}{b_1}$ to be equal to $\dfrac{b_4}{b_2}$. Is there a way to use GLM but specify this constraint?
 A: If the intercepts/thresholds should also change by the same factor, one can accomodate this is in a heteroscedastic model.
The usual motivation for a cumulative logit or probit model is that there is a latent logistic or normal variable $y^*$ with mean $\mu$ and constant variance (because the absolute scale is not identified):
$$
\begin{align}
  y^* & = \mathcal{L}(\mu, \sigma) \\
  \mu & = x^\top \beta \\
  \sigma & = 1
\end{align}
$$
And the observed variable $y$ then codes into which interval $(\alpha_{j-1}, \alpha_j)$ the latent variable falls. Consequently, the cumulative probability up to category $j$ is:
$$
\begin{align}
  \mathrm{Prob}(y ~\le~ j ~|~ x)
    & = \mathrm{Prob}(y^* ~\le~ \alpha_j ~|~ x) \\
    & = \Lambda(\alpha_j - x^\top \beta).
\end{align}
$$
And although the absolute scale is not identified, it is possible identify scale differences. In the equation above one can replace
$$
\begin{align}
  \log(\sigma) & = z^\top \gamma
\end{align}
$$
where $z$ must not contain an intercept for identifiability. In your case you would have $z \in \{0, 1\}$ and consequently $\sigma_0 = 1$ and $\sigma_1 = \exp(\gamma)$. The cumulative probability would be as above for group $z = 0$. And for $z = 1$ we would have
$$
\begin{align}
  \Lambda\left(\frac{\alpha_j ~-~ x^\top \beta}{\exp(\gamma)}\right)
    & = \Lambda(\alpha_j^* - x^\top \beta^*)
\end{align}
$$
Thus, this is a cumulative logit model as above but with $\alpha_j^* = \alpha_j/\exp(\gamma)$ and $\beta^* = \beta/\exp(\gamma)$.
Consequently, all slopes just differ by a multiplicative factor between the two groups: $\beta / \beta^* = \exp(\gamma)$. The same holds for the intercepts/thresholds $\alpha / \alpha^* = \exp(\gamma)$.
In R, this kind of cumulative link models can be fitted with function clm() from package ordinal. Furthermore, the glmx package provides function hetglm() that can fit GLMs with such a heteroscedastic scaling term.
