Skip to content

Testing for causality from scalar time series

Syntax

# CausalityToolsBase.causalityMethod.

causality(source::AbstractVector, target::AbstractVector, test::CausalityTest)

Test for a causal influence from source to target using the provided causality test.

Examples

x, y = rand(300), rand(300)

# Define some causality tests and apply them to `x` and `y`.
test_ccm = ConvergentCrossMappingTest(timeseries_lengths = [45, 50], n_reps = 20)
test_cm = CrossMappingTest(n_reps = 10)
test_vf = VisitationFrequencyTest(binning = RectangularBinning(5), ηs = 1:5)
test_tog = TransferOperatorGridTest(binning = RectangularBinning(5), ηs = 1:5)
test_nn = NearestNeighbourMITest(ηs = 1:5)
test_jdd = JointDistanceDistributionTest()
test_jddt = JointDistanceDistributionTTest()
test_pa = PredictiveAsymmetryTest(
    VisitationFrequencyTest(binning = RectangularBinning(5), ηs = -5:5))
test_pan = NormalisedPredictiveAsymmetryTest(f = 1.0,
    VisitationFrequencyTest(binning = RectangularBinning(5), ηs = -5:5))

causality(x, y, test_ccm)
causality(x, y, test_cm)
causality(x, y, test_vf)
causality(x, y, test_nn)
causality(x, y, test_tog)
causality(x, y, test_jdd)
causality(x, y, test_jddt)
causality(x, y, test_pa)
causality(x, y, test_pan)

source

Returned values from causality depend on the test type - see the documentation for specific tests for details.

Uncertainty handling

  • All high-level causality tests are integrated with the uncertainty handling machinery in UncertainData.jl. See the list of uncertainty handling strategies for more details.
  • Any combination of real-valued vectors, Vector{<:AbstractUncertainValue}, or AbstractUncertainValueDataset are accepted as inputs to causality, making uncertainty quantification on the causality statistics a breeze.