Skip to content

Add conversion methods between multivariate and univariate forecast types #1119

@seabbs-bot

Description

@seabbs-bot

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

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions