## 8.1 Simple exponential smoothing

The simplest of the exponentially smoothing methods is naturally called **simple exponential smoothing** (SES)^{12}. This method is suitable for forecasting data with no clear trend or seasonal pattern. For example, the data in Figure 8.1 do not display any clear trending behaviour or any seasonality. (There is a decline in the last few years, which might suggest a trend. We will consider whether a trended method would be better for this series later in this chapter.) We have already considered the naïve and the average as possible methods for forecasting such data (Section 3.2).

```
algeria_economy <- tsibbledata::global_economy %>%
filter(Country == "Algeria")
algeria_economy %>%
autoplot(Exports) +
ylab("Exports (% of GDP)") + xlab("Year")
```

Using the naïve method, all forecasts for the future are equal to the last observed value of the series, \[ \hat{y}_{T+h|T} = y_{T}, \] for \(h=1,2,\dots\). Hence, the naïve method assumes that the most recent observation is the only important one, and all previous observations provide no information for the future. This can be thought of as a weighted average where all of the weight is given to the last observation.

Using the average method, all future forecasts are equal to a simple average of the observed data, \[ \hat{y}_{T+h|T} = \frac1T \sum_{t=1}^T y_t, \] for \(h=1,2,\dots\). Hence, the average method assumes that all observations are of equal importance, and gives them equal weights when generating forecasts.

We often want something between these two extremes. For example, it may be sensible to attach larger weights to more recent observations than to observations from the distant past. This is exactly the concept behind simple exponential smoothing. Forecasts are calculated using weighted averages, where the weights decrease exponentially as observations come from further in the past — the smallest weights are associated with the oldest observations: \[\begin{equation} \hat{y}_{T+1|T} = \alpha y_T + \alpha(1-\alpha) y_{T-1} + \alpha(1-\alpha)^2 y_{T-2}+ \cdots, \tag{8.1} \end{equation}\] where \(0 \le \alpha \le 1\) is the smoothing parameter. The one-step-ahead forecast for time \(T+1\) is a weighted average of all of the observations in the series \(y_1,\dots,y_T\). The rate at which the weights decrease is controlled by the parameter \(\alpha\).

The table below shows the weights attached to observations for four different values of \(\alpha\) when forecasting using simple exponential smoothing. Note that the sum of the weights even for a small value of \(\alpha\) will be approximately one for any reasonable sample size.

\(\alpha=0.2\) | \(\alpha=0.4\) | \(\alpha=0.6\) | \(\alpha=0.8\) | |
---|---|---|---|---|

\(y_{T}\) | 0.2000 | 0.4000 | 0.6000 | 0.8000 |

\(y_{T-1}\) | 0.1600 | 0.2400 | 0.2400 | 0.1600 |

\(y_{T-2}\) | 0.1280 | 0.1440 | 0.0960 | 0.0320 |

\(y_{T-3}\) | 0.1024 | 0.0864 | 0.0384 | 0.0064 |

\(y_{T-4}\) | 0.0819 | 0.0518 | 0.0154 | 0.0013 |

\(y_{T-5}\) | 0.0655 | 0.0311 | 0.0061 | 0.0003 |

For any \(\alpha\) between 0 and 1, the weights attached to the observations decrease exponentially as we go back in time, hence the name “exponential smoothing”. If \(\alpha\) is small (i.e., close to 0), more weight is given to observations from the more distant past. If \(\alpha\) is large (i.e., close to 1), more weight is given to the more recent observations. For the extreme case where \(\alpha=1\), \(\hat{y}_{T+1|T}=y_T\), and the forecasts are equal to the naïve forecasts.

We present two equivalent forms of simple exponential smoothing, each of which leads to the forecast Equation (8.1).

### Weighted average form

The forecast at time \(T+1\) is equal to a weighted average between the most recent observation \(y_T\) and the previous forecast \(\hat{y}_{T|T-1}\): \[ \hat{y}_{T+1|t} = \alpha y_T + (1-\alpha) \hat{y}_{T|T-1}, \] where \(0 \le \alpha \le 1\) is the smoothing parameter. Similarly, we can write the fitted values as \[ \hat{y}_{t+1|t} = \alpha y_t + (1-\alpha) \hat{y}_{t|t-1}, \] for \(t=1,\dots,T\). (Recall that fitted values are simply one-step forecasts of the training data.)

The process has to start somewhere, so we let the first fitted value at time 1 be denoted by \(\ell_0\) (which we will have to estimate). Then \[\begin{align*} \hat{y}_{2|1} &= \alpha y_1 + (1-\alpha) \ell_0\\ \hat{y}_{3|2} &= \alpha y_2 + (1-\alpha) \hat{y}_{2|1}\\ \hat{y}_{4|3} &= \alpha y_3 + (1-\alpha) \hat{y}_{3|2}\\ \vdots\\ \hat{y}_{T|T-1} &= \alpha y_{T-1} + (1-\alpha) \hat{y}_{T-1|T-2}\\ \hat{y}_{T+1|T} &= \alpha y_T + (1-\alpha) \hat{y}_{T|T-1}. \end{align*}\] Substituting each equation into the following equation, we obtain \[\begin{align*} \hat{y}_{3|2} & = \alpha y_2 + (1-\alpha) \left[\alpha y_1 + (1-\alpha) \ell_0\right] \\ & = \alpha y_2 + \alpha(1-\alpha) y_1 + (1-\alpha)^2 \ell_0 \\ \hat{y}_{4|3} & = \alpha y_3 + (1-\alpha) [\alpha y_2 + \alpha(1-\alpha) y_1 + (1-\alpha)^2 \ell_0]\\ & = \alpha y_3 + \alpha(1-\alpha) y_2 + \alpha(1-\alpha)^2 y_1 + (1-\alpha)^3 \ell_0 \\ & ~~\vdots \\ \hat{y}_{T+1|T} & = \sum_{j=0}^{T-1} \alpha(1-\alpha)^j y_{T-j} + (1-\alpha)^T \ell_{0}. \end{align*}\] The last term becomes tiny for large \(T\). So, the weighted average form leads to the same forecast Equation (8.1).

### Component form

An alternative representation is the component form. For simple exponential smoothing, the only component included is the level, \(\ell_t\). (Other methods which are considered later in this chapter may also include a trend \(b_t\) and a seasonal component \(s_t\).) Component form representations of exponential smoothing methods comprise a forecast equation and a smoothing equation for each of the components included in the method. The component form of simple exponential smoothing is given by: \[\begin{align*} \text{Forecast equation} && \hat{y}_{t+h|t} & = \ell_{t}\\ \text{Smoothing equation} && \ell_{t} & = \alpha y_{t} + (1 - \alpha)\ell_{t-1}, \end{align*}\] where \(\ell_{t}\) is the level (or the smoothed value) of the series at time \(t\). Setting \(h=1\) gives the fitted values, while setting \(t=T\) gives the true forecasts beyond the training data.

The forecast equation shows that the forecast value at time \(t+1\) is the estimated level at time \(t\). The smoothing equation for the level (usually referred to as the level equation) gives the estimated level of the series at each period \(t\).

If we replace \(\ell_t\) with \(\hat{y}_{t+1|t}\) and \(\ell_{t-1}\) with \(\hat{y}_{t|t-1}\) in the smoothing equation, we will recover the weighted average form of simple exponential smoothing.

The component form of simple exponential smoothing is not particularly useful, but it will be the easiest form to use when we start adding other components.

### Flat forecasts

Simple exponential smoothing has a “flat” forecast function: \[ \hat{y}_{T+h|T} = \hat{y}_{T+1|T}=\ell_T, \qquad h=2,3,\dots. \] That is, all forecasts take the same value, equal to the last level component. Remember that these forecasts will only be suitable if the time series has no trend or seasonal component.

### Optimisation

The application of every exponential smoothing method requires the smoothing parameters and the initial values to be chosen. In particular, for simple exponential smoothing, we need to select the values of \(\alpha\) and \(\ell_0\). All forecasts can be computed from the data once we know those values. For the methods that follow there is usually more than one smoothing parameter and more than one initial component to be chosen.

In some cases, the smoothing parameters may be chosen in a subjective manner — the forecaster specifies the value of the smoothing parameters based on previous experience. However, a more reliable and objective way to obtain values for the unknown parameters is to estimate them from the observed data.

In Section 6.2, we estimated the coefficients of a regression model by minimising the sum of the squared residuals (usually known as SSE or “sum of squared errors”). Similarly, the unknown parameters and the initial values for any exponential smoothing method can be estimated by minimising the SSE. The residuals are specified as \(e_t=y_t - \hat{y}_{t|t-1}\) for \(t=1,\dots,T\). Hence, we find the values of the unknown parameters and the initial values that minimise \[\begin{equation} \text{SSE}=\sum_{t=1}^T(y_t - \hat{y}_{t|t-1})^2=\sum_{t=1}^Te_t^2. \tag{8.2} \end{equation}\]

Unlike the regression case (where we have formulas which return the values of the regression coefficients that minimise the SSE), this involves a non-linear minimisation problem, and we need to use an optimisation tool to solve it.

### Example: Algerian exports

In this example, simple exponential smoothing is applied to forecast exports of goods and services in Algeria.

```
# Estimate parameters
fit <- algeria_economy %>%
model(ETS(Exports ~ error("A") + trend("N") + season("N"), opt_crit = "mse"))
fc <- fit %>%
forecast(h = 5)
# Accuracy of one-step-ahead training errors
accuracy(fit)
#> # A tibble: 1 x 10
#> Country .model .type ME RMSE MAE MPE MAPE MASE ACF1
#> <fct> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 Algeria "ETS(Exports ~ err… Trai… -0.351 5.87 4.00 -3.86 15.1 0.963 0.0112
```

This gives parameter estimates \(\hat\alpha=0.84\) and \(\hat\ell_0=39.5\), obtained by minimising SSE over periods \(t=1,2,\dots,58\), subject to the restriction that \(0\le\alpha\le1\).

In Table 8.1 we demonstrate the calculation using these parameters. The second last column shows the estimated level for times \(t=0\) to \(t=58\); the last few rows of the last column show the forecasts for \(h=1,2,3,4,5\).

Year | Time | Observation | Level | Forecast |
---|---|---|---|---|

\(t\) | \(y_t\) | \(\ell_t\) | \(\hat{y}_{t+1|t}\) | |

1959 | 0 | 39.54 | ||

1960 | 1 | 39.04 | 39.12 | 39.54 |

1961 | 2 | 46.24 | 45.10 | 39.12 |

1962 | 3 | 19.79 | 23.85 | 45.10 |

1963 | 4 | 24.68 | 24.55 | 23.85 |

1964 | 5 | 25.08 | 25.00 | 24.55 |

1965 | 6 | 22.60 | 22.99 | 25.00 |

1966 | 7 | 25.99 | 25.51 | 22.99 |

1967 | 8 | 23.43 | 23.77 | 25.51 |

1968 | 9 | 23.14 | 23.24 | 23.77 |

1969 | 10 | 23.79 | 23.70 | 23.24 |

1970 | 11 | 22.07 | 22.33 | 23.70 |

1971 | 12 | 18.44 | 19.07 | 22.33 |

1972 | 13 | 20.45 | 20.23 | 19.07 |

1973 | 14 | 25.50 | 24.66 | 20.23 |

1974 | 15 | 38.75 | 36.49 | 24.66 |

1975 | 16 | 33.69 | 34.14 | 36.49 |

1976 | 17 | 33.05 | 33.23 | 34.14 |

1977 | 18 | 30.59 | 31.01 | 33.23 |

1978 | 19 | 25.54 | 26.41 | 31.01 |

1979 | 20 | 31.15 | 30.39 | 26.41 |

1980 | 21 | 34.34 | 33.71 | 30.39 |

1981 | 22 | 34.59 | 34.45 | 33.71 |

1982 | 23 | 30.92 | 31.49 | 34.45 |

1983 | 24 | 27.94 | 28.51 | 31.49 |

1984 | 25 | 25.71 | 26.16 | 28.51 |

1985 | 26 | 23.58 | 24.00 | 26.16 |

1986 | 27 | 12.85 | 14.64 | 24.00 |

1987 | 28 | 14.27 | 14.33 | 14.64 |

1988 | 29 | 15.51 | 15.32 | 14.33 |

1989 | 30 | 18.64 | 18.11 | 15.32 |

1990 | 31 | 23.44 | 22.59 | 18.11 |

1991 | 32 | 29.12 | 28.07 | 22.59 |

1992 | 33 | 25.32 | 25.76 | 28.07 |

1993 | 34 | 21.78 | 22.42 | 25.76 |

1994 | 35 | 22.53 | 22.51 | 22.42 |

1995 | 36 | 26.19 | 25.61 | 22.51 |

1996 | 37 | 29.76 | 29.09 | 25.61 |

1997 | 38 | 30.91 | 30.62 | 29.09 |

1998 | 39 | 22.58 | 23.87 | 30.62 |

1999 | 40 | 28.15 | 27.46 | 23.87 |

2000 | 41 | 42.07 | 39.73 | 27.46 |

2001 | 42 | 36.69 | 37.18 | 39.73 |

2002 | 43 | 35.50 | 35.77 | 37.18 |

2003 | 44 | 38.25 | 37.85 | 35.77 |

2004 | 45 | 40.05 | 39.70 | 37.85 |

2005 | 46 | 47.21 | 46.00 | 39.70 |

2006 | 47 | 48.81 | 48.36 | 46.00 |

2007 | 48 | 47.07 | 47.28 | 48.36 |

2008 | 49 | 47.97 | 47.86 | 47.28 |

2009 | 50 | 35.37 | 37.37 | 47.86 |

2010 | 51 | 38.44 | 38.27 | 37.37 |

2011 | 52 | 38.79 | 38.70 | 38.27 |

2012 | 53 | 36.89 | 37.18 | 38.70 |

2013 | 54 | 33.21 | 33.85 | 37.18 |

2014 | 55 | 30.22 | 30.80 | 33.85 |

2015 | 56 | 23.17 | 24.39 | 30.80 |

2016 | 57 | 20.86 | 21.43 | 24.39 |

2017 | 58 | 22.64 | 22.44 | 21.43 |

\(h\) | \(\hat{y}_{T+h|T}\) | |||

2018 | 1 | 22.44 | ||

2019 | 2 | 22.44 | ||

2020 | 3 | 22.44 | ||

2021 | 4 | 22.44 | ||

2022 | 5 | 22.44 |

The black line in Figure 8.2 is a plot of the data, which shows a changing level over time.

```
fc %>%
autoplot(algeria_economy) +
geom_line(aes(y = .fitted, colour = "Fitted"), data = augment(fit)) +
ylab("Exports (% of GDP)") + xlab("Year")
```

The forecasts for the period 2018–2022 are plotted in Figure 8.2. Also plotted are one-step-ahead fitted values alongside the data over the period 1960–2017. The large value of \(\alpha\) in this example is reflected in the large adjustment that takes place in the estimated level \(\ell_t\) at each time. A smaller value of \(\alpha\) would lead to smaller changes over time, and so the series of fitted values would be smoother.

The prediction intervals shown here are calculated using the methods described in Section 8.5. The prediction intervals show that there is considerable uncertainty in the future exports over the five-year forecast period. So interpreting the point forecasts without accounting for the large uncertainty can be very misleading.

In some books it is called “single exponential smoothing”.↩