Skip to content

Implement forecast decomposition for TBATS #1125

Closed
alex-hse-repository opened this issue Feb 22, 2023 · 0 comments · Fixed by #1133
Closed

Implement forecast decomposition for TBATS #1125

alex-hse-repository opened this issue Feb 22, 2023 · 0 comments · Fixed by #1133
Assignees
Labels
enhancement New feature or request

Comments

@alex-hse-repository
Copy link
Collaborator

alex-hse-repository commented Feb 22, 2023

🚀 Feature Request

Implement forecast decomposition for TBATSModel and BATSModel

Proposal

  1. Create class _BATSBaseAdapter(BaseAdapter)
  • Move all the methods form _TBATSAdapter there
  • Create abstract_methods:
    • def forecast_components(ts: TSDataset) -> TSDataset
    • def predict_components(ts: TSDataset) -> TSDataset
  1. Create _BATSAdapter(_BATSBaseAdapter), _TBATSAdapter(_BATSBaseAdapter)
  • Implement abstract method forecast_components
  • Fix parents for TBATSModel and BATSModel
  1. Implementation details:
  • Component names: local_level, trend, seasonal_(s={s}), arma(p={p},q={q})
  • Components depends on: always exist, use_trend, seasonal_periods, use_arma_errors
  • If use_box_cox is on, do the inverse transformation for components like in inverse_transform method of our Transforms

Test cases

  • Test components sum up to target
  • Test that depending on parameters we obtain the expected set of components(use_trend, seasonal_periods, use_arma_errors)

Additional context

  • See the draft implementation in ETNA-1520
  • See implementation of forecast here
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants