Returns the linear (aka Brown Double) exponential smoothing outofsample forecast estimate.
Syntax
LESMTH(X, Order, alpha, Optimize, T, Return Type)
 X
 is the univariate time series data (a onedimensional 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 Type
 is a number that determines the type of return value: 0 (or missing) = Forecast, 1=Alpha, 2=level component (series), 3=trend component (series), 4=onestep forecasts (series).
RETURN TYPE NUMBER RETURNED 0 or omitted Forecast value 1 Smoothing parameter (alpha) 2 level component (series) 3 trend component (series) 4 onestep forecasts (series)
Remarks
 The time series is homogeneous or equally spaced.
 The time series may include missing values (e.g. #N/A) at either end.
 The linear exponential smoothing is best applied to time series that exhibit prevalent trend, but do not exhibit seasonality.
 The recursive form of the Brown’s double exponential smoothing equation is expressed as follows:
$$ \begin{array}{l} S_{t\succ 1}^{'} = \alpha\times X_t+(1\alpha)\times S_{t1}^{'} \\ S_{t\succ 1}^{''} = \alpha\times S_t^{'}+(1\alpha)\times S_{t1}^{''} \\ S_t = 2\times S_{t}^{'}  S_{t}^{''} \\ b_t = \frac{\alpha}{1\alpha} (S_{t}^{'}  S_{t}^{''})\\ \\ \hat{F}_t(m)=S_t + m\times b_t \end{array} $$
Where:
 $X_t$ is the value of the time series at time t.
 $S_{t}^{'}$ is the simple exponential smoothing value of X.
 $S_{t}^{''}$ is the double exponential smoothing value.
 $S_{t}$ is the level estimate.
 $b_{t}$ is the slope (aka trend) estimate.
 $\alpha$ is the smoothing factor/coefficient for level.
 $\hat{F}_t(m)$ is the mstepahead forecast values for $X$ from time t.
 For the LESMTH, we are applying the simple exponential smoothing twice, and compute level and slope from those two series:
 Use $X_t$ as input and $\alpha$ as smoothing coefficient, generate $S_{t}^{'}$.
 Use $S_{t}^{'}$ as input and $\alpha$ as smoothing coefficient, generate $S_{t}^{''}$.
 For $\alpha = 1$, the double exponential smoothing is equivalent to the naïve no change extrapolation (NCE) method, or simply a random walk. I this case, division by zero occurs when we compute slope, and forecast is undefined.
 For $\alpha = 0$, the forecast will be a constant taking its values from the starting value for $S_{t}^{'}$ and $S_{t}^{''}$:
$$ \hat{F}_t(m) = 2\times S_{1}^{'}  S_{1}^{''} $$  LESMTH calculates 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.
 In practice, the Mean Squared Error (MSE) for prior outofsample forecast values are often used as a proxy for the uncertainty (i.e. variance) in the most recent forecast value.
 This method requires two starting values ($S_{1}^{'},S_{1}^{''}$) to start the recursive updating of the equation. In NumXL, we set those values as follows:
 $S_{1}^{'}$ 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} $$  $S_{1}^{''}$ is set to the mean of the first four observations of $S_{t}^{'}$, and for a short time series, it is set as the value of the first observation.
$$ S_{1}^{''}=\left\{\begin{array}{l} S_{1}^{'}\\ \frac{\sum_{t=1}^4 S_{t}^{'}}{4} \end{array}\right. \begin{array}{r} N \leq 4\\ N \gt 4 \end{array} $$
 $S_{1}^{'}$ 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.
 Starting from NumXL version 1.63, the SESMTH has a builtin optimizer to find the best value of $\alpha$ that minimize the SSE (loss function ($U(.)$) for the onestep forecast calculated insample.
$$ \begin{array}{l} U(\alpha)=\mathrm{SSE}=\sum_{t=1}^{N1}(X_{t+1}\hat{F}_t(1))^2\\ \min_{\alpha \in (0,1)} U(\alpha) \end{array} $$  For initial values, the NumXL optimizer will use the input value of alpha (if available) in the minimization problem, and the initial values for the twosmoothing series ($S_{1}^{'},S_{1}^{''}$) are computed from the input data.
 Starting from NumXL version 1.65. the SESMTH function return the found optimal value for alpha, and the corresponding onestep smoothing series of level, trend and forecast calculated insample.
 The time series must have at least three (4) observation with nonmissing values to use the builtin optimizer.
 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}^{N1}(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 b_t}{\partial \alpha}\\ \\ \frac{\partial S_t}{\partial \alpha}= 2\times \frac{\partial S_t^{'}}{\partial \alpha}\frac{\partial S_t^{''}}{\partial \alpha}\\ \frac{\partial b_t}{\partial \alpha} = \frac{S_t^{'}S_t^{''}}{(1\alpha)^2}+\frac{\alpha}{1\alpha}\times(\frac{\partial S_t^{'}}{\partial \alpha}\frac{\partial S_t^{''}}{\partial \alpha}) \\ \frac{\partial S_t^{'}}{\partial \alpha}=X_{t+1}+(1\alpha)\times \frac{\partial S_{t1}^{'}}{\partial \alpha}S_{t1}^{'}\\ \frac{\partial S_t^{''}}{\partial \alpha}=S_t^{'}+\alpha\frac{\partial S_t^{'}}{\partial \alpha} +(1\alpha)\times \frac{\partial S_{t1}^{''}}{\partial \alpha}S_{t1}^{''}\\ \\ \end{array} $$  Internally, during the optimization, NumXL computes recursively both the smoothed time series, levels, trends, and the insample 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.
 The SPG requires loss function value and the 1st derivative. NumXL implements the exact derivative formula (vs. numerical approximation) for performance purposes.
 In general, the SSE function in LESMTH yields a continuous smooth convex monotone curve, that SPG minimizer almost always finds an optimal solution in a very few iterations
Examples
Example 1:


Files Examples
Related Links
References
 Hamilton, J .D.; Time Series Analysis , Princeton University Press (1994), ISBN 0691042896
 Tsay, Ruey S.; Analysis of Financial Time Series John Wiley & SONS. (2005), ISBN 0471690740
 D. S.G. Pollock; Handbook of Time Series Analysis, Signal Processing, and Dynamics; Academic Press; Har/Cdr edition(Nov 17, 1999), ISBN: 125609906
Comments
Article is closed for comments.