cenreg.metric package
Submodules
cenreg.metric.cdf module
- cenreg.metric.cdf.brier(dist, y: ndarray, y_bins: ndarray) ndarray
Compute the (original) Brier score.
- Parameters:
dist (predicted distribution)
y (Array of shape [batch_size])
y_bins (Array of shape [num_bins+1])
- Returns:
loss
- Return type:
Array of shape [batch_size]
- cenreg.metric.cdf.km_calibration(dist, observed_times: ndarray, uncensored: ndarray | None = None, boundaries: ndarray | None = None, EPS: float = 0.0001) float
Compute KM-Calibration
- Parameters:
dist (distribution object) – Prediction results.
observed_times (ndarray) – Observation time (event time or censored time) Array shape is [batch_size].
uncensored (ndarray) – Censored (False) or uncensored (True) Array shape is [batch_size].
boundaries (ndarray) – Boundaries of F_pred Each element in z must be STRICTLY smaller than boundaries[-1]
EPS (float) – Small positive value for numerical stability
- Returns:
KM-Calibration – A non-negative float number.
- Return type:
float
- cenreg.metric.cdf.negative_loglikelihood(dist, observed_times: ndarray, uncensored: ndarray | None = None, boundaries: ndarray | None = None, simplified: bool = True, EPS: float = 0.0001) ndarray
Compute negative log-likelihood (NLL).
- Parameters:
dist (distribution object) – Prediction results.
observed_times (ndarray) – Observed times (event times or censoring times). Array shape is [batch_size].
uncensored (ndarray(bool) or None) – Indicator (censored (False) or uncensored (True)) Array shape is [batch_size].
boundaries (ndarray or None) – Boundaries of the prediction to be evaluated. The first element must be at most the smallest observed time. The last element must be strictly larger than the largest observed time. If None, dist.boundaries is used.
simplified (bool) – Use simplified version for censored data points.
EPS (float) – Small positive value for numerical stability.
- Returns:
NLL – Value of negative log-likelihood.
- Return type:
ndarray
- cenreg.metric.cdf.nll_sc(list_dist, observed_times: ndarray, events: ndarray, survival_copula, EPS: float = 0.0001)
Compute Negative Log-Likelihood based on Survival Copula (NLL-SC).
- cenreg.metric.cdf.ranked_probability_score(dist, y: ndarray, y_bins: ndarray) ndarray
Compute the ranked probability score.
- Parameters:
dist (predicted distribution)
y (Array of shape [batch_size])
y_bins (Array of shape [num_col])
- Returns:
loss
- Return type:
Array of shape [batch_size]
cenreg.metric.cjd module
- cenreg.metric.cjd.brier(observed_times: ndarray, events: ndarray, num_risks: int, f_pred: ndarray, boundaries: ndarray) float
Compute Brier score for censoree joint distribution.
- Parameters:
observed_times (ndarray) – Observed times (event times or censoring times). Array shape is [batch_size].
events (ndarray) – Event index (0 usually corresponds to censoring) Array shape is [batch_size].
num_risks (int) – Number of risks.
f_pred (ndarray) – Estimated joint distribution. Array shape is [batch_size, num_bin*num_risks].
boundaries (ndarray) – Bin boundaries used to represent f_pred. boundaries[0] = 0.0 and boundaries[-1] = max_time. Array shape is [num_bin+1].
- Returns:
Brier – Value of Brier score.
- Return type:
float
- cenreg.metric.cjd.kolmogorov_smirnov_calibration_error(observed_times: ndarray, events: ndarray, f_pred: ndarray, boundaries: ndarray) float
Sum of Kolmogorov-Sminov calibration error.
- Parameters:
observed_times (ndarray) – Observed times (event times or censoring times). Array shape is [batch_size].
events (ndarray) – Event index (0 usually corresponds to censoring) Array shape is [batch_size].
f_pred (ndarray) – Estimated joint distribution. Array shape is [batch_size, num_bin*num_risks].
boundaries (ndarray) – Bin boundaries used to represent f_pred. boundaries[0] = 0.0 and boundaries[-1] = max_time. Array shape is [num_bin+1].
- Returns:
KS – Sum of Kolmogorov-Sminov calibration error.
- Return type:
float
- cenreg.metric.cjd.negative_loglikelihood(observed_times: ndarray, events: ndarray, f_pred: ndarray, boundaries: ndarray, epsilon: float = 0.0001) float
Compute negative log-likelihood (NLL).
- Parameters:
observed_times (ndarray) – Observed times (event times or censoring times). Array shape is [batch_size].
events (ndarray) – Event index (0 usually corresponds to censoring) Array shape is [batch_size].
f_pred (ndarray) – Estimated joint distribution. Array shape is [batch_size, num_bin*num_risks].
boundaries (ndarray) – Bin boundaries used to represent f_pred. boundaries[0] = 0.0 and boundaries[-1] = max_time. Array shape is [num_bin+1].
epsilon (float) – Small value to avoid log(0).
- Returns:
NLL – Value of negative log-likelihood.
- Return type:
float
- cenreg.metric.cjd.ranked_probability_score(observed_times: ndarray, events: ndarray, num_risks: int, f_pred: ndarray, boundaries: ndarray) float
Ranked probability score (RPS).
- Parameters:
observed_times (ndarray) – Observed times (event times or censoring times). Array shape is [batch_size].
events (ndarray) – Event index (0 usually corresponds to censoring) Array shape is [batch_size].
num_risks (int) – Number of risks.
f_pred (ndarray) – Estimated joint distribution. Array shape is [batch_size, num_bin*num_risks].
boundaries (ndarray) – Bin boundaries used to represent f_pred. boundaries[0] = 0.0 and boundaries[-1] = max_time. Array shape is [num_bin+1].
- Returns:
RPS – Value of ranked probability score.
- Return type:
float
cenreg.metric.quantile module
- cenreg.metric.quantile.d_calibration(dist, observed_times: ndarray, uncensored: ndarray, boundaries: ndarray | int | None = None) float
Compute D-Calibration.
- Parameters:
dist (distribution object) – Predicted distribution.
observed_times (ndarray (float) of shape [batch_size]) – Observation time (event time or censored time)
uncensored (ndarray (bool) of shape [batch_size]) – Indicator (censored (False) or uncensored (True))
boundaries (ndarray (float) of shape [num_bin+1] or int or None) – Bin boundaries used to compute D-calibration. boundaries[0] = 0.0 and boundaries[-1] = 1.0. If boundaries is int, then boundaries = np.linspace(0.0, 1.0, boundaries + 1). If boundaries is None, then boundaries = np.linspace(0.0, 1.0, 11).
- Returns:
D-Calibration – Value of D-Calibration.
- Return type:
float