Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/reconciliation #1012

Merged
merged 28 commits into from
Jun 20, 2022
Merged

Feat/reconciliation #1012

merged 28 commits into from
Jun 20, 2022

Conversation

hrzn
Copy link
Contributor

@hrzn hrzn commented Jun 16, 2022

Posthoc reconciliation mechanisms:

  • Introduced hierarchy in TimeSeries (managed and stored similarly to static_covariates).
  • Added 3 "Reconciliator" transformer objects:
    • BottomUpReconciliator,
    • TopDownReconciliator,
    • MinTReconciliator
      implementing the techniques presented here, including the various MinT methods (as well as an additional one called wls_val).
  • Some minor improvements, such as:
    • simplifying TimeSeries.stack() to rely on concatenate()
    • repeating columns in a few places where it wasn't there (e.g. KalmanForecaster).

@codecov-commenter
Copy link

codecov-commenter commented Jun 16, 2022

Codecov Report

Merging #1012 (9c0d52b) into master (a356389) will increase coverage by 0.10%.
The diff coverage is 98.95%.

@@            Coverage Diff             @@
##           master    #1012      +/-   ##
==========================================
+ Coverage   92.91%   93.01%   +0.10%     
==========================================
  Files          76       77       +1     
  Lines        7704     7833     +129     
==========================================
+ Hits         7158     7286     +128     
- Misses        546      547       +1     
Impacted Files Coverage Δ
darts/models/filtering/moving_average.py 100.00% <ø> (ø)
darts/models/forecasting/baselines.py 88.00% <ø> (ø)
darts/models/forecasting/kalman_forecaster.py 100.00% <ø> (ø)
darts/models/forecasting/varima.py 97.95% <ø> (ø)
darts/utils/statistics.py 88.29% <ø> (ø)
darts/timeseries.py 92.09% <98.75%> (+0.23%) ⬆️
...arts/dataprocessing/transformers/reconciliation.py 99.01% <99.01%> (ø)
darts/dataprocessing/transformers/__init__.py 100.00% <100.00%> (ø)
...ocessing/transformers/fittable_data_transformer.py 96.66% <100.00%> (ø)
darts/dataprocessing/transformers/scaler.py 97.56% <100.00%> (ø)
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a356389...9c0d52b. Read the comment docs.

Copy link
Contributor

@brunnedu brunnedu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool addition! 🔥 Left a few minor remarks

darts/dataprocessing/transformers/__init__.py Outdated Show resolved Hide resolved
darts/dataprocessing/transformers/__init__.py Outdated Show resolved Hide resolved
darts/dataprocessing/transformers/reconciliaton.py Outdated Show resolved Hide resolved
darts/dataprocessing/transformers/reconciliaton.py Outdated Show resolved Hide resolved
darts/dataprocessing/transformers/reconciliaton.py Outdated Show resolved Hide resolved
darts/dataprocessing/transformers/reconciliaton.py Outdated Show resolved Hide resolved
darts/dataprocessing/transformers/reconciliaton.py Outdated Show resolved Hide resolved
darts/timeseries.py Outdated Show resolved Hide resolved
@hrzn hrzn linked an issue Jun 19, 2022 that may be closed by this pull request
2 tasks
@hrzn hrzn merged commit f514e6e into master Jun 20, 2022
@tackes
Copy link

tackes commented Jun 28, 2022

Awesome Feature! Any documentation / notebook example on how to implement this and what the input datasets look like?

@madtoinou madtoinou deleted the feat/reconciliation branch July 5, 2023 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Initial hierarchical reconciliation API
5 participants