CausalityTools.jl
CausalityTools
is a Julia package providing algorithms for detecting causal relations in complex systems based on time series data.
Goals
- Provide a comprehensive, easy-to-use framework for the detection of directional causal influences in complex dynamical systems from time series.
- Functional and efficient implementations of causality detection algorithms, with thorough documentation and references to primary literature.
- Integration with UncertainDatasets.jl, which greatly simplifies working with uncertain data.
- Integration with DynamicalSystems.jl, for quick analysis of time series from systems where the governing equations are known.
- Library of example dynamical systems for testing algorithm performance.
- Surrogate data methods for null-hypothesis testing. In the future, surrogate methods will be provided as part of resampling schemes.
- Worked examples for the algorithms.
Status
The package and documentation is under active development. Breaking changes may occur in CausalityTools and its dependencies until the 1.0 release.
Package structure
CausalityTools.jl
brings together the following packages into one environment:
package | functionality | version | build |
---|---|---|---|
CausalityToolsBase.jl |
Basic functionality for the CausalityTools ecosystem. | 0.6.0 |
|
StateSpaceReconstruction.jl |
Fully flexible state space reconstructions (embeddings), partitioning routines (variable-width rectangular, and triangulations), and partition refinement (equal-volume splitting of simplices). | 0.4.2 |
|
TimeseriesSurrogates.jl |
Generate surrogate data from time series. | 0.3.1 |
|
TransferEntropy.jl |
Transfer entropy estimators. | 0.4.3 |
|
PerronFrobenius.jl |
Transfer (Perron-Frobenius) operator estimators. | 0.6.0 |
|
Simplices.jl |
Exact simplex intersections in N dimensions. | 0.4.1 |
|
CrossMappings.jl |
Exact simplex intersections in N dimensions. | 0.3.4 |
Contributors
- Kristian Agasøster Haaga (@kahaaga)
- David Diego (@susydiegolas)
- Tor Einar Møller (@tormolle)
Related software
- DynamicalSystems.jl provides a range of tools for exploring nonlinear dynamics and chaos, both for synthetic and observed systems. We provide seamless interaction with
Dataset
outputs from DynamicalSystems. Most of our example systems are also implemented asDiscreteDynamicalSystem
s orContinuousDynamicalSystems
from DynamicalSystems.