rms (version 2.0-2)

predict.lrm: 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, \dots, 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, \dots)

Arguments

object
a object created by lrm
...
arguments passed to predict.rms, such as kint and newdata (which is used if you are predicting out of data). See predict.rms to see how NAs are handled.
type
See predict.rms 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" i
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,\ldots,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.

concept

logistic regression model

References

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

See Also

lrm, predict.rms, naresid, contrast.rms

Examples

Run this code
# See help for predict.rms 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, x=TRUE)     #x=TRUE needed for se.fit
# Get 0.95 confidence limits for Prob[better or best]
L <- predict(f, se.fit=TRUE)           #omitted kint= so use 1st intercept
plogis(with(L, linear.predictors + 1.96*cbind(-se.fit,se.fit)))
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 Predict or nomogram to
# get predicted means instead of log odds or probabilities
# Don't use non.slopes argument to Predict for this
dd <- datadist(x1,x2); options(datadist='dd')
m
plot(Predict(f, x1=., fun=m), ylab='Predicted Mean')
options(datadist=NULL)

Run the code above in your browser using DataLab