# How can I replicate R forecasts for seasonal ARIMA?

I have obtained the following estimations and forecasts in R for a seasonal ARIMA(1, 0, 1)(1, 0, 1)

model1

Series: PO

ARIMA(1,0,1)(1,0,1) with zero mean

Coefficients:

      ar1      ma1    sar1     sma1
0.9895  -0.8241  0.9974  -0.9551
s.e.  0.0053   0.0223  0.0018   0.0136
sigma^2 estimated as 0.07273:  log likelihood=-109.35
AIC=228.7   AICc=228.76   BIC=252.96


forecast(model1, h=2)

Point Forecast Lo 80 Hi 80 Lo 95 Hi 95

t+1 1.404053 1.0584363 1.749670 0.8754777 1.932629

t+2 1.266133 0.9158214 1.616444 0.7303778 1.801888

However, considering the back errors and observed values from below, I cannot seem to replicate the forecast for t+1 which is 1.404053, using the formula:

x[t+1]=0.9895*x[t]+0.9974*x[t-6]-0.9895*0.9974*x[t-7]-(-0.8241)*e[t]-(-0.9551)*e[t-6]+(-0.8241)*(-0.9551)*e[t-7]


Instead of 1.404053 I get 1.34755

Point Errors Fitted Observed

... ...

t-8 0.091543793 1.439935124 1.5314789

t-7 -0.146540485 1.40181299 1.2552725

t-6 -0.031449518 1.235569501 1.20412

t-5 -0.008707829 1.263980334 1.2552725

t-4 -0.009736316 1.472134314 1.462398

t-3 0.079273123 1.477029378 1.5563025

t-1 0.064970255 1.440179723 1.50515

t 0.135555386 1.444228211 1.5797836

• This question seems to be only about how to get this to work in R. As such, it would be off-topic for CV (see our help page), but possibly on-topic on Stack Overflow if you could provide a reproducible example. If you have a question about the statistical aspects of this, please edit to clarify; if you just want help w/ the code, please add a dput() of your data & we can migrate it for you (please don't cross-post, though). Nov 24 '13 at 19:20

The two AR coefficients are very close to 1, suggesting that differencing might have been a better approach here. Nevertheless, your fitted model can be written as:

$$(1-0.9895 B)(1-0.9974 B^7) y_t = (1-0.8241B)(1-0.9951B^7) e_t$$

Expanding all terms, we get

$$(1-0.9895 B -0.9974 B^7 + 0.9895*0.9974 B^8) y_t = (1-0.8241B -0.9951B^7 + 0.8241*0.9951 B^8) e_t$$

or

$$y_t = 0.9895 y_{t-1} +0.9974 y_{t-7} - 0.9895*0.9974 y_{t-8} + e_t - 0.8241e_{t-1}-0.9951e_{t-7} + 0.8241*0.9951 e_{t-8}$$

So it looks like you have a problem with the signs for your MA coefficients.

• I managed to replicate the results in R when using your formula. Nov 25 '13 at 5:20
• The thing is that the formula I was using is: (1-ar1*B)(1-sar1*B^7)y[t]=(1-ma1*B)(1-sma1*B^7)e[t]. And R estimated ma1=-0.8241 and sma1=-0.9551, which in the previous formula the right term would have become: (1-ar1*B)(1-sar1*B^7)y[t]=(1+0.8241*B)(1+0.9551*B^7)e[t]. Where was I wrong? Nov 25 '13 at 5:37
• As I've already said, you have the wrong signs for the MA coefficients. Look at the help file for arima(). Nov 25 '13 at 10:49

The fact that all your series have zero mean does not imply (to me ) that the estimated constanT in your possibly over-parmeterixed ARIMA model is necessarily ZERO .