pub struct BrierScorecard {
pub total_predictions: usize,
pub resolved: usize,
pub unresolved: usize,
pub avg_brier_score: f64,
pub reliability: f64,
pub resolution: f64,
pub uncertainty: f64,
pub skill_score: f64,
pub calibration_bins: Vec<CalibrationBin>,
pub calibration_gap: f64,
pub perfect_calibration: bool,
pub good_calibration: bool,
}Expand description
Full Brier scorecard with the Murphy decomposition.
Fields§
§total_predictions: usizeTotal predictions ever recorded.
resolved: usizePredictions resolved against reality.
unresolved: usizePredictions still awaiting resolution.
avg_brier_score: f64Average Brier score over resolved predictions (lower is better).
reliability: f64Reliability term — mean squared gap between predicted probability and observed rate within bins. 0 = perfectly calibrated.
resolution: f64Resolution term — how well predictions separate outcomes. Higher is better (upper bounded by uncertainty).
uncertainty: f64Uncertainty — base-rate variance ō(1 − ō). The difficulty ceiling.
skill_score: f64Brier skill score vs. climatology (1 = perfect, 0 = no better than always predicting the base rate, negative = worse).
calibration_bins: Vec<CalibrationBin>Decile calibration bins (predicted probability → observed rate).
calibration_gap: f64Historical rolling calibration gap used for adjustments.
perfect_calibration: boolWhether the model is essentially perfectly calibrated.
good_calibration: boolWhether calibration is good (Brier < 0.15).
Implementations§
Source§impl BrierScorecard
impl BrierScorecard
Sourcepub fn compute(resolved: &[CalibrationPrediction], gap: f64) -> Self
pub fn compute(resolved: &[CalibrationPrediction], gap: f64) -> Self
Compute the scorecard from resolved predictions.