`impute_worst_score()` imputes the maximum of each metric separately, which is not the worst score for several metrics

Aperta
#1,263 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
r
Ambito
data

Direzione di ricerca

Start with R/impute-missing-scores.R and trace how impute_worst_score() selects and fills metric values. Read the “Handling missing forecasts” vignette to understand the documented penalty, then check how the imputed WIS components and coverage and bias values should behave together. Done means imputed rows represent a consistent worst forecast and the documented behavior matches the implementation.

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

Descrizione

CLAUDE: impute_worst_score() gives every metric its maximum across models, separately per metric. For several default metrics the maximum is not "worst", and the imputed scores of one forecast are no longer consistent with each other.

library(scoringutils)
scores <- score(as_forecast_quantile(example_quantile))
w <- impute_missing_scores(scores, impute_worst_score())
imp <- w[(.imputed)]

max(abs(imp$wis - (imp$overprediction + imp$underprediction + imp$dispersion)))
#> 77582.39      (for original rows: about 6e-11)
table(imp$interval_coverage_50)
#>   0   1
#>  33 104       # missing forecasts are mostly counted as covered
range(imp$bias)
#> -0.9  1.0     # the worst bias is the largest absolute value, not the maximum
class(w$interval_coverage_50)
#> "integer"     # was "logical"
  • interval_coverage_*: the maximum means "covered".
  • bias: signed; the maximum can even be negative.
  • WIS components: maximised separately, so wis no longer equals their sum, which matters for plot_wis().

The vignette "Handling missing forecasts" says this strategy penalises models most heavily, which is not true for these metrics.

Location: R/impute-missing-scores.R.

Suggested fix: copy all metrics from the row with the worst value of one primary metric (e.g. wis, or the first metric), or restrict the strategy to named loss metrics. At a minimum, document that "worst" means "maximum" and warn for coverage and bias columns.

Found during a full review of the package (version 2.3.0.9000, main at 779d7d68).

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.