\HeaderA{predict.lme}{Predictions from an lme Object}{predict.lme}
\keyword{models}{predict.lme}
\begin{Description}\relax
The predictions at level \eqn{i}{} are obtained by adding together the
population predictions (based only on the fixed effects estimates)
and the estimated contributions of the random effects to the
predictions at grouping levels less or equal to \eqn{i}{}. The resulting
values estimate the best linear unbiased predictions (BLUPs) at level
\eqn{i}{}. If group values not included in the original grouping factors
are present in \code{newdata}, the corresponding predictions will be
set to \code{NA} for levels greater or equal to the level at which the
unknown groups occur.
\end{Description}
\begin{Usage}
\begin{verbatim}
## S3 method for class 'lme':
predict(object, newdata, level, asList, na.action, ...)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{object}] an object inheriting from class \code{lme}, representing
a fitted linear mixed-effects model.
\item[\code{newdata}] an optional data frame to be used for obtaining the
predictions. All variables used in the fixed and random effects
models, as well as the grouping factors, must be present in the data
frame. If missing, the fitted values are returned.
\item[\code{level}] an optional integer vector giving the level(s) of grouping
to be used in obtaining the predictions. Level values increase from
outermost to innermost grouping, with level zero corresponding to the
population predictions. Defaults to the highest or innermost level of
grouping.
\item[\code{asList}] an optional logical value. If \code{TRUE} and a single
value is given in \code{level}, the returned object is a list with
the predictions split by groups; else the returned value is
either a vector or a data frame, according to the length of
\code{level}. 
\item[\code{na.action}] a function that indicates what should happen when
\code{newdata} contains \code{NA}s.  The default action
(\code{na.fail}) causes the function to print an error message and
terminate if there are any incomplete observations.
\item[\code{...}] some methods for this generic require additional
arguments.  None are used in this method.
\end{ldescription}
\end{Arguments}
\begin{Value}
if a single level of grouping is specified in \code{level}, the
returned value is either a list with the predictions split by groups
(\code{asList = TRUE}) or a vector with the predictions
(\code{asList = FALSE}); else, when multiple grouping levels are
specified in \code{level}, the returned object is a data frame with
columns given by the predictions at different levels and the grouping
factors.
\end{Value}
\begin{Author}\relax
Jose Pinheiro \email{Jose.Pinheiro@pharma.novartis.com} and Douglas Bates \email{bates@stat.wisc.edu}
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{lme}{lme}}, \code{\LinkA{fitted.lme}{fitted.lme}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
fm1 <- lme(distance ~ age, Orthodont, random = ~ age | Subject)
newOrth <- data.frame(Sex = c("Male","Male","Female","Female","Male","Male"),
                      age = c(15, 20, 10, 12, 2, 4),
                      Subject = c("M01","M01","F30","F30","M04","M04"))
predict(fm1, newOrth, level = 0:1)
\end{ExampleCode}
\end{Examples}

