\HeaderA{predict.glm}{Predict Method for GLM Fits}{predict.glm}
\keyword{models}{predict.glm}
\keyword{regression}{predict.glm}
\begin{Description}\relax
Obtains predictions and optionally estimates standard errors of those
predictions from a fitted generalized linear model object.
\end{Description}
\begin{Usage}
\begin{verbatim}
## 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, ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{object}] a fitted object of class inheriting from \code{"glm"}.
\item[\code{newdata}] optionally, a data frame in which to look for variables with
which to predict.  If omitted, the fitted linear predictors are used.
\item[\code{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[\code{se.fit}] logical switch indicating if standard errors are required.
\item[\code{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[\code{terms}] with \code{type="terms"} by default all terms are returned.
A character vector specifies which terms are to be returned
\item[\code{na.action}] function determining what should be done with missing
values in \code{newdata}.  The default is to predict \code{NA}.
\item[\code{...}] further arguments passed to or from other methods.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
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{\LinkA{napredict}{napredict}}.
\end{Details}
\begin{Value}
If \code{se = FALSE}, a vector or matrix of predictions.  If \code{se
    = TRUE}, a list with components
\begin{ldescription}
\item[\code{fit}] Predictions
\item[\code{se.fit}] Estimated standard errors
\item[\code{residual.scale}] A scalar giving the square root of the
dispersion used in computing the standard errors.
\end{ldescription}
\end{Value}
\begin{Note}\relax
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).  As from \R{} 2.0.0 a warning will be given if the
variables found are not of the same length as those in \code{newdata}
if it was supplied.
\end{Note}
\begin{SeeAlso}\relax
\code{\LinkA{glm}{glm}}, \code{\LinkA{SafePrediction}{SafePrediction}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
## 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"))
\end{ExampleCode}
\end{Examples}

