Exponential smoothing method is a method used in forecasting univariate data using a time series. The method supports data with a seasonal component or systematic trend and uses past observations to make predictions. Being an alternative to the Box-Jenkins ARIMA family’s popular methods, it is popular as an alternative forecasting method.
The Box-Jenkins ARIMA methods use a model based on the predictions being the linear weighted sum of lags or the most recent observations. The method of exponential smoothing also uses a time series to forecast predictions where the data is univariate. The exponential smoothing method model makes the predictions using weights that decrease exponentially as their past observations.
These past observations have geometrically decreasing weights and, like the ARIMA methods, are the past observations. The most recent observation always has the highest weight in the method. Note that these weights decay exponentially and that the smoothing methods use the summing of weighted past-observation averages. These methods are older than the ARIMA Box-Jenkins methods class, and together these smoothing models are also called the ETS (Error, Trend, Seasonality) models.
The ETS model is a simple exponential smoothing method that handles trends, has no systematic structure, and provides seasonality. The 3 main categories of exponential smoothing forecasting methods in time series are explained below.
Single exponential smoothing configuration can be quite complex and require the model’s hyperparameters to be explicitly specified. In time the best method that has evolved in the use of estimated numerical optimization resulting in the lowest error when funding and searching for the model’s 4 smoothing coefficients. The trend and seasonality parameters should also be explicitly stated for a robust model and are easily done in Python using the SSE (sum of squared errors) method of estimation and minimizing errors.
Exponential Smoothing implementation in Python can be found in the library of Statsmodels Python. This method is described by George Athanasopoulos and Rob Hyndman in their 2013 book Forecasting: Practice and Principles. The R implementation can also be found in the package tabbed “forecast”.
Simple smoothing in Python is undertaken using the class SimpleExpSmoothing Statsmodels, where the class is passed with the training data and instantiated before using the fit() function for configuration. Next, specify smoothing_level coefficient alpha values. If this is set to none specified, the model optimizes automatically and returns the HoltWintersResults of an instance in that class with the coefficients learned values. Use the predict() or forecast() function on the object, resulting in a forecast.
Single, Double and Triple exponential smoothing methods can be implemented in Python using the ExponentialSmoothing Statsmodels class. As already seen, the additional steps required here besides those of the exponential smoothing example are the parameter configurations adding in the
The exponential smoothing method model is then training data fit and the coefficients phi- damping_slope, alpha- smoothing_level, gamma- smoothing_seasonal, beta- smoothing_slope specified. If the ‘None’ value is used, self-learning of coefficients occurs automatically. Besides, it can also decide to transform the series using use_boxcox with the specification of l-lambda the transform coefficient. Transformation here means the basic data is specifically prepared or transformed depending on the transform coefficient specified. It then returns the HoltWintersResults of an instance in that class that has the coefficients learned values. Use the predict() or forecast() function on the object resulting to call for a forecast.
Thus we see how exponential smoothing forecasting is a very effective tool in univariate data time series forecasts and predictions. The various exponential smoothing methods described above provide sufficient and various methods for the configuration in Python and R suites to make automatic forecasts when the method’s coefficients or hyperparameters are properly specified.
There are no right or wrong ways of learning AI and ML technologies – the more, the better! These valuable resources can be the starting point for your journey on how to learn Artificial Intelligence and Machine Learning. Do pursuing AI and ML interest you? If you want to step into the world of emerging tech, you can accelerate your career with this Machine Learning And AI Courses by Jigsaw Academy.