SESMTH - (Brown's) Simple Exponential Smoothing

Returns the simple exponential (Brown 1959) smoothing out-of-sample forecast estimate.

 

Syntax

SESMTH(X, Order, Alpha, Optimize, T, Return Type)

X is the univariate time series data (a one-dimensional array of cells (e.g. rows or columns)).

Order is the time order in the data series (i.e. the first data point's corresponding date (earliest date=1 (default), latest date=0)).

Order Description
1 ascending (the first data point corresponds to the earliest date) (default)
0 descending (the first data point corresponds to the latest date)

Alpha is the smoothing factor (alpha should be between zero(0) and one(1) (exclusive)). If missing or omitted, 0.333 value is used.

Optimize is a flag (True/False) for searching and using optimal value of the smoothing factor. If missing or omitted, optimize is assumed False.

T is the forecast time/horizon beyond the end of X. If missing, a default value of 0 (Latest or end of X) is assumed.

Return Typeis a number that determines the type of return value: 0 (or missing) = Forecast, 1=Alpha, 2=One-step (in-sample) forecasts.

RETURN TYPE NUMBER RETURNED
0 or omitted Forecast value
1 Smoothing parameter (Alpha)
2 one-step (intermediate) forecasts (series)
 

Remarks

  1. The time series is homogeneous or equally spaced.
  2. The time series may include missing values (e.g. #N/A) at either end.
  3. The simple exponential smoothing is best applied to time series that do not exhibit a prevalent trend and do not exhibit seasonality.
  4. The recursive form of the simple exponential smoothing equation is expressed as follows:

    $$ S_{t \succ 1}= \alpha\times X_t + (1-\alpha)\times S_{t-1} $$
    $$ \hat{F}_t(m)=S_t $$
    Where:
    • $X_t$ is the value of the time series at time t.
    • $S_t$ is the smoothed level.
    • $\alpha$ is the smoothing factor/coefficient for level.
    • $\hat{F}_t(m)$ is the m-step-ahead forecast values for $X$ from time t.
  5. For $\alpha = 1$, the simple exponential smoothing is equivalent to the naïve no change extrapolation (NCE) method, or simply a random walk.
  6. For $\alpha = 0$, the forecast will be a constant taking its values from the starting value for Level.
  7. In general, the smoothing coefficient $\alpha$ is used to control the speed of adaptation to the local level.
  8. The SESMTH calculate a point forecast. There is no probabilistic model assumed for the simple exponential smoothing, so we can’t derive a statistical confidence interval for the computed values.
  9. In practice, the Mean Squared Error (MSE) for prior out-of-sample forecast values are often used as a proxy for the uncertainty (i.e. variance) in the most recent forecast value.
  10. This method requires a starting value for Level (i.e. $S_t$) to start the recursive updating of the equation. In NumXL, the starting value is set to the mean of the first four observations, and for a short time series, it is set as the value of the first observation.

    $$ S_1=\left\{\begin{array}{l} X_1\\ \frac{\sum_{t=1}^4 X_t}{4} \end{array}\right. \begin{array}{r} N \leq 4\\ N \gt 4 \end{array} $$
  11. Starting from NumXL version 1.63, the SESMTH has a built-in optimizer to find the best value of $\alpha$ that minimize the SSE (loss function ($U(.)$)) for the one-step forecast calculated in-sample.

    $$ \begin{array}{l} U(\alpha)=\mathrm{SSE}=\sum_{t=1}^{N-1}(X_{t+1}-\hat{F}_t(1))^2\\ \min_{\alpha \in (0,1)} U(\alpha) \end{array} $$
  12. For initial values, the NumXL optimizer will use the input value of alpha (if available) in the minimization problem, and the initial level (i.e. $S_1$) is computed from the input data.
  13. Starting from NumXL version 1.65. the SESMTH function returns the found optimal value for alpha, and the corresponding one-step smoothing forecast calculated in-sample series.
  14. The time series must have at least three (3) observation with non-missing values to use the built-in optimizer.
  15. NumXL implements the spectral projected gradient (SPG) method for finding the minima with a boxed boundary.
    • The SPG requires loss function value and the 1st derivative. NumXL implements the exact derivative formula (vs. numerical approximation) for performance purposes.

      $$ \begin{array}{l} \frac{\partial U}{\partial \alpha}=-2\times\sum_{t=1}^{N-1}(X_{t+1}-\hat{F}_t(1))\times \frac{\partial \hat{F}_t}{\partial \alpha} \\ \\ \frac{\partial \hat{F}_t}{\partial \alpha}=\frac{\partial S_t}{\partial \alpha} \\ \\ \frac{\partial S_t}{\partial \alpha}=X_{t+1}+(1-\alpha)\times \frac{\partial S_{t-1}}{\partial \alpha}-S_{t-1} \end{array} $$
    • Internally, during the optimization, NumXL computes recursively both the in-sample levels and the in-sample level derivatives, which are used for the loss function and its derivative
    • The SPG is an iterative (recursive) method, and it is possible that the minima can’t be found the within allowed number of iterations and/or tolerance. In this case, NumXL will not fail, instead NumXL uses the best alpha found so far
    • The SPG has no provision to detect or avoid local minima trap. There is no guarantee of global minima.
  16. In most cases, the SSE function yields a continuous smooth convex monotone curve, that SPG minimizer almost always finds an optimal solution in a very few iterations

Examples

Example 1:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
A B C D
Date Data SESMTH SESMTH
2008-01-10 -0.30 #N/A #N/A
2008-01-11 -1.28 -0.30 -0.30
2008-01-12 0.24 -0.59 -0.37
2008-01-13 1.28 -0.34 -0.30
2008-01-14 1.20 0.24 -0.01
2008-01-15 1.73 0.53 -0.01
2008-01-16 -2.18 0.89 1.66
2008-01-17 -0.23 -0.03 -0.01
2008-01-18 1.10 -0.44 0.11
2008-01-19 -1.09 0.27 -0.01
2008-01-20 -0.69 -0.14 -0.01
2008-01-21 -1.69 -0.31 -0.01


  Formula Description (Result)
  =SESMTH($B$2:$B$13,1,0.3,1,0,1) SESMTH (0.0001%)

Files Examples

References

Have more questions? Submit a request

0 Comments