The Wright/Falconer/Dempster-Lerner threshold model for K-category ordinal data with K >= 3, fitted on the latent (probit) scale. The latent variable representation is \(y^* = \eta + \varepsilon\), with \(\varepsilon \sim N(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.
Value
A family object with class c("ordinal_probit", "family").
The cutpoints are estimated as part of the model fit; recover them
with extract_cutpoints().
Details
Because \(\varepsilon\) has unit variance by construction, the link-residual variance \(\sigma^2_d = 1\) exactly (no trigamma correction needed). This fixes the ordinal liability scale; it does not make an ordinal response directly comparable with an observed continuous response without an explicit scale definition. In the special two-component model containing only phylogenetic variance plus the unit probit residual, the liability-scale ratio is \(H^2 = \sigma^2_{\text{phy}} / (\sigma^2_{\text{phy}} + 1)\). Any additional fitted variance component belongs in the denominator, so do not use that shortcut for richer models.
Hadfield (2015) eqn 10 shows that the K = 2 case reduces exactly to
binomial(link = "probit"), so use binomial() for binary outcomes
and ordinal_probit() for K >= 3.
Convention: the engine follows Hadfield's notation (\(\tau_1 = 0\)
fixed, K - 2 free cutpoints reported as cutpoint_2, ...,
cutpoint_{K-1}). This differs from brms::cumulative(), which
reports K - 1 cutpoints as Intercept[1..K-1].
Cross-engine note: gllvmTMB's ordinal_probit() is a probit
threshold model (unit latent variance; Hadfield 2015), whereas
GLLVM.jl's ordinal family is a cumulative-logit model. Cutpoints
and loadings therefore live on different link scales (differing by a
factor of roughly \(\pi / \sqrt{3}\)) and must not be compared
across engines at machine tolerance; the engine = "julia" bridge
maps probit to probit and does not route a logit ordinal response.
References
Dempster, E. R. and Lerner, I. M. (1950). Heritability of threshold characters. Genetics 35:212-236.
Falconer, D. S. and Mackay, T. F. C. (1996). Introduction to Quantitative Genetics, 4th ed. Longman.
Felsenstein, J. (2005). Using the quantitative genetic threshold model for inferences between and within species. Phil. Trans. R. Soc. B 360:1427-1434.
Felsenstein, J. (2012). A comparative method for both discrete and continuous characters using the threshold model. Am. Nat. 179:145-156.
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
Mizuno, A. et al. (2025). Phylogenetic comparative methods for threshold traits. J. Evol. Biol. 38(12):1699-1712.
See also
extract_cutpoints() to recover \(\tau_2, \ldots,
\tau_{K-1}\) after fitting.
