Song and Zhou's estimators of AUC for right-censored time-to-event data
Usage
sens.sh(Surv.rsp, lp, lpnew, times, type = "incident")
spec.sh(Surv.rsp, lp, lpnew, times)
AUC.sh(
Surv.rsp,
Surv.rsp.new = NULL,
lp,
lpnew,
times,
type = "incident",
savesensspec = FALSE
)Arguments
- Surv.rsp
A
Surv(.,.)object containing to the outcome of the training data.- lp
The vector of predictors estimated from the training data.
- lpnew
The vector of predictors obtained from the test data.
- times
A vector of time points at which to evaluate AUC.
- type
A string defining the type of true positive rate (TPR):
"incident"refers to incident TPR ,"cumulative"refers to cumulative TPR.- Surv.rsp.new
A
Surv(.,.)object containing the outcome of the test data.- savesensspec
A logical specifying whether sensitivities and specificities should be saved.
Value
AUC.sh returns an object of class survAUC.
Specifically, AUC.sh returns a list with the following components:
- auc
The cumulative/dynamic or incident/dynamic AUC estimates (evaluated at
times).- times
The vector of time points at which AUC is evaluated.
- iauc
The summary measure of AUC.
sens.sh and spec.sh return matrices of dimensions times
x lpnew + 1. The elements of these matrices are the sensitivity and
specificity estimates for each threshold of lpnew and for each time
point specified in times.
Details
The sens.sh and spec.sh functions implement the estimators of
time-dependent true and false positive rates proposed by Song and Zhou
(2008).
The AUC.sh function implements the estimators of cumulative/dynamic
and incident/dynamic AUC proposed by Song and Zhou (2008). These estimators
are given by the areas under the time-dependent ROC curves estimated by
sens.sh and spec.sh. In case of cumulative/dynamic AUC, the
iauc summary measure is given by the integral of AUC on [0,
max(times)] (weighted by the estimated probability density of the
time-to-event outcome). In case of incident/dynamic AUC, iauc is
given by the integral of AUC on [0, max(times)] (weighted by 2 times
the product of the estimated probability density and the estimated survival
function of the time-to-event outcome).
The results obtained from spec.sh, spec.sh and AUC.sh
are valid as long as lp and lpnew are the predictors of a
correctly specified Cox proportional hazards model. In this case, the
estimators remain valid even if the censoring times depend on the values of
the predictors.
References
Song, X. and X.-H. Zhou (2008).
A semiparametric approach for the
covariate specific ROC curve with survival outcome.
Statistica
Sinica 18, 947–965.
Examples
data(cancer,package="survival")
TR <- ovarian[1:16,]
TE <- ovarian[17:26,]
train.fit <- survival::coxph(survival::Surv(futime, fustat) ~ age,
x=TRUE, y=TRUE, method="breslow", data=TR)
lp <- predict(train.fit)
lpnew <- predict(train.fit, newdata=TE)
Surv.rsp <- survival::Surv(TR$futime, TR$fustat)
Surv.rsp.new <- survival::Surv(TE$futime, TE$fustat)
times <- seq(10, 1000, 10)
AUC_sh <- AUC.sh(Surv.rsp, Surv.rsp.new, lp, lpnew, times)
names(AUC_sh)
#> [1] "auc" "times" "iauc"
AUC_sh$iauc
#> [1] 0.8430845