Compute the area under the ROC survival curve using predicted survival probabilities that corresponds to different time points.
roc_auc_survival(data, ...)# S3 method for data.frame
roc_auc_survival(data, truth, ..., na_rm = TRUE, case_weights = NULL)
roc_auc_survival_vec(truth, estimate, na_rm = TRUE, case_weights = NULL, ...)
A tibble
with columns .metric
, .estimator
, and .estimate
.
For an ungrouped data frame, the result has one row of values. For a grouped data frame, the number of rows returned is the same as the number of groups.
For roc_auc_survival_vec()
, a numeric
vector same length as the input argument
eval_time
. (or NA
).
A data.frame
containing the columns specified by truth
and
...
.
The column identifier for the survival probabilities this
should be a list column of data.frames corresponding to the output given when
predicting with censored model. This
should be an unquoted column name although this argument is passed by
expression and supports quasiquotation (you can
unquote column names). For _vec()
functions, the dots are not used.
The column identifier for the true survival result (that
is created using survival::Surv()
.). This should be an unquoted column name
although this argument is passed by expression and supports
quasiquotation (you can unquote column names). For
_vec()
functions, an survival::Surv()
object.
A logical
value indicating whether NA
values should be stripped before the computation proceeds.
The optional column identifier for case weights.
This should be an unquoted column name that evaluates to a numeric column
in data
. For _vec()
functions, a numeric vector,
hardhat::importance_weights()
, or hardhat::frequency_weights()
.
A list column of data.frames corresponding to the output given when predicting with censored model. See the details for more information regarding format.
Emil Hvitfeldt
This formulation takes survival probability predictions at one or more specific evaluation times and, for each time, computes the area under the ROC curve. To account for censoring, inverse probability of censoring weights (IPCW) are used in the calculations. See equation 7 of section 4.3 in Blanche at al (2013) for the details.
The column passed to ...
should be a list column with one element per
independent experiential unit (e.g. patient). The list column should contain
data frames with several columns:
.eval_time
: The time that the prediction is made.
.pred_survival
: The predicted probability of survival up to .eval_time
.weight_censored
: The case weight for the inverse probability of censoring.
The last column can be produced using parsnip::.censoring_weights_graf()
.
This corresponds to the weighting scheme of Graf et al (1999). The
internal data set lung_surv
shows an example of the format.
This method automatically groups by the .eval_time
argument.
Larger values of the score are associated with better model performance.
Blanche, P., Dartigues, J.-F. and Jacqmin-Gadda, H. (2013), Review and comparison of ROC curve estimators for a time-dependent outcome with marker-dependent censoring. Biom. J., 55: 687-704.
Graf, E., Schmoor, C., Sauerbrei, W. and Schumacher, M. (1999), Assessment and comparison of prognostic classification schemes for survival data. Statist. Med., 18: 2529-2545.
Compute the ROC survival curve with roc_curve_survival()
.
Other dynamic survival metrics:
brier_survival_integrated()
,
brier_survival()
library(dplyr)
lung_surv %>%
roc_auc_survival(
truth = surv_obj,
.pred
)
Run the code above in your browser using DataLab