propodds: Proportional Odds Model for Ordinal Regression

View source: R/family.categorical.R

propoddsR Documentation

Proportional Odds Model for Ordinal Regression

Description

Fits the proportional odds model to a (preferably ordered) factor response.

Usage

propodds(reverse = TRUE, whitespace = FALSE,
         thresholds = c("unconstrained", "equidistant",
         "symmetric1", "symmetric0"), Treverse = reverse,
         Tref = if (Treverse) "M" else 1)

Arguments

reverse, whitespace

Logical. Fed into arguments of the same name in cumulative.

thresholds, Treverse, Tref

Fed into arguments of the same name in cumulative.

Details

The proportional odds model is a special case from the class of cumulative link models. It involves a logit link applied to cumulative probabilities and a strong parallelism assumption. A parallelism assumption means there is less chance of numerical problems because the fitted probabilities will remain between 0 and 1; however the parallelism assumption ought to be checked, e.g., via a likelihood ratio test. This VGAM family function is merely a shortcut for cumulative(reverse = reverse, link = "logit", parallel = TRUE). Please see cumulative for more details on this model.

Value

An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm, and vgam.

Warning

No check is made to verify that the response is ordinal if the response is a matrix; see ordered.

Author(s)

Thomas W. Yee

References

See cumulative.

See Also

cumulative, R2latvar.

Examples

# Fit the proportional odds model, McCullagh and Nelder (1989,p.179)
pneumo <- transform(pneumo, let = log(exposure.time))
(fit <- vglm(cbind(normal, mild, severe) ~ let, propodds, pneumo))
depvar(fit)  # Sample proportions
weights(fit, type = "prior")  # Number of observations
coef(fit, matrix = TRUE)
constraints(fit)  # Constraint matrices
summary(fit)

# Check that the model is linear in let ----------------------
fit2 <- vgam(cbind(normal, mild, severe) ~ s(let, df = 2), propodds,
             pneumo)
## Not run:  plot(fit2, se = TRUE, lcol = 2, scol = 2) 

# Check the proportional odds assumption with a LRT ----------
(fit3 <- vglm(cbind(normal, mild, severe) ~ let,
              cumulative(parallel = FALSE, reverse = TRUE), pneumo))
pchisq(deviance(fit) - deviance(fit3),
       df = df.residual(fit) - df.residual(fit3), lower.tail = FALSE)
lrtest(fit3, fit)  # Easier

VGAM documentation built on Sept. 19, 2023, 9:06 a.m.