Skip to contents

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().

Usage

ordinal_logit(link = "logit")

Arguments

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

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()).

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.

Examples

ordinal_logit()
#> 
#> Family: ordinal_logit 
#> Link function: logit 
#>