I have a question about EMD updating new data points. For an entire time series, from beginning to the end, the EMD preforms quite good using the cubic spline function.

The problem happens when new data points feed in, then after recalculating EMD (including new data) the numbers of output IMFs been change (the IMF data series before and after updating all changed slightly).

I suspect that the cubic spline functions do not have memory. What is the best way of avoid this problem, and calculating EMD and keep old results do not change.


  • $\begingroup$ As I researched, solving the EMD data updating problem in signal processing field, they use the rolling window, and overlapping at least half of old data, and do iteration after. The test I did, the error(according to EMD on entire time series) reduces when overlapping more. Still waiting for better solutions! Thanks $\endgroup$ – TomHan Sep 2 '14 at 7:21
  • $\begingroup$ as I am as well investigating the EMD and its applications, I also found that paper about Derivative-optimized-EMD quite interesting, I would like to make some further research about it. Would you mind sharing the matlab code that you have been using? $\endgroup$ – user15816 Apr 2 '15 at 0:58
  • $\begingroup$ I stumbled upon the same problem when I generated 30 EMD analysis for the same stock increasing the input series by one sample at each iteration to simulate an analyst watching the price day by day for a month. IMFs varied from day to day with most distortions around the end of the index, however the slower frequency components and the residuals were showing significant differences even at older samples back to the start of the index. After realizing this I do not consider EMD as a reliable tool for spectral analysis of non-periodic signals such as stock prices. $\endgroup$ – mac13k Jan 31 '18 at 20:58

Apologies if it's not a definite answer, but would like to share my experience on this topic.

I have been researching EMD for the last 2 years now after reading multiple one-step ahead forecasting papers for financial time series. I have been interested in using each IMF separately to regress them with Relevance Vector Machine and NNs. I have used NI-EMD, EEMD, Statistical-EMD (R package), CEEMDAN, NLMS-EMD and some others. I implemented different versions all with different ways to avoid mode mixing and extrapolating the end point issue. IMF are not only repainting (no memory). Also because of the splines, all artefacts to extrapolate prevent any one-step ahead prediction as we are making assumptions as to which direction last few data are projecting . I even had one researcher working on EMD coding for me this latest implementation Derivative-optimized-EMD, but it failed badly in one-step ahead forecasting. Below is the link to the paper:


I have had conversation with researchers like Flandrin and I have been told that the EMD is suitable to denoise but quite unstable for doing prediction on IMFs in the future as modes will repaint and end point is always improper.

Hope this help.

  • $\begingroup$ Sorry for late reply Philippe, I really appreciate you, sharing your research about EMD, and your research paper! I am curious, as you have researched, what is the next proper method on forecasting non stationary or non linear time series? Thank you so much! $\endgroup$ – TomHan Oct 21 '14 at 5:14

Well that is a very good question. Once I realised of the issue with EMD I investigated all wavelets transforms I could access to in Matlab, all seemed to suffer either some end point distorsion or what is called Time phase distorsion for all one-step-ahead forecast where a lag of one sample appear in the forecast at some segments of the test data.

I did try an implementation of the Haar A Trou that appeared in dozen of papers, but even with that one I could not get decent one-step ahead prediction. It could be that my learning scheme had some limitation, but I still suspect the multiscale decomposition was the issue, not the machine learning algo (I use Relevance Vector Machine with cross-validation and non-linear kernels).

I am yet to try SSA which I think could work, there is an R implementation with a forecasting scheme implemented. I also recently discovered "sparse coding" which I think could be used for time series event though I have not seen implementations. Hope this help and happy to collaborate on algo, just send me message.


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.