Collection of algorithms related to the detection of underlying causal structure from time series data, and for the approximation of the transfer operator and invariant measures.



Build status Documentation
Build Status

CausalityTools.jl provides tools for nonparametric detection of causal relationships between dynamical variables based on time series of observations.

In addition, we provide functions to approximate the transfer operator (Perron-Frobenius operator), and from it, invariant distributions over the discretized state space (embedding).

What can I do with CausalityTools?

The package is equally well-suited both for the study of causal directionality for experimental data, and for studying dynamical systems from a more formal context. The workflow integrates nicely with DynamicalSystems.jl.

Check out the documentation (work in progress!) for more information! Please note that the package is under active development, and that breaking changes may occur until version 1.0 is released.

Package structure

CausalityTools.jl brings together the following packages into one environment:

package functionality version build
StateSpaceReconstruction.jl Fully flexible state space reconstructions (embeddings), partitioning routines (variable-width rectangular, and triangulations), and partition refinement (equal-volume splitting of simplices).  0.3.2 Build Status 
TimeseriesSurrogates.jl Generate surrogate data from time series.  0.2.1 Build Status 
TransferEntropy.jl Transfer entropy estimators.  0.3.3 Build Status 
PerronFrobenius.jl Transfer (Perron-Frobenius) operator estimators.  0.2.3  Build Status
Simplices.jl Exact simplex intersections in N dimensions.  0.2.2 Build Status 
CrossMappings.jl Exact simplex intersections in N dimensions.  0.2.3 Build Status 

Wrappers for common use cases

Standard wrappers for the causality detection tools are available for direct application to time series. If you're starting out, these wrappers cover the most common use cases.

For more in-depth analysis, the package comes with state space reconstruction (embedding) and discretization routines, which can also be provided seamlessly to the causality estimators.

Be careful with using the wrappers: for any real application, you should know what you're doing and utilize the underlying functions which give full control over the embeddings and analysis parameters.


To install the package, run the following lines in the Julia console

using Pkg

First Commit


Last Touched

15 days ago


156 commits

Used By: