validate.cph {rms} | R Documentation |
Validation of a Fitted Cox or Parametric Survival Model's Indexes of Fit
Description
This is the version of the validate
function specific to models
fitted with cph
or psm
. Also included is a small
function dxy.cens
that retrieves D_{xy}
and its
standard error from the survival
package's
concordancefit
function. This allows for incredibly fast
computation of D_{xy}
or the c-index even for hundreds of
thousands of observations. dxy.cens
negates D_{xy}
if log relative hazard is being predicted. If y
is a
left-censored Surv
object, times are negated and a
right-censored object is created, then D_{xy}
is negated.
Usage
# fit <- cph(formula=Surv(ftime,event) ~ terms, x=TRUE, y=TRUE, \dots)
## S3 method for class 'cph'
validate(fit, method="boot", B=40, bw=FALSE, rule="aic",
type="residual", sls=.05, aics=0, force=NULL, estimates=TRUE,
pr=FALSE, dxy=TRUE, u, tol=1e-9, ...)
## S3 method for class 'psm'
validate(fit, method="boot",B=40,
bw=FALSE, rule="aic", type="residual", sls=.05, aics=0,
force=NULL, estimates=TRUE, pr=FALSE,
dxy=TRUE, tol=1e-12, rel.tolerance=1e-5, maxiter=15, ...)
dxy.cens(x, y, type=c('time','hazard'))
Arguments
fit |
a fit derived |
method |
see |
B |
number of repetitions. For |
rel.tolerance , maxiter , bw |
|
rule |
Applies if |
type |
|
sls |
significance level for a factor to be kept in a model, or for judging the
residual |
aics |
cutoff on AIC when |
force |
see |
estimates |
see |
pr |
|
tol , ... |
see |
dxy |
set to |
u |
must be specified if the model has any stratification factors and
|
x |
a numeric vector |
y |
a |
Details
Statistics validated include the Nagelkerke R^2
,
D_{xy}
, slope shrinkage, the discrimination index D
[(model L.R. \chi^2
- 1)/L], the unreliability index
U
= (difference in -2 log likelihood between uncalibrated
X\beta
and
X\beta
with overall slope calibrated to test sample) / L,
and the overall quality index Q = D - U
. g
is the
g
-index on the log relative hazard (linear predictor) scale.
L is -2 log likelihood with beta=0. The "corrected" slope
can be thought of as shrinkage factor that takes into account overfitting.
See predab.resample
for the list of resampling methods.
Value
matrix with rows corresponding to D_{xy}
, Slope, D
,
U
, and Q
, and columns for the original index, resample estimates,
indexes applied to whole or omitted sample using model derived from
resample, average optimism, corrected index, and number of successful
resamples.
The values corresponding to the row D_{xy}
are equal to 2 *
(C - 0.5)
where C is the C-index or concordance probability.
If the user is correlating the linear predictor (predicted log hazard)
with survival time, D_{xy}
is automatically negated.
Side Effects
prints a summary, and optionally statistics for each re-fit (if
pr=TRUE
)
Author(s)
Frank Harrell
Department of Biostatistics, Vanderbilt University
fh@fharrell.com
See Also
validate
, predab.resample
,
fastbw
, rms
, rms.trans
,
calibrate
, rcorr.cens
,
cph
, survival-internal
,
gIndex
, concordancefit
Examples
require(survival)
n <- 1000
set.seed(731)
age <- 50 + 12*rnorm(n)
label(age) <- "Age"
sex <- factor(sample(c('Male','Female'), n, TRUE))
cens <- 15*runif(n)
h <- .02*exp(.04*(age-50)+.8*(sex=='Female'))
dt <- -log(runif(n))/h
e <- ifelse(dt <= cens,1,0)
dt <- pmin(dt, cens)
units(dt) <- "Year"
S <- Surv(dt,e)
f <- cph(S ~ age*sex, x=TRUE, y=TRUE)
# Validate full model fit
validate(f, B=10) # normally B=150
# Validate a model with stratification. Dxy is the only
# discrimination measure for such models, by Dxy requires
# one to choose a single time at which to predict S(t|X)
f <- cph(S ~ rcs(age)*strat(sex),
x=TRUE, y=TRUE, surv=TRUE, time.inc=2)
validate(f, u=2, B=10) # normally B=150
# Note u=time.inc