Predefined coupled systems
Systems definition API
The systems definition API is defined by
CausalityTools.SystemDefinition
— TypeSystemDefinition
The abstract type of all system definitions. Abstract subtypes are DiscreteDefinition
and ContinuousSystem
.
CausalityTools.DiscreteDefinition
— TypeDiscreteDefinition <: SystemDefinition
The supertype of all discrete system definitions.
CausalityTools.ContinuousDefinition
— TypeContinuousDefinition <: SystemDefinition
The supertype of all continuous system definitions.
CausalityTools.system
— Functionsystem(definition::DiscreteDefinition) → s::DiscreteDynamicalSystem
system(definition::ContinuousDefinition) → s::ContinuousDynamicalSystem
Initialize a dynamical system from definition
.
Discrete systems
CausalityTools.Anishchenko
— TypeAnishchenko <: DiscreteDefinition
Anishchenko(;u₀ = rand(2), α =3.277, s=0.1, ω=0.5*(sqrt(5)-1)) → DiscreteDynamicalSystem
Initialise the system defined by eq. 13 in (Anishchenko et al., 1998), which can give strange, nonchaotic attractors.
Equations of motion
\[\begin{aligned} dx &= \alpha (1-s \cos (2 \pi \phi )) \cdot x(1-x) \\ dϕ &= (\phi + \omega ) \mod{1} \end{aligned}\]
CausalityTools.AR1Unidir
— TypeAR1Unidir <: DiscreteDefinition
AR1Unidir(; ui = [0.2, 0.3], a₁ = 0.90693, b₁ = 0.40693, c_xy = 0.5,
nx = Normal(0, 0.40662), ny = Normal(0, 0.40662),
rng::R = Random.default_rng())
A bivariate, order one autoregressive model, where $x \to y$ (Paluš et al, 2018)[Paluš2018].
Equations of motion
\[\begin{aligned} x(t+1) &= a_1 x(t) + \xi_{1} \\ y(t+1) &= b_1 y(t) - c_{xy} x + \xi_{2}, \end{aligned}\]
where $\xi_{1}$ and $\xi_{2}$ are drawn from normal distributions nx
and ny
at each iteration.
CausalityTools.AR1Bidir
— TypeAR1Bidir <: DiscreteDefinition
AR1Bidir(;xi = [0.2, 0.3], a₁ = 0.5, b₁ = 0.7, c_xy = 0.1, c_yx = 0.2,
nx = Normal(0, 0.3), ny = Normal(0, 0.3),
rng::R = Random.default_rng())
A system consisting of two mutually coupled first order autoregressive processes.
Equations of motion
\[\begin{aligned} x(t+1) &= a_{1}x + c_{yx}y + \epsilon_{x} \\ y(t+1) &= b_{1}y + c_{xy}x + \epsilon_{y} \end{aligned}\]
where at each time step, $\epsilon_{x}$ and $\epsilon_{y}$ are drawn from independent normal distributions nx
and ny
, respectively.
CausalityTools.ChaoticMaps3
— TypeChaoticMaps3() <: DiscreteDefinition
ChaoticMaps3(; ui = [0.2, 0.1, 0.3], r = 3.4, c_xy = 0.5, c_xz = 0.5, c_yz = 0.3)
A model consisting of three coupled 1D maps, where $x \to y$ and $x \to z$ (Chen et al., 2004).
Equations of motion
\[\begin{aligned} x(t) &= r x(t-1)( 1 - x(t-1)^2 ) e^{-x(t-1)^2} \\ y(t) &= r y(t-1)( 1 - y(t-1)^2 ) e^{-y(t-1)^2} + c_{xy} x(t-1) \\ z(t) &= r z(t-1)( 1 - z(t-1)^2 ) e^{-z(t-1)^2} + c_{xz} x(t-1) + c_{yz} y(t-1) \end{aligned}\]
The parameters r
, c_xy
and c_yz
do not appear in the original paper, but are added here for explorative purposes.
CausalityTools.Henon2
— TypeHenon2() <: DiscreteDefinition
Henon2(;u₀ = [0.1, 0.2, 0.2, 0.3], c_xy = 2.0)
A bivariate system consisting of two identical 1D Henon maps with unidirectional forcing $X \to Y$ (Krakovská et al., 2018)[Krakovská2018].
Equations of motion
The equations of motion are
\[\begin{align*} x_1(t+1) &= 1.4 - x_1^2(t) + 0.3x_2(t) \\ x_2(t+1) &= x_1(t) \\ y_1(t+1) &= 1.4 - [c_{xy} x_1(t) y_1(t) + (1-c_{xy}) y_1^2(t)] + 0.3 y_2(t) \\ y_2(t+1) &= y_1(t) \end{align*}\]
CausalityTools.Henon3
— TypeHenon3() <: DiscreteDefinition
Henon3(; a = 0.1, b = 0.3, c = 0.1, xi = [0.1, 0.2, 0.3])
Henon3
is a DiscreteDefinition
definition for a lagged discrete dynamical system consisting of three coupled 1D Henon maps (Papana et al., 2013).
Equations of motion
\[\begin{align*} x_1(t+1) &= a - x_1(t)^2 + b x_1(t-2) \\ x_2(t+1) &= a - c x_1(t) x_2(t)- (1 - c) x_2(t)^2 + b x_2(t-1) \\ x_3(t+1) &= c x_2(t) x_3(t) - (1 - c) x_3(t)^2 + b x_3(t-1) \end{align*}\]
Here $c$ is the coupling constant. The system becomes completely synchronized for $c >= 0.7$. The initial condition xi
is repeated over the first two time steps before iteration starts.
CausalityTools.Ikeda2
— TypeIkeda2 <: DiscreteDefinition
Ikeda2(; xi = [0.19, 0.21], c_xy = 1.0, c_yx = 1.0, a = 0.8, b = 12, c = 0.9,
r₁ = 0.2, r₂ = 0.15, σ = 0.05, rng = Random.default_rng())
Initialise a discrete two-dimensional Ikeda map system, adapted from Cao et al. (1997), by adding a noise term and allowing the influences from $x \to y$ ($c_{xy}$) and from $y \to x$ ($c_{yx}$) to be adjusted.
The difference equations are
\[\begin{align*} x(t+1) &= 1 + \mu(x \cos{(\theta)} - c_{yx} y \sin{(\theta)}) - min( \dfrac{\sigma \xi_{t}^{(1)}}{(1-x)}, \xi_{t}^{(2)}) \\ y(t+1) &= \mu(y \cos{(\theta)} - c_{xy} x \sin{(\theta)}) - min(\dfrac{\sigma \zeta_{t}^{(1)}}{(1-y)}, \zeta_{t}^{(2)}) \end{align*}\]
CausalityTools.ChaoticNoisyLinear2
— TypeChaoticNoisyLinear2 <: DiscreteDefinition
ChaoticNoisyLinear2(; xi = [0.1, 0.2], c = 0.5,
nx = Normal(0, 0.05), ny = Normal(0, 0.05),
rng = Random.default_rng())
A bivariate system of two chaotic maps that are linearly coupled from x → y
with coupling strength c
.
Definition
\[\begin{align*} x(t+1) &= 3.4 x(t) (1 - x(t)^2) e^{-x(t)^2} + 0.8x(t-1) + \xi_x \\ y(t+1) &= 3.4 y(t) (1 - y(t)^2) e^{-y(t)^2} + 0.8y(t-1) + \xi_y + c x(t-2) \end{align*}\]
Process noise $\xi_x$ and $\xi_y$ is drawn at each iteration from nx
and ny
.
CausalityTools.Logistic2Unidir
— TypeLogistic2Unidir <: DiscreteDefinition
Logistic2Unidir(; xi = [0.5, 0.5], c_xy = 0.1, σ_xy = 0.05, r₁ = 3.78, r₂ = 3.66,
rng = Random.default_rng())
A bivariate system consisting of two 1D noisy logistic maps which are undirectionally coupled x → y
(Diego et al., 2019).
Equations of motion
The equations of motion are
\[\begin{align*} x(t+1) &= r_1 x(t)(1 - x(t)) \\ y(t+1) &= r_2 f(x,y)(1 - f(x,y)), \end{align*}\]
with
\[\begin{aligned} f(x,y) = \dfrac{y + \frac{c_{xy}(x \xi )}{2}}{1 + \frac{c_{xy}}{2}(1+ \sigma_{xy} )} \end{aligned}\]
The parameter c_xy
controls how strong the dynamical forcing is. If σ > 0
, dynamical noise masking the influence of x
on y
equivalent to $\sigma_{xy} \cdot \xi$ is added at each iteration. Here,$\xi$ is a draw from a flat distribution on $[0, 1]$. Thus, setting σ_xy = 0.05
is equivalent to add dynamical noise corresponding to a maximum of $5 \%$ of the possible range of values of the logistic map.
CausalityTools.Logistic2Bidir
— TypeLogistic2Bidir() <: DiscreteDefinition
Logistic2Bidir(; ui = [0.5, 0.5], c_xy = 0.1, c_yx = 0.1, r₁ = 3.78, r₂ = 3.66,
σ_xy = 0.05, σ_yx = 0.05,
rng = Random.default_rng())
A bivariate system consisting of two 1D noisy logistic maps which are bidirectionally interacting (Diego et al., 2019).
Equations of motion
\[\begin{align*} x(t+1) &= r_1 f_{yx}^{t}(1 - f_{yx}^{t}) \\ y(t+1) &= r_2 f_{xy}^{t}(1 - f_{xy}^{t}) \\ f_{xy}^t &= \dfrac{y(t) + c_{xy}(x(t) + \sigma_{xy} \xi_{xy}^t )}{1 + c_{xy} (1 + \sigma_{xy} )} \\ f_{yx}^t &= \dfrac{x(t) + c_{yx}(y(t) + \sigma_{yx} \xi_{yx}^t )}{1 + c_{yx} (1 + \sigma_{yx} )}, \end{align*}\]
Here, the coupling strength $c_{xy}$ controls how strongly species $x$ influences species $y$, and vice versa for $c_{yx}$. To simulate time-varying influence of unobserved processes, we use the dynamical noise terms $\xi_{xy}^t$ and $\xi_{yx}^t$, drawn from a uniform distribution with support on $[0, 1]$. If $\sigma_{xy} > 0$, then the influence of $x$ on $y$ is masked by dynamical noise equivalent to $\sigma_{xy} \xi_{xy}^{t}$ at the $t$-th iteration of the map, and vice versa for $\sigma_{yx}$.
CausalityTools.Logistic3CommonDriver
— TypeLogistic3CommonDriver() <: DiscreteDefinition
Logistic3CommonDriver(; u₀ = [0.1, 0.2, 0.3],
r = 4.0, σx = 0.05, σy = 0.05, σz = 0.05,
rng = Random.default_rng())
A discrete dynamical system consisting of three coupled 1D logistic maps representing the response of two independent dynamical variables to the forcing from a common driver (Runge, 2018). The dynamical influence goes in the directions $Z \to X$ and $Z \to Y$.
Equations of motion
The equations of motion are
\[\begin{align*} x(t+1) &= (x(t)(r - r x(t) - z(t) + \sigma_x \eta_x)) \mod 1 \\ y(t+1) &= (y(t)(r - r y(t) - z(t) + \sigma_y \eta_y)) \mod 1 \\ z(t+1) &= (z(t)(r - r z(t) + \sigma_z \eta_z)) \mod 1 \end{align*}\]
Dynamical noise may be added to each of the dynamical variables by tuning the parameters σz
, σx
and σz
. Default values for the parameters r₁
, r₂
and r₃
are set such that the system exhibits chaotic behaviour, with r₁ = r₂ = r₃ = 4
.
CausalityTools.Logistic4Chain
— TypeLogistic4Chain <: DiscreteDefinition
Logistic4Chain(; xi = rand(4),
rx = 3.9, ry = 3.6, rz = 3.6, rw = 3.8,
cxy = 0.4, cyz = 0.4, cyw = 0.35,
rng = Random.default_rng())
A variant of Logistic2Bidir
where four variables X
, Y
, Z
, W
are coupled in a chain X → Y → Z → W
with dynamical noise.
Description
The equations of motion are
\[\begin{align*} x(t+1) &= r_x x(t)(1 - x(t)) \\ y(t+1) &= r_y f_{xy}^{t}(1 - f_{xy}^{t}) \\ z(t+1) &= r_z f_{yz}^{t}(1 - f_{yz}^{t}) \\ w(t+1) &= r_w f_{zw}^{t}(1 - f_{zw}^{t}) \\ f_{xy}^t &= \dfrac{y(t) + c_{xy}(x(t) + \sigma_{xy} \xi_{xy}^t )}{1 + c_{xy} (1 + \sigma_{xy} )} \\ f_{yz}^t &= \dfrac{z(t) + c_{yz}(y(t) + \sigma_{yz} \xi_{yz}^t )}{1 + c_{yz} (1 + \sigma_{yz} )}, \\ f_{zw}^t &= \dfrac{w(t) + c_{zw}(z(t) + \sigma_{zw} \xi_{zw}^t )}{1 + c_{zw} (1 + \sigma_{zw} )}, \end{align*}\]
where c_{xy}
, c_{yz}
, c_{zw}
controls the coupling strength from x
to y
, y
to z
, and z
to w
, respectively. The magnitude of dynamical noise in these couplings are controlled by $\sigma_{xy}$, $\sigma_{yz}$, and $\sigma_{zw}$, respectively. $\xi_{xy}$, $\xi_{yz}$, and $\xi_{zw}$ are noise terms that each iteration are drawn from independent uniform distributions over the unit interval.
With default parameters and all dynamical noise terms set to zero, this is the system from (Ye et al., 2015) (but note that for some initial conditions, this system wanders off to $\pm \infty$ for some of the variables).
CausalityTools.Nonlinear3
— TypeNonlinear3 <: DiscreteDefinition
Nonlinear3(; xi = rand(3),
σ₁ = 1.0, σ₂ = 1.0, σ₃ = 1.0,
a₁ = 3.4, a₂ = 3.4, a₃ = 3.4,
b₁ = 0.4, b₂ = 0.4, b₃ = 0.4,
c₁₂ = 0.5, c₂₃ = 0.3, c₁₃ = 0.5,
rng = Random.default_rng())
A 3d nonlinear system with nonlinear couplings $x_1 \to x_2$, $x_2 \to x_3$ and $x_1 \to x_3$. Modified from Gourévitch et al. (2006)[Gourévitch2006].
Equations of motion
\[\begin{aligned} x_1(t+1) &= a_1 x_1 (1-x_1(t))^2 e^{-x_2(t)^2} + 0.4 \xi_{1}(t) \\ x_2(t+1) &= a_1 x_2 (1-x_2(t))^2 e^{-x_2(t)^2} + 0.4 \xi_{2}(t) + b x_1 x_2 \\ x_3(t+1) &= a_3 x_3 (1-x_3(t))^2 e^{-x_3(t)^2} + 0.4 \xi_{3}(t) + c x_{2}(t) + d x_{1}(t)^2. \end{aligned}\]
[Gourévitch2006]: Gourévitch, B., Le Bouquin-Jeannès, R., & Faucon, G. (2006). Linear and nonlinear causality between signals: methods, examples and neurophysiological applications. Biological Cybernetics, 95(4), 349–369.
CausalityTools.Peguin2
— TypePeguin2 <: DiscreteDefinition
Peguin2(; xi = [0.5, 0.4], σ₁ = 0.1, σ₂ = 0.1,
p₁ = 0.7, p₂ = 0.1, p₃ = 0.4, p₄ = 2.4, p₅ = 0.9, p₆ = 4)
A 2D discrete autoregressive system with nonlinear, nontrivial coupling from [1] . This system is from Péguin-Feissolle & Teräsvirta (1999)[^Péguin-Feissolle1999], and was also studied in Chávez et al. (2003)[Chávez2003].
Description
The system is defined by the equations
\[\begin{align*} x(t+1) &= p_2 + p_3 x(t-2) + c_{yx}\dfrac{p_4 - p_5 y(t-3)}{1 + e^{-p_6 y(t-3)}} + \xi_1(t) \\ y(t+1) &= p_1 y(t) + \xi_2(t). \end{align*}\]
Here, $\xi_{1,2}(t)$ are two independent normally distributed noise processes with zero mean and standard deviations $\sigma_1$ and $\sigma_2$. The $\xi_{1,2}(t)$ terms represent dynamical noise. The parameters of the original system are here tweakable.
[^Péguin-Feissolle1999]: Péguin-Feissolle, A., & Teräsvirta, T. (1999). A General Framework for Testing the Granger Noncausaality Hypothesis. Universites d’Aix-Marseille II et III. https://www.amse-aixmarseille.fr/sites/default/files/_dt/greqam/99a42.pdf
CausalityTools.UlamLattice
— TypeUlamLattice <: DiscreteDefinition
UlamLattice(; D::Int = 10; ui = sin.(1:10), ε::Real = 0.10)
A lattice of D
unidirectionally coupled ulam maps (Schreiber, 2000) defined as
\[x^{m}_{t+1} = f(\epsilon x^{m-1}_{t} + (1 - \epsilon) x_{t}^{m}),\]
where $m = 1, 2, \ldots, D$ and $f(x) = 2 - x^2$. In this system, information transfer happens only in the direction of increasing $m$.
CausalityTools.Var1
— TypeVar1 <: DiscreteDefinition
Var1(; xi = [0.5, 0.5, 0.5],
a = 0.5, θ = Normal(0, 1.0), η = Normal(0, 0.2), ϵ = Normal(0, 0.3),
rng = Random.default_rng())
A discrete vector autoregressive system where X₁ → X₂ → X₃.
CausalityTools.Verdes3
— TypeVerdes3 <: DiscreteDefinition
Verdes3(; ui = [0.1, 0.15, 0.2], ωy = 315, ωz = 80, σx = 0.0, σy = 0.0, σz = 0.0)
A 3D system where the response X is a highly nonlinear combination of Y and Z (Verdes, 2005). The forcings Y and Z involve sines and cosines, and have different periods, which controlled by ωy
and ωz
.
\[\begin{align*} x(t+1) &= \dfrac{y(t)(18y(t) - 27y(t)^2 + 10)}{2} + z(t)(1-z(t)) + ηx \\ y(t+1) &= \dfrac{(1 - \dfrac{\cos(2\pi)}{\omega y}t)}{2} + ηy \\ z(t+1) &= \dfrac{(1 - \dfrac{\sin(2\pi)}{\omega z}t)}{2} + ηz \end{align*}\]
where ηx, ηy, ηz is gaussian noise with mean 0 and standard deviation σx
, σy
and σz
.
Continuous systems
CausalityTools.ChuaCircuitsBidir6
— TypeChuaCircuitsBidir6 <: ContinuousDefinition
ChuaCircuitsBidir6(;u₀ = [0.1, 0.1, 0.2, 0.15, 0.15, 0.22],
α₁ = 7.0, α₂ = 7.0, β₁ = 14.286, β₂ = 14.286,
F₁ = 1.5, F₂ = 1.5, ω₁ = 3.0, ω₂ = 3.0,
n1 = Normal(0, 0.1),
n2 = Normal(0, 0.1),
c12 = 0.1, c21 = 0.1, m₀ = -1/7, m₁ = 2/7)
Initialize a bidirectionally coupled system consisting of two driven Chua circuits, X₁ and X₂ Murali and Lakshmanan (1993).
Description
The subsystems are mutually coupled by a linear resistor, where ϵ12
controls the influence of X₁ on X₂, and c21
controls the influence of X₂ on X₁. The parameters for the subsystems are set equal to each other, as in the original paper, but can here be tuned individually for each subsystem.
\[\begin{align*} \dfrac{dx_1}{dt} &= \alpha_1(y_1, h(x_1)) - \alpha_1 \epsilon(x_1 - x_2) \\ \dfrac{dy_1}{dt} &= x_1 - y_1 + z_1 \\ \dfrac{dz_1}{dt} &= -\beta_1 y_1 + F_1 sin(\omega_1 t) + \epsilon_1 \\ \dfrac{dx_2}{dt} &= \alpha_2 (y_2, h(x_2)) - \alpha_2 c_{12}(x_1 - x_2) \\ \dfrac{dy_2}{dt} &= x_2 - y_2 + z_2 \\ \dfrac{dz_2}{dt} &= -\beta_2 y_2 + F_2 sin(\omega_2 t) + \epsilon_2, \end{align*}\]
where $h(x) = M_1x + 0.5(M_0 - M_1)(|x+1| - |x - 1|)$ and $\epsilon_1, \epsilon_2$ are noise terms that at each integration step is drawn independently from the normal distributions n1
and n2
, respectively.
CausalityTools.ChuaScrollSine3
— TypeChuaScrollSine3 <: ContinuousDefinition
ChuaScrollSine3(; xi = [0.1, 0.2, 0.3],
α = 10.814, β = 14, γ = 0, a = 1.3, b = 0.11, c = 2,
nx = Normal(0.0, 0.01),
ny = Normal(0.0, 0.01)
nz = Normal(0.0, 0.01))
An adjusted Chua system giving rise to n-scroll attractors (Tang et al., 2001).
Description
The dynamics is generated by the following vector field
\[\begin{align*} \dot{x} &= \alpha (y - fx) + \eta x \\ \dot{y} &= x - y + z + \eta y \\ \dot{z} &= -\beta y - \gamma z + \eta z \end{align*}\]
where $\eta x$, $\eta z$, and $\eta z$ are drawn independently from normal distributions nx
, ny
and nz
each iteration.
$fx$ is given by the following conditions:
n::Int = c + 1
if x >= 2*a*c
fx = (b*pi/2*a)*(x - 2*a*c)
elseif -2*a*c < x < 2*a*c
d = ifelse(isodd(n), pi, 0)
fx = -b*sin((pi*x/2*a) + d)
elseif x <= -2*a*c
fx = (b*pi/2*a)*(x + 2*a*c)
end
CausalityTools.HindmarshRose3
— TypeHindmarshRose3 <: ContinuousDefinition
HindmarshRose3(; xi = [0.1, 0.2, 0.3, p)
Initialise a Hindmarsh-Rose system, which is a model of neuronal spiking.
Description
\[\begin{align*} \dfrac{dx}{dt} &= y + \phi(x) - z + I \\ \dfrac{dy}{dt} &= \psi(x) - y \\ \dfrac{dz}{dt} &= r[s(x - x_R) - z], \end{align*}\]
where
\[\begin{aligned} \phi(x) &= -ax^3+bx^2 \psi(x) &= c - dx^2 \end{aligned}\]
If parameters other than the defaults are to be used, they must be provided as a vector [a, b, c, d, r, s, xᵣ, I]
.
CausalityTools.LorenzBidir6
— TypeLorenzBidir6 <: ContinuousDefinition
LorenzBidir6(; xi = [0.1, 0.05, 0.2, 0.2, 0.25, 0.3],
c_xy = 0.2, c_yx = 0.2,
a₁ = 10, a₂ = 28, a₃ = 8/3,
b₁ = 10, b₂ = 28, b₃ = 9/3)
A bidirectionally coupled Lorenz-Lorenz system, where each subsystem is a 3D Lorenz system (Amigo & Hirata, 2018)[Amigó2018].
Description
The dynamics is generated by the following vector field
\[\begin{align*} \dot{x_1} &= -a_1 (x_1 - x_2) + c_{yx}(y_1 - x_1) \\ \dot{x_2} &= -x_1 x_3 + a_2 x_1 - x_2 \\ \dot{x_3} &= x_1 x_2 - a_3 x_3 \\ \dot{y_1} &= -b_1 (y_1 - y_2) + c_{xy} (x_1 - y_1) \\ \dot{y_2} &= -y_1 y_3 + b_2 y_1 - y_2 \\ \dot{y_3} &= y_1 y_2 - b_3 y_3 \end{align*}\]
Default values for the parameters a₁
, a₂
, a₃
, b₁
, b₂
, b₃
are as in [Amigó2018].
CausalityTools.LorenzForced9
— TypeLorenzForced9{V} <: ContinuousDefinition
LorenzForced9(; xi = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],
c_xy = 0.1, c_yx = 0.1,
c_zx = 0.05, c_zy = 0.05,
a₁ = 10, a₂ = 28, a₃ = 8/3,
b₁ = 10, b₂ = 28, b₃ = 8/3,
c₁ = 10, c₂ = 28, c₃ = 8/3)
A system consisting of two bidirectionally coupled 3D Lorenz systems forced by an external 3D Lorenz system (Amigó & Hirata, 2018).
Description
The dynamics is generated by the following vector field
\[\begin{align*} \dot{x_1} &= - a_1 (x_1 - x_2) + c_{yx}(y_1 - x_1) + c_{zx}(z_1 - x_1) \\ \dot{x_2} &= - x_1 x_3 + a_2 x_1 - x_2 \\ \dot{x_3} &= x_1 x_2 - a_3 x_3 \\ \dot{y_1} &= -b_1 (y_1 - y_2) + c_{xy} (x_1 - y_1) + c_{zy}(z_1 - y_1) \\ \dot{y_2} &= - y_1 y_3 + b_2 y_1 - y_2 \\ \dot{y_3} &= y_1 y_2 - b_3 y_3 \\ \dot{z_1} &= - c_1 (z_1 - z_2) \\ \dot{z_2} &= - z_1 z_3 + c_2 z_1 - z_2 \\ \dot{z_3} &= z_1 z_2 - c_3 z_3 \end{align*}\]
CausalityTools.MediatedLink9
— TypeMediatedLink9 <: ContinuousDefinition
MediatedLink9(; xi = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],
ωx = 1.0, ωy = 1.015, ωz = 0.985,
k = 0.15, l = 0.2, m = 10.0,
c = 0.06) → ContinuousDynamicalSystem
A three-subsystem dynamical system where X
and Y
are driven by Z
(Krakovská, 2018)[Krakovská2018].
Description
The dynamics is generated by the following vector field
\[\begin{aligned} dx_1 &= -\omega_x x_2 - x_3 + c*(z_1 - x_1) \\ dx_2 &= \omega_x x_1 + k*x_2 \\ dx_3 &= l + x_3(x_1 - m) \\ dy_1 &= -\omega_y y_2 - y_3 + c*(z_1 - y_1) \\ dy_2 &= \omega_y y_1 + k*y_2 \\ dy_3 &= l + y_3(y_1 - m) \\ dz_1 &= -\omega_z z_2 - z_3 \\ dz_2 &= \omega_z z_1 + k*z_2 \\ dz_3 &= l + z_3(z_1 - m) \end{aligned}\]
At the default value of the coupling constant c = 0.06
, the responses X
and Y
are already synchronized to the driver Z
.
CausalityTools.Repressilator6
— TypeRepressilator6 <: ContinuousDefinition
Repressilator6(; xi = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6], α = 10.0, α₀ = 0.0, β = 100.0,
n = 2) → ContinuousDynamicalSystem
A six-dimensional repressilator (or repression-driven oscillator) from Elowitz and Leibler (2000).
Used in Sun et al. (2014) to study the performance of the causation entropy algorithm.
Description
\[\begin{align*} \dfrac{dm_1}{dt} &= -m1 + \dfrac{\alpha}{1 + p_3^n} + \alpha_0 \\ \dfrac{dm_2}{dt} &= -m2 + \dfrac{\alpha}{1 + p_1^n} + \alpha_0 \\ \dfrac{dm_3}{dt} &= -m3 + \dfrac{\alpha}{1 + p_2^n} + \alpha_0 \\ \dfrac{dp_1}{dt} &= -\beta(p_1 - m_1) \\ \dfrac{dp_2}{dt} &= -\beta(p_2 - m_2) \\ \dfrac{dp_3}{dt} &= -\beta(p_3 - m_3) \\ \end{align*}\]
CausalityTools.RosslerBidir6
— TypeRosslerBidir6 <: ContinuousDefinition
RosslerBidir6(; xi = [0.1, 0.1, 0.2, 0.3, 0.3, 0.4],
a = 0.1, b = 0.1, c = 14.0, ϵ₁ = 0.0, ϵ₂ = 0.0,
ω₁ = 1 + 0.015, ω₂ = 1 - 0.015)
A bidirectionally coupled 6D Rossler system from Krakovská et al. (2018)[Krakovská2018].
Description
The system consists of two separate subsystems, each being a 3D Rossler attractor. The subsystems are bidirectionally coupled, influencing each other through variables $x_1$ and `x_2
.
\[\begin{align*} \dfrac{dx_1}{dt} &= \omega_1 (-y_1) - z_1 + c_{21}*(x_1 - x_2) \\ \dfrac{dy_1}{dt} &= \omega_1 x_1 + a y_1 \\ \dfrac{dz_1}{dt} &= b + z_1 (x_1 - c) \\ \dfrac{dx_2}{dt} &= \omega_2 (-y_2) - z_2 + c_{12} (x_2 - x_1) \\ \dfrac{dy_2}{dt} &= \omega_2*x_2 + a*y_2 \\ \dfrac{dz_2}{dt} &= b + z_2 (x_2 - c) \\ \end{align*}\]
with $c_{12} \geq 0$ and $c_{21} \geq 0$.
CausalityTools.RosslerForced9
— TypeRosslerForced9 <: ContinuousDefinition
RosslerForced9(; xi = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],
ω₁ = 1.015, ω₂ = 0.985, ω₃ = 0.95,
c_xy = 0.1, c_yx = 0.1,
c_zx = 0.05, c_zy = 0.05,
a₁ = 0.15, a₂ = 0.2, a₃ = 10,
b₁ = 0.15, b₂ = 0.2, b₃ = 10,
c₁ = 0.15, c₂ = 0.2, c₃ = 10)
Equations of motion for a system consisting of three coupled 3D Rössler systems ($X$, $Y$, $Z$), giving a 9D system (Amigó & Hirata, 2018)[Amigó2018].
Description
The dynamics is generated by the following vector field
\[\begin{aligned} \dot{x_1} &= -\omega_1 (x_2 + x_3) + c_{yx}(y_1 - x_1) + c_{zx}(z_1 - x_1) \\ \dot{x_2} &= \omega_1 x_1 + a_1 x_2 \\ \dot{x_3} &= a_2 + x_3 (x_1 - a_3) \\ \dot{y_1} &= -\omega_1 (y_2 + y_3) + c_{xy}(x_1 - y_1) + c_{zy}(z_1 - y_1) \\ \dot{x_2} &= \omega_2 y_1 + b_1 y_2 \\ \dot{x_3} &= b_2 + x_3 (y_1 - b_3) \\ \dot{y_1} &= -\omega_2 (z_2 + z_3) \\ \dot{x_2} &= \omega_2 z_1 + c_1 z_2 \\ \dot{x_3} &= c_2 + z_3 (z_1 - c_3). \end{aligned}\]
The external system $Z$ influences both $X$ and $Y$ (controlled by c_zx
and c_zy
). Simultaneously, the subsystems $X$ and $Y$ bidirectionally influences each other (controlled by c_xy
and c_yx
). The $X$ and $Y$ subsystems are mostly synchronized for c_xy > 0.1
or c_yx > 0.1
.
CausalityTools.RosslerLorenzUnidir6
— TypeRosslerLorenzUnidir6 <: ContinuousDefinition
RosslerLorenzUnidir6(; xi = [0.1, 0.2, 0.3, 0.05, 0.1, 0.15],
a₁ = 6, a₂ = 6, a₃ = 2.0, b₁ = 10, b₂ = 28, b₃ = 8/3, c_xy = 1.0)
Initialise a Rössler-Lorenz system consisting of two independent 3D subsystems: one Rössler system and one Lorenz system. They are coupled such that the second component (x₂
) of the Rössler system unidirectionally forces the second component (y₂
) of the Lorenz system.
The parameter c_xy
controls the coupling strength. The implementation here also allows for tuning the parameters of each subsystem by introducing the constants a₁
, a₂
, a₃
, b₁
, b₂
, b₃
. Default values for these parameters are as in [1].
Equations of motion
The dynamics is generated by the following vector field
Description
\[\begin{align*} \dot x_1 &= -a_1(x_2 + x_3) \\ \dot x_2 &= a_2(x_1 + a_2x_2) \\ \dot x_3 &= a_1(a_2 + x_3(x_1 - a_3)) \\ \dot y_1 &= b_1(y_2 - y_1) \\ \dot y_2 &= y_1(b_2 - y_3) - y_2 +c_{xy}(x_2)^2 \\ \dot y_3 &= y_1 y_2 - b_3y_3 \end{align*}\]
with the coupling constant $c_{xy} \geq 0$.
CausalityTools.Thomas3
— TypeThomas3 <: ContinuousDefinition
Thomas3(; xi = [0.11, 0.09, 0.10], b = 0.20)
Thomas' cyclically symmetric attractor is a continuous dynamical system with three variables. It has a single free parameter b
, for which interesting behaviour occurs when b ∈ (0, 1)
. In particular, the system is chaotic whenever b < 0.20
.
Definition
\[\begin{align*} \dfrac{dx}{dt} &= sin(y) - bx \\ \dfrac{dy}{dt} &= sin(z) - by \\ \dfrac{dz}{dt} &= sin(x) - bz \end{align*}\]
- Paluš2018Paluš, M., Krakovská, A., Jakubík, J., & Chvosteková, M. (2018). Causality, dynamical systems and the arrow of time. Chaos: An Interdisciplinary Journal of Nonlinear Science, 28(7), 075307. http://doi.org/10.1063/1.5019944
- Krakovská2018Krakovská, A., Jakubík, J., Chvosteková, M., Coufal, D., Jajcay, N., & Paluš, M. (2018). Comparison of six methods for the detection of causality in a bivariate time series. Physical Review E, 97(4), 042207.
- Chávez2003Chávez, M., Martinerie, J., & Le Van Quyen, M. (2003). Statistical assessment of nonlinear causality: application to epileptic EEG signals. Journal of Neuroscience Methods, 124(2), 113–128. doi:10.1016/s0165-0270(02)00367-9 https://www.sciencedirect.com/science/article/pii/S0165027002003679
- Amigó2018Amigó, José M., and Yoshito Hirata. "Detecting directional couplings from multivariate flows by the joint distance distribution." Chaos: An Interdisciplinary Journal of Nonlinear Science 28.7 (2018): 075302.
- Amigó2018Amigó, José M., and Yoshito Hirata. "Detecting directional couplings from multivariate flows by the joint distance distribution." Chaos: An Interdisciplinary Journal of Nonlinear Science 28.7 (2018): 075302.
- Krakovská2018Krakovská, Anna, et al. "Comparison of six methods for the detection of causality in a bivariate time series." Physical Review E 97.4 (2018): 042207
- Krakovská2018Krakovská, A., Jakubík, J., Chvosteková, M., Coufal, D., Jajcay, N., & Paluš, M. (2018). Comparison of six methods for the detection of causality in a bivariate time series. Physical Review E, 97(4), 042207.
- Amigó2018Amigó, José M., and Yoshito Hirata. "Detecting directional couplings from multivariate flows by the joint distance distribution." Chaos: An Interdisciplinary Journal of Nonlinear Science 28.7 (2018): 075302.