1
$\begingroup$

I'm doing time series forecasting using AutoARIMA model from the darts library. However, the prediction output is a straight line. I don't know how I should fix this, any suggestion & help please!

code picture

$\endgroup$
3
  • 1
    $\begingroup$ What happened around 2500? $\endgroup$
    – forecaster
    Commented Nov 3, 2022 at 11:02
  • $\begingroup$ Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. $\endgroup$
    – utobi
    Commented Nov 3, 2022 at 11:54
  • $\begingroup$ Very similar questions have been asked a number of times on this site. Check them out: stats.stackexchange.com/search?q=%5Barima%5D+straight+line. (There are probably more.) How is your question different from these? $\endgroup$ Commented Nov 3, 2022 at 12:19

1 Answer 1

0
$\begingroup$

Please notice that your forecast is not "completely flat", you converge to a particular value as the selected ARIMA model is (1,1,1)(0,0,0) so in the end our estimates get attenuated around their expected mean.

Just some background: An AR(1) is suggests $y_t = \mu +\phi_1 y_{t-1} + e_t$, MA(1) suggests that $y_t = e_t +\theta_1 y_{t-1}$ and ARIMA(0,1,0) suggests: $y_t = \mu + y_{t-1}$. Here $e_t$ are our white noise (error) at time $t$ and $\theta_i$ and $\phi_i$ reflect how much we weigh them, they are simple scalars.

With that out of way our ARIMA(1,1,1) will therefore be: $y_t - y_{t-1} = \mu + \phi_1(y_t - y_{t-1})+ e_t + \theta_1 e_{t-1}$. (Sometimes this is equivalently written out as: $(1-\phi_1 B)(1-B)y_t = \mu + (1 + \theta_1 B) e_t$ where B is the backward shift operator describing our differencing.)

The second tuple (0,0,0) suggests no seasonal components.

Now let's notice what happens as we move forward in forecasting time. $\mu$ is stable so that's "flat", the expectation of $E\{e_t\} = 0$ as it is white noise so that will slowly converge to zero, so that will slowly be flat too, so the only thing left to "drive" our forecasts is $y_{t-1}$. While the post does not output the ARIMA coefficients, assuming $\phi_1$ is not much larger than $\theta_1$, the contribution of it will slowly also be attenuated in the long run as ($y_t - y_{t-1}$) gets smaller due too the dumping effect all other factors have. To that extent, as the estimated $| \phi\ |$ is most likely below $1$, that also suggests convergence to $0$ (i.e. flat). Finally do note that the forecast horizon used, is "very long", the plots shows a situation where we are forecasting hunderds of steps into the future. As similar exposition for a ARIMA(1,0,0) can be found here: ARIMA converges to mean.

I would suggest the following:

  1. Limit your ARIMA estimates' forecasting horizon substantially. "In the long run we are all dead", and so are our forecasts.
  2. If we need very long term forecasts we should consider using something like a linear model with an ARMA error structure. We need "stronger" assumptions about the evolution of $\mu$ across time.
  3. Consider the use of external variables. (Sometimes called exogenous) They allow us to explain events that do not necessarily related to the stochastic nature of our data. For example as @forecaster mentioned, something probably happened at around time 2500 tha had little to do with the overall stochastic volatility and mean trend as we model it with the ARIMA.
  4. Consider defining a seasonal trend if our data have a periodic pattern (e.g. weekly or daily), while "not much" it helps making the long term forecasts a bit more realistic (assuming that the pattern still holds).
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.