Predict Method for GLM Fits
Obtains predictions and optionally estimates standard errors of those predictions from a fitted generalized linear model object.
## S3 method for class 'glm': predict(object, newdata = NULL, type = c("link", "response", "terms"), se.fit = FALSE, dispersion = NULL, terms = NULL, na.action = na.pass, ...)
- a fitted object of class inheriting from
- optionally, a data frame in which to look for variables with which to predict. If omitted, the fitted linear predictors are used.
- the type of prediction required. The default is on the
scale of the linear predictors; the alternative
"response"is on the scale of the response variable. Thus for a default binomial model the default predictions are of log-odds (probabilities on logit scale) and
type = "response"gives the predicted probabilities. The
"terms"option returns a matrix giving the fitted values of each term in the model formula on the linear predictor scale.
The value of this argument can be abbreviated.
- logical switch indicating if standard errors are required.
- the dispersion of the GLM fit to be assumed in
computing the standard errors. If omitted, that returned by
summaryapplied to the object is used.
type = "terms"by default all terms are returned. A character vector specifies which terms are to be returned
- function determining what should be done with missing
newdata. The default is to predict
- further arguments passed to or from other methods.
newdata is omitted the predictions are based on the data
used for the fit. In that case how cases with missing values in the
original fit is determined by the
na.action argument of that
na.action = na.omit omitted cases will not appear in
the residuals, whereas if
na.action = na.exclude they will
appear (in predictions and standard errors), with residual value
NA. See also
se.fit = FALSE, a vector or matrix of predictions. For
type = "terms"this is a matrix with a column per term, and may have an attribute
se.fit = TRUE, a list with components
fit Predictions, as for
se.fit = FALSE.
se.fit Estimated standard errors. residual.scale A scalar giving the square root of the dispersion used in computing the standard errors.
Variables are first looked for in
newdata and then searched for
in the usual way (which will include the environment of the formula
used in the fit). A warning will be given if the
variables found are not of the same length as those in
if it was supplied.
require(graphics) ## example from Venables and Ripley (2002, pp. 190-2.) ldose <- rep(0:5, 2) numdead <- c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16) sex <- factor(rep(c("M", "F"), c(6, 6))) SF <- cbind(numdead, numalive = 20-numdead) budworm.lg <- glm(SF ~ sex*ldose, family = binomial) summary(budworm.lg) plot(c(1,32), c(0,1), type = "n", xlab = "dose", ylab = "prob", log = "x") text(2^ldose, numdead/20, as.character(sex)) ld <- seq(0, 5, 0.1) lines(2^ld, predict(budworm.lg, data.frame(ldose = ld, sex = factor(rep("M", length(ld)), levels = levels(sex))), type = "response")) lines(2^ld, predict(budworm.lg, data.frame(ldose = ld, sex = factor(rep("F", length(ld)), levels = levels(sex))), type = "response"))