Fits a binary or ordinal logistic model for a given design matrix and response
vector with no missing values in either. Ordinary or penalized maximum
likelihood estimation is used.
Usage
lrm.fit(x, y, offset=0, initial, est, maxit=12, eps=.025,
tol=1e-7, trace=FALSE, penalty.matrix=NULL, weights=NULL,
normwt=FALSE, scale=FALSE)
Arguments
x
design matrix with no column for an intercept
y
response vector, numeric, categorical, or character
offset
optional numeric vector containing an offset on the logit scale
initial
vector of initial parameter estimates, beginning with the
intercept
est
indexes of x to fit in the model (default is all columns of x).
Specifying est=c(1,2,5) causes columns 1,2, and 5 to have
parameters estimated. The score vector u and covariance matrix var
can be used to obtain score statistics for other columns
maxit
maximum no. iterations (default=12). Specifying maxit=1
causes logist to compute statistics at initial estimates.
eps
difference in -2 log likelihood for declaring convergence.
Default is .025. 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, maximum absolute value of first
derivative, and vector of first derivatives at each iteration.
penalty.matrix
a self-contained ready-to-use penalty matrix - see lrm
weights
a vector (same length as y) of possibly fractional case weights
normwt
set to TRUE to scale weights so they sum to the length of
y; useful for sample surveys as opposed to the default of
frequency weighting
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 regresion 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
stats
vector with the following elements: number of observations used in the
fit, maximum absolute value of first
derivative of log likelihood, model likelihood ratio chi-square, d.f.,
P-value,
c index (area under ROC curve), Somers' D_{xy},
Goodman-Kruskal gamma, and Kendall's tau-a
rank correlations
between predicted probabilities and observed response, the
Nagelkerke R^2 index, the Brier probability score with
respect to computing the probability that y > the mid level less
one, the g-index, gr (the g-index on the odds ratio
scale), and gp (the g-index on the probability scale using
the same cutoff used for the Brier score).
Probabilities are rounded to the nearest 0.002
in the computations or rank correlation indexes.
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).
u
vector of first derivatives of log-likelihood
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.
est
vector of column numbers of X fitted (intercepts are not counted)
non.slopes
number of intercepts in model
penalty.matrix
see above
Author(s)
Frank Harrell
Department of Biostatistics, Vanderbilt University
f.harrell@vanderbilt.edu
See Also
lrm, glm, matinv,
solvet, cr.setup, gIndex
Examples
#Fit an additive logistic model containing numeric predictors age,
#blood.pressure, and sex, assumed to be already properly coded and
#transformed
#
# fit <- lrm.fit(cbind(age,blood.pressure,sex), death)