mixle.models.dependence module

Conditional-dependence and small causal-structure learning utilities.

The module provides Gaussian and discrete conditional-independence measures plus lightweight PC-style skeleton and collider-orientation helpers for exploratory causal structure analysis.

class ConditionalIndependenceResult(measure, statistic, p_value, independent, status, sample_size, degrees_of_freedom, method, reason=None)[source]

Bases: object

Result from a conditional independence calculation.

Parameters:
  • measure (float | None)

  • statistic (float | None)

  • p_value (float | None)

  • independent (bool | None)

  • status (Literal['independent', 'dependent', 'inconclusive'])

  • sample_size (int)

  • degrees_of_freedom (int | None)

  • method (str)

  • reason (str | None)

class CausalSkeleton(edges, separating_sets, variable_names, all_separating_sets=None)[source]

Bases: object

Undirected skeleton plus separating sets from a PC-style search.

Parameters:
has_edge(i, j)[source]

Return whether the undirected skeleton contains edge i–j.

Parameters:
Return type:

bool

class PartiallyDirectedGraph(directed_edges, undirected_edges, variable_names)[source]

Bases: object

Partially directed graph after collider orientation.

Parameters:
gaussian_partial_correlation(data, x, y, given=(), ridge=1.0e-10)[source]

Return partial correlation rho_xy.given for continuous data.

Parameters:
Return type:

float

gaussian_conditional_independence(data, x, y, given=(), alpha=0.05, ridge=1.0e-10)[source]

Fisher-z Gaussian conditional independence test.

Parameters:
Return type:

ConditionalIndependenceResult

discrete_conditional_mutual_information(data, x, y, given=())[source]

Estimate I(X;Y | Z) from categorical samples using empirical counts.

Parameters:
Return type:

float

discrete_conditional_independence(data, x, y, given=(), alpha=0.05)[source]

Likelihood-ratio (G-test) conditional-independence test for categorical samples.

The statistic is 2 n I(X;Y|Z) and is compared with its chi-square null distribution. The asymptotic result is reported as inconclusive unless there are at least five observations per degree of freedom; callers that need sparse-table exactness should use a permutation test.

Parameters:
Return type:

ConditionalIndependenceResult

learn_pc_skeleton(data, variable_names=None, alpha=0.05, max_cond_set=2, method='gaussian')[source]

Learn a PC-style undirected skeleton from conditional independences.

Parameters:
Return type:

CausalSkeleton

orient_v_structures(skeleton)[source]

Build a deterministic, conflict-checked CPDAG from skeleton and separating evidence.

Parameters:

skeleton (CausalSkeleton)

Return type:

PartiallyDirectedGraph