mixle.models.dependence module

Conditional-dependence and small causal-structure learning utilities.

class ConditionalIndependenceResult(measure, statistic, p_value, independent)[source]

Bases: object

Result from a conditional independence calculation.

Parameters:
measure: float
statistic: float
p_value: float | None
independent: bool
class CausalSkeleton(edges, separating_sets, variable_names)[source]

Bases: object

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

Parameters:
edges: set[tuple[int, int]]
separating_sets: dict[tuple[int, int], frozenset[int]]
variable_names: list[Any]
has_edge(i, j)[source]

Return whether the undirected skeleton contains edge ij.

Parameters:
Return type:

bool

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

Bases: object

Partially directed graph after collider orientation.

Parameters:
directed_edges: set[tuple[int, int]]
undirected_edges: set[tuple[int, int]]
variable_names: list[Any]
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

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]

Orient unshielded colliders i -> k <- j using separating sets.

Parameters:

skeleton (CausalSkeleton)

Return type:

PartiallyDirectedGraph