prediction-package {prediction} | R Documentation |
Extract Predictions from a Model Object
Description
Extract predicted values via predict
from a model object, conditional on data, and return a data frame.
Usage
prediction(model, ...)
## Default S3 method:
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = "response",
vcov = stats::vcov(model),
calculate_se = TRUE,
...
)
## S3 method for class 'Arima'
prediction(model, calculate_se = TRUE, ...)
## S3 method for class 'ar'
prediction(model, data, at = NULL, calculate_se = TRUE, ...)
## S3 method for class 'arima0'
prediction(model, data, at = NULL, calculate_se = TRUE, ...)
## S3 method for class 'betareg'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link", "precision", "variance", "quantile"),
calculate_se = FALSE,
...
)
## S3 method for class 'bigLm'
prediction(model, data = NULL, calculate_se = FALSE, ...)
## S3 method for class 'bigglm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = "response",
calculate_se = TRUE,
...
)
## S3 method for class 'biglm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = "response",
calculate_se = TRUE,
...
)
## S3 method for class 'bruto'
prediction(
model,
data = NULL,
at = NULL,
type = "fitted",
calculate_se = FALSE,
...
)
## S3 method for class 'clm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = NULL,
calculate_se = TRUE,
category,
...
)
## S3 method for class 'coxph'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("risk", "expected", "lp"),
calculate_se = TRUE,
...
)
## S3 method for class 'crch'
prediction(
model,
data = find_data(model),
at = NULL,
type = c("response", "location", "scale", "quantile"),
calculate_se = FALSE,
...
)
## S3 method for class 'earth'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link"),
calculate_se = TRUE,
category,
...
)
## S3 method for class 'fda'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'Gam'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link", "terms"),
calculate_se = TRUE,
...
)
## S3 method for class 'gausspr'
prediction(
model,
data,
at = NULL,
type = NULL,
calculate_se = TRUE,
category,
...
)
## S3 method for class 'gee'
prediction(model, calculate_se = FALSE, ...)
## S3 method for class 'glimML'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link"),
calculate_se = TRUE,
...
)
## S3 method for class 'glimQL'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link"),
calculate_se = TRUE,
...
)
## S3 method for class 'glm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link"),
vcov = stats::vcov(model),
calculate_se = TRUE,
...
)
## S3 method for class 'glmnet'
prediction(
model,
data,
lambda = model[["lambda"]][1L],
at = NULL,
type = c("response", "link"),
calculate_se = FALSE,
...
)
## S3 method for class 'glmx'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link"),
calculate_se = FALSE,
...
)
## S3 method for class 'gls'
prediction(
model,
data = find_data(model),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'hetglm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link", "scale"),
calculate_se = FALSE,
...
)
## S3 method for class 'hurdle'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "count", "prob", "zero"),
calculate_se = FALSE,
...
)
## S3 method for class 'hxlr'
prediction(
model,
data = find_data(model),
at = NULL,
type = c("class", "probability", "cumprob", "location", "scale"),
calculate_se = FALSE,
...
)
## S3 method for class 'ivreg'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'knnreg'
prediction(model, data, at = NULL, calculate_se = FALSE, ...)
## S3 method for class 'kqr'
prediction(model, data, at = NULL, calculate_se = FALSE, ...)
## S3 method for class 'ksvm'
prediction(
model,
data,
at = NULL,
type = NULL,
calculate_se = TRUE,
category,
...
)
## S3 method for class 'lda'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'lm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = "response",
vcov = stats::vcov(model),
calculate_se = TRUE,
...
)
## S3 method for class 'lme'
prediction(
model,
data = find_data(model),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'loess'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = "response",
calculate_se = TRUE,
...
)
## S3 method for class 'lqs'
prediction(
model,
data = find_data(model),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'mars'
prediction(
model,
data = NULL,
at = NULL,
type = "fitted",
calculate_se = FALSE,
...
)
## S3 method for class 'mca'
prediction(
model,
data = find_data(model),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'mclogit'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = "response",
vcov = stats::vcov(model),
calculate_se = TRUE,
...
)
## S3 method for class 'merMod'
prediction(
model,
data = find_data(model),
at = NULL,
type = c("response", "link"),
re.form = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'mlogit'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'mnlogit'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'mnp'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'multinom'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'naiveBayes'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'nls'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'nnet'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'plm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'polr'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'polyreg'
prediction(
model,
data = NULL,
at = NULL,
type = "fitted",
calculate_se = FALSE,
...
)
## S3 method for class 'ppr'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'princomp'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'qda'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'rlm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = "response",
vcov = stats::vcov(model),
calculate_se = TRUE,
...
)
## S3 method for class 'rpart'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'rq'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = TRUE,
...
)
## S3 method for class 'selection'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = "response",
calculate_se = FALSE,
...
)
## S3 method for class 'speedglm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link"),
calculate_se = FALSE,
...
)
## S3 method for class 'speedlm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
calculate_se = FALSE,
...
)
## S3 method for class 'survreg'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "lp", "quantile", "uquantile"),
calculate_se = TRUE,
...
)
## S3 method for class 'svm'
prediction(model, data = NULL, at = NULL, calculate_se = TRUE, category, ...)
## S3 method for class 'svyglm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link"),
calculate_se = TRUE,
...
)
## S3 method for class 'train'
prediction(
model,
data = find_data(model),
at = NULL,
type = c("raw", "prob"),
...
)
## S3 method for class 'tree'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = NULL,
calculate_se = FALSE,
category,
...
)
## S3 method for class 'truncreg'
prediction(model, data, at = NULL, calculate_se = FALSE, ...)
## S3 method for class 'vgam'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link"),
calculate_se = FALSE,
category,
...
)
## S3 method for class 'vglm'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "link"),
calculate_se = TRUE,
category,
...
)
## S3 method for class 'zeroinfl'
prediction(
model,
data = find_data(model, parent.frame()),
at = NULL,
type = c("response", "count", "prob", "zero"),
calculate_se = FALSE,
...
)
prediction_summary(model, ..., level = 0.95)
Arguments
model |
|
... |
Additional arguments passed to |
data |
A data.frame over which to calculate marginal effects. If missing, |
at |
A list of one or more named vectors, specifically values at which to calculate the predictions. These are used to modify the value of |
type |
A character string indicating the type of marginal effects to estimate. Mostly relevant for non-linear models, where the reasonable options are “response” (the default) or “link” (i.e., on the scale of the linear predictor in a GLM). For models of class “polr” (from |
vcov |
A matrix containing the variance-covariance matrix for estimated model coefficients, or a function to perform the estimation with |
calculate_se |
A logical indicating whether to calculate standard errors for observation-specific predictions and average predictions (if possible). The output will always contain a “calculate_se” column regardless of this value; this only controls the calculation of standard errors. Setting it to |
category |
For multi-level or multi-category outcome models (e.g., ordered probit, multinomial logit, etc.), a value specifying which of the outcome levels should be used for the |
lambda |
For models of class “glmnet”, a value of the penalty parameter at which predictions are required. |
re.form |
An argument passed forward to |
level |
A numeric value specifying the confidence level for calculating p-values and confidence intervals. |
Details
This function is simply a wrapper around predict
that returns a data frame containing the value of data
and the predicted values with respect to all variables specified in data
.
Methods are currently implemented for the following object classes:
-
“lm”, see
lm
-
“ar”, see
ar
-
“Arima”, see
arima
-
“arima0”, see
arima0
-
“bigglm”, see
bigglm
-
“betareg”, see
betareg
-
“bruto”, see
bruto
-
“clm”, see
clm
-
“coxph”, see
coxph
-
“crch”, see
crch
-
“earth”, see
earth
-
“fda”, see
fda
-
“Gam”, see
gam
-
“gausspr”, see
gausspr
-
“gee”, see
gee
-
“glmnet”, see
glmnet
-
“gls”, see
gls
-
“hurdle”, see
hurdle
-
“hxlr”, see
hxlr
-
“ivreg”, see
ivreg
-
“knnreg”, see
knnreg
-
“kqr”, see
kqr
-
“ksvm”, see
ksvm
-
“lda”, see
lda
-
“lme”, see
lme
-
“loess”, see
loess
-
“lqs”, see
lqs
-
“mars”, see
mars
-
“mca”, see
mca
-
“mclogit”, see
mclogit
-
“mda”, see
mda
-
“mnp”, see
mnp
-
“naiveBayes”, see
naiveBayes
-
“nlme”, see
nlme
-
“nls”, see
nls
-
“nnet”, see
nnet
-
“plm”, see
plm
-
“polr”, see
polr
-
“polyreg”, see
polyreg
-
“ppr”, see
ppr
-
“princomp”, see
princomp
-
“qda”, see
qda
-
“rlm”, see
rlm
-
“rpart”, see
rpart
-
“rq”, see
rq
-
“selection”, see
selection
-
“speedglm”, see
speedglm
-
“speedlm”, see
speedlm
-
“survreg”, see
survreg
-
“svm”, see
svm
-
“svyglm”, see
svyglm
-
“tobit”, see
tobit
-
“train”, see
train
-
“truncreg”, see
truncreg
-
“zeroinfl”, see
zeroinfl
Where implemented, prediction
also returns average predictions (and the variances thereof). Variances are implemented using the delta method, as described by Xu and Long 2005 doi:10.1177/1536867X0500500405.
Value
A data frame with class “prediction” that has a number of rows equal to number of rows in data
, or a multiple thereof, if !is.null(at)
. The return value contains data
(possibly modified by at
using build_datalist
), plus a column containing fitted/predicted values ("fitted"
) and a column containing the standard errors thereof ("calculate_se"
). Additional columns may be reported depending on the object class. The data frame also carries attributes used by print
and summary
, which will be lost during subsetting.
See Also
find_data
, build_datalist
, mean_or_mode
, seq_range
Examples
require("datasets")
x <- lm(Petal.Width ~ Sepal.Length * Sepal.Width * Species, data = iris)
# prediction for every case
prediction(x)
# prediction for first case
prediction(x, iris[1,])
# basic use of 'at' argument
summary(prediction(x, at = list(Species = c("setosa", "virginica"))))
# basic use of 'at' argument
prediction(x, at = list(Sepal.Length = seq_range(iris$Sepal.Length, 5)))
# prediction at means/modes of input variables
prediction(x, at = lapply(iris, mean_or_mode))
# prediction with multi-category outcome
## Not run:
library("mlogit")
data("Fishing", package = "mlogit")
Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode")
mod <- mlogit(mode ~ price + catch, data = Fish)
prediction(mod)
prediction(mod, category = 3)
## End(Not run)