Get reference code

Double exponential smoothing

Description and example of the double exponential smoothing
Timur2016-02-09 19:52:00

We continue our topic of exponential smoothing started in the article Exponential smoothing

Last time we reviewed simple exponential smoothing - single exponential smoothing, today we'll be looking at double exponential smoothing.

Single exponential smoothing doesn't show quite outstanding characteristics in data depicting the presence of a clear trend. That is, it's kind of "catches" it, but not very good.

Double exponential smoothing was invented to work with data, showing a clear trend.

The idea is that - an additional component is added to a formula of exponential smoothing, see Exponential smoothing, and it changes the contribution of the previous values, depending on the trend.

Generalized formulas look as follows:

S_t = \alpha y_t + (1-\alpha)(S_{t-1}+b_{t-1}),
where \alpha takes the value from the range [0;1)

b_t = \gamma (S_t - S_{t-1}) + (1-\gamma)b_{t-1},
where \gamma takes the value from the range [0;1]

Note that here for the calculation of the current S the current value of y is used.

As in the case of the simple exponential smoothing, there are several ways of the initial parameters selection, namely, S and b, which affects the final result.

Typically, the following methods are used (I used them too):


Also, for the calculation of the initial b there are also the following options:

b_1=\frac{ (y_2-y_1) + (y_3-y_2) + (y_4-y_3)}{3}

And yet again, as in the case of the simple exponential smoothing, the choice of optimal parameters \alpha and \gamma - is not a trivial task, and one of the methods is the exhaustive method followed by selection of the optimal value for criterion of the minimum mean square error.

There is one subtlety, though, since there is a curent value of y in the formula, the error can not be considered as the difference between the current S and the current y - obviously, it will be equal to 0 with \alpha equal 1 (this is generally a punctured case). Therefore, as an error the difference between the forecasted value (see below) and the following actual value.

Now, about the forecasting.

To forecast the following value, the formula below is used

S_{t+1}=S_t + b_t

to forecast several values

S_{t+n}=S_t + nb_t

In the calculator below you can change the values \alpha and \gamma and also you can compare the result with a simple exponential smoothing.
The following forecasted value is depicted on a graph for reference, i.e. smoothed average extended for one count further the actual data.

Double exponential smoothingCreative Commons Attribution/Share-Alike License 3.0 (Unported)
Time series
Import data.
"One of the following characters is used to separate data fields: tab, semicolon (;) or comma(,)": 
Add Import data. Clear table
Double exponential smoothing:

As default data the best, as I remember, are the coefficients \alpha=0.6 and \gamma=0.05. Note that the error in the double smoothing with coefficients is by default greater than that of a simple smoothing, because the double smoothing conduct itself worse on the unexpected trends reversal (see the forecast column and compare it with the following actual value) - in such cases, the difference between the forecast in contrast to the actual value gives a bigger mistake.

Request a calculator
View all calculators
(505 calculators in total. )