255. ARIMA

Autoregressive integrated moving average

ARIMA(𝑝,𝑑,𝑞)𝜑(𝐵)(1𝐵)𝑑𝑥𝑡=𝑐+𝜃(𝐵)𝜀𝑡𝜑(𝐵)=1𝜑1𝐵𝜑𝑝𝐵𝑝𝜃(𝐵)=1+𝜃1𝐵++𝜃𝑞𝐵𝑞

Differencing operator (1𝐵)𝑦𝑡=𝑦𝑡𝑦𝑡1 removes trend.
Apply 𝑑 times to make non-stationary series stationary.

Parameters: 𝜑1,,𝜑𝑝, 𝜃1,,𝜃𝑞, 𝑐, 𝜎2
Orders: 𝑝, 𝑑, 𝑞

Example: ARIMA(1,1,1)

Given

  • Orders: 𝑝=1, 𝑑=1, 𝑞=1
  • Parameters: 𝜑1=0.5, 𝜃1=0.5, 𝑐=0
  • Initial conditions: 𝑑1=0, 𝜀1=0
  • Data:
𝑡12345678910111213141516
x𝑡121081114129131614111518161317

Step 1 — formula

Substitute 𝑝=1, 𝑑=1, 𝑞=1 into the ARIMA recursion:

(1𝜑1𝐵)(1𝐵)𝑥𝑡=𝑐+(1+𝜃1𝐵)𝜀𝑡

Difference — apply (1𝐵) to convert 𝑥𝑡 to a stationary series:

𝑑𝑡(1𝐵)𝑥𝑡=𝑥𝑡𝑥𝑡1

In the differenced space, the model is ARMA(1,1):

𝑑𝑡=𝑐+𝜑1𝑑𝑡1+𝜀𝑡+𝜃1𝜀𝑡1

Forecast the difference (set 𝜀𝑡=0):

𝑑̂𝑡=𝑐+𝜑1𝑑𝑡1+𝜃1𝜀𝑡1

Undifference — convert the difference forecast back to a forecast for 𝑥𝑡:

𝑥̂𝑡=𝑥𝑡1+𝑑̂𝑡

Innovation:

𝜀𝑡=𝑑𝑡𝑑̂𝑡=𝑥𝑡𝑥̂𝑡

Step 2 — apply at 𝑡=2

First difference: 𝑑2=𝑥2𝑥1=1012=2.

Plug in 𝜑1=0.5, 𝜃1=0.5, 𝑑1=0, 𝜀1=0:

𝑑̂2=0+0.50+0.50=0𝑥̂2=𝑥1+𝑑̂2=12+0=12𝜀2=𝑥2𝑥̂2=1012=2

Step 3 — iterate

Two-stage pipeline at each 𝑡: difference ARMA-forecast the difference undifference. Values rounded to 4 decimal places.

𝑡𝑥𝑡𝑑𝑡=𝑥𝑡𝑥𝑡1𝑑̂𝑡=0.5𝑑𝑡1+0.5𝜀𝑡1𝑥̂𝑡=𝑥𝑡1+𝑑̂𝑡𝜀𝑡=𝑥𝑡𝑥̂𝑡
21020.5(0)+0.5(0)=012+0=122
3820.5(2)+0.5(2)=210+(2)=80
41130.5(2)+0.5(0)=18+(1)=74
51430.5(3)+0.5(4)=3.511+3.5=14.50.5
61220.5(3)+0.5(0.5)=1.2514+1.25=15.253.25
7930.5(2)+0.5(3.25)=2.62512+(2.625)=9.3750.375
81340.5(3)+0.5(0.375)=1.68759+(1.6875)=7.31255.6875
91630.5(4)+0.5(5.6875)=4.843813+4.8438=17.84381.8438
101420.5(3)+0.5(1.8438)=0.578116+0.5781=16.57812.5781
111130.5(2)+0.5(2.5781)=2.289114+(2.2891)=11.71090.7109
121540.5(3)+0.5(0.7109)=1.855511+(1.8555)=9.14455.8555
131830.5(4)+0.5(5.8555)=4.927715+4.9277=19.92771.9277
141620.5(3)+0.5(1.9277)=0.536118+0.5361=18.53612.5361
151330.5(2)+0.5(2.5361)=2.268116+(2.2681)=13.73190.7319
161740.5(3)+0.5(0.7319)=1.866013+(1.8660)=11.13405.8660
170.5(4)+0.5(5.8660)=4.933017+4.9330=21.9330