class_docstr: Implements methods for finding optimal (efficient) backdoor sets.
class_docstr_tok: ["Implements","methods","for","finding","optimal","(","efficient",")","backdoor","sets","."]
docstr: Returns the H0 graph associated with treatment, outcome, conditional
  and observable variables. See Smucler, Sapienza and Rotnitzky (2021),
  Biometrika, for the full definition of this graph.
  
  :returns H0: nx.Graph
      The H0 graph.
docstr_tok: ["Returns","the","H0","graph","associated","with","treatment",",","outcome",",","conditional","and","observable","variables",".","See","Smucler",",","Sapienza","and","Rotnitzky","(","2021",")",",","Biometrika",",","for","the","full","definition","of","this","graph",".",":","returns","H0",":","nx.Graph","The","H0","graph","."]
code: def build_H0(self):
      """Returns the H0 graph associated with treatment, outcome, conditional
      and observable variables. See Smucler, Sapienza and Rotnitzky (2021),
      Biometrika, for the full definition of this graph.
  
      :returns H0: nx.Graph
          The H0 graph.
      """
      # restriction to ancestors
      anc = self.ancestors_all(
          self.conditional_node_names
          + [self.treatment_name, self.outcome_name]
      )
      G2 = self.graph.subgraph(anc)
  
      # back-door graph
      G3 = self.backdoor_graph(G2)
  
      # moralization
      H0 = nx.moral_graph(G3)
  
      return H0
  
file_path: dowhy/dowhy/causal_identifier/efficient_backdoor.py
imports: from typing import List
  import networkx
  import numpy
label_desc: Use image node_id 8 for calling the EfficientBackdoor obj's underlying member method code with example usage: obj.build_H0() and returns: H0