The cumulative-logit analogue of ordinal_probit(): the same
Wright/Falconer/Dempster-Lerner threshold model for K-category ordinal
data with K >= 3, fitted on the latent (logistic) scale instead of the
probit scale. The latent variable representation is
\(y^* = \eta + \varepsilon\), with \(\varepsilon \sim
\text{Logistic}(0, 1)\) and the observed category \(y = k\) iff
\(\tau_{k-1} < y^* \le \tau_k\), using cutpoints \(\tau_0 =
-\infty\), \(\tau_1 = 0\) (fixed for identifiability), \(\tau_2,
\ldots, \tau_{K-1}\), \(\tau_K = +\infty\). A K-category trait
therefore estimates K - 2 free cutpoints, reconstructed and reported
via the SAME extract_cutpoints() convention as ordinal_probit().
Value
A family object with class c("ordinal_logit", "family").
The cutpoints are estimated as part of the model fit; recover them
with extract_cutpoints().
Details
Because the standard logistic distribution has variance
\(\pi^2 / 3\), the link-residual variance
\(\sigma^2_d = \pi^2 / 3\) exactly – the logit analogue of
ordinal_probit()'s \(\sigma^2_d = 1\). As with ordinal_probit(),
this fixes the ordinal liability scale; it does not by itself make
estimates directly comparable with an observed continuous response.
The K = 2 case reduces exactly to binomial(link = "logit"), the
logit analogue of the probit family's Hadfield (2015) eqn 10 reduction
(ordinal_probit() with K = 2 reduces to binomial(link = "probit")).
Use binomial() for binary outcomes and ordinal_logit() for K >= 3.
Not to be confused with cumulative_logit().
cumulative_logit() is an unrelated predictor-model family tag
consumed by impute_model(family = cumulative_logit()) for an ORDERED
CATEGORICAL missing covariate inside mi(); it declares no response
family and never appears in the top-level family = argument of
gllvmTMB(). ordinal_logit(), declared here, is a RESPONSE family
for gllvmTMB()'s family = argument, exactly parallel to
ordinal_probit(). Both happen to use a cumulative-logit cell
probability, but one models a missing predictor's marginal distribution
and the other models the observed multivariate response; they are not
interchangeable and share no code path.
Cross-engine note: GLLVModels.jl's ordinal family is a cumulative-logit
model, so ordinal_logit() is the gllvmTMB family that is directly
comparable to it on the link scale (unlike ordinal_probit(), which
differs by a factor of roughly \(\pi / \sqrt{3}\); see the
cross-engine note on ordinal_probit()).
The per-cell log-probability is floored at log(1e-300) only to avoid
-Inf from underflow; this does not change fits in the ordinary range.
References
Hadfield, J. D. (2015). Increasing the efficiency of MCMC for hierarchical phylogenetic models of categorical traits using reduced mixed models. Methods Ecol. Evol. 6:706-714. doi:10.1111/2041-210X.12354
See also
ordinal_probit() for the probit threshold family;
extract_cutpoints() to recover \(\tau_2, \ldots, \tau_{K-1}\)
after fitting; cumulative_logit() for the UNRELATED
missing-predictor family of the same name shape.
