Meek Separators and Their Applications in Targeted Causal Discovery

Authors: Kirankumar Shiragur, Jiaqi Zhang, Caroline Uhler

NeurIPS 2023 | Conference PDF | Archive PDF | Plain Text | LLM Run Details

Reproducibility Variable Result LLM Response
Research Type Experimental Here, we implement our Meek separator to solve for subset search and causal mean matching discussed in the previous sections. Details and extended experiments are provided in Appendix G. Figure 5: Meek separator for (a) subset search and (b) causal matching. Each dot is averaged across 20 DAGs, where the error bar shows 0.5 and 0.2 standard deviation in (a) and (b), respectively.
Researcher Affiliation Academia Kirankumar Shiragur Eric and Wendy Schmidt Center, Broad Institute of MIT and Harvard Jiaqi Zhang LIDS, Massachusetts Institute of Technology Broad Institute of MIT and Harvard Caroline Uhler LIDS, Massachusetts Institute of Technology Broad Institute of MIT and Harvard
Pseudocode Yes Algorithm 1 Meek Separator(G, 1/2) Algorithm 2 Atomic adaptive subset search. Algorithm 3 Find Source(E(G), U) Algorithm 4 Causal Mean Match(E(G), P, µ )
Open Source Code Yes The source code of our implementation can be found at https://github.com/uhlerlab/meek_sep.
Open Datasets No The paper uses synthetic data generated from models like “Erdös-Rényi graphs [ER60]” and “Barabási Albert graphs [AB02]” and an “r-hop model in [CS23]”. It does not refer to existing public datasets with specific access information.
Dataset Splits No The paper generates synthetic data but does not explicitly specify training, validation, and testing splits. It mentions averaging results across multiple generated DAGs or instances.
Hardware Specification No All code is written in Python and run on CPU. (No specific CPU model or other hardware details are provided.)
Software Dependencies No We implemented our methods using the Network X package [HSSC08] and the Causal DAG package https://github.com/uhlerlab/causaldag. All code is written in Python. (Specific version numbers for Python, Network X, or Causal DAG are not provided.)
Experiment Setup Yes Problem Generation: We consider the r-hop model in [CS23]. In this model, an Erdös-Rényi graph [ER60] with edge density 0.001 on n nodes is first generated. Then a random tree on these n nodes is generated. The final DAG is obtained by (1) combining the edge sets using a fixed topological order, where u v if it is in the combined edge sets and u has a smaller vertex label than v, and (2) removing v-structures by connecting u w where u v w and u has a smaller vertex label than w. The edge density in Erdös-Rényi graphs is 0.2 where the number of edges to attach from a new node to existing nodes in Barabási Albert graphs is set to 2. The intervention targets of I is a random subset of n vertex in the DAG.