predict.lrm {Design}R Documentation

Predicted Values for Binary and Ordinal Logistic Models

Description

Computes a variety of types of predicted values for fits from lrm, either from the original dataset or for new observations. The Mean.lrm function produces an S function to compute the predicted mean of a numeric ordered response variable given the linear predictor, which is assumed to use the first intercept in its computation.

Usage

## S3 method for class 'lrm':
predict(object, ..., type=c("lp", "fitted", "fitted.ind", "mean", "x", 
            "data.frame", "terms", "adjto","adjto.data.frame", 
            "model.frame"), se.fit=FALSE, codes=FALSE)

## S3 method for class 'lrm':
Mean(object, codes=FALSE, ...)

Arguments

object a object created by lrm
... arguments passed to predict.Design, such as kint and newdata (which is used if you are predicting out of data). See predict.Design to see how NAs are handled.
type See predict.Design for "x", "data.frame", "terms", "adjto", "adjto.data.frame" and "model.frame". type="lp" is used to get linear predictors (always using the first intercept). type="fitted" is used to get all the probabilities Y>=q j. type="fitted.ind" gets all the individual probabilities Y=j. For an ordinal response variable, type="mean" computes the estimated mean Y by summing values of Y multiplied by the estimated Prob(Y=j). If Y was a character or factor object, the levels are the character values or factor levels, so these must be translatable to numeric, unless codes=TRUE. See the Hannah and Quigley reference below for the method of estimating (and presenting) the mean score. If you specify type="fitted","fitted.ind","mean" you may not specify kint.
se.fit applies only to type="lp", to get standard errors.
codes if TRUE, type="mean" or Mean.lrm uses the integer codes 1,2,...,k for the k-level response in computing the predicted mean response.

Value

a vector (type="lp" with se.fit=FALSE, or type="mean" or only one observation being predicted), a list (with elements linear.predictors and se.fit if se.fit=TRUE), a matrix (type="fitted" or type="fitted.ind"), a data frame, or a design matrix. For Mean.lrm the result is an S function.

Author(s)

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

References

Hannah M, Quigley P: Presentation of ordinal regression analysis on the original scale. Biometrics 52:771–5; 1996.

See Also

lrm, predict.Design, naresid, contrast.Design

Examples

# See help for predict.Design for several binary logistic
# regression examples

# Examples of predictions from ordinal models
set.seed(1)
y <- factor(sample(1:3, 400, TRUE), 1:3, c('good','better','best'))
x1 <- runif(400)
x2 <- runif(400)
f <- lrm(y ~ rcs(x1,4)*x2)
predict(f, type="fitted.ind")[1:10,]   #gets Prob(better) and all others
d <- data.frame(x1=c(.1,.5),x2=c(.5,.15))
predict(f, d, type="fitted")        # Prob(Y>=j) for new observation
predict(f, d, type="fitted.ind")    # Prob(Y=j)
predict(f, d, type='mean', codes=TRUE) # predicts mean(y) using codes 1,2,3
m <- Mean(f, codes=TRUE)
lp <- predict(f, d)
m(lp)
# Can use function m as an argument to plot.Design or nomogram to
# get predicted means instead of log odds or probabilities
# Don't use non.slopes argument to plot.Design for this
dd <- datadist(x1,x2); options(datadist='dd')
m
plot(f, x1=NA, fun=m, ylab='Predicted Mean')

[Package Design version 2.1-1 Index]