Skip to content
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.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Add animated CCM examples. (#65) Dec 21, 2018
src Add convergent cross mapping to CausalityTools (#63) Dec 10, 2018
.gitignore Documentation (#61) Dec 6, 2018
.travis.yml Documentation (#61) Dec 6, 2018 Change package name Sep 11, 2018
Project.toml Add convergent cross mapping to CausalityTools (#63) Dec 10, 2018 Add convergent cross mapping docs Dec 12, 2018
REQUIRE Update REQUIRE, cap CrossMappings Dec 10, 2018
appveyor.yml Package basics. Aug 23, 2018
install_dependencies.jl install dependencies Nov 29, 2018
runtests.jl Tests Nov 29, 2018


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
You can’t perform that action at this time.