Learn R Programming

MASS (version 7.3-36)

polr: Ordered Logistic or Probit Regression

Description

Fits a logistic or probit regression model to an ordered factor response. The default logistic case is proportional odds logistic regression, after which the function is named.

Usage

polr(formula, data, weights, start, ..., subset, na.action,
     contrasts = NULL, Hess = FALSE, model = TRUE,
     method = c("logistic", "probit", "loglog", "cloglog", "cauchit"))

Arguments

formula
a formula expression as for regression models, of the form response ~ predictors. The response should be a factor (preferably an ordered factor), which will be interpreted as an ordinal response, with levels ordered as in the fact
data
an optional data frame in which to interpret the variables occurring in formula.
weights
optional case weights in fitting. Default to 1.
start
initial values for the parameters. This is in the format c(coefficients, zeta): see the Values section.
...
additional arguments to be passed to optim, most often a control argument.
subset
expression saying which subset of the rows of the data should be used in the fit. All observations are included by default.
na.action
a function to filter missing data.
contrasts
a list of contrasts to be used for some or all of the factors appearing as variables in the model formula.
Hess
logical for whether the Hessian (the observed information matrix) should be returned. Use this if you intend to call summary or vcov on the fit.
model
logical for whether the model matrix should be returned.
method
logistic or probit or (complementary) log-log or cauchit (corresponding to a Cauchy latent variable).

Value

  • A object of class "polr". This has components
  • coefficientsthe coefficients of the linear predictor, which has no intercept.
  • zetathe intercepts for the class boundaries.
  • deviancethe residual deviance.
  • fitted.valuesa matrix, with a column for each level of the response.
  • levthe names of the response levels.
  • termsthe terms structure describing the model.
  • df.residualthe number of residual degrees of freedoms, calculated using the weights.
  • edfthe (effective) number of degrees of freedom used by the model
  • n, nobsthe (effective) number of observations, calculated using the weights. (nobs is for use by stepAIC.
  • callthe matched call.
  • methodthe matched method used.
  • convergencethe convergence code returned by optim.
  • niterthe number of function and gradient evaluations used by optim.
  • lpthe linear predictor (including any offset).
  • Hessian(if Hess is true). Note that this is a numerical approximation derived from the optimization proces.
  • model(if model is true).

Details

This model is what Agresti (2002) calls a cumulative link model. The basic interpretation is as a coarsened version of a latent variable $Y_i$ which has a logistic or normal or extreme-value or Cauchy distribution with scale parameter one and a linear model for the mean. The ordered factor which is observed is which bin $Y_i$ falls into with breakpoints $$\zeta_0 = -\infty < \zeta_1 < \cdots < \zeta_K = \infty$$ This leads to the model $$\mbox{logit} P(Y \le k | x) = \zeta_k - \eta$$ with logit replaced by probit for a normal latent variable, and $\eta$ being the linear predictor, a linear function of the explanatory variables (with no intercept). Note that it is quite common for other software to use the opposite sign for $\eta$ (and hence the coefficients beta).

In the logistic case, the left-hand side of the last display is the log odds of category $k$ or less, and since these are log odds which differ only by a constant for different $k$, the odds are proportional. Hence the term proportional odds logistic regression.

The log-log and complementary log-log links are the increasing functions $F^{-1}(p) = -log(-log(p))$ and $F^{-1}(p) = log(-log(1-p))$; some call the first the negative log-log link. These correspond to a latent variable with the extreme-value distribution for the maximum and minimum respectively.

A proportional hazards model for grouped survival times can be obtained by using the complementary log-log link with grouping ordered by increasing times.

predict, summary, vcov, anova, model.frame and an extractAIC method for use with stepAIC (and step). There are also profile and confint methods.

References

Agresti, A. (2002) Categorical Data. Second edition. Wiley. Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.

See Also

optim, glm, multinom.

Examples

Run this code
options(contrasts = c("contr.treatment", "contr.poly"))
house.plr <- polr(Sat ~ Infl + Type + Cont, weights = Freq, data = housing)
house.plr
summary(house.plr, digits = 3)
## slightly worse fit from
summary(update(house.plr, method = "probit", Hess = TRUE), digits = 3)
## although it is not really appropriate, can fit
summary(update(house.plr, method = "loglog", Hess = TRUE), digits = 3)
summary(update(house.plr, method = "cloglog", Hess = TRUE), digits = 3)

predict(house.plr, housing, type = "p")
addterm(house.plr, ~.^2, test = "Chisq")
house.plr2 <- stepAIC(house.plr, ~.^2)
house.plr2$anova
anova(house.plr, house.plr2)

house.plr <- update(house.plr, Hess=TRUE)
pr <- profile(house.plr)
confint(pr)
plot(pr)
pairs(pr)

Run the code above in your browser using DataLab