Exponential Smoothing    Model: SIMXPO

Exponential smoothing is a technique that is relatively easy to implement, and yet has proven to be an effective tool at forecasting sales. In its simplest form, this technique assumes, on average, sales are constant, but include a random error term about the average. It is also assumed the underlying average can drift from period to period. These assumptions lead to the following smoothing equation:

St = α Xt + (1 - α) St-1

where,

St        =        predicted sales, or signal, in period t,

Xt        =        observed sales in period t, and

α        =        a constant term between 0 and 1.

From this equation, we can see the closer αα is to 1 the more the current observation affects our signal, and, subsequently, the less "memory" our equation has.  Frequently, a value for αα is chosen in the range of .01 to .3. In this example, we will solve for an αα that minimizes the sum of the squared prediction errors.

For more information on exponential smoothing, see Winston (1995).

MODEL:

 

SETS:

  PERIODS /1..8/: OBSERVED, ERROR, PREDICT;

ENDSETS

 

DATA:

 

! The degree of the objective. N may be changed

  to 1 to minimize absolute deviation;

  N = 2;

 

! The observed values of the time series;

  OBSERVED = 10 14 12 19 14 21 19 26;

 

ENDDATA

! Force Period 1 prediction to 10;

 PREDICT( 1) = 10;

! The objective function;

  [OBJ] MIN= @SUM( PERIODS: @ABS( ERROR) ^ N);

 

! Calculate the forecasts;

  @FOR( PERIODS( T) | T #GT# 1:

   PREDICT( T) = ALPHA * OBSERVED( T - 1) +

   ( 1 - ALPHA) * PREDICT( T - 1));

 

! Calculate forecast errors;

  @FOR( PERIODS: ERROR = PREDICT - OBSERVED);

 

! Error terms may be negative as well as positive;

  @FOR( PERIODS: @FREE( ERROR));

 

! Exclude meaningless Alphas of zero or one;

   @BND(.01, ALPHA,.9999);

 

END

Model: SIMXPO