Package edu.cmu.tetrad.search
Class Ccd
java.lang.Object
edu.cmu.tetrad.search.Ccd
- All Implemented Interfaces:
IGraphSearch
Implemented the Cyclic Causal Discovery (CCD) algorithm by Thomas Richardson. A reference to 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 (nor will be).
- Version:
- $Id: $Id
- Author:
- Frank C. Wimberly, josephramsey
-
Constructor Summary
ConstructorsConstructorDescriptionCcd
(IndependenceTest test) Construct a CCD algorithm with the given independence test. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Returns true iff the R1 rule should be applied.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.void
setApplyR1
(boolean applyR1) Sets whether the R1 rule should be applied.
-
Constructor Details
-
Ccd
Construct a CCD algorithm with the given independence test.- Parameters:
test
- The test to be used.- See Also:
-
-
Method Details
-
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 interfaceIGraphSearch
- Returns:
- The CCD cyclic PAG for the data.
- Throws:
InterruptedException
- if any.
-
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.
-