NEWS
probcal 0.2.0 (2026-07-09)
- Added a calibration-inference layer for binary and multiclass predictions.
skce() computes the squared kernel calibration error of Widmann et al. (2019) with three estimators: the unbiased U-statistic ("uq"), the unbiased linear-time estimator ("ul"), and the biased V-statistic ("biased"). It supports the binary/confidence reduction, the strong (canonical) multiclass form via a matrix-valued kernel, and the classwise one-vs-rest reduction. In the binary and confidence cases mmce() equals sqrt(skce(..., estimator = "biased")).
cal_test() performs a kernel calibration hypothesis test (H0: the model is calibrated). The default method = "bootstrap" uses the more powerful quadratic estimator with a wild bootstrap (Widmann et al. 2019, Theorem G.2); method = "asymptotic" uses the faster linear-estimator normal test (Lemma 3). It returns an object of class c("cal_test", "htest"). The test targets are binary, "confidence", and the strong "canonical" multiclass form; the classwise average is available only as a point estimate from skce().
cal_ci() returns a percentile bootstrap confidence interval for ece(), skce(), mmce(), mce(), or ace(), as a classed cal_ci object with a print() method.
skce() and cal_test() accept bandwidth = "median" for the median-heuristic kernel scale (Widmann et al. 2019), recommended for the canonical multiclass form; the fixed 0.2 remains the default.
ece() gains debiased (the debiased squared-ECE estimator of Kumar, Liang & Ma 2019, Definition 5.2), strategy (equal-width or equal-mass bins, Roelofs et al. 2022), and norm ("l1" or "l2"). The norm and debiased choices are independent; debiasing is defined only for norm = "l2". Defaults (norm = "l1", debiased = FALSE, strategy = "width") reproduce the previous numeric output exactly.
stratified_folds() (used by cal_cv()) now scopes the optional fold-assignment seed with withr::local_seed() instead of touching .Random.seed directly; withr was added to Imports. The fold assignments for a given seed are unchanged.
inst/CITATION now reads the version from the package metadata, and the package author is also declared as copyright holder in Authors@R.
- The README documents the calibration-inference layer (
skce(), cal_test(), cal_ci(), and the debiased, strategy, and norm arguments of ece()) with a worked example.
probcal 0.1.0
probcal 0.0.0.9000
- Added multiclass calibration.
cal_temperature() and cal_cv() accept a logit or probability matrix, and new constructors cal_vector_scaling(), cal_dirichlet(), and cal_ovr() cover vector scaling, Dirichlet calibration, and one-vs-rest calibration.
ece(), mce(), ace(), and reliability_diagram() accept a probability matrix with a type argument for classwise or top-label confidence evaluation.
- Added
mmce(), a binning-free Maximum Mean Calibration Error metric for binary and multiclass predictions.
- Added
inst/CITATION so users can cite the package with citation("probcal").
- Added applied workflow, calibrator selection, and numerical validation vignettes.
print() and summary() respect options(probcal.emoji = FALSE) to suppress the decorative glyph in console output.
reliability_diagram() now reports ECE in the subtitle by default and can use either count-scaled or fixed-size points.
- Added optional development validation tests against Python
netcal and R betacal.
- Initial development version with binary calibration methods, calibration metrics, reliability diagrams, and out-of-fold calibration support.