Learn R Programming

VGAM (version 0.7-5)

cumulative: Ordinal Regression with Cumulative Probabilities

Description

Fits a cumulative logit/probit/cloglog/cauchit/... regression model to an ordered (preferably) factor response.

Usage

cumulative(link = "logit", earg = list(),
           parallel = FALSE, reverse = FALSE,
           mv = FALSE, intercept.apply = FALSE)

Arguments

link
Link function applied to the $M$ cumulative probabilities. See Links for more choices.
earg
List. Extra argument for the link function. See earg in Links for general information.
parallel
A logical, or formula specifying which terms have equal/unequal coefficients.
reverse
Logical. By default, the cumulative probabilities used are $P(Y\leq 1)$, $P(Y\leq 2)$, ..., $P(Y\leq M)$. If reverse is TRUE, then $P(Y\geq 2)$, $P(Y\geq 3)$, ..., $P(Y\geq M+1)$ will be used.

This should be set t

mv
Logical. Multivariate response? If TRUE then the input should be a matrix with values $1,2,\dots,L$, where $L$ is the number of levels. Each column of the matrix is a response, i.e., multivariate response. A suitable matrix can be o
intercept.apply
Logical. Whether the parallel argument should be applied to the intercept term. This should be set to TRUE for link= golf, polf

Value

Warning

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

Details

By default, the non-parallel cumulative logit model is fitted, i.e., $$\eta_j = logit(P[Y \leq j])$$ where $j=1,2,\dots,M$ and the $\eta_j$ are not constrained to be parallel. This is also known as the non-proportional odds model. If the logit link is replaced by a complementary log-log link (cloglog) then this is known as the proportional-hazards model.

In almost all the literature, the constraint matrices associated with this family of models are known. For example, setting parallel=TRUE will make all constraint matrices (except for the intercept) equal to a vector of $M$ 1's. If the constraint matrices are equal, unknown and to be estimated, then this can be achieved by fitting the model as a reduced-rank vector generalized linear model (RR-VGLM; see rrvglm). Currently, reduced-rank vector generalized additive models (RR-VGAMs) have not been implemented here.

References

Agresti, A. (2002) Categorical Data Analysis, 2nd ed. New York: Wiley.

Dobson, A. J. (2001) An Introduction to Generalized Linear Models, 2nd ed. Boca Raton: Chapman & Hall/CRC Press.

McCullagh, P. and Nelder, J. A. (1989) Generalized Linear Models, 2nd ed. London: Chapman & Hall.

Simonoff, J. S. (2003) Analyzing Categorical Data, New York: Springer-Verlag.

Yee, T. W. and Wild, C. J. (1996) Vector generalized additive models. Journal of the Royal Statistical Society, Series B, Methodological, 58, 481--493.

Documentation accompanying the VGAM package at http://www.stat.auckland.ac.nz/~yee contains further information and examples.

See Also

acat, cratio, sratio, multinomial, pneumo, logit, probit, cloglog, cauchit, golf, polf, nbolf.

Examples

Run this code
# Fit the proportional odds model, p.179, in McCullagh and Nelder (1989)
data(pneumo)
pneumo = transform(pneumo, let=log(exposure.time))
(fit = vglm(cbind(normal, mild, severe) ~ let,
            cumulative(parallel=TRUE, reverse=TRUE), pneumo))
fit@y   # Sample proportions
weights(fit, type="prior")   # Number of observations
coef(fit, matrix=TRUE)
constraints(fit)   # Constraint matrices

# Check that the model is linear in let
fit2 = vgam(cbind(normal, mild, severe) ~ s(let, df=2),
            cumulative(reverse=TRUE), pneumo)
plot(fit2, se=TRUE, overlay=TRUE, lcol=1:2, scol=1:2)

# Check the proportional odds assumption with a likelihood ratio test
(fit3 = vglm(cbind(normal, mild, severe) ~ let,
             cumulative(parallel=FALSE, reverse=TRUE), pneumo))
1 - pchisq(2*(logLik(fit3)-logLik(fit)),
           df=length(coef(fit3))-length(coef(fit)))

Run the code above in your browser using DataLab