Pre-ranking for multivariate calibration assessment

Aperta
#1,064 2 commenti 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
38/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
r
Ambito
analytics, data

Direzione di ricerca

Iniziate leggendo le sezioni 2.1–2.2 di Gneiting et al. (2008) e analizzate la nuova classe forecast_multivariate_sample. Confrontate l’integrazione di coverage in score.forecast_multivariate_sample() con l’aggiunta di get_multivariate_ranks(), quindi chiarite l’API prevista e la gestione dei ranghi. Il lavoro è completato quando è disponibile un’implementazione documentata del pre-ranking con un output di calibrazione visualizzabile come istogrammi dei ranghi.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary

Implement pre-ranking methods from Gneiting et al. (2008) to assess calibration of multivariate forecasts via univariate rank histograms.

Motivation

When forecasting multiple correlated quantities (e.g., multiple locations, age groups, or forecast horizons), standard univariate calibration checks miss dependency structure. A forecast could be perfectly calibrated marginally (each location's PIT is uniform) but miss the correlation structure entirely. Gneiting et al. (2008) propose "pre-ranking" approaches that reduce multivariate calibration assessment to univariate ranks, which can then be visualised via rank histograms. This could complement the new forecast_multivariate_sample class by providing calibration diagnostics.

Pre-ranking methods

The paper describes two main pre-ranking approaches:

  1. Multivariate rank (Section 2.1): Based on pre-ranks using an orthant semi-ordering. For each point, count how many other points lie "to the lower left" in all dimensions. The observation's rank among samples is then interpreted as a calibration metric. Ties are resolved randomly.

  2. Minimum spanning tree (MST) rank (Section 2.2): Remove each point in turn and compute the MST length of the remaining points. Rank observation by where its MST length falls among sample MST lengths.

Design options

This could be implemented in two ways

Option A: Include in score()

Add coverage columns to score.forecast_multivariate_sample() output:

  • multivariate_coverage_50, multivariate_coverage_90, etc.
  • Each is 0/1 per forecast unit (like univariate interval_coverage_*)
  • Aggregation via summarise_scores() gives coverage proportions
  • Existing visualisation tools can display coverage deviations

This parallels how univariate interval coverage works and feels most natural.

Option B: Standalone function
get_multivariate_ranks(forecast_multivariate, method = "average_rank")

Returns the observation's rank among samples (1 to M+1). This can be passed to get_pit_histogram() for visualisation. Useful for detailed calibration diagnostics beyond coverage.

Reference

Gneiting, T., Stanberry, L. I., Grimit, E. P., Held, L., & Johnson, N. A. (2008). Assessing probabilistic forecasts of multivariate quantities, with an application to ensemble predictions of surface winds. Test, 17(2), 211-235. https://doi.org/10.1007/s11749-008-0114-x -- available at https://stat.uw.edu/sites/default/files/files/reports/2008/tr537.pdf

Lingua principale
R
Stelle
65
Fork
24
Merge medio
1h 24m
PR unite (30g)
2

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di epiforecasts/scoringutils

Tutte le issue di epiforecasts/scoringutils

Issue simili

Altre issue su R

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.