pywhy-graphs icon indicating copy to clipboard operation
pywhy-graphs copied to clipboard

FEA A function to determine if an edge is "visible"

Open adam2392 opened this issue 1 year ago • 3 comments

Is your feature request related to a problem? Please describe. In causal graphs (DAG, ADMG, CPDAG, PAG, MAG), there is the notion of an edge being visible. For the DAG/ADMG/CPDAG, edges are by definition always visible.

Describe the solution you'd like Implement function visible_edge(graph, source, target) to determine if the edge between source and target is visible or not.

One can follow the papers https://auai.org/uai2015/proceedings/papers/155.pdf and https://www.jmlr.org/papers/volume18/16-319/16-319.pdf, and figures to use as unit-test cases.

Additional context https://github.com/py-why/dowhy/issues/402#issuecomment-1404457573

adam2392 avatar Jul 15 '24 14:07 adam2392

cc: @aryan26roy

adam2392 avatar Jul 15 '24 14:07 adam2392

@adam2392 does this need to be implemented before #112 ? I kind of forgot the order in which we need to call these functions.

aryan26roy avatar Jul 15 '24 14:07 aryan26roy

No I think visibility is a graphical property of an edge.

Proper possibly directed paths is just a generator function for finding paths with specific features. So I think the easiest route is to first implement all_proper_pd_paths generator function, and then implement visible_edge discussed in this GH issue, and then finally implement the generator function for m_separating_sets discussed in #116

adam2392 avatar Jul 15 '24 14:07 adam2392