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

FCI-CPW: Run FCI with internally constructed PW-forbidden knowledge, then orient edges using a pairwise left-right rule on standardized data in cases that are safe under no-selection-bias cyclic semantics:
  1. Tail–tail (—) edges
    • Orient per pairwise rule.
  2. Tail–circle (—o) edges
    • If pairwise prefers x→y, set x→y (symmetrically, if prefers y→x, set y→x).
  3. Circle–circle (o–o) edges
    • If pairwise prefers x→y, set x o→y (symmetrically for y→x).

We never alter <-> (two heads), never flip existing tails/heads, and never touch o→ or ←o edges.

Parameter: PAIRWISE_RULE ∈ {1..5}, default 3 (RSKEW). 1=FASK1, 2=FASK2, 3=RSKEW, 4=SKEW, 5=TANH.

See Also:
  • Constructor Details

    • FciCyclicPw

      public FciCyclicPw()
      Default constructor for the FciCyclicPw class. This constructor initializes the instance without any specific parameters or configurations. It is typically used for
    • FciCyclicPw

      public FciCyclicPw(IndependenceWrapper test)
      Constructor for the FciCyclicPw class that initializes the algorithm with a specified independence test wrapper.
      Parameters:
      test - The IndependenceWrapper instance used for conditional independence testing during the FCI algorithm execution.
  • Method Details

    • runSearch

      public Graph runSearch(DataModel dataModel, Parameters parameters) throws InterruptedException
      Executes the search algorithm on a given data model and set of parameters, producing a partially directed acyclic graph (PAG) that represents the causal structure inferred from the data. The underlying functionality includes handling time-lagged data, standardizing, generating internal knowledge, performing conditional independence tests, and refining the graph using pairwise adjustments based on standardization and rules.
      Parameters:
      dataModel - The data model to analyze, typically a DataSet, which contains the data from which causal relationships are inferred. Must be continuous for proper functioning.
      parameters - Algorithm parameter settings that control various aspects of the computation, such as time lagging, collider orientation style, pairwise rules, and limits on graph structure exploration.
      Returns:
      A Graph representing the causal structure inferred by the search algorithm, encoded as a PAG.
      Throws:
      InterruptedException - If the search process is interrupted during execution, possibly due to thread interruption.
    • getComparisonGraph

      public Graph getComparisonGraph(Graph graph)
      Generates a comparison graph for the given graph by transforming it into a partially directed acyclic graph (PAG) representation.
      Specified by:
      getComparisonGraph in interface Algorithm
      Parameters:
      graph - The input Graph to be transformed into a comparison graph. This graph serves as the basis for creating the resulting PAG.
      Returns:
      A Graph representing the transformed partially directed acyclic graph (PAG) based on the input graph.
    • getDescription

      public String getDescription()
      Provides a textual description of the FCI-CPW algorithm, including its functionality and distinguishing features, such as the use of pairwise-derived forbidden knowledge and pairwise orientation for certain edges.
      Specified by:
      getDescription in interface Algorithm
      Returns:
      A string describing the FCI-CPW algorithm and its characteristics.
    • getDataType

      public DataType getDataType()
      Retrieves the data type associated with the current instance of the algorithm. The data type defines whether the dataset is continuous, discrete, mixed, or another recognized type.
      Specified by:
      getDataType in interface Algorithm
      Returns:
      The DataType representing the type of dataset required or handled by the algorithm.
    • getParameters

      public List<String> getParameters()
      Retrieves a list of parameter names required for the configuration of the FCI-Cyclic-PW algorithm. These parameters control various aspects of the algorithm's execution, such as graph exploration limits, orientation styles, and additional settings affecting the causal inference process.
      Specified by:
      getParameters in interface HasParameters
      Returns:
      A list of strings, where each string represents a parameter name used by the FCI-Cyclic-PW algorithm.
    • getIndependenceWrapper

      public IndependenceWrapper getIndependenceWrapper()
      Retrieves the current instance of the IndependenceWrapper used for conditional independence testing in the algorithm.
      Specified by:
      getIndependenceWrapper in interface TakesIndependenceWrapper
      Returns:
      The IndependenceWrapper instance being used by this algorithm.
    • setIndependenceWrapper

      public void setIndependenceWrapper(IndependenceWrapper test)
      Sets the IndependenceWrapper instance used for conditional independence testing in the algorithm.
      Specified by:
      setIndependenceWrapper in interface TakesIndependenceWrapper
      Parameters:
      test - The IndependenceWrapper instance to be used for testing conditional independence relations.