Class Ccd

java.lang.Object
edu.cmu.tetrad.search.Ccd
All Implemented Interfaces:
IGraphSearch

public final class Ccd extends Object implements IGraphSearch

Implemented the Cyclic Causal Discovery (CCD) algorithm by Thomas Richardson. A reference for this is here:

Richardson, T. S. (2013). A discovery algorithm for directed cyclic graphs. arXiv preprint arXiv:1302.3599.

See also Chapter 7 of:

Glymour, C. N., & Cooper, G. F. (Eds.). (1999). Computation, causation, and discovery. Aaai Press.

The graph takes continuous data from a cyclic model as input and returns a cyclic PAG graphs, with various types of underlining, that represents a Markov equivalence of the true DAG.

This class is not configured to respect knowledge of forbidden and required edges.

Author:
Frank C. Wimberly, josephramsey
  • Constructor Summary

    Constructors
    Constructor
    Description
    Construct a CCD algorithm with the given independence test.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Returns true iff the R1 rule should be applied.
    The search method assumes that the IndependenceTest provided to the constructor is a conditional independence oracle for the SEM (or Bayes network) which describes the causal structure of the population.
    void
    setApplyR1(boolean applyR1)
    Sets whether the R1 rule should be applied.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Ccd

      public Ccd(IndependenceTest test)
      Construct a CCD algorithm with the given independence test.
      Parameters:
      test - The test to be used.
      See Also:
  • Method Details

    • search

      public Graph search()
      The search method assumes that the IndependenceTest provided to the constructor is a conditional independence oracle for the SEM (or Bayes network) which describes the causal structure of the population. The method returns a PAG instantiated as a Tetrad GaSearchGraph which represents the equivalence class of digraphs which are m-separation equivalent to the digraph of the underlying model (SEM or BN). Although they are not returned by the search method, it also computes two lists of triples which, respectively, store the underlines and dotted underlines of the PAG.
      Specified by:
      search in interface IGraphSearch
      Returns:
      The CCD cyclic PAG for the data.
    • isApplyR1

      public boolean isApplyR1()
      Returns true iff the R1 rule should be applied.
      Returns:
      True if the case.
    • setApplyR1

      public void setApplyR1(boolean applyR1)
      Sets whether the R1 rule should be applied.
      Parameters:
      applyR1 - True if the case.