I was wondering if there's a rule of thumb regarding the value of alpha used when performing exponential smoothing. I plan to use this technique to preprocess my data before feeding them into my machine learning algorithm.


Here is the answer given by Wikipedia:

The time constant of an exponential moving average is the amount of time for the smoothed response of a unit set function to reach ${\displaystyle 1-1/e\approx 63.2\,\%}$ of the original signal. The relationship between this time constant, ${\displaystyle \tau } $ , and the smoothing factor, ${\displaystyle > \alpha }$, is given by the formula:

${\displaystyle \alpha =1-e^{-\Delta T \over \tau }}$

Where ${\displaystyle \Delta T}$ is the sampling time interval of the discrete time implementation. If the sampling time is fast compared to the time constant then ${\displaystyle \alpha \ \approx {\frac{\Delta T}{\tau} }}$.

This canonical approach is fine, but I find it fairly inefficient because:

  • taking the double and triple EMAs is redundant; it is essentially equal to using a lower alpha value;
  • The weights of terms only converge to one; i.e., $\sum w \ne 1$; and
  • Estimating initial parameters requires significant amount of recursion.

I therefore propose the following method: Is there a non-recursive way of calculating the exponential moving average?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.