model_performance.surv_explainer function

Dataset Level Performance Measures

Dataset Level Performance Measures

This function calculates metrics for survival models. The metrics calculated are C/D AUC, Brier score, and their integrated versions, as well as concordance index. It also can calculate ROC curves for specific selected time points.

model_performance(explainer, ...) ## S3 method for class 'surv_explainer' model_performance( explainer, ..., type = "metrics", metrics = c(`C-index` = c_index, `Integrated C/D AUC` = integrated_cd_auc, `Brier score` = brier_score, `Integrated Brier score` = integrated_brier_score, `C/D AUC` = cd_auc), times = NULL )

Arguments

  • explainer: an explainer object - model preprocessed by the explain() function
  • ...: other parameters, currently ignored
  • type: character, either "metrics" or "roc". If "metrics" then performance metrics are calculated, if "roc" ROC curves for selected time points are calculated.
  • metrics: a named vector containing the metrics to be calculated. The values should be standardized loss functions. The functions can be supplied manually but has to have these named parameters (y_true, risk, surv, times), where y_true represents the survival::Surv object with observed times and statuses, risk is the risk score calculated by the model, and surv is the survival function for each observation evaluated at times.
  • times: a numeric vector of times. If type == "metrics" then the survival function is evaluated at these times, if type == "roc" then the ROC curves are calculated at these times.

Returns

An object of class "model_performance_survival". It's a list of metric values calculated for the model. It contains:

  • Harrell's concordance index [1]
  • Brier score [2, 3]
  • C/D AUC using the estimator proposed by Uno et. al [4]
  • integral of the Brier score
  • integral of the C/D AUC

References

  • [1] Harrell, F.E., Jr., et al. "Regression modelling strategies for improved prognostic prediction." Statistics in Medicine 3.2 (1984): 143-152.
  • [2] Brier, Glenn W. "Verification of forecasts expressed in terms of probability." Monthly Weather Review 78.1 (1950): 1-3.
  • [3] Graf, Erika, et al. "Assessment and comparison of prognostic classification schemes for survival data." Statistics in Medicine 18.17‐18 (1999): 2529-2545.
  • [4] Uno, Hajime, et al. "Evaluating prediction rules for t-year survivors with censored regression models." Journal of the American Statistical Association 102.478 (2007): 527-537.

Examples

library(survival) library(survex) cph <- coxph(Surv(time, status) ~ ., data = veteran, model = TRUE, x = TRUE, y = TRUE) rsf_ranger <- ranger::ranger(Surv(time, status) ~ ., data = veteran, respect.unordered.factors = TRUE, num.trees = 100, mtry = 3, max.depth = 5 ) rsf_src <- randomForestSRC::rfsrc(Surv(time, status) ~ ., data = veteran ) cph_exp <- explain(cph) rsf_ranger_exp <- explain(rsf_ranger, data = veteran[, -c(3, 4)], y = Surv(veteran$time, veteran$status) ) rsf_src_exp <- explain(rsf_src) cph_model_performance <- model_performance(cph_exp) rsf_ranger_model_performance <- model_performance(rsf_ranger_exp) rsf_src_model_performance <- model_performance(rsf_src_exp) print(cph_model_performance) plot(rsf_ranger_model_performance, cph_model_performance, rsf_src_model_performance, metrics_type = "scalar" ) plot(rsf_ranger_model_performance, cph_model_performance, rsf_src_model_performance) cph_model_performance_roc <- model_performance(cph_exp, type = "roc", times = c(100, 250, 500)) plot(cph_model_performance_roc)
  • Maintainer: Mikołaj Spytek
  • License: GPL (>= 3)
  • Last published: 2023-10-24