Skip to content

Bibliography

The canonical reference list. Theory §7 holds a short orienting subset; everything is here, matched to the module that implements it.

Three sections, kept deliberately separate:

  1. Implemented — papers whose method is in the codebase.
  2. Declined — papers considered and not implemented, with the recorded reason. A reading list is not a claim of coverage, and knowing what a system chose not to do is often more informative than knowing what it did.
  3. Operational analogues — institutional systems that informed the design but are not papers.

1. Implemented

Forecast combination

Reference Implemented in
Bates, J. M. & Granger, C. W. J. (1969). The combination of forecasts. Operational Research Quarterly 20(4), 451–468. blenders/combine.py::InverseErrorWeights
Stock, J. H. & Watson, M. W. (2004). Combination forecasts of output growth in a seven-country data set. Journal of Forecasting 23(6), 405–430. Framing — the combination puzzle; equal_weight as benchmark
Timmermann, A. (2006). Forecast combinations. Handbook of Economic Forecasting 1, 135–196. Motivation for inverse_*; invcov is registered as its counterfactual
Ledoit, O. & Wolf, M. (2004). A well-conditioned estimator for large-dimensional covariance matrices. Journal of Multivariate Analysis 88(2), 365–411. blenders/invcov.py::ledoit_wolf_covariance

Statistical post-processing

Reference Implemented in
Vannitsem, S. et al. (2021). Statistical postprocessing for weather forecasts: review, challenges, and avenues. BAMS 102(3), E681–E699. Framing for the grounding stage
Gneiting, T., Raftery, A. E., Westveld, A. H. & Goldman, T. (2005). Calibrated probabilistic forecasting using ensemble model output statistics and minimum CRPS estimation. MWR 133(5), 1098–1118. blenders/emos.py::Emos
Scheuerer, M. & Hamill, T. M. (2015). Statistical postprocessing of ensemble precipitation forecasts by fitting censored, shifted gamma distributions. MWR 143(11), 4578–4596. blenders/csgd.py::CsgdEmos
Henzi, A., Ziegel, J. F. & Gneiting, T. (2021). Isotonic distributional regression. JRSS-B 83(5), 963–993. blenders/idr.py (incl. the subagging scheme)
Delle Monache, L. et al. (2011). Kalman filter and analog schemes to postprocess numerical weather predictions. MWR 139(11); and (2013) Probabilistic weather prediction with an analog ensemble. MWR 141(10). blenders/analog.py::AnalogEnsemble
Schuhen, N., Thorarinsdottir, T. L. & Lenkoski, A. (2020). Rapid adjustment and post-processing of temperature forecast trajectories. blenders/raft.py::RaftGrounded
Dabernig, M. & Atencia, A. (2024). Seamless multimodel postprocessing. blenders/seamless.py::SeamlessRegression
Monhart, S. et al. (2018). Skill of subseasonal forecasts in Europe: effect of bias correction and downscaling using surface observations. blenders/damped.py::DampedBlend
Meng, X. & Taylor, J. W. (2022). Comparing probabilistic forecasts of the daily minimum and maximum temperature. blenders/daily_heads.py::DailyMarginalEmos
Schefzik, R. Ensemble copula coupling. blenders/daily_heads.py::DailyPathExtreme (collapsed to the scalar extreme)
Alduchov, O. A. & Eskridge, R. E. (1996). Improved Magnus form approximation of saturation vapor pressure. J. Applied Meteorology 35(4), 601–609. units.py — dew point constants

Probability calibration

Reference Implemented in
Platt, J. (1999). Probabilistic outputs for support vector machines and comparisons to regularized likelihood methods. blenders/pop_calibration.pypop_platt
Kull, M., Silva Filho, T. & Flach, P. (2017). Beta calibration: a well-founded and easily implemented improvement on logistic calibration for binary classifiers. AISTATS. blenders/pop_calibration.pypop_beta
Gupta, C. & Ramdas, A. Calibeating / online calibration. pop_platt framing

Online learning

Reference Implemented in
Vovk, V.; Littlestone, N. & Warmuth, M. K. (1994). The weighted majority algorithm. blenders/experts.pyewa
Wintenberger, O. (2017). Optimal learning with Bernstein online aggregation. Machine Learning 106, 119–141. blenders/experts.pyboa
Herbster, M. & Warmuth, M. K. (1998). Tracking the best expert. Machine Learning 32, 151–178. blenders/experts.py::_step — fixed share
Blum, A. Empirical support for Winnow and weighted-majority; the sleeping-experts reduction. blenders/experts.py — awake-set handling

Uncertainty quantification

Reference Implemented in
Angelopoulos, A., Candès, E. & Tibshirani, R. (2023). Conformal PID control for time series prediction. NeurIPS. blenders/conformal.py::_CellState.update / effective_radius
Chernozhukov, V., Wüthrich, K. & Zhu, Y. (2021). Distributional conformal prediction. PNAS 118(48). blenders/idr.py::dcp_adjusted_levels, IdrBucketDcp
Kuleshov, V., Fenner, N. & Ermon, S. (2018). Accurate uncertainties for deep learning using calibrated regression. ICML. reports/recalibration.py::fit_pit_levels
Romano, Y., Patterson, E. & Candès, E. (2019). Conformalized quantile regression. NeurIPS. reports/recalibration.py::fit_cqr_marginsa variant, see calibration §6

Verification, testing, and selection

Reference Implemented in
Gneiting, T. & Raftery, A. E. (2007). Strictly proper scoring rules, prediction, and estimation. JASA 102(477), 359–378. metrics/probabilistic.py
Diebold, F. X. & Mariano, R. S. (1995). Comparing predictive accuracy. JBES 13(3), 253–263. metrics/dm.py::diebold_mariano
Harvey, D., Leybourne, S. & Newbold, P. (1997). Testing the equality of prediction mean squared errors. IJF 13(2), 281–291. metrics/dm.py::_hln_factor
Tashman, L. J. (2000). Out-of-sample tests of forecasting accuracy: an analysis and review. IJF 16(4), 437–450. backtest/splits.py
Hansen, P. R., Lunde, A. & Nason, J. M. (2011). The model confidence set. Econometrica 79(2), 453–497. reports/mcs.py::model_confidence_set
Künsch, H. R. (1989); Politis, D. N. & Romano, J. P. (1992). Moving/circular block bootstrap. reports/mcs.py::_block_indices
Ville, J. (1939). Étude critique de la notion de collectif. reports/eprocess.py; leaderboard._seq_gate
Waudby-Smith, I. & Ramdas, A. Estimating means of bounded random variables by betting. JRSS-B. reports/eprocess.py::EProcessStore.update_pair
Cutkosky, A. & Orabona, F. — online Newton step lineage for the bet sizing. reports/eprocess.py_ONS_RATE
Benjamini, Y. & Hochberg, Y. (1995). Controlling the false discovery rate. JRSS-B 57(1), 289–300. reports/leaderboard.py::_benjamini_hochberg
Wang, R. & Ramdas, A. (2022). False discovery rate control with e-values. JRSS-B (arXiv:2009.02824). reports/leaderboard.py::ebh_adjusted
Andrews, I., Kitagawa, T. & McCloskey, A. (2024). Inference on winners. QJE 139(1). reports/winner_curse.py — the hybrid estimator
Efron, B. & Tibshirani, R. (1993). An Introduction to the Bootstrap. reports/winner_curse.py::_slice_correction
Fang, Z. & Santos, A. — first-order validity of the bootstrap at directional-differentiability failures. reports/winner_curse.py — cited as the near-tie caveat
Sequential model confidence sets (arXiv:2404.18678). reports/eprocess.py framing
Anytime-valid inference read at fixed calendar times (arXiv:2502.08539). reports/leaderboard.py::ebh_adjusted
Météo-France expert aggregation (arXiv:2506.15217). Closest published analogue to the expert layer

Homogenization and station QC

Reference Implemented in
Alexandersson, H. (1986). A homogeneity test applied to precipitation data. J. Climatology 6(6), 661–675. dataset/drift_stats.py::snht
Khaliq, M. N. & Ouarda, T. B. M. J. (2007). On the critical values of the standard normal homogeneity test. Int. J. Climatology 27(5), 681–687. drift_stats._SNHT_CRITICAL_95 — scale check at \(n = 30\)
Pettitt, A. N. (1979). A non-parametric approach to the change-point problem. Applied Statistics 28(2), 126–135. dataset/drift_stats.py::pettitt
Craddock, J. M. (1979). Methods of comparing annual rainfall records for climatic purposes. Weather 34, 332–346. dataset/drift_stats.py::craddock_cusum
Menne, M. J. & Williams, C. N. (2009). Homogenization of temperature series via pairwise comparisons. J. Climate 22(7), 1700–1717. dataset/drift_stats.py::attribute_break
Page, E. S. (1954); Hinkley, D. V. (1971). Cumulative-sum change detection. reports/drift.py::page_hinkley
Nakamura, R. & Mahrt, L. (2005). Air temperature measurement errors in naturally ventilated radiation shields. JAOT 22(7), 1046–1058. dataset/truth_qc.py::solar_load, fit_shield_error
NOAA GMD solar position algorithm. solar.py

2. Declined

Papers considered and deliberately not implemented. The reason matters as much as the decision.

Reference Why not
Raftery, A. E., Gneiting, T., Balabdaoui, F. & Polakowski, M. (2005). Using Bayesian model averaging to calibrate forecast ensembles. MWR 133(5). Adjacent and reasonable; no BMA blender exists. EMOS and IDR occupy the same niche with less machinery. Not ruled out — simply not built.
Athanasopoulos, G., Hyndman, R. J., Kourentzes, N. & Petropoulos, F. (2017). Forecasting with temporal hierarchies. EJOR 262(1); Wickramasuriya, S. L., Athanasopoulos, G. & Hyndman, R. J. (2019). Optimal forecast reconciliation (MinT). JASA 114(526). Reconciliation constrains linear aggregates. The daily targets here are max, min, max gust, max PoP — nonlinear, with no summing matrix, outside MinT by construction. Nonlinearly-constrained reconciliation exists as a 2025 preprint, carries no error-reduction guarantee, and max/min kinks are its worst case.
Denton, F. T. (1971); Chow, G. C. & Lin, A. (1971). Temporal disaggregation. A coarse forecast contains no fine-scale shape information; disaggregation can only impose an assumed shape. The live observation does carry minute-scale information, and that is what anchoring uses. ADR 0002.
Kalman, R. E. (1960), and state-space post-processing generally. Anchoring extracts the useful "correct toward the observation" step without the covariance tuning, and — decisively — without losing the ability to A/B test the pieces separately.
Kochendorfer, J. et al. (2018). WMO-SPICE gauge catch efficiency transfer functions. HESS 22(2). Coefficients require careful transcription and the archive has essentially no precipitation to validate against. Deferred, not rejected.
Prewhitening for autocorrelated change-point series. Rejected in favour of a persistence guard: drifts persist, regimes revert. Prewhitening would also remove part of the slow trend a failing sensor produces — the signal.

3. Operational analogues

Institutional systems cited in the source as design references. These are not papers and are kept separate so the bibliography above stays a literature claim.

System Informs
NOAA National Blend of Models (NBM) The whole architecture: bias-correct, weight by lead time, anchor to observations at short lead. blenders/combine.py, cluster.py, ewma_grounding.py
NCEP decaying-average bias correction (operational since 2006) blenders/ewma_grounding.py
LAMP (Localized Aviation MOS Program) blenders/anchoring.py
INCA persist-then-ramp nowcasting blenders/anchoring.py
SAMOS (standardized anomaly MOS) blenders/harmonic_grounding.py
EasyUQ / EUPPBench blenders/idr.py
CrowdQC+ (m4 module) dataset/neighbors.py
PRISM elevation-layer logic dataset/neighbors.py
MADIS / GHCN / ECMWF station blacklisting dataset/truth_qc.py
ForecastAdvisor / ForecastWatch The consumer analogue this system strictly dominates for one location — it scores per hour, to 10 days, with proper scoring rules, against your actual backyard.