270. SARIMA

Seasonal ARIMA

SARIMA(𝑝,𝑑,𝑞)(𝑃,𝐷,𝑄)𝑚

𝜑(𝐵)Φ(𝐵𝑚)(1−𝐵)𝑑(1−𝐵𝑚)𝐷𝑥𝑡=𝑐+𝜃(𝐵)Θ(𝐵𝑚)𝜀𝑡Φ(𝐵𝑚)=1−Φ1𝐵𝑚−…−Φ𝑃𝐵𝑃𝑚Θ(𝐵𝑚)=1+Θ1𝐵𝑚+…+Θ𝑄𝐵𝑄𝑚

Seasonal differencing (1−𝐵𝑚)𝑦𝑡=𝑦𝑡−𝑦𝑡−𝑚 removes annual/periodic patterns. Period 𝑚 (e.g., 12 for monthly).

Parameters: 𝜑1,…,𝜑𝑝, Φ1,…,Φ𝑃, 𝜃1,…,𝜃𝑞, Θ1,…,Θ𝑄, 𝑐, 𝜎2
Orders: 𝑝, 𝑃, 𝑑, 𝐷, 𝑞, 𝑄, 𝑚

Example: SARIMA(1,0,0)(1,0,0)4

Given

  • Orders: 𝑝=1, 𝑃=1, 𝑑=0, 𝐷=0, 𝑞=0, 𝑄=0, 𝑚=4
  • Parameters: 𝜑1=0.5, Φ1=0.5, 𝑐=0
  • Data:
𝑡12345678910111213141516
x𝑡121081114129131614111518161317

Step 1 — formula

Substitute orders into the SARIMA recursion. With 𝑑=𝐷=0 and 𝑞=𝑄=0:

(1−𝜑1𝐵)(1−Φ1𝐵𝑚)𝑥𝑡=𝑐+𝜀𝑡

Expand the operator product:

(1−𝜑1𝐵−Φ1𝐵𝑚+𝜑1Φ1𝐵𝑚+1)𝑥𝑡=𝑐+𝜀𝑡𝑥𝑡−𝜑1𝑥𝑡−1−Φ1𝑥𝑡−𝑚+𝜑1Φ1𝑥𝑡−𝑚−1=𝑐+𝜀𝑡

Forecast (set 𝜀𝑡=0):

𝑥̂𝑡=𝑐+𝜑1𝑥𝑡−1+Φ1𝑥𝑡−𝑚−𝜑1Φ1𝑥𝑡−𝑚−1

Innovation:

𝜀𝑡=𝑥𝑡−𝑥̂𝑡

Pre-compute the cross term: 𝜑1Φ1=0.5⋅0.5=0.25.

Step 2 — apply at 𝑡=6 (first usable step: needs 𝑥𝑡−𝑚−1=𝑥1)

Plug in 𝜑1=0.5, Φ1=0.5, 𝑥5=14, 𝑥2=10, 𝑥1=12:

𝑥̂6=0.5⋅14+0.5⋅10−0.25⋅12=7+5−3=9𝜀6=𝑥6−𝑥̂6=12−9=3

Step 3 — iterate

Each row uses lag-1 (𝑥𝑡−1), lag-𝑚 (𝑥𝑡−4), and lag-(𝑚+1) (𝑥𝑡−5).

𝑡𝑥𝑡𝑥𝑡−1, 𝑥𝑡−4, 𝑥𝑡−5𝑥̂𝑡=0.5𝑥𝑡−1+0.5𝑥𝑡−4−0.25𝑥𝑡−5𝑥̂𝑡𝜀𝑡
61214,10,120.5(14)+0.5(10)−0.25(12)=7+5−393
7912,8,100.5(12)+0.5(8)−0.25(10)=6+4−2.57.51.5
8139,11,80.5(9)+0.5(11)−0.25(8)=4.5+5.5−285
91613,14,110.5(13)+0.5(14)−0.25(11)=6.5+7−2.7510.755.25
101416,12,140.5(16)+0.5(12)−0.25(14)=8+6−3.510.53.5
111114,9,120.5(14)+0.5(9)−0.25(12)=7+4.5−38.52.5
121511,13,90.5(11)+0.5(13)−0.25(9)=5.5+6.5−2.259.755.25
131815,16,130.5(15)+0.5(16)−0.25(13)=7.5+8−3.2512.255.75
141618,14,160.5(18)+0.5(14)−0.25(16)=9+7−4124
151316,11,140.5(16)+0.5(11)−0.25(14)=8+5.5−3.5103
161713,15,110.5(13)+0.5(15)−0.25(11)=6.5+7.5−2.7511.255.75
17—17,18,150.5(17)+0.5(18)−0.25(15)=8.5+9−3.7513.75—

Forecasts now sit much closer to the data than AR(1) — the seasonal lag 𝑥𝑡−4 tracks the within-cycle pattern, and lag-1 picks up the trend.