-
Notifications
You must be signed in to change notification settings - Fork 85
Question about non-strict hierarchical structures #328
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
Comments
Thanks for the good questions! I don't have answers to them, so feel free to find out yourself!
|
Hi! Sorry for the late reply. I was trying to think it through and give a thoughtful answer. From my understanding, I also can’t find a solid conceptual reason to restrict any of the TopDown methods in non-strict hierarchies, at least in the point case, as you mentioned. In non-strict hierarchies, the top and bottom levels are the same regardless of all the intermediate levels one might have, so it seems like all types of proportions (whether forecast_proportions, proportion_averages, or average_proportions) could, in principle, be calculated relative to the top level. I’m a bit more unsure about MiddleOut, though. If the selected middle level only contains partial information (as is possible in non-strict structures), maybe it’s not possible to compute all the proportions needed to reconstruct the full hierarchy, and that might be the reason why MiddleOut is currently restricted to strict hierarchies. What do you think? I’m also not entirely sure if this reasoning applies to the probabilistic case. Maybe there’s something more subtle going on there? Thanks again. This library is awesome and I really enjoy working with it 👏 I'm currently using it for temporal hierarchies, too. |
For TopDown (and then also for MiddleOut), the issue is the intermediate levels. Suppose we have the following hierarchies (simplified from the example):
All 4 levels can be constructed using TopDown using any of the methods. The issue is that the levels will not be coherent with each other (in general). If we divide (by any method) That's why it doesn't work in general for The fact that it works for |
I agree that it felt strange and confusing to allow using In the example you provided:
The top and bottom levels are unique. Referring to the latest edition of Forecasting: Principles and Practice, the Pythonic Way: “...disaggregation proportions determine how the forecasts of the Total series are to be distributed to obtain forecasts for each series at the bottom level of the structure. (…) Once the bottom-level forecasts have been generated, these are aggregated to generate coherent forecasts for the rest of the series.” So, if both the top and bottom levels are unique, and we have the base forecast for the top-level series along with the proportions needed to obtain forecasts for all bottom-level series, wouldn't we already have all the necessary information to construct coherent forecasts for the entire hierarchy? Especially considering that It is not clear to me why the middle levels would be a problem in this example, since it is apparently not a problem for |
Hi! Thanks for this amazing library.
While reproducing the example notebook AustralianPrisonPopulation.ipynb, I noticed the comment: "Since the hierarchy structure is not strict, we can't use methods such as TopDown or MiddleOut."
This raises a couple of questions:
TopDown(method="forecast_proportions")
can be used in the example. Why is forecast_proportions compatible with non-strict hierarchical structures, while average_proportions and proportion_averages are not?Here’s the list of reconcilers I tested using the same dataset from the AustralianPrisonPopulation example notebook:
I’d really appreciate any clarification on this!
Thanks in advance.
The text was updated successfully, but these errors were encountered: