# predict.coxph

##### Predictions for a Cox model

Compute fitted values and regression terms for a model fitted by
`coxph`

- Keywords
- survival

##### Usage

```
# S3 method for coxph
predict(object, newdata,
type=c("lp", "risk", "expected", "terms", "survival"),
se.fit=FALSE, na.action=na.pass, terms=names(object$assign), collapse,
reference=c("strata", "sample"), ...)
```

##### Arguments

- object
the results of a coxph fit.

- newdata
Optional new data at which to do predictions. If absent predictions are for the data frame used in the original fit. When coxph has been called with a formula argument created in another context, i.e., coxph has been called within another function and the formula was passed as an argument to that function, there can be problems finding the data set. See the note below.

- type
the type of predicted value. Choices are the linear predictor (

`"lp"`

), the risk score exp(lp) (`"risk"`

), the expected number of events given the covariates and follow-up time (`"expected"`

), and the terms of the linear predictor (`"terms"`

). The survival probability for a subject is equal to exp(-expected).- se.fit
if TRUE, pointwise standard errors are produced for the predictions.

- na.action
applies only when the

`newdata`

argument is present, and defines the missing value action for the new data. The default is to include all observations. When there is no newdata, then the behavior of missing is dictated by the na.action option of the original fit.- terms
if type="terms", this argument can be used to specify which terms should be included; the default is all.

- collapse
optional vector of subject identifiers. If specified, the output will contain one entry per subject rather than one entry per observation.

- reference
reference for centering predictions, see details below

- …
For future methods

##### Details

The Cox model is a *relative* risk model; predictions
of type "linear predictor", "risk", and "terms" are all
relative to the sample from which they came. By default, the reference
value for each of these is the mean covariate within strata. The
primary underlying
reason is statistical: a Cox model only predicts relative risks
between pairs of subjects within the same strata, and hence the addition
of a constant to any covariate, either overall or only within a
particular stratum, has no effect on the fitted results.
Using the `reference="strata"`

option causes this to be true for
predictions as well.
(There have been occasional requests for reference="zero", i.e., a
hypothetical subject with all covariates equal to zero, in order to
match certain other packages' results.
The issue is that the results are often silly, e.g., risk relative to
a subject with height, weight, or blood pressure of zero.)

When the results of `predict`

are used in further calculations it
may be desirable to use a fixed reference level.
Use of `reference="sample"`

will use the overall means, and agrees
with the `linear.predictors`

component of the coxph object (which
uses the overall mean for backwards compatability with older code).
Predictions of `type="terms"`

are almost invariably passed
forward to further calculation, so for these we default to using
the sample as the reference.

Predictions of type "expected" incorporate the baseline hazard and are
thus absolute instead of relative; the
`reference`

option has no effect on these.
These values depend on the follow-up time for the future subjects as
well as covariates so the `newdata`

argument needs to include both
the right and *left* hand side variables from the formula.
(The status variable will not be used, but is required since the
underlying code needs to reconstruct the entire formula.)

Models that contain a `frailty`

term are a special case: due
to the technical difficulty, when there is a `newdata`

argument the
predictions will always be for a random effect of zero.

##### Value

a vector or matrix of predictions, or a list containing the predictions (element "fit") and their standard errors (element "se.fit") if the se.fit option is TRUE.

##### Note

Some predictions can be obtained directly from the coxph object, and for
others it is necessary for the routine to have the entirety of the
original data set, e.g., for type = `terms`

or if standard errors
are requested.
This extra information is saved in the coxph object if
`model=TRUE`

, if not the original data is reconstructed.
If it is known that such residuals will be required overall execution will be
slightly faster if the model information is saved.

In some cases the reconstruction can fail.
The most common is when coxph has been called inside another function
and the formula was passed as one of the arguments to that enclosing
function. Another is when the data set has changed between the original
call and the time of the prediction call.
In each of these the simple solution is to add `model=TRUE`

to the
original coxph call.

##### See Also

##### Examples

```
# NOT RUN {
options(na.action=na.exclude) # retain NA in predictions
fit <- coxph(Surv(time, status) ~ age + ph.ecog + strata(inst), lung)
#lung data set has status coded as 1/2
mresid <- (lung$status-1) - predict(fit, type='expected') #Martingale resid
predict(fit,type="lp")
predict(fit,type="expected")
predict(fit,type="risk",se.fit=TRUE)
predict(fit,type="terms",se.fit=TRUE)
# For someone who demands reference='zero'
pzero <- function(fit)
predict(fit, reference="sample") + sum(coef(fit) * fit$means, na.rm=TRUE)
# }
```

*Documentation reproduced from package survival, version 3.1-8, License: LGPL (>= 2)*