Skip to contents

The fastEDM R package implements a series of Empirical Dynamic Modeling tools that can be used for causal analysis of time series data.

Key features of the package:

  • powered by a fast multi-threaded C++ backend,
  • able to process panel data, a.k.a. multispatial EDM,
  • able to handle missing data using new dt algorithms or by dropping points.


You can install the development version of fastEDM from GitHub with:

# install.packages("devtools")

Example: Chicago crime levels and temperature

This example, looking at the causal links between Chicago’s temperature and crime rates, is described in full in our paper:


df <- read.csv(url(

crime_causes_temp <- easy_edm("Crime", "Temperature", data=df, verbosity=0)
#> ✖ No evidence of CCM causation from Crime to Temperature found.

temp_causes_crime <- easy_edm("Temperature", "Crime", data=df, verbosity=0)
#> ✔ Strong evidence of CCM causation from Temperature to Crime found.

Stata & Python Packages

This package is an R port of our EDM Stata package. Similarly, we are creating a fastEDM Python package. As the packages share the same underlying C++ code, their behaviour will be identical. If you plan to adjust some of the various low-level EDM parameters, check out the documentation of the Stata package for more details on their options and behaviours.