Empirical Dynamic Modeling (EDM)
Welcome to the home of Empirical Dynamic Modeling (EDM) — a suite of statistical software packages for causal analysis of time series data using modern nonlinear techniques like Convergent Cross Mapping (CCM).
These packages are available in:
All three are built on a shared high-performance C++ backend, ensuring consistent behavior across platforms.
🧠 What is EDM?
EDM is a framework for modeling complex dynamic systems directly from data — no need for linear assumptions or fixed model structures. Instead, it reconstructs system dynamics using time-delay embeddings and evaluates causal links using tools like CCM.
For the theoretical background and methods, we recommend:
🚀 Installation
You can install each package using the instructions below:
🔍 Where to Learn More?
Each language has its own documentation site:
- Stata package: Most comprehensive, includes GPU support and multiple distance functions.
- Python package: Simple to use, minimal interface.
- R package: R-native wrapper around the same backend.
The Stata package currently offers the most complete feature set, so we recommend starting there if you're new to EDM.
📚 Citation
If you use any of these packages, please cite the following paper:
@article{edm-stata,
title={Beyond linearity, stability, and equilibrium: The edm package for empirical dynamic modeling and convergent cross-mapping in {S}tata},
author={Li, Jinjing and Zyphur, Michael J and Sugihara, George and Laub, Patrick J},
journal={The Stata Journal},
volume={21},
number={1},
pages={220--258},
year={2021},
}