Add conversion methods between multivariate and univariate forecast types

Aperta
#1,119 2 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@seabbs ci sta già lavorando.

Dal 9/3/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

enhancement

Summary

There are no dedicated conversion methods between multivariate and univariate forecast types. Some conversions already work via default methods, but others need new methods.

What already works

Promoting univariate to multivariate works via the .default constructors:

  • as_forecast_multivariate_sample(forecast_sample_obj, joint_across = "location") works because the .default method calls as_forecast_generic() which strips/rebuilds the object, then ensure_mv_grouping() adds .mv_group_id.
  • as_forecast_multivariate_point(forecast_point_obj, joint_across = "location") works the same way.

Existing univariate conversions for reference:

  • as_forecast_quantile.forecast_sample converts samples to quantiles
  • as_forecast_point.forecast_quantile extracts the median as a point forecast

No new methods needed for the promotion cases.

What needs new methods

as_forecast_multivariate_point.forecast_multivariate_sample

Summarise samples to multivariate point predictions (e.g. via mean or median per forecast unit). Should follow the as_forecast_point.forecast_quantile pattern:

  1. Assert input is valid multivariate sample
  2. Aggregate predicted values per forecast unit (configurable summary function, default mean)
  3. Remove sample_id column
  4. Preserve .mv_group_id and grouping structure
  5. Return forecast_multivariate_point object
as_forecast_point.forecast_multivariate_sample

Same as above but also drops the multivariate grouping:

  1. Aggregate predicted values per forecast unit
  2. Remove sample_id and .mv_group_id columns
  3. Return forecast_point object

Could be implemented as: convert to multivariate point first, then drop grouping. Or directly in one step.

as_forecast_point.forecast_multivariate_point

Downgrade by stripping multivariate grouping:

  1. Remove .mv_group_id column
  2. Return forecast_point object
as_forecast_quantile.forecast_multivariate_sample

Analogous to the existing as_forecast_quantile.forecast_sample but drops the multivariate grouping. Could delegate to the existing sample-to-quantile method after stripping .mv_group_id.

References

  • #1114 (variogram score for multivariate sample)
  • #1115 (multivariate point class)
  • as_forecast_point.forecast_quantile in R/class-forecast-quantile.R for the conversion pattern
  • as_forecast_quantile.forecast_sample in R/class-forecast-sample.R for the sample-to-quantile pattern

This was opened by a bot. Please ping @seabbs for any questions.

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.