260. M-M-A

Mult. trend + add. season., mult. errors

ETS(𝑀,𝑀,𝐴)𝑥𝑡=(𝑙𝑡−1𝑏𝑡−1+𝑠𝑡−𝑚)(1+𝜀𝑡)𝑙𝑡=𝑙𝑡−1𝑏𝑡−1+𝛼𝜇𝑡𝜀𝑡𝑏𝑡=𝑏𝑡−1+𝛽𝜇𝑡𝜀𝑡/𝑙𝑡−1𝑠𝑡=𝑠𝑡−𝑚+𝛾𝜇𝑡𝜀𝑡𝑥̂𝑡+ℎ|𝑡=𝑙𝑡𝑏𝑡ℎ+𝑠𝑡+ℎ−𝑚ℎ+

where

𝜇𝑡=𝑙𝑡−1𝑏𝑡−1+𝑠𝑡−𝑚
Example: ETS(𝑀,𝑀,𝐴)

Given

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

Step 1 — formula

Observation:

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

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

𝜇𝑡=𝑙𝑡−1𝑏𝑡−1+𝑠𝑡−𝑚

Innovation:

𝜀𝑡=(𝑥𝑡−𝜇𝑡)/𝜇𝑡

State updates:

𝑙𝑡=𝑙𝑡−1𝑏𝑡−1+𝛼𝜇𝑡𝜀𝑡𝑏𝑡=𝑏𝑡−1+𝛽𝜇𝑡𝜀𝑡/𝑙𝑡−1𝑠𝑡=𝑠𝑡−𝑚+𝛾𝜇𝑡𝜀𝑡

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

𝑥̂𝑡+ℎ|𝑡=𝑙𝑡𝑏𝑡ℎ+𝑠𝑡+ℎ−𝑚ℎ+

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⋅1+2=14𝜀1=(𝑥1−𝜇1)/𝜇1=(12−14)/14=−0.1429𝑙1=12⋅1+0.5⋅14⋅(−0.1429)=11𝑏1=1+0.4⋅14⋅(−0.1429)/12=0.9333𝑠1=2+0.2⋅14⋅(−0.1429)=1.6

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𝑠𝑡=𝑠𝑡−𝑚+𝛾𝜇𝑡𝜀𝑡
11214−0.1429110.93331.6
21010.2667−0.02610.13330.9236−0.0533
386.35950.25810.17980.9884−2.6719
41111.0616−0.005610.03080.9860.9877
51411.49010.218411.1451.08612.102
61212.0509−0.004212.07881.0842−0.0635
7910.4243−0.136612.38411.0371−2.9568
81313.8308−0.060112.42771.01020.8215
91614.65690.091613.22651.05352.3706
101413.87010.009413.99851.0574−0.0375
111111.8452−0.071414.37941.0332−3.1258
121515.6789−0.043314.51791.01440.6857
131817.0970.052815.17791.03922.5512
141615.73590.016815.90551.04620.0153
151313.5145−0.038116.3831.0333−3.2287
161717.6137−0.034816.62111.01830.563