Test the proportional hazards assumption for a Cox regression model fit
(`coxph`

).

`cox.zph(fit, transform="km", terms=TRUE, singledf=FALSE, global=TRUE)`

an object of class `"cox.zph"`

, with components:

- table
a matrix with one row for each variable, and optionally a last row for the global test. Columns of the matrix contain a score test of for addition of the time-dependent term, the degrees of freedom, and the two-sided p-value.

- x
the transformed time axis.

- time
the untransformed time values; there is one entry for each event time in the data

- strata
for a stratified

`coxph model`

, the stratum of each of the events- y
the matrix of scaled Schoenfeld residuals. There will be one column per term or per variable (depending on the

`terms`

option above), and one row per event. The row labels are a rounded form of the original times.- var
a variance matrix for the covariates, used to create an approximate standard error band for plots

- transform
the transform of time that was used

- call
the calling sequence for the routine.

- fit
the result of fitting a Cox regression model, using the

`coxph`

or`coxme`

functions.- transform
a character string specifying how the survival times should be transformed before the test is performed. Possible values are

`"km"`

,`"rank"`

,`"identity"`

or a function of one argument.- terms
if TRUE, do a test for each term in the model rather than for each separate covariate. For a factor variable with k levels, for instance, this would lead to a k-1 degree of freedom test. The plot for such variables will be a single curve evaluating the linear predictor over time.

- singledf
use a single degree of freedom test for terms that have multiple coefficients, i.e., the test that corresponds most closely to the plot. If

`terms=FALSE`

this argument has no effect.- global
should a global chi-square test be done, in addition to the per-variable or per-term tests tests.

The computations require the original `x`

matrix of the Cox model fit.
Thus it saves time if the `x=TRUE`

option is used in `coxph`

.
This function would usually be followed by both a plot and a print of
the result.
The plot gives an estimate of the time-dependent coefficient
\(\beta(t)\).
If the proportional hazards assumption holds then the true
\(\beta(t)\) function would be a horizontal line.
The `table`

component provides the results of a formal score test
for slope=0, a linear fit to the plot would approximate the test.

Random effects terms such a `frailty`

or random effects in a
`coxme`

model are not checked for proportional hazards, rather
they are treated as a fixed offset in model.

If the model contains strata by covariate interactions, then the
`y`

matrix may contain structural zeros, i.e., deaths (rows) that
had no role in estimation of a given coefficient (column).
These are marked as NA.
If an entire row is NA, for instance after subscripting a
`cox.zph`

object, that row is removed.

P. Grambsch and T. Therneau (1994),
Proportional hazards tests and diagnostics based on weighted residuals.
*Biometrika,*
**81**, 515-26.

`coxph`

, `Surv`

.

```
fit <- coxph(Surv(futime, fustat) ~ age + ecog.ps,
data=ovarian)
temp <- cox.zph(fit)
print(temp) # display the results
plot(temp) # plot curves
```

Run the code above in your browser using DataLab