APPEX is a Python library for estimating the drift, diffusion, and causal graph of Stochastic Differential Equations (SDEs) from observed temporal marginals. The code is based on our paper: Identifying Drift, Diffusion, and Causal Structure from Temporal Snapshots.
Currently, only time-homogeneous linear additive noise are supported.
- Data Generation: Generate synthetic temporal marginals from SDEs. Relevant functions are found in
data_generation.py - Visualization: Using
plot_time_marginals.py, you can make fun gifs of the evolutions of the temporal marginals of various SDEs to visualize identifiability/non-identifiability. For example, an example of non-identifiability from rotational invariance is visualized as:and this non-identifiability can be resolved if the initial distribution is not auto-rotationally invariant
- Experimentation: Run experiments for parameter estimation and causal discovery using our APPEX algorithm in
experiments.py. Plot and interpret them withplot_experiment_results.py
Clone the repository and install dependencies via:
git clone https://github.com/guanton/APPEX.git
cd APPEX
pip install -r requirements.txt@article{guan2024identifying, title={Identifying drift, diffusion, and causal structure from temporal snapshots}, author={Guan, Vincent and Janssen, Joseph and Rahmani, Hossein and Warren, Andrew and Zhang, Stephen and Robeva, Elina and Schiebinger, Geoffrey}, journal={arXiv preprint arXiv:2410.22729}, year={2024} }