Closed christophertitchen closed 3 months ago
Check out this pull request on
See visual diffs & provide feedback on Jupyter Notebooks.
Powered by ReviewNB
Thanks, again great work! Looking forward to seeing what you're up to next :)
I think after all your work it would be awesome if we update the docs and have a tutorial showing the nice sparse methods that you implemented. Let me know if you'd like to work on that, otherwise I'll pick that up sometime.
Thank you for your reviews and great suggestions, Olivier!
I would be happy to both update the docs and create a tutorial for the sparse methods.
Thanks, again great work! Looking forward to seeing what you're up to next :) I think after all your work it would be awesome if we update the docs and have a tutorial showing the nice sparse methods that you implemented. Let me know if you'd like to work on that, otherwise I'll pick that up sometime.
Thank you for your reviews and great suggestions, Olivier!
I would be happy to both update the docs and create a tutorial for the sparse methods.
Great! Let's do that in another PR, I'll merge this one then.
This PR adds a middle-out reconciliation class called
MiddleOutSparse
for sparse "summing" matrices, $S$, to significantly reduce the wall time for reconciling large hierarchical structures from a "middle" level, which now take at least $99.6 \%
$ less time to reconcile.BottomUpSparse
and allocates the reconciled point forecasts in a memory-efficient manner.tags
argument only if required for out-of-sample disaggregation methods, i.e. forecast proportions.tags
toNone
for in-sample methods.tags
argument for the subgraph in the out-of-sample case.TopDownSparse
for each cut node and allocates the reconciled point forecasts in a memory-efficient manner.MiddleOutSparse
and equivalence withMiddleOut
up to the machine epsilon of a double.\textup{dim} \left ( P \right )
$\ell
$MiddleOut
MiddleOutSparse
\small{\left( 30\, 490 \times 42\, 840 \right)}
$1\, 969
$\gt 2\, hr
$ *28.1\, s
$\gt \, 99.6 \%
$ ** This was cancelled after 2 hours. 😴