Class FciCyclicPw
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
@Algorithm(name="FCI-CPW",
command="fci-cpw",
algoType=allow_latent_common_causes)
@Bootstrapping
@Experimental
public class FciCyclicPw
extends AbstractBootstrapAlgorithm
implements Algorithm, TakesIndependenceWrapper, ReturnsBootstrapGraphs, TakesCovarianceMatrix, LatentStructureAlgorithm
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:
- Tail–tail (—) edges
- Orient per pairwise rule.
- Tail–circle (—o) edges
- If pairwise prefers x→y, set x→y (symmetrically, if prefers y→x, set y→x).
- 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 Summary
ConstructorsConstructorDescriptionDefault constructor for the FciCyclicPw class.Constructor for the FciCyclicPw class that initializes the algorithm with a specified independence test wrapper. -
Method Summary
Modifier and TypeMethodDescriptiongetComparisonGraph(Graph graph) Generates a comparison graph for the given graph by transforming it into a partially directed acyclic graph (PAG) representation.Retrieves the data type associated with the current instance of the algorithm.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.Retrieves the current instance of theIndependenceWrapperused for conditional independence testing in the algorithm.Retrieves a list of parameter names required for the configuration of the FCI-Cyclic-PW algorithm.runSearch(DataModel dataModel, Parameters parameters) 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.voidSets theIndependenceWrapperinstance used for conditional independence testing in the algorithm.Methods inherited from class edu.cmu.tetrad.algcomparison.algorithm.AbstractBootstrapAlgorithm
getBootstrapGraphs, searchMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface edu.cmu.tetrad.algcomparison.algorithm.ReturnsBootstrapGraphs
getBootstrapGraphs
-
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
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
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 aDataSet, 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
Graphrepresenting 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
Generates a comparison graph for the given graph by transforming it into a partially directed acyclic graph (PAG) representation.- Specified by:
getComparisonGraphin interfaceAlgorithm- Parameters:
graph- The inputGraphto be transformed into a comparison graph. This graph serves as the basis for creating the resulting PAG.- Returns:
- A
Graphrepresenting the transformed partially directed acyclic graph (PAG) based on the input graph.
-
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:
getDescriptionin interfaceAlgorithm- Returns:
- A string describing the FCI-CPW algorithm and its characteristics.
-
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:
getDataTypein interfaceAlgorithm- Returns:
- The
DataTyperepresenting the type of dataset required or handled by the algorithm.
-
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:
getParametersin interfaceHasParameters- Returns:
- A list of strings, where each string represents a parameter name used by the FCI-Cyclic-PW algorithm.
-
getIndependenceWrapper
Retrieves the current instance of theIndependenceWrapperused for conditional independence testing in the algorithm.- Specified by:
getIndependenceWrapperin interfaceTakesIndependenceWrapper- Returns:
- The
IndependenceWrapperinstance being used by this algorithm.
-
setIndependenceWrapper
Sets theIndependenceWrapperinstance used for conditional independence testing in the algorithm.- Specified by:
setIndependenceWrapperin interfaceTakesIndependenceWrapper- Parameters:
test- The IndependenceWrapper instance to be used for testing conditional independence relations.
-