I am trying to use the EMD applied to EURUSD open price to train a machine learning algo (RVM).

I have run only once the EMD on my training set and once on the training+test set.

The results on the test sets only are quite good. However when I apply the algo on the last sample only the predictions are bad.

Shall I run the EMD on each sample of my training set using a sliding window ?

I understand EMD is non-causal, but can it be used in some ways for training a machine learning algo ?

  • $\begingroup$ There is inherent massive lag in the calculation of the Hurst exponent (H), maybe this is your problem? How are you using EMD in your strategy, what method of EMD are you using, do you plan to use EMD in real time? FYI: I'm in the process of reinventing IMF part of the EMD method, specifically for capitalized markets for real time use. $\endgroup$
    – montyhall
    Commented Mar 6, 2013 at 21:43

1 Answer 1


If I correctly understood, you have a big training set and EMD calculated over the whole set at once. Then you use a part of training set and the corresponding part of EMD to infer prediction. The problem here is that you peep into the future having EMD on the edge of the working window calculated using information out of the window. Hence, surely you should calculate EMD (and any other derivative of the training data) using only in-window (past) data.

EMD is in some way similar to SSA which has more theoretical foundation. Perhaps, it can interest you.

Considering usage of non-casual methods in machine learning, I believe it's not a crime. I have neither proof nor disproof though, therefore I too am interested in the related information.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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