R: Ordinal Regression Model Fitter

orm.fit {rms} | R Documentation

## Ordinal Regression Model Fitter

### Description

Fits ordinal cumulative probability models for continuous or ordinal response variables, efficiently allowing for a large number of intercepts by capitalizing on the information matrix being sparse. Five different distribution functions are implemented, with the default being the logistic (yielding the proportional odds model). Penalized estimation will be implemented in the future. Weights are not implemented. The optimization method is Newton-Raphson with step-halving. Execution time is linear in the number of intercepts.

### Usage

    orm.fit(x=NULL, y, family='logistic',
            offset=0., initial,  maxit=12L, eps=.005, tol=1e-7, trace=FALSE,
            penalty.matrix=NULL, scale=FALSE)

### Arguments

`x` | design matrix with no column for an intercept
`y` | response vector, numeric, factor, or character. The ordering of levels is assumed from `factor(y)`.
`family` | the distribution family, corresponding to logistic (the default), Gaussian, Cauchy, Gumbel maximum (exp(-exp(-x)); extreme value type I), and Gumbel minimum (1-exp(-exp(x))) distributions. These are the cumulative distribution functions assumed for Prob[Y ≥ y | X]. The `family` argument can be an unquoted or a quoted string, e.g. `family=loglog` or `family="loglog"`. To use a built-in family, the string must be one of the following corresponding to the previous list: `logistic, probit, loglog, cloglog, cauchit`. The user can also provide her own customized family by setting `family` to a list with elements `cumprob, inverse, deriv, deriv2`; see the body of `orm.fit` for examples. An additional element, `name` must be given, which is a character string used to name the family for `print` and `latex`.
`offset` | optional numeric vector containing an offset on the logit scale
`initial` | vector of initial parameter estimates, beginning with the intercepts. If `initial` is not specified, the function computes the overall score χ^2 test for the global null hypothesis of no regression.
`maxit` | maximum no. iterations (default=`12`).
`eps` | difference in -2 log likelihood for declaring convergence. Default is `.005`. If the -2 log likelihood gets worse by eps/10 while the maximum absolute first derivative of
    -2 log
likelihood is below 1E-9, convergence is still declared. This handles the case where the initial estimates are MLEs, to prevent endless step-halving.
`tol` | Singularity criterion. Default is 1e-7
`trace` | set to `TRUE` to print -2 log likelihood, step-halving fraction, change in -2 log likelihood, and maximum absolute value of first derivative at each iteration.
`penalty.matrix` | a self-contained ready-to-use penalty matrix - see`lrm`
`scale` | set to `TRUE` to subtract column means and divide by column standard deviations of `x` before fitting, and to back-solve for the un-normalized covariance matrix and regression coefficients. This can sometimes make the model converge for very large sample sizes where for example spline or polynomial component variables create scaling problems leading to loss of precision when accumulating sums of squares and crossproducts.

### Value

a list with the following components:

`call` | calling expression
`freq` | table of frequencies for `y` in order of increasing `y`
`yunique` | vector of sorted unique values of `y`
`stats` | vector with the following elements: number of observations used in the fit, number of unique `y` values, median `y` from among the observations used in the fit, maximum absolute value of first derivative of log likelihood, model likelihood ratio chi-square, d.f., P-value, score chi-square and its P-value, Spearman's ρ rank correlation between linear predictor and `y`, the Nagelkerke R^2 index, the g-index, gr (the g-index on the ratio scale), and pdm (the mean absolute difference between 0.5 and the estimated probability that y≥q the marginal median). When `penalty.matrix` is present, the chi-square, d.f., and P-value are not corrected for the effective d.f.
`fail` | set to `TRUE` if convergence failed (and `maxiter>1`)
`coefficients` | estimated parameters
`var` | estimated variance-covariance matrix (inverse of information matrix). Note that in the case of penalized estimation, `var` is not the improved sandwich-type estimator (which `lrm` does compute). The only intercept parameter included in the stored object is the middle intercept.
`family, trans` | see `orm`
`deviance` | -2 log likelihoods. When an offset variable is present, three deviances are computed: for intercept(s) only, for intercepts+offset, and for intercepts+offset+predictors. When there is no offset variable, the vector contains deviances for the intercept(s)-only model and the model with intercept(s) and predictors.
`non.slopes` | number of intercepts in model
`interceptRef` | the index of the middle (median) intercept used in computing the linear predictor and `var`
`linear.predictors` | the linear predictor using the first intercept
`penalty.matrix` | see above
`info.matrix` | see `orm`

### Author(s)

Frank Harrell
Department of Biostatistics, Vanderbilt University
f.harrell@vanderbilt.edu

### See Also

`orm`, `lrm`, `glm`, `gIndex`, `solve`

### Examples

    #Fit an additive logistic model containing numeric predictors age,
    #blood.pressure, and sex, assumed to be already properly coded and
    #transformed
    #
    # fit <- orm.fit(cbind(age,blood.pressure,sex), death)

[Package rms version 5.1-1 Index]