Skip to contents

Evaluate survival model performance with time-dependent calibration metrics. Assess calibration, discrimination, and predictive accuracy at specific time points using bootstrap validation and cross-validation. TRIPOD-compliant reporting.

Usage

survivalcalibration(
  data,
  time,
  event,
  predicted,
  linearPredictor,
  validationSet,
  calibrationTime = 60,
  calibrationTimes = "12,36,60",
  nGroups = 10,
  validationMethod = "bootstrap",
  nBootstrap = 100,
  nFolds = 10,
  showCalibrationPlot = TRUE,
  showCindexPlot = TRUE,
  showBrierPlot = TRUE,
  showGroupedCalibration = TRUE,
  smoothCalibration = TRUE,
  ciLevel = 0.95,
  tripodReport = TRUE
)

Arguments

data

The data as a data frame.

time

Time to event or censoring (in months).

event

Event indicator (0 = censored, 1 = event).

predicted

Predicted survival probability at calibration time (0-1 scale).

linearPredictor

Linear predictor from Cox model (alternative to predicted probability).

validationSet

Grouping variable for training/validation/external sets.

calibrationTime

Time point (in months) for calibration assessment (e.g., 60 = 5 years).

calibrationTimes

Comma-separated time points (in months) for calibration curves.

nGroups

Number of groups (deciles) for grouped calibration curves.

validationMethod

Internal validation method to assess model performance.

nBootstrap

Number of bootstrap samples for optimism correction.

nFolds

Number of folds for cross-validation.

showCalibrationPlot

Display calibration plot (observed vs predicted survival).

showCindexPlot

Display C-index over time with confidence intervals.

showBrierPlot

Display Brier score over time (prediction error).

showGroupedCalibration

Display calibration curves stratified by risk groups.

smoothCalibration

Use loess smoothing for calibration curves.

ciLevel

Confidence level for intervals (0.80-0.99).

tripodReport

Generate TRIPOD-compliant validation report.

Value

A results object containing:

results$instructionsa html
results$performanceMetricsa table
results$calibrationMetricsa table
results$discriminationMetricsa table
results$validationSummarya html
results$calibrationPlotan image
results$groupedCalibrationPlotan image
results$cindexPlotan image
results$brierPlotan image
results$tripodReporta html
results$clinicalInterpretationa html

Tables can be converted to data frames with asDF or as.data.frame. For example:

results$performanceMetrics$asDF

as.data.frame(results$performanceMetrics)

Examples

# Example usage:
# data <- your_data
# ClinicoPath::survivalcalibration(
#   data = data,
#   time = "survival_time",
#   event = "status",
#   predicted = "pred_5yr_surv",
#   calibrationTime = 60,
#   validationMethod = "bootstrap"
# )