Exponentially weighted moving average

This algorithm is one of the most important algorithms currently in usage. From financial time series, signal processing to neural networks , it is being used quite extensively. Basically any data that is in a sequence.

We mostly use this algorithm to reduce the noise in noisy time-series data. The term we use for this is called “smoothing” the data.

The way we achieve this is by essentially weighing the number of observations and using their average. This is called as Moving Average.

This method is effective however, it is not very easy to do as it involves holding the past values in memory buffer and constantly updating the buffer whenever a new observation is read. Here is where EWMA comes into picture.

EWMA solves this problem with a recursive formula.

Image for post

Image for post

fig. EWMA formula

Formula Explanation :

The formula states that the value of the moving average(S) at time t is a mix between the value of raw signal(x) at time t and the previous value of the moving average itself i.e. t-1. The degree of mixing is controlled by the parameter a (value between 0–1).

So, if a = 10%(small), most of the contribution will come from the previous value of the signal. In this case, “smoothing” will be very strong.

if a = 90%(large), most of the contribution will come from the current value of the signal. In this case, “smoothing” will be minimum.

So for a better understanding, we will consider an example of “temperature variation on the weekdays of a week” data.

Image for post

Image for post

fig. Temp vs days of the week

Now as you can see, we need to “smoothen” out the above graph to have consistency in data.

Image for post

Image for post

fig. The data for temp. vs weekdays

Now let us take a = 10%, considering the new formula will be:

Image for post

Image for post

fig. EWMA formula for a=10%

Image for post

Image for post

fig. calculation of EWMA

Image for post

Image for post

fig. Original graph vs EWMA

As we can see, a =10% provides really strong smoothing.

To summarize, we have introduced EWMA and have solved a sample dataset to see how time series/sequential data is smoothed out for use in various algorithms.