blob: 5c3ffe2d772e134a02f9d3b02a7c9523fede42c4 [file] [log] [blame]
% File src/library/stats/man/predict.glm.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2013 R Core Team
% Distributed under GPL 2 or later
\name{predict.glm}
\alias{predict.glm}
\concept{regression}
\title{Predict Method for GLM Fits}
\usage{
\method{predict}{glm}(object, newdata = NULL,
type = c("link", "response", "terms"),
se.fit = FALSE, dispersion = NULL, terms = NULL,
na.action = na.pass, \dots)
}
\arguments{
\item{object}{a fitted object of class inheriting from \code{"glm"}.}
\item{newdata}{optionally, a data frame in which to look for variables with
which to predict. If omitted, the fitted linear predictors are used.}
\item{type}{the type of prediction required. The default is on the
scale of the linear predictors; the alternative \code{"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 \code{type = "response"} gives the predicted
probabilities. The \code{"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.
}
\item{se.fit}{logical switch indicating if standard errors are required.}
\item{dispersion}{the dispersion of the GLM fit to be assumed in
computing the standard errors. If omitted, that returned by
\code{summary} applied to the object is used.}
\item{terms}{with \code{type = "terms"} by default all terms are returned.
A character vector specifies which terms are to be returned}
\item{na.action}{function determining what should be done with missing
values in \code{newdata}. The default is to predict \code{NA}.}
\item{\dots}{further arguments passed to or from other methods.}
}
\description{
Obtains predictions and optionally estimates standard errors of those
predictions from a fitted generalized linear model object.
}
\details{
If \code{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 \code{na.action} argument of that
fit. If \code{na.action = na.omit} omitted cases will not appear in
the residuals, whereas if \code{na.action = na.exclude} they will
appear (in predictions and standard errors), with residual value
\code{NA}. See also \code{\link{napredict}}.
}
\value{
If \code{se.fit = FALSE}, a vector or matrix of predictions.
For \code{type = "terms"} this is a matrix with a column per term, and
may have an attribute \code{"constant"}.
If \code{se.fit = TRUE}, a list with components
\item{fit}{Predictions, as for \code{se.fit = FALSE}.}
\item{se.fit}{Estimated standard errors.}
\item{residual.scale}{A scalar giving the square root of the
dispersion used in computing the standard errors.}
}
\note{
Variables are first looked for in \code{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 \code{newdata}
if it was supplied.
}
\seealso{
\code{\link{glm}}, \code{\link{SafePrediction}}
}
\examples{
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"))
}
\keyword{models}
\keyword{regression}