
Test the Proportional Hazards Assumption of a Cox Regression
cox.zph.RdTest the proportional hazards assumption for a Cox regression model fit
(coxph).
Arguments
- fit
the result of fitting a Cox regression model, using the
coxphorcoxmefunctions.- 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=FALSEthis argument has no effect.- global
should a global chi-square test be done, in addition to the per-variable or per-term tests tests.
Value
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
termsoption 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.
Details
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.
Note
In versions of the package before survival3.0 the function computed a fast approximation to the score test. Later versions compute the actual score test.

