← All 31 animations

Optional multivariate EMD backend

Optional multivariate EMD backend

Property Value
Method MEMD
Input mode multivariate
Trend shape (96, 3)
Notebook execution ran
Reconstruction RMSE 0.00000000

Notebook example metric: root mean square of input - (trend + season + residual) over all samples and channels. This checks additive bookkeeping; it is not a forecast error or a component-recovery score. The separate teaching input and intermediate arrays for the animation are linked below.

How it works

Method maturity: optional-backend. Implementation: optional-backend.

MEMD uses many projection directions to construct a multivariate local mean. Its sifting preserves aligned mode slices across the input channels.

MEMD: Project the data; Construct vector envelopes; Sift jointly; Extract aligned modes

Deterministic synthetic teaching signal; not a benchmark.

Open GIF · Static PNG · Source arrays (NPZ) · Trace metadata

Follow the four steps

1. Project the data

Use Hammersley-based unit directions and locate extrema of each scalar projection.

2. Construct vector envelopes

At the projection extrema times, interpolate the original vector samples and average valid envelopes.

3. Sift jointly

Subtract the direction-averaged vector mean and repeat the multivariate stopping test.

4. Extract aligned modes

Remove the accepted multichannel IMF, continue on the vector residue, and keep the final residue.

Parameters that change the result

Parameter Effect on the computation
n_dir (upstream trace) This bounded PySDKit demonstration uses 16 projection directions; the DeTime wrapper does not expose this as a documented public control.
Stopping rule (upstream trace) Uses PySDKit's default Rilling-style test with a safety cap of 50 sifts.
primary_period / explicit mode groups Used by DeTime after upstream extraction, independently of the projection directions.

What this animation computes

Computed with PySDKit 0.5.0: its direction, extrema, and boundary helpers supply the vector envelopes; actual first-IMF sifting calls are recorded. The reduced direction count is a teaching setting, not a benchmark setting.

Interpretation

  • This PySDKit backend requires at least three channels for MEMD; the example uses three aligned channels.
  • Projection count, envelope boundaries, and stopping rules affect the result.
  • Aligned IMF indexes do not establish physiological or other physical source identity.

Try the method

Use this configuration with DecompositionConfig and decompose. The animation generator supplies the teaching input and records intermediate arrays.

{
  "method": "MEMD",
  "params": {
    "primary_period": 24
  },
  "backend": "python"
}

See the configuration reference for the full interface and optional dependencies.

Sources and reproduction

Regenerate this animation with python scripts/generate_method_animations.py --methods MEMD. The reproduction guide explains the environment, numerical checks, coverage manifest, and how to inspect the stored arrays.

Code

case = CASES["MEMD"]
run_gallery_case("MEMD")

Output

Decomposition Plot

MEMD decomposition