survivalROC (version 1.0.1)

survivalROC: Time-dependent ROC curve estimation from censored survival data

Description

This function creates time-dependent ROC curve from censored survival data using the Kaplan-Meier (KM) or Nearest Neighbor Estimation (NNE) method of Heagerty, Lumley and Pepe, 2000

Usage

survivalROC(Stime, status, marker, entry = NULL, predict.time, cut.values =
NULL, method = "NNE", lambda = NULL, span = NULL, window =
"symmetric")

Arguments

Stime
Event time or censoring time for subjects
status
Indicator of status, 1 if death or event, 0 otherwise
marker
Predictor or marker value
entry
Entry time for the subjects
predict.time
Time point of the ROC curve
cut.values
marker values to use as a cut-off for calculation of sensitivity and specificity
method
Method for fitting joint distribution of (x,t), either of KM or NNE, the default method is NNE
lambda
smoothing parameter for NNE
span
Span for the NNE, need either lambda or span for NNE
window
window for NNE, either of symmetric or asymmetric

Value

  • Returns a list of the following items:
  • cut.valuesunique marker values for calculation of TP and FP
  • TPTrue Positive corresponding to the cut offs in x
  • FPFalse Positive corresponding to the cut offs in x
  • predict.timetime point of interest
  • SurvivalKaplan-Meier survival estimate at predict.time
  • AUCArea Under (ROC) Curve at time predict.time

Details

Suppose we have censored survival data along with a baseline marker value and we want to see how well the marker predicts the survival time for the subjects in the dataset. In particular, suppose we have survival times in days and we want to see how well the marker predicts the one-year survival (predict.time=365 days). This function roc.KM.calc(), returns the unique marker values, TP (True Positive), FP (False Positive), Kaplan-Meier survival estimate corresponding to the time point of interest (predict.time) and AUC (Area Under (ROC) Curve) at the time point of interest.

References

Heagerty, P.J., Lumley, T., Pepe, M. S. (2000) Time-dependent ROC Curves for Censored Survival Data and a Diagnostic Marker Biometrics, 56, 337 -- 344

Examples

Run this code
data(mayo)
nobs <- NROW(mayo)
cutoff <- 365
  ## MAYOSCORE 4, METHOD = NNE
  Mayo4.1= survivalROC(Stime=mayo$time,  
    status=mayo$censor,      
    marker = mayo$mayoscore4,     
    predict.time = cutoff,span = 0.25*nobs^(-0.20) )
  plot(Mayo4.1$FP, Mayo4.1$TP, type="l", xlim=c(0,1), ylim=c(0,1),   
  xlab=paste( "FP", "", "AUC = ",round(Mayo4.1$AUC,3)), 
  ylab="TP",main="Mayoscore 4, Method = NNE 
  Year = 1")
  abline(0,1)

  ## MAYOSCORE 4, METHOD = KM
  Mayo4.2= survivalROC(Stime=mayo$time,  
    status=mayo$censor,      
    marker = mayo$mayoscore4,     
    predict.time =  cutoff, method="KM")
  plot(Mayo4.2$FP, Mayo4.2$TP, type="l", xlim=c(0,1), ylim=c(0,1),   
  xlab=paste( "FP", "", "AUC = ",round(Mayo4.2$AUC,3)), 
  ylab="TP",main="Mayoscore 4, Method = KM 
 Year = 1")
  abline(0,1)

Run the code above in your browser using DataLab