1

I'm doing research on time series forecasting recently and I need to use CEEMDAN to decompose electricity load data. I used CEEMDAN from the PyEMD package, but I got two different results.

Specifically, I use the following two methods to decompose:

ceemdan = CEEMDAN()
ceemdan.ceemdan(load)
imfs, res = ceemdan.get_imfs_and_residue()
vis = Visualisation()
vis.plot_imfs(imfs, res)

The result of this method is: enter image description here

ceemdan = CEEMDAN()(load)
imfs, res = ceemdan[:-1], ceemdan[-1]
vis = Visualisation()
vis.plot_imfs(imfs, res)

The result of this method is: enter image description here

Specifically, the residues obtained in the first method are orders of magnitude smaller and the variation is more complex, while the residues obtained in the second method are orders of magnitude larger and more gradual.

In fact, the decomposition results I see in the paper are the results shown in the second method. I would like to know what is the difference between these two usage methods? Which method is more recommended? If you have any suggestions I would appreciate it!

ki-ljl
  • 499
  • 2
  • 9
  • I seem to see the difference: remove the last part of Figure 1, and it corresponds perfectly to Figure 2. – ki-ljl Apr 23 '22 at 04:48

1 Answers1

1

see the "Note" section in the beginning of the page below: https://pyemd.readthedocs.io/en/latest/ceemdan.html#PyEMD.CEEMDAN.noise_seed

to have a reproducible results, set the following before performing the decomposition:

ceemdan.noise_seed(1234)

where 1234 is an arbitrary number.

yousefK
  • 11
  • 1