Calculates the integrated logarithmic (log), loss, aka integrated cross entropy.

For an individual who dies at time \(t\), with predicted Survival function, \(S\), the probabilistic log loss at time \(t^*\) is given by $$L(S,t|t^*) = - [log(1 - S(t^*))I(t \le t^*, \delta = 1)(1/G(t))] - [log(S(t^*))I(t > t^*)(1/G(t^*))]$$ # nolint where \(G\) is the Kaplan-Meier estimate of the censoring distribution.

If integrated == FALSE then the sample mean is taken for the single specified times, \(t^*\), and the returned score is given by $$L(S,t|t^*) = \frac{1}{N} \sum_{i=1}^N L(S_i,t_i|t^*)$$ where \(N\) is the number of observations, \(S_i\) is the predicted survival function for individual \(i\) and \(t_i\) is their true survival time.

If integrated == TRUE then an approximation to integration is made by either taking the sample mean over all \(T\) unique time-points (method == 1), or by taking a mean weighted by the difference between time-points (method == 2). Then the sample mean is taken over all \(N\) observations. $$L(S) = \frac{1}{NT} \sum_{i=1}^N \sum_{j=1}^T L(S_i,t_i|t^*_j)$$

Dictionary

This Measure can be instantiated via the dictionary mlr_measures or with the associated sugar function msr():

MeasureSurvIntLogloss$new()
mlr_measures$get("surv.intlogloss")
msr("surv.intlogloss")

Meta Information

  • Type: "surv"

  • Range: \([0, \infty)\)

  • Minimize: TRUE

  • Required prediction: distr

References

Graf E, Schmoor C, Sauerbrei W, Schumacher M (1999). “Assessment and comparison of prognostic classification schemes for survival data.” Statistics in Medicine, 18(17-18), 2529--2545. doi: 10.1002/(sici)1097-0258(19990915/30)18:17/18<2529::aid-sim274>3.0.co;2-5 .

See also

Super classes

mlr3::Measure -> mlr3proba::MeasureSurv -> mlr3proba::MeasureSurvIntegrated -> MeasureSurvIntLogloss

Active bindings

eps

(numeric(1))
Very small number used to prevent log(0) error.

se

(logical(1))
If TRUE returns the standard error of the measure.

Methods

Public methods

Inherited methods

Method new()

Creates a new instance of this R6 class.

Usage

MeasureSurvIntLogloss$new(
  integrated = TRUE,
  times,
  eps = 1e-15,
  method = 2,
  se = FALSE
)

Arguments

integrated

(logical(1))
If TRUE (default), returns the integrated score; otherwise, not integrated.

times

(numeric())
If integrate == TRUE then a vector of time-points over which to integrate the score. If integrate == FALSE then a single time point at which to return the score.

eps

(numeric(1))
Very small number to set zero-valued predicted probabilities to in order to prevent errors in log(0) calculation.

method

(integer(1))
If integrate == TRUE selects the integration weighting method. method == 1 corresponds to weighting each time-point equally and taking the mean score over discrete time-points. method == 2 corresponds to calculating a mean weighted by the difference between time-points. method == 2 is default to be in line with other packages.

se

(logical(1))
If TRUE returns the standard error of the measure.


Method clone()

The objects of this class are cloneable with this method.

Usage

MeasureSurvIntLogloss$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.