Exponential smoothing: Initialization in StatPro

Every exponential smoothing method has one or more equations that calculate a future forecast based on past and/or present values. For the first period or first few periods, these equations require “initial values” to get started. This initialization differs from one implementation of exponential smoothing to another. Here are some comments on StatPro’s approach and other possible approaches.

Simple Exponential Smoothing

The key equation (using the notation from Data Analysis and Decision Making, 3e, by Albright, Winston, and Zappe) is

Here, is the actual observation in period t and is the smoothed “level” of the series for period t (which is used as the forecast for period ). Assuming the first observation occurs in period , the initialization requires a value for . The usual approach, and the one used in StatPro, is to let .

Holt’s Exponential Smoothing

Now there are two equations, one for the “level” , and one for the “trend” :

To initialize, we need values for and . To do this, StatPro takes as in simple exponential smoothing, and it takes , where observation n is the last nonholdout observation. This is basically the average of the first differences, . (I guess I should have used as the denominator to get a true average.) Another possibility for estimating is to average only the first few differences instead of all of them.

Winters’ Exponential Smoothing

Now there are three equations, one for the (deseasonalized) level , one for the (deseasonalized) trend , and one for the seasonal index in period t, :

Here, M is the number of seasons, e.g., for quarterly data and for monthly data. To initialize, we now need , , and a whole year’s worth of seasonal indexes, through . To get these, StatPro first uses the “ratio to centered moving averages” method to calculate a set of seasonal indexes, through . (See the following.) Then it takes and , where n is as in Holt’s method described earlier, and the asterisks mean deseasonalized values. (For example, if corresponds to month 1 or quarter 1 in a year, then .) Other methods could be used to find initial seasonal indexes. For example, we could use the initial M observations only, as in for the seasonal index corresponding to observation i. (This could then be scaled to ensure that the seasonal indexes sum to M.) Another possible method for estimating the initial trend uses the first two year’s worth of data:

Ratio to Centered Moving Averages

This is a common method for finding seasonal indexes to deseasonalize time series data. To see how it works, suppose we have monthly data and we are interested in July’s seasonal index. One moving average for July is the average of January through December, where July is the 7th month in this average. Another is the average of February through the next January, where July is the 6th month in this average. The centered moving average (CMA) is the average of these two averages. For any July, we then divide the July observation by its CMA to get a seasonality index. To get the overall July seasonal index, we finally average all July indexes. We then scale all of the final indexes so that they sum to the number of seasons. Note that there will be a half year at the beginning and a half year at the end where no CMAs can be calculated.

This method breaks down if there are fewer than two year’s worth of data. In this case, StatPro does a “quick and dirty” estimate of the seasonal indexes.

See the file Ratio to Centered Moving Averages.xls for an example of how this is implemented in StatPro. It also indicates the problem we can have (nonsensical seasonal indexes) if the observations aren’t all positive. This same problem would still occur with the simple estimation method [] mentioned above. I think the simplest fix in this case would be to base the index on the series .

Note that this only gets the initial estimates of the seasonal indexes. Then Winters’ third equation, for , updates from then on.