tidyverts / fabletools

General fable features useful for extension packages
http://fabletools.tidyverts.org/
89 stars 31 forks source link

Cross-sectional bootstrapping #367

Open mitchelloharawild opened 1 year ago

mitchelloharawild commented 1 year ago

When a model is linked with others in a list (possibly with some reconciliation/aggregation constraints) it should be possible to bootstrap the series using the same time point across all models.

Implement in generate() as an additional optional argument, and expose this via ... to forecast() for base and reconciled forecasts.

mitchelloharawild commented 1 year ago

@robjhyndman

Currently each generate() method defines it's own way of bootstrapping the innovation residuals from their model object.

For example: https://github.com/tidyverts/fable/blob/685cc9ec7846a990d7c664f8eb24e4ad75e1673a/R/ets.R#L374-L384

As I understand, the bootstrapping part of this code is not model specific and can/should be brought up into fabletools? This would make it easier to implement block bootstrapping and cross-sectional bootstrapping.

The second part of sampling innovations from the theoretical distribution is however model specific and should be left to each model implementation?