-
Notifications
You must be signed in to change notification settings - Fork 13
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
Not much success forecasting a Stair-Step pattern #209
Comments
Hi! That sort of pattern is not common in our data, so this is a new use case for us. The problem with the exponential model is known to us - it can be very unstable, and nowadays we discourage its use, except for decreasing series, which can use Short answer: The linear model is probably the best you can get out of this library, for this particular use case. The fit won't look nice, but for the purpose of finding when the server reaches 100% util, you care mostly about the trend, and this will get that. Long answer: It is possible to define a custom model for this kind of pattern. Unfortunately, the library fails to get a decent fit out of this model, so it's useless except as a thought experiment. Here is the code, anyway:
And this is what the output of this model looks like: It gets you the trend, and a stair pattern, but it fails to pick up the correct width of the steps. You are better off with a linear model at this point. That said, even though the optimisation loop fails to find a right value for the step width parameter, you can get a decent fit if the initial value for that parameter is a good one. So, potentially, if you could get an algorithm for that and use that in _f_init_params_stair(), you might get this to work after all. |
Thanks for your quick response. |
I am modeling storage utilization on my servers using daily datapoints. On the x-axis I have the last 365 days and on the y-axis I have Utilization% that can be from 0% to 100%. The goal is to forecast when a server will hit 100$ Utilization.
For the most part I have had success but for a handful of servers where the series takes the form of a stairstep pattern. I configured the Anticipy toolbox with exponential, quasilinea, linear and constant BUT the exponential or quasilinear would be consistently selected over the other models and the result was that the forecast did not approximate the stair step pattern very well. This also resulted in the forecast being overly aggressive showing that the server would exceed 100% prematurely i.e. looking at how the actual data would rise and plateau in stairstep fashion it wasn't plausible that the forecast would suddenly exceed 100% in the short-term.
I then ran an experiment where I wrote a short algorithm to detect a stairstep pattern in the incoming data and if I found one I would route the series to a toolbox with the same models as above except that plus the addition of a weekly seasonality model. This showed that the weekly seasonality + linear and weekly seasonality + exponential were great at tracking the stairstep in the actual series very closely, HOWEVER the forecasting then gets very erratic i.e. the initial forecasted values beyond the actual data, would suddenly ramp to 950%, settle back down to within stairstep levels then plunge down to -850% .I couldn't find an explanation for this behavior.
I am making my way thru the bugs and enhancements on this site but thus far haven't uncovered any hits. I am writing this post in the hope that someone has encountered these issues and knows how to model a stairstep pattern with the product.
The text was updated successfully, but these errors were encountered: