rms (version 5.1-2)

predict.lrm: Predicted Values for Binary and Ordinal Logistic Models


Computes a variety of types of predicted values for fits from lrm and orm, either from the original dataset or for new observations. The Mean.lrm and Mean.orm functions produce an R 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.


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

# S3 method for lrm Mean(object, codes=FALSE, …) # S3 method for orm Mean(object, codes=FALSE, …)



a object created by lrm or orm

arguments passed to predictrms, such as kint and newdata (which is used if you are predicting out of data). See predictrms to see how NAs are handled. Ignored for other functions.


See predict.rms for "x", "data.frame", "terms", "cterms", "ccterms", "adjto", "adjto.data.frame" and "model.frame". type="lp" is used to get linear predictors (using the first intercept by default; specify kint to use others). type="fitted" is used to get all the probabilities \(Y\geq j\). type="fitted.ind" gets all the individual probabilities \(Y=j\) (not recommended for orm fits). 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.


applies only to type="lp", to get standard errors.


if TRUE, type="mean", Mean.lrm, and Mean.orm use the integer codes \(1,2,\ldots,k\) for the \(k\)-level response in computing the predicted mean response.


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 and Mean.orm, the result is an R function.


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

See Also

lrm, orm, predict.rms, naresid, contrast.rms


Run this code
# See help for predict.rms for several binary logistic
# regression examples

# Examples of predictions from ordinal models
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)
# Can use function m as an argument to Predict or nomogram to
# get predicted means instead of log odds or probabilities
dd <- datadist(x1,x2); options(datadist='dd')
plot(Predict(f, x1, fun=m), ylab='Predicted Mean')
# Note: Run f through bootcov with coef.reps=TRUE to get proper confidence
# limits for predicted means from the prop. odds model
# }

Run the code above in your browser using DataLab