Independence Atom Backend

The composition layer operates (exclusively) on primitives exposed by the data_processing layer, with data_management logically detached (accessed only thourgh the data_processing layer). It uses only the following composed independence-atom backend:

class IProvideIndependenceAtoms

Interface specifying how to expose (custom) implementations of independence-atom providing backends. Provide (as opposed to test) here means that data_management and data_processing functionality are bundled.

marked_independence(ci: CI_Identifier) Result

Provide a marked-independence statement.

See also

Provides functionality described by TestMarkedCI.marked_independence but with actual data made opaque.

Parameters:

ci (CI_Identifier) – conditional independence to test

Returns:

marked CIT result

Return type:

ITestMarkedCI.Result

regime_implication(lhs: list[CI_Identifier], rhs: CI_Identifier) bool

Provide a regime-implication statement.

See also

Provides functionality described by ITestIndicatorImplications.is_implied_regime but with actual data made opaque.

Parameters:
Returns:

test-result for truth-value of the implication

Return type:

bool

found_globally_independent_for_some_Z(undirected_link: tuple) bool

Provide information about wheter among the test-results provided so far, there was a CIT on the specified undirected_link for any conditioning set Z which was reported globally independent.

Parameters:

undirected_link (tuple) – the undirected link on which to check for independent CIT-results

Returns:

Truth-value about wheter any globally independent outcome was encountered on this link.

Return type:

bool

For PCMCI-familiy algortihms, the independence-atom backend further is notified of transitions between PC1 and MCI phase through the callbacks of the following interface:

class IHandleExplicitTransitionToMCI

Interface specifying how to expose (custom) implementations of independence-atom providing backends for PCMCI-familiy [RNK+19] algorithms. These backends typically handle PC1 and MCI tests differently, and through this interface are notified by the HCCD-controller about transitions between these phases.

enter_pc1() None

Callback for notification that the underlying cd-algorithm has (re)entered (what is considered by the controller) to be part of the PC1-phase.

enter_mci() None

Callback for notification that the underlying cd-algorithm has (re)entered (what is considered by the controller) to be part of the MCI-phase.