Hello R Community,
I'm excited to announce the first stable release of EmpiricalDynamics, an R package now available on CRAN. This package is designed for researchers in complex systems, econometrics, and data science interested in discovering the governing equations underlying their data.
What does it do?
Drawing from the wiki documentation, EmpiricalDynamics offers a robust framework for Equation Discovery (ED) and Symbolic Regression to identify differential or difference equations directly from time series. The core functions help you:
- Discover Underlying Laws: Use evolutionary algorithms to search for the specific mathematical expressions (differential equations) that generate your data, rather than assuming a fixed model structure.
- Handle Observational Noise: Apply Total Variation Regularized differentiation to accurately estimate derivatives from noisy empirical data before modeling.
- Leverage High Performance: Utilize a seamless backend integration with Julia to handle the heavy computational load required for symbolic regression and structure optimization.
At its core, the package solves the "inverse problem" of dynamics: reconstructing the physical or economic mechanisms driving a system solely from observational data—a critical task when theoretical models are contested or unknown.
Why is it useful?
Bridging the gap between theory and data is essential for scientific discovery. EmpiricalDynamics moves beyond "black box" machine learning predictions, offering transparent, interpretable mathematical models that explain how a system evolves. It allows the data to select the best-fitting theory.
Getting Started:
- Install from CRAN:
install.packages("EmpiricalDynamics") - Browse the Code & Wiki: GitHub - IsadoreNabi/EmpiricalDynamics
The package vignettes and wiki provide detailed examples, from recovering chaotic attractors in physics to identifying non-linear cycles in economic indicators. I hope EmpiricalDynamics becomes a valuable tool in your system identification or modeling workflow.
I welcome any feedback, bug reports, or contributions on GitHub. What are your experiences or challenges with discovering governing equations from noisy data?
Best,
José Mauricio Gómez Julián