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

Adjusts GFCI to use a permutation algorithm (in this case SP) 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

    • SpFci

      public SpFci()
      The SpFci class represents a specific algorithm for structural learning called "Conditional Independence Test-based Fast Causal Inference" (SpFci). This class extends the AbstractBootstrapAlgorithm class and implements the Algorithm, UsesScoreWrapper, and TakesIndependenceWrapper interfaces.
    • SpFci

      public SpFci(IndependenceWrapper test, ScoreWrapper score)
      Constructor for the SpFci class.
      Parameters:
      test - The IndependenceWrapper object to be used for the algorithm.
      score - The ScoreWrapper object to be used for the algorithm.
  • Method Details

    • runSearch

      public Graph runSearch(DataModel dataModel, Parameters parameters)
      Executes a search algorithm to infer the causal graph structure from a given data model
      Parameters:
      dataModel - The data model representing the observed variables and their relationships
      parameters - The parameters for the search algorithm
      Returns:
      The inferred causal graph structure
    • getComparisonGraph

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

      public String getDescription()
      Returns a short, one-line description of this algorithm. This will be printed in the report.
      Specified by:
      getDescription in interface Algorithm
      Returns:
      The description of this algorithm.
    • getDataType

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

      public List<String> getParameters()
      Returns the list of parameters used by the method.
      Specified by:
      getParameters in interface HasParameters
      Returns:
      A List of strings representing the parameters used by the method.
    • getKnowledge

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

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

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

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

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

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