Build status | Documentation |
---|---|
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).
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.
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 |
|
TimeseriesSurrogates.jl |
Generate surrogate data from time series. | 0.2.1 |
|
TransferEntropy.jl |
Transfer entropy estimators. | 0.3.3 |
|
PerronFrobenius.jl |
Transfer (Perron-Frobenius) operator estimators. | 0.2.3 |
|
Simplices.jl |
Exact simplex intersections in N dimensions. | 0.2.2 |
|
CrossMappings.jl |
Exact simplex intersections in N dimensions. | 0.2.3 |
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
Pkg.add("CausalityTools")