Isotonic Distributional Regression

Alexander Henzi, Johanna F. Ziegel, Tilmann Gneiting
9/9/2019
stat.MEmath.ST

Official code: AlexanderHenzi/isodistrreg (21 stars, Rust, last commit 2026-10-13). 1 more implementation below.

Abstract

Isotonic distributional regression (IDR) is a powerful nonparametric technique for the estimation of conditional distributions under order restrictions. In a nutshell, IDR learns conditional distributions that are calibrated, and simultaneously optimal relative to comprehensive classes of relevant loss functions, subject to isotonicity constraints in terms of a partial order on the covariate space. Nonparametric isotonic quantile regression and nonparametric isotonic binary regression emerge as special cases. For prediction, we propose an interpolation method that generalizes extant specifications under the pool adjacent violators algorithm. We recommend the use of IDR as a generic benchmark technique in probabilistic forecast problems, as it does not involve any parameter tuning nor implementation choices, except for the selection of a partial order on the covariate space. The method can be combined with subsample aggregation, with the benefits of smoother regression functions and gains in computational efficiency. In a simulation study, we compare methods for distributional regression in terms of the continuous ranked probability score (CRPS) and $L_2$ estimation error, which are closely linked. In a case study on raw and postprocessed quantitative precipitation forecasts from a leading numerical weather prediction system, IDR is competitive with state of the art techniques.

View on arXivView PDF

Code Implementations(2)

Rust

Isotonic Distributional Regression (IDR)

212C, RAug 27, 20191 weeks ago
evwalz/isodisregOfficial100%
MIT
73C++, PythonJul 22, 20201 years agoMIT

Similar Papers

Cite this paper

@article{henzi2019isotonic,
  title  = {Isotonic Distributional Regression},
  author = {Alexander Henzi and Johanna F. Ziegel and Tilmann Gneiting},
  year   = {2019},
  eprint = {1909.03725},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1909.03725}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1909.03725.svg)](https://codeofpaper.com/paper/1909.03725)

Discussion