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

This class represents the Detect-Mimic-FCIT (DM-FCIT) algorithm, a specialized variant of the DM-PC and FCIT algorithms designed to identify intermediate latent variables. DM-FCIT enhances accuracy and computational efficiency by recursively maintaining complete PAG orientations during the search process. At each step, it uses these orientations to substantially reduce the required size of conditioning sets when testing independence. This approach leads to more precise identification of latent variables and better orientation accuracy overall.
Author:
josephramsey
See Also:
  • Constructor Details

    • DmFcit

      public DmFcit()
      This class represents a DM-FCIT algorithm.

      The DM-FCIT algorithm is a bootstrap algorithm that runs a search algorithm to find a graph structure based on a given data set and parameters. It is a subclass of the Abstract BootstrapAlgorithm class and implements the Algorithm interface.

      See Also:
    • DmFcit

      public DmFcit(IndependenceWrapper test, ScoreWrapper score)
      Represents a DM-FCIT algorithm.

      The DM-FCIT algorithm is a bootstrap algorithm that runs a search algorithm to find a graph structure based on a given data set and parameters. It is a subclass of the AbstractBootstrapAlgorithm class and implements the Algorithm interface.

      Parameters:
      test - The independence test to use.
      score - The score to use.
      See Also:
  • Method Details

    • runSearch

      public Graph runSearch(DataModel dataModel, Parameters parameters) throws InterruptedException
      Runs the search algorithm to find a graph structure based on a given data model and parameters.
      Parameters:
      dataModel - The data model to use for the search algorithm.
      parameters - The parameters to configure the search algorithm.
      Returns:
      The resulting graph structure.
      Throws:
      IllegalArgumentException - if the time lag is greater than 0 and the data model is not an instance of DataSet.
      InterruptedException
    • getComparisonGraph

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

      public String getDescription()
      Returns a short, one-line description of this algorithm. The description is generated by concatenating the descriptions of the test and score objects associated with this algorithm.
      Specified by:
      getDescription in interface Algorithm
      Returns:
      The description of this 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()
      Retrieves 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()
      Retrieves the knowledge object associated with this method.
      Specified by:
      getKnowledge in interface HasKnowledge
      Returns:
      The knowledge object.
    • setKnowledge

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

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

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

      public IndependenceWrapper getIndependenceWrapper()
      Retrieves the IndependenceWrapper object associated with this instance.
      Specified by:
      getIndependenceWrapper in interface TakesIndependenceWrapper
      Returns:
      The IndependenceWrapper object that represents the independence test used.
    • setIndependenceWrapper

      public void setIndependenceWrapper(IndependenceWrapper independenceWrapper)
      Sets the IndependenceWrapper object for this algorithm. The IndependenceWrapper represents the independence test to be used in the algorithm's operations.
      Specified by:
      setIndependenceWrapper in interface TakesIndependenceWrapper
      Parameters:
      independenceWrapper - the IndependenceWrapper object to set