Learn R Programming

prediction (version 0.3.17)

prediction-package: 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, ...)

# S3 method for default prediction( model, data = find_data(model, parent.frame()), at = NULL, type = "response", vcov = stats::vcov(model), calculate_se = TRUE, ... )

# S3 method for Arima prediction(model, calculate_se = TRUE, ...)

# S3 method for ar prediction(model, data, at = NULL, calculate_se = TRUE, ...)

# S3 method for arima0 prediction(model, data, at = NULL, calculate_se = TRUE, ...)

# S3 method for betareg prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "link", "precision", "variance", "quantile"), calculate_se = FALSE, ... )

# S3 method for biglm prediction( model, data = find_data(model, parent.frame()), at = NULL, type = "response", calculate_se = TRUE, ... )

# S3 method for bruto prediction( model, data = NULL, at = NULL, type = "fitted", calculate_se = FALSE, ... )

# S3 method for clm prediction( model, data = find_data(model, parent.frame()), at = NULL, type = NULL, calculate_se = TRUE, category, ... )

# S3 method for coxph prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("risk", "expected", "lp"), calculate_se = TRUE, ... )

# S3 method for crch prediction( model, data = find_data(model), at = NULL, type = c("response", "location", "scale", "quantile"), calculate_se = FALSE, ... )

# S3 method for earth prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "link"), calculate_se = TRUE, category, ... )

# S3 method for fda prediction( model, data = find_data(model, parent.frame()), at = NULL, type = NULL, calculate_se = FALSE, category, ... )

# S3 method for Gam prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "link", "terms"), calculate_se = TRUE, ... )

# S3 method for gausspr prediction( model, data, at = NULL, type = NULL, calculate_se = TRUE, category, ... )

# S3 method for gee prediction(model, calculate_se = FALSE, ...)

# S3 method for glimML prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "link"), calculate_se = TRUE, ... )

# S3 method for glimQL prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "link"), calculate_se = TRUE, ... )

# S3 method for 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 glmnet prediction( model, data, lambda = model[["lambda"]][1L], at = NULL, type = c("response", "link"), calculate_se = FALSE, ... )

# S3 method for glmx prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "link"), calculate_se = FALSE, ... )

# S3 method for gls prediction( model, data = find_data(model), at = NULL, calculate_se = FALSE, ... )

# S3 method for hetglm prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "link", "scale"), calculate_se = FALSE, ... )

# S3 method for hurdle prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "count", "prob", "zero"), calculate_se = FALSE, ... )

# S3 method for hxlr prediction( model, data = find_data(model), at = NULL, type = c("class", "probability", "cumprob", "location", "scale"), calculate_se = FALSE, ... )

# S3 method for ivreg prediction( model, data = find_data(model, parent.frame()), at = NULL, calculate_se = FALSE, ... )

# S3 method for knnreg prediction(model, data, at = NULL, calculate_se = FALSE, ...)

# S3 method for kqr prediction(model, data, at = NULL, calculate_se = FALSE, ...)

# S3 method for ksvm prediction( model, data, at = NULL, type = NULL, calculate_se = TRUE, category, ... )

# S3 method for lm prediction( model, data = find_data(model, parent.frame()), at = NULL, type = "response", vcov = stats::vcov(model), calculate_se = TRUE, ... )

# S3 method for lme prediction( model, data = find_data(model), at = NULL, calculate_se = FALSE, ... )

# S3 method for loess prediction( model, data = find_data(model, parent.frame()), at = NULL, type = "response", calculate_se = TRUE, ... )

# S3 method for lqs prediction( model, data = find_data(model), at = NULL, calculate_se = FALSE, ... )

# S3 method for mars prediction( model, data = NULL, at = NULL, type = "fitted", calculate_se = FALSE, ... )

# S3 method for mca prediction( model, data = find_data(model), at = NULL, calculate_se = FALSE, ... )

# S3 method for mclogit prediction( model, data = find_data(model, parent.frame()), at = NULL, type = "response", vcov = stats::vcov(model), calculate_se = TRUE, ... )

# S3 method for merMod prediction( model, data = find_data(model), at = NULL, type = c("response", "link"), re.form = NULL, calculate_se = FALSE, ... )

# S3 method for mnp prediction( model, data = find_data(model, parent.frame()), at = NULL, type = NULL, calculate_se = FALSE, category, ... )

# S3 method for multinom prediction( model, data = find_data(model, parent.frame()), at = NULL, type = NULL, calculate_se = FALSE, category, ... )

# S3 method for nls prediction( model, data = find_data(model, parent.frame()), at = NULL, calculate_se = FALSE, ... )

# S3 method for nnet prediction( model, data = find_data(model, parent.frame()), at = NULL, type = NULL, calculate_se = FALSE, category, ... )

# S3 method for plm prediction( model, data = find_data(model, parent.frame()), at = NULL, calculate_se = FALSE, ... )

# S3 method for polr prediction( model, data = find_data(model, parent.frame()), at = NULL, type = NULL, calculate_se = FALSE, category, ... )

# S3 method for polyreg prediction( model, data = NULL, at = NULL, type = "fitted", calculate_se = FALSE, ... )

# S3 method for ppr prediction( model, data = find_data(model, parent.frame()), at = NULL, calculate_se = FALSE, ... )

# S3 method for princomp prediction( model, data = find_data(model, parent.frame()), at = NULL, calculate_se = FALSE, ... )

# S3 method for rlm prediction( model, data = find_data(model, parent.frame()), at = NULL, type = "response", vcov = stats::vcov(model), calculate_se = TRUE, ... )

# S3 method for rpart prediction( model, data = find_data(model, parent.frame()), at = NULL, type = NULL, calculate_se = FALSE, category, ... )

# S3 method for rq prediction( model, data = find_data(model, parent.frame()), at = NULL, calculate_se = TRUE, ... )

# S3 method for selection prediction( model, data = find_data(model, parent.frame()), at = NULL, type = "response", calculate_se = FALSE, ... )

# S3 method for speedglm prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "link"), calculate_se = FALSE, ... )

# S3 method for speedlm prediction( model, data = find_data(model, parent.frame()), at = NULL, calculate_se = FALSE, ... )

# S3 method for survreg prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "lp", "quantile", "uquantile"), calculate_se = TRUE, ... )

# S3 method for svm prediction(model, data = NULL, at = NULL, calculate_se = TRUE, category, ...)

# S3 method for svyglm prediction( model, data = find_data(model, parent.frame()), at = NULL, type = c("response", "link"), calculate_se = TRUE, ... )

# S3 method for train prediction( model, data = find_data(model), at = NULL, type = c("raw", "prob"), ... )

# S3 method for truncreg prediction(model, data, at = NULL, calculate_se = FALSE, ...)

# S3 method for 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)

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.

Arguments

model

A model object, perhaps returned by lm or glm.

...

Additional arguments passed to predict methods.

data

A data.frame over which to calculate marginal effects. If missing, find_data is used to specify the data frame.

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 data (see build_datalist for details on use).

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 polr), possible values are “class” or “probs”; both are returned.

vcov

A matrix containing the variance-covariance matrix for estimated model coefficients, or a function to perform the estimation with model as its only argument.

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 FALSE may improve speed.

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 "fitted" column. If missing, some default is chosen automatically.

lambda

For models of class “glmnet”, a value of the penalty parameter at which predictions are required.

re.form

An argument passed forward to predict.merMod.

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

  • “glm”, see glm, glm.nb, glmx, hetglm, brglm

  • “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

  • “glimML”, see betabin, negbin

  • “glimQL”, see quasibin, quasipois

  • “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

  • “merMod”, see lmer, glmer

  • “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 in https://jslsoc.sitehost.iu.edu/stata/ci_computations/spost_deltaci.pdf.

See Also

find_data, build_datalist, mean_or_mode, seq_range

Examples

Run this code
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
if (FALSE) {
  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)
}

Run the code above in your browser using DataLab