pywhy_graphs.algorithms.inducing_path#
- pywhy_graphs.algorithms.inducing_path(G, node_x: int | float | str | Any, node_y: int | float | str | Any, L: Set | None = None, S: Set | None = None)[source]#
Checks if an inducing path exists between two nodes.
An inducing path is defined in [1].
- Parameters:
- GGraph
The graph.
- node_xnode
The source node.
- node_ynode
The destination node.
- LSet
Nodes that are ignored on the path. Defaults to an empty set. See Notes for details.
- S: Set
Nodes that are always conditioned on. Defaults to an empty set. See Notes for details.
- Returns:
- pathTuple[bool, path]
A tuple containing a bool and a path if the bool is true, an empty list otherwise.
Notes
An inducing path intuitively is a path between two non-adjacent nodes that cannot be d-separated. Therefore, the path is always “active” regardless of what variables we condition on. L contains all the non-colliders, these nodes are ignored along the path. S contains nodes that are always conditioned on (hence if the ancestors of colliders are in S, then those collider paths are always “active”).
References