java.lang.Object
edu.cmu.tetrad.algcomparison.algorithm.AbstractBootstrapAlgorithm
edu.cmu.tetrad.algcomparison.algorithm.oracle.pag.Cfci
All Implemented Interfaces:
Algorithm, ReturnsBootstrapGraphs, TakesCovarianceMatrix, HasKnowledge, HasParameters, TakesIndependenceWrapper, TetradSerializable, Serializable

Conservative FCI. This is a wrapper for the CFCI algorithm in Tetrad, which is conservative in the same sense as CPC, Conservative PC. That is, it checks, for triple <X, Y, Z>, whether orienting colliders or noncoliders can be done unambiguously. If not, it leaves the edge undirected. It is also similar to FCI in that it allows for latent common causes.
Version:
$Id: $Id
Author:
josephramsey
See Also:
  • Constructor Details

    • Cfci

      public Cfci()
      Constructs a new conservative FCI algorithm.
    • Cfci

      public Cfci(IndependenceWrapper test)
      Constructs a new conservative FCI algorithm with the given independence test.
      Parameters:
      test - the independence test
  • Method Details

    • runSearch

      public Graph runSearch(DataModel dataModel, Parameters parameters)
      Runs the search algorithm to discover the causal graph.
      Parameters:
      dataModel - The data model used for the search.
      parameters - The parameters for the search algorithm.
      Returns:
      The discovered causal graph.
      Throws:
      IllegalArgumentException - if the data model is not an instance of DataSet when time lag is specified.
    • getComparisonGraph

      public Graph getComparisonGraph(Graph graph)
      Retrieves the comparison graph by converting the given true directed graph into a partially directed graph (PAG) using the DAG to PAG transformation.
      Specified by:
      getComparisonGraph in interface Algorithm
      Parameters:
      graph - The true directed graph, if there is one.
      Returns:
      The comparison graph as a partially directed graph (PAG).
    • getDescription

      public String getDescription()
      Returns the description of the algorithm.
      Specified by:
      getDescription in interface Algorithm
      Returns:
      The description of the algorithm.
    • getDataType

      public DataType getDataType()
      Retrieves the data type required by the search algorithm.
      Specified by:
      getDataType in interface Algorithm
      Returns:
      The data type required by the search algorithm.
    • getParameters

      public List<String> getParameters()
      Returns the list of parameters used by the algorithm.
      Specified by:
      getParameters in interface HasParameters
      Returns:
      The list of parameters used by the algorithm.
    • getKnowledge

      public Knowledge getKnowledge()
      Returns the knowledge.
      Specified by:
      getKnowledge in interface HasKnowledge
      Returns:
      The knowledge.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Sets the knowledge object for the algorithm.
      Specified by:
      setKnowledge in interface HasKnowledge
      Parameters:
      knowledge - a knowledge object
    • getIndependenceWrapper

      public IndependenceWrapper getIndependenceWrapper()
      Retrieves the IndependenceWrapper used by the algorithm.
      Specified by:
      getIndependenceWrapper in interface TakesIndependenceWrapper
      Returns:
      The IndependenceWrapper object.
    • setIndependenceWrapper

      public void setIndependenceWrapper(IndependenceWrapper test)
      Sets the independence wrapper for the algorithm.
      Specified by:
      setIndependenceWrapper in interface TakesIndependenceWrapper
      Parameters:
      test - the independence wrapper to set