Skip to content

Add conversion methods between multivariate and univariate forecast types #1119

Open

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.

Activity

  1. seabbs commented on Feb 16, 2026

    @seabbs
    Contributor

    These seem worth having. Happy to allocate to @seabbs-bot

  2. self-assigned this
    on Mar 9, 2026
  3. nikosbosse commented on May 31, 2026

    @nikosbosse
    Collaborator

    Agree this would be nice

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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