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.
- Keywords
- models, regression
Usage
# 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, …)
Arguments
- object
a object created by
lrm
ororm
- …
arguments passed to
predictrms
, such askint
andnewdata
(which is used if you are predictingout of data
). Seepredictrms
to see how NAs are handled. Ignored for other functions.- type
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; specifykint
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 fororm
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 orfactor
object, the levels are the character values or factor levels, so these must be translatable to numeric, unlesscodes=TRUE
. See the Hannah and Quigley reference below for the method of estimating (and presenting) the mean score. If you specifytype="fitted","fitted.ind","mean"
you may not specifykint
.- se.fit
applies only to
type="lp"
, to get standard errors.- codes
if
TRUE
,type="mean"
,Mean.lrm
, andMean.orm
use 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
and Mean.orm
, the result is an R function.
References
Hannah M, Quigley P: Presentation of ordinal regression analysis on the original scale. Biometrics 52:771--5; 1996.
See Also
Examples
# NOT RUN {
# 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
dd <- datadist(x1,x2); options(datadist='dd')
m
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
options(datadist=NULL)
# }