Class DagSepsets

java.lang.Object
edu.cmu.tetrad.search.utils.DagSepsets
All Implemented Interfaces:
SepsetProducer

public class DagSepsets extends Object implements SepsetProducer
Determines sepsets, collider, and noncolliders by examining d-separation facts in a DAG.
Version:
$Id: $Id
Author:
josephramsey
  • Constructor Details

    • DagSepsets

      public DagSepsets(Graph dag)
      Constructs a new DagSepsets object for the given DAG.
      Parameters:
      dag - the DAG.
  • Method Details

    • getSepset

      public Set<Node> getSepset(Node a, Node b, int depth)
      Retrieves the sepset, which is the set of common neighbors between two given nodes.

      Returns the list of sepset for {a, b}.

      Specified by:
      getSepset in interface SepsetProducer
      Parameters:
      a - the first node
      b - the second node
      depth - the depth of the search
      Returns:
      the set of common neighbors between nodes a and b
    • getSepsetContaining

      public Set<Node> getSepsetContaining(Node a, Node b, Set<Node> s, int depth)
      Returns the sepset containing nodes 'a' and 'b' that also contains all the nodes in the given set 's'. Note that for the DAG case, it is expected that any sepset containing 'a' and 'b' will contain all the nodes in 's'; otherwise, an exception is thrown.
      Specified by:
      getSepsetContaining in interface SepsetProducer
      Parameters:
      a - The first node.
      b - The second node.
      s - The set of nodes that must be contained in the sepset.
      depth - The depth of the search.
      Returns:
      The sepset containing 'a' and 'b' that also contains all the nodes in 's'.
      Throws:
      IllegalArgumentException - If the sepset of 'a' and 'b' does not contain all the nodes in 's'.
    • isUnshieldedCollider

      public boolean isUnshieldedCollider(Node i, Node j, Node k, int depth)

      isUnshieldedCollider.

      True iff i*-*j*-*k is an unshielded collider.

      Specified by:
      isUnshieldedCollider in interface SepsetProducer
      Parameters:
      i - a Node object
      j - a Node object
      k - a Node object
      depth - the depth of the search
      Returns:
      a boolean
    • getScore

      public double getScore()
      Returns the score of the object.

      Not implemented; required for an interface.

      Specified by:
      getScore in interface SepsetProducer
      Returns:
      the score value
    • isIndependent

      public boolean isIndependent(Node a, Node b, Set<Node> sepset)
      Checks if node d is independent of node c given the set of nodes in sepset.

      Returns true just in case msep(a, b | c) in the DAG. Don't let the name isIndependent fool you; this is a d-separation method. We only use the name isIndependent so that this can be used in place of an independence check.

      Specified by:
      isIndependent in interface SepsetProducer
      Parameters:
      a - the first node
      b - the second node
      sepset - the set of common neighbors between d and c
      Returns:
      true if d is independent of c, false otherwise
    • getPValue

      public double getPValue(Node a, Node b, Set<Node> sepset)
      Description copied from interface: SepsetProducer
      Calculates the p-value for a statistical test a _||_ b | sepset.
      Specified by:
      getPValue in interface SepsetProducer
      Parameters:
      a - the first node
      b - the second node
      sepset - the set of nodes
      Returns:
      the p-value for the statistical test
      Throws:
      UnsupportedOperationException - if this method is called.
    • setGraph

      public void setGraph(Graph graph)
      Description copied from interface: SepsetProducer
      Sets the graph for the SepsetProducer object.
      Specified by:
      setGraph in interface SepsetProducer
      Parameters:
      graph - the graph to set
    • getVariables

      public List<Node> getVariables()
      Retrieves the list of variables.

      Returns the nodes in the DAG.

      Specified by:
      getVariables in interface SepsetProducer
      Returns:
      the list of variables as a List of Node objects.
    • setVerbose

      public void setVerbose(boolean verbose)
      Sets the verbose mode of the SepsetProducer.

      Thsi method is not used.

      Specified by:
      setVerbose in interface SepsetProducer
      Parameters:
      verbose - true if verbose mode is enabled, false otherwise
    • getDag

      public Graph getDag()
      Returns the DAG being analyzed.
      Returns:
      This DAG.