Skip to contents

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.

Usage

ordinal_probit(link = "probit")

Arguments

Always "probit"; provided for API symmetry with the other family constructors.

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.

Examples

ordinal_probit()
#> 
#> Family: ordinal_probit 
#> Link function: probit 
#>