Skip to main content

Dynamical Component Analysis (DyCA)

Dynamical Component Analysis (DyCA) is a dimension reduction method for multivariate time series data.

DOI

Installing information

$ pip install dyca

There are different ways to use the DyCA algorithm:

  1. You know the number of linear and nonlinear components --> fine, you can use dyca(signal, time, m, n)
  2. You know only the number of linear components, but not the dimension n of the underlying deterministic system:
    • with dyca(signal, time, m) you get the generalized eigenvalues and the singular values of the projection matrix and you can decide how many nonlinear components you want to use
    • run a second time dyca(signal, time, m, n) with the number of linear and nonlinear components (m: linear components, n: dimension of the system) you want to use
  3. You don't know the number of linear and nonlinear components:
    • with dyca(signal, time) you get the generalized eigenvalues and you can decide how many linear components you want to use (Now you are in scenario 2.)
    • run a second time dyca(signal, time, m) with the number of linear components you want to use --> you get the singular values of the projection matrix and you can decide how many nonlinear components you want to use
    • run a third time dyca(signal, time, m, n) with the number of linear and nonlinear components (n = linear + nonlinear components) you want to use

Example Usage

The roessler case is in detail explained in ./example_usage/roessler70_example.ipynb

Different Data source examples are shown in (where componentnoise and additivenoise specify the SNR in dB)

./example_usage/example_data/{attractorname}_{componentnoise}_{additivenoise}.csv

and implemented in

./example_usage/example_code/{attractorname}_{additivenoise}_example.py

Contact information

For question please contact:

Citing information

DOI

C. Uhl, A. Stiehl, N. Weeger, M. Schlarb and K. Hüper (2024) Disentangling dynamic and stochastic modes in multivariate time series. Front. Appl. Math. Stat. 10:1456635. doi: 10.3389/fams.2024.1456635

Acknowledgement

This work has been supported by the German Federal Ministry of Education and Research (BMBF-Projekt, funding numbers: 05M20WWA and 05M20WBA Verbundprojekt 05M2020—DyCA).

Further research with DyCA

Presentation of DyCA with further examples

  • C. Uhl, A. Stiehl, N. Weeger, M. Schlarb and K. Hüper (2024) Disentangling dynamic and stochastic modes in multivariate time series. Front. Appl. Math. Stat. 10:1456635. doi: 10.3389/fams.2024.1456635 DOI
  • C. Uhl, M. Kern, M. Warmuth and B. Seifert, Subspace Detection and Blind Source Separation of Multivariate Signals by Dynamical Component Analysis (DyCA), IEEE Open Journal of Signal Processing, vol. 1, pp. 230-241, 2020, doi: 10.1109/OJSP.2020.3038369 DOI
  • K. Korn, B. Seifert and C. Uhl, „Dynamical Component Analysis (DYCA) and Its Application on Epileptic EEG,“ ICASSP 2019 - 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brighton, United Kingdom, 2019, pp. 1100-1104. doi: 10.1109/ICASSP.2019.8682601 DOI
  • B. Seifert, K. Korn, S. Hartmann, and C. Uhl, „Dynamical Component Analysis (DyCA): Dimensionality reduction for high-dimensional deterministic time-series,“ 2018 IEEE 28th International Workshop on Machine Learning for Signal Processing (MLSP), Aalborg, 17.-20.09.2018, pp. 1-6. doi: 10.1109/MLSP.2018.8517024 DOI

Comparison with Dynamic Mode Decomposition (DMD)

  • A. Stiehl, N. Weeger and C. Uhl, Comparison of mode selection and reconstructions obtained by DyCA and DMD with respect to noise robustness and sampling, accepted for publication in CONTROLO 2024, Lecture Notes in Electrical Engineering, Springer-Verlag
  • M. Kern, C. Uhl, M. Warmuth, A Comparative Study of Dynamic Mode Decomposition (DMD) and Dynamical Component Analysis (DyCA). In: Gonçalves J.A., Braz-César M., Coelho J.P. (eds) CONTROLO 2020. Lecture Notes in Electrical Engineering, vol 695. Springer, Cham, doi: 10.1007/978-3-030-58653-9_9 DOI

DyCA to generate additional ML-features

  • A. Stiehl, M. Flammer, F. Anselstetter, N. Ille, H. Bornfleth, S. Geißelsöder, C. Uhl, Topological Analysis of Low Dimensional Phase Space Trajectories of High Dimensional EEG Signals For Classification of Interictal Epileptiform Discharges, 2023 IEEE International Conference on Acoustics, Speech, and Signal Processing Workshops (ICASSPW), Rhodes Island, Greece, 2023, pp. 1-5, doi: 10.1109/ICASSPW59220.2023.10193167 DOI

DyCA in combination with SINDy

  • C. Paglia, A. Stiehl, C. Uhl (2022), Identification of Low-Dimensional Nonlinear Dynamics from High-Dimensional Simulated and Real-World Data. In: L. Brito Palma, R. Neves-Silva, L. Gomes (eds) CONTROLO 2022. CONTROLO 2022. Lecture Notes in Electrical Engineering, vol 930. Springer, Cham. doi.org/10.1007/978-3-031-10047-5_18 DOI

DyCA in combination with derminismus testing

  • C. Frühauf, S. Hartmann, B. Seifert and C. Uhl. Determinism testing of low-dimensional signals embedded in high-dimensional multivariate time-series. In: Stavrinides, S.G., Ozer, M. (eds) Chaos and Complex Systems. Springer, Berlin, Heidelberg, 2020, doi: 10.1007/978-3-030-35441-1_1 DOI

Robust DyCA for noisy data

  • M. Warmuth, P. Romberger, C. Uhl, Robust Dynamical Component Analysis via Multivariate Variational Denoising, Signal Processing Conference (EUSIPCO) 2021 29th European, pp. 2000-2004, 2021, doi: 10.23919/EUSIPCO54536.2021.9616108 DOI

Metadata

Release files for dyca 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dyca 1.0.3
File Size Uploaded
dyca-1.0.3.tar.gz 22.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dyca 1.0.3
File Interpreter ABI Platform
dyca-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 42.4 kB

Release files / dyca-1.0.3.tar.gz

Download URL dyca-1.0.3.tar.gz
Size 22.3 kB
Tags Source
SHA-256 checksum
How to use checksums
18625b127b520930b56931ab5b8d8f709c95efa299530cd756f6d75e9c587f43
BLAKE2b-256 checksum
How to use checksums
ee08a341bc0365b1421232cb9fac566ac8ef5e6f6eebb3d9d7ab84fc610c62af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / dyca-1.0.3-py3-none-any.whl

Download URL dyca-1.0.3-py3-none-any.whl
Size 20.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a6d91d759ea7a651dc1b92096f1e1db2f54ec5cf22d9b0e7ddd35397607d4b1a
BLAKE2b-256 checksum
How to use checksums
12d0a203943f147458fa8b27c4800e046e54cb8317ff68c27b6b09218f90552c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page