3.2.1. pywhy_graphs.algorithms.pds#

pywhy_graphs.algorithms.pds(graph: PAG, node_x: int | float | str | Any, node_y: int | float | str | Any | None = None, max_path_length: int | None = None) Set[int | float | str | Any][source]#

Find all PDS sets between node_x and node_y.

Parameters:
graphPAG

The graph.

node_xnode

The node ‘x’.

node_ynode

The node ‘y’.

max_path_lengthoptional, int

The maximum length of a path to search on. By default None, which sets it to 1000.

Returns:
dsepset

The possibly d-separating set between node_x and node_y.

Notes

Possibly d-separating (PDS) sets are nodes V, along an adjacency paths from ‘node_x’ to some ‘V’, which has the following characteristics for every subpath triple <X, Y, Z> on the path:

  • Y is a collider, or

  • Y is a triangle (i.e. X, Y and Z form a complete subgraph)

If the path meets these characteristics, then ‘V’ is in the PDS set.

If Y is a triangle, then it will be uncertain with circular edges due to the fact that it is a shielded triple, not allowing us to infer that it is a collider. These are defined in [1] and [2].

References