I am doing a SARIMA forecasting for my monthly data in STATA, and below is my forecast. I use a SARIMA (1,1,1)(0,1,1,12) model, but the forecast seem to only capture the previous month pattern, which cause the forecast very repetitive (eg. the trend is going upward, which seems logical that we expect a greater number of ship arrivals to port). Looking at the historical pattern, there were up and downs like a random noise shape. My forecast, however does not capture the random noise shape. I am curious what went wrong? Is it because of the ARIMA I used is incorrect? Or what other reasons? I would really be grateful if someone could tell me where I did wrong, and the corrections that I could make to make the forecast seem more realistic. Thank you!

Here is the command code I used in STATA:

*tsset month1, monthly
tsappend, last(2030m1) tsfmt(tm)
arima con_arrivals, arima(1,0,1) sarima(0,1,1,12)
predict con_arrivals_f, y dynamic(m(2019m1))
tsline con_arrivals con_arrivals_f if month1 > m(1995m1)* 

enter image description here

  • 1
    $\begingroup$ What do you expect the forecast to look like? $\endgroup$ – The Laconic Feb 27 at 13:07
  • $\begingroup$ Hi, looking at the historical patterns, I would expect the forecast to be not just repetitive, but have some up and downs. $\endgroup$ – HE HAISONG Feb 27 at 13:11
  • 2
    $\begingroup$ You can only predict the regularities in data; whatever is truly random is unpredictable. $\endgroup$ – Firebug Feb 27 at 13:22
  • $\begingroup$ Hi thank you for the advice. Just one question: in the previous historical pattern, there are sometimes a peak and then a downturn to trough. However, the forecast does not capture that, in other words, the forecast is just keep going up. This cant possibly be right? $\endgroup$ – HE HAISONG Feb 27 at 13:45

As Firebug notes, time series forecasting algorithms can only predict signal or patterns. Patterns that are unpredictable in timing can, by definition, not be predicted. And so they will not be.

Let's turn the question around: you expect the forecast to contain large peaks and troughs just like the past observations do. When do you expect them? Why do you expect them at some specific point in time, rather than, say, half a year earlier or two years later? If you can answer these questions, then you can start looking for a prediction algorithm that incorporates this kind of information.

ARIMA, incidentally, won't. It only looks back a short number of periods. It does include the possibility of large peaks and troughs by having large prediction intervals (not shown on your plot) - larger ones than if your series did not have these strong fluctuations.

You mention that your series is one of ships arriving in ports, and I notice that the big drop is apparently in 2008. This looks like it was driven by the Great Recession. If you can predict the next similarly strong downturn with any kind of accuracy, then you should not be forecasting ship arrivals, but earning tons of money by shorting stocks. (This is shorthand for: many extremely smart people are trying to predict exactly this kind of pattern, and unsuccessfully so, so it's not realistic to expect a dumb algorithm to manage it.)

Related: How to know that your machine learning problem is hopeless?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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