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

Adjusts GFCI to use a permutation algorithm (such as BOSS-Tuck) to do the initial steps of finding adjacencies and unshielded colliders.

GFCI reference is this:

J.M. Ogarrio and P. Spirtes and J. Ramsey, "A Hybrid Causal Search Algorithm for Latent Variable Models," JMLR 2016.

Version:
$Id: $Id
Author:
josephramsey
See Also:
  • Constructor Details

    • Bfci

      public Bfci()
      No-arg constructor. Used for reflection; do not delete.
    • Bfci

      public Bfci(IndependenceWrapper test, ScoreWrapper score)
      Constructs a new BFCI algorithm using the given test and score.
      Parameters:
      test - the independence test to use
      score - the score to use
  • Method Details

    • runSearch

      public Graph runSearch(DataModel dataModel, Parameters parameters)
      Runs the search algorithm using the given dataset and parameters and returns the resulting graph.
      Parameters:
      dataModel - the data model to run the search on
      parameters - the parameters used for the search algorithm
      Returns:
      the graph resulting from the search algorithm
    • getComparisonGraph

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

      public String getDescription()
      Returns a description of the BFCI (Best-order FCI) algorithm using the description of its independence test and score.
      Specified by:
      getDescription in interface Algorithm
      Returns:
      The description of the algorithm.
    • getDataType

      public DataType getDataType()
      Retrieves the data type that the search requires, whether continuous, discrete, or mixed.
      Specified by:
      getDataType in interface Algorithm
      Returns:
      the data type required by the search algorithm
    • getParameters

      public List<String> getParameters()
      Retrieves the list of parameters used for the BFCI (Best-order FCI) algorithm.
      Specified by:
      getParameters in interface HasParameters
      Returns:
      the list of parameters used for the BFCI algorithm
    • getKnowledge

      public Knowledge getKnowledge()
      Retrieves the knowledge associated with the algorithm.
      Specified by:
      getKnowledge in interface HasKnowledge
      Returns:
      the knowledge associated with the algorithm
    • setKnowledge

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

      public IndependenceWrapper getIndependenceWrapper()
      Returns the IndependenceWrapper associated with this Bfci algorithm.
      Specified by:
      getIndependenceWrapper in interface TakesIndependenceWrapper
      Returns:
      the IndependenceWrapper object
    • setIndependenceWrapper

      public void setIndependenceWrapper(IndependenceWrapper test)
      Sets the IndependenceWrapper object for this algorithm.
      Specified by:
      setIndependenceWrapper in interface TakesIndependenceWrapper
      Parameters:
      test - the IndependenceWrapper object to set
    • getScoreWrapper

      public ScoreWrapper getScoreWrapper()
      Retrieves the ScoreWrapper associated with this algorithm.
      Specified by:
      getScoreWrapper in interface UsesScoreWrapper
      Returns:
      The ScoreWrapper object.
    • setScoreWrapper

      public void setScoreWrapper(ScoreWrapper score)
      Sets the score wrapper for this algorithm.
      Specified by:
      setScoreWrapper in interface UsesScoreWrapper
      Parameters:
      score - the score wrapper to set