I have a data that I would like to use arima model to perform forecast. when I use auto.arima, my results does not seem right. When I change my arima order to c(1,0,1), numbers starts changing and seem more realistics.

How do I know which arima order to pick? Which orders set I should try to compare results? Not sure but sigma seems like the error. Maybe I should pick the order level that provides the smallest sigma? Any guidance is greatly appreciated.

Here is my data set:

tmp

          Jan      Feb      Mar      Apr      May      Jun      Jul      Aug      Sep      Oct      Nov      Dec
2011                                              38.96315 38.27304 40.79011 40.59401 42.22266 42.76763 38.69254
2012 42.77221 45.47796 44.32276 46.30973 51.64651 47.91630 49.75013 24.68711 24.39294 24.35242 27.60628  

ar<-auto.arima(tmp)

ar result:

Series: tmp 
ARIMA(0,1,0)                    

sigma^2 estimated as 43.54:  log likelihood=-56.2
AIC=114.4   AICc=114.66   BIC=115.23

perform forecast on ar:

vol_fore <- forecast(ar,h=12)

result of vol_fore:

        Point Forecast      Lo 80    Hi 80      Lo 95    Hi 95
Dec 2012       27.60628 19.1496201 36.06294  14.672936 40.53962
Jan 2013       27.60628 15.6467578 39.56580   9.315770 45.89679
Feb 2013       27.60628 12.9589169 42.25364   5.205072 50.00748
Mar 2013       27.60628 10.6929623 44.51959   1.739594 53.47296
Apr 2013       27.60628  8.6966162 46.51594  -1.313554 56.52611
May 2013       27.60628  6.8917813 48.32077  -4.073811 59.28637
Jun 2013       27.60628  5.2320644 49.98049  -6.612129 61.82468
Jul 2013       27.60628  3.6872375 51.52532  -8.974738 64.18729
Aug 2013       27.60628  2.2363044 52.97625 -11.193748 66.40630
Sep 2013       27.60628  0.8639778 54.34858 -13.292541 68.50510
Oct 2013       27.60628 -0.4412831 55.65384 -15.288765 70.50132
Nov 2013       27.60628 -1.6884441 56.90100 -17.196133 72.40869

forecasted data points are the same. Therefore, I dont think auto.arima is a good model for this. I've been looking at order levels, but could not figure out which ones to pick.

  • Can you elaborate on "not seem right" and "more realistic"? What looks wrong/right? – Corone Mar 19 '13 at 17:14
  • @Corone, I just updated my original post with some data – user1471980 Mar 19 '13 at 17:19
  • Try ar<-auto.arima(tmp, d=0) to force non-sazonal difference be 0 – Rcoster Mar 20 '13 at 14:43
  • That doesn't work very well. You get an AR(1,0,0) with and intercept and a bad forecast. – Tom Reilly Apr 11 '13 at 13:04
up vote 2 down vote accepted

USER1471980, The key here is that you can't start with ARIMA all of the time. The world doesn't seem to understand this just yet. You might need to consider finding deterministic variables like a level shift before you try and then find the ARIMA model. This is the key to Balke's paper. http://www.jstor.org/discover/10.2307/1391308?uid=2&uid=4&sid=21102018002417

In this case, the model would have no ARIMA effects and just some determinstic dummy variables and a forecast of 25.26.

Y(T) = 40.634
+[X1(T)][(- 23.6460)] :LEVEL SHIFT 15
+[X2(T)][(+ 8.2712)] :LEVEL SHIFT 10
+[X3(T)][(+ 4.8435)] :PULSE 9
+[X4(T)][(- 4.5829)] :PULSE 10
+ + [A(T)]

  • Can you explain a bit more on what a level shift and pulse are - what the effect is and how these numbers were determined? – B_Miner Mar 20 '13 at 13:45
  • Seems to me that two level shifts and two pulses in such a short time series is a bit speculative. – Wayne Mar 20 '13 at 14:08
  • 1
    B_Miner, a level shift is a change in the intercept. A pulse is a one time outlier. Wayne, It is clear that there are two level shifts in the plot and in good statistical analysis. The pulses are subtle, but are there. Every model is debatable, but the point being is that you should be looking for them. – Tom Reilly Mar 20 '13 at 14:25
  • 1
    You can read about level shifts and outliers here unc.edu/~jbhill/tsay.pdf – Tom Reilly Mar 20 '13 at 14:34

You have a very short data series which drops off a cliff in August of 2012, so I doubt that you'll find any ARIMA fit that works well. Sorry.

Your ARIMA(1,0,1) "works" only in that it creates an asymptotic curve approaching the mean of your series. I wouldn't count on it actually predicting anything. You need more data: probably three years minimum for monthly data, but more like 5+ years.

EDIT: It's not just ARIMA, doing any forecasting with such a short time series is problematic, and especially one that has such a huge and unexplained shift. If that's all the data you have, I'd say you're stuck.

It'd be helpful to know more about the data: what kind of data is it, what related data could you obtain, what additional things do you know about the data?

  • which method would you recommend to use instead of ARIMA in this case? – user1471980 Mar 19 '13 at 20:32
  • Unfortunately, I don't think any method will work with such a short time series. You don't even have two full years of data and there's an obvious and large change part-way through, so there's not really enough data to establish patterns. Perhaps if you have a lot of external knowledge about the data -- either domain knowledge or other, related data -- you could do something. What kind of data is it? – Wayne Mar 19 '13 at 22:38
  • +1 I totally agree with Wayne. To be honest I think the auto.arima has done the right thing really, it has just said your best guess of the next number is the previous number. – Corone Mar 20 '13 at 8:56

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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