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^*))]$$ 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.

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)

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.


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.