243. A-Ad-M

Damped Holt-Winters, multiplicative seasonality

ETS(𝐴,Ad,𝑀)𝑥𝑡=(𝑙𝑡−1+𝜑𝑏𝑡−1)𝑠𝑡−𝑚+𝜀𝑡𝑙𝑡=𝑙𝑡−1+𝜑𝑏𝑡−1+𝛼𝜀𝑡/𝑠𝑡−𝑚𝑏𝑡=𝜑𝑏𝑡−1+𝛽𝜀𝑡/𝑠𝑡−𝑚𝑠𝑡=𝑠𝑡−𝑚+𝛾𝜀𝑡/(𝑙𝑡−1+𝜑𝑏𝑡−1)𝑥̂𝑡+ℎ|𝑡=(𝑙𝑡+(𝜑+𝜑2+…+𝜑ℎ)𝑏𝑡)𝑠𝑡+ℎ−𝑚ℎ+
Example: ETS(𝐴,Ad,𝑀)

Given

  • Smoothing parameters: 𝛼=0.5, 𝛽=0.4, 𝜑=0.8, 𝛾=0.2
  • Initial states: 𝑙0=12, 𝑏0=0.5, (𝑠−3,𝑠−2,𝑠−1,𝑠0)=(1.2,1,0.8,1), seasonal period 𝑚=4
  • Data:
𝑡12345678910111213141516
x𝑡121081114129131614111518161317

Step 1 — formula

Observation:

𝑥𝑡=(𝑙𝑡−1+𝜑𝑏𝑡−1)𝑠𝑡−𝑚+𝜀𝑡

Conditional mean (one-step-ahead forecast 𝑥̂𝑡|𝑡−1=𝜇𝑡):

𝜇𝑡=(𝑙𝑡−1+𝜑𝑏𝑡−1)𝑠𝑡−𝑚

Innovation:

𝜀𝑡=𝑥𝑡−𝜇𝑡

State updates:

𝑙𝑡=𝑙𝑡−1+𝜑𝑏𝑡−1+𝛼𝜀𝑡/𝑠𝑡−𝑚𝑏𝑡=𝜑𝑏𝑡−1+𝛽𝜀𝑡/𝑠𝑡−𝑚𝑠𝑡=𝑠𝑡−𝑚+𝛾𝜀𝑡/(𝑙𝑡−1+𝜑𝑏𝑡−1)

Forecast ℎ steps ahead from time 𝑡 (using current-period states):

𝑥̂𝑡+ℎ|𝑡=(𝑙𝑡+(𝜑+𝜑2+…+𝜑ℎ)𝑏𝑡)𝑠𝑡+ℎ−𝑚ℎ+

where ℎ∈{1,2,3,…} is the forecast horizon (how many steps ahead); 𝑚ℎ+=((ℎ−1)mod𝑚)+1 picks the right seasonal slot for the period ℎ steps ahead (cycles through 1,2,…,𝑚).

Step 2 — apply at 𝑡=1

𝜇1=(12+0.8⋅0.5)⋅1.2=14.88𝜀1=𝑥1−𝜇1=12−14.88=−2.88𝑙1=12+0.8⋅0.5+0.5⋅(−2.88)/1.2=11.2𝑏1=0.8⋅0.5+0.4⋅(−2.88)/1.2=−0.56𝑠1=1.2+0.2⋅(−2.88)/(12+0.8⋅0.5)=1.1535

Step 3 — iterate

Each column header is the equation that produced its values. Values rounded to 4 decimal places; arithmetic performed at full precision.

𝑡𝑥𝑡𝜇𝑡=(𝑙𝑡−1+𝜑𝑏𝑡−1)𝑠𝑡−𝑚𝜀𝑡𝑙𝑡=𝑙𝑡−1+𝜑𝑏𝑡−1+𝛼𝜀𝑡/𝑠𝑡−𝑚𝑏𝑡=𝜑𝑏𝑡−1+𝛽𝜀𝑡/𝑠𝑡−𝑚𝑠𝑡=𝑠𝑡−𝑚+𝛾𝜀𝑡/(𝑙𝑡−1+𝜑𝑏𝑡−1)
11214.88−2.8811.2−0.561.1535
21010.752−0.75210.376−0.74880.986
387.82160.17849.8885−0.50980.8037
4119.48061.519410.24030.19991.0321
51411.99722.002811.26830.85441.1921
61211.78470.215312.06110.77090.9896
7910.1885−1.188511.93830.02520.7849
81312.34180.658212.27740.27521.0431
91614.89791.102112.95980.591.2097
101413.29240.707613.78940.7581.0002
111111.2993−0.299314.20520.45390.7807
121515.1956−0.195614.47450.28811.0404
131817.78870.211314.79240.30041.2126
141615.03490.965115.51510.62631.013
151312.50450.495516.33350.75490.7869
161717.6212−0.621216.63880.36511.033