Class R0R4StrategyTestBased
java.lang.Object
edu.cmu.tetrad.search.utils.R0R4StrategyTestBased
- All Implemented Interfaces:
R0R4Strategy
The FciOrientDataExaminationStrategyTestBased class implements the FciOrientDataExaminationStrategy interface and
provides methods for checking unshielded colliders and determining orientations based on the Discriminating Path
Rule.
This classes uses a test to determine the sepset for two nodes, e and c, which can only be determined by looking at the data.
- Author:
- jdramsey
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumEnum representing the different types of blocking strategies. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new instance of FciOrientDataExaminationStrategyTestBased.R0R4StrategyTestBased(IndependenceTest test, long timeout) Constructs an instance of R0R4StrategyTestBased with the specified IndependenceTest and timeout. -
Method Summary
Modifier and TypeMethodDescriptionstatic R0R4StrategydefaultConfiguration(Graph dag, Knowledge knowledge) Returns a default configuration of the FciOrientDataExaminationStrategy object.static R0R4StrategydefaultConfiguration(IndependenceTest test, Knowledge knowledge) Returns a default configuration of the FciOrientDataExaminationStrategy object.org.apache.commons.lang3.tuple.Pair<DiscriminatingPath, Boolean> doDiscriminatingPathOrientation(DiscriminatingPath discriminatingPath, int recursiveDepth, int maxDiscriminatingPathLength, Graph graph, Set<Node> vNodes) Does a discriminating path orientation.Retrieves the Knowledge object used by the FciOrientDataExaminationStrategy.getTest()Retrieves the IndependenceTest object used by the strategy.booleanisUnshieldedCollider(Graph graph, Node i, Node j, Node k) Checks if a collider is unshielded or not.voidsetBlockingType(R0R4StrategyTestBased.BlockingType blockingType) Sets the blocking type for the strategy.voidsetDdpMaxP(boolean ddpMaxP) Sets the PreserveMarkov object used by the R0R4StrategyTestBased.voidsetDepth(int depth) Sets the depth for the FciOrientDataExaminationStrategy object.voidsetKnowledge(Knowledge knowledge) Sets the knowledge object used by the FciOrientDataExaminationStrategy.voidsetMaxLength(int maxLength) Sets the maximum length for relevant paths.voidsetPathContainingFallback(boolean pathContainingFallback) Sets the opt-in R4 fallback for recorded separators that do not contain the collider path; see thepathContainingFallbackfield.voidsetPreserveMarkovHelper(PreserveMarkov preserveMarkovHelper) Sets the PreserveMarkov helper.voidsetSepsetGraph(Graph sepsetGraph) Sets the frozen reference graph (G_0) used to compute separators for endpoint pairs that have no recorded separator.voidsetSepsetMap(SepsetMap sepsets) Sets the SepsetMap used by the R0R4StrategyTestBased.voidsetVerbose(boolean verbose) Sets the verbose mode for the FciOrientDataExaminationStrategy object.static R0R4StrategyspecialConfiguration(IndependenceTest test, Knowledge knowledge, boolean verbose) Provides a special configuration for creating an instance of FciOrientDataExaminationStrategy.
-
Constructor Details
-
R0R4StrategyTestBased
Creates a new instance of FciOrientDataExaminationStrategyTestBased.- Parameters:
test- the IndependenceTest object used by the strategy
-
R0R4StrategyTestBased
Constructs an instance of R0R4StrategyTestBased with the specified IndependenceTest and timeout.- Parameters:
test- the IndependenceTest object used by the strategytimeout- the timeout value in milliseconds for the strategy
-
-
Method Details
-
specialConfiguration
public static R0R4Strategy specialConfiguration(IndependenceTest test, Knowledge knowledge, boolean verbose) Provides a special configuration for creating an instance of FciOrientDataExaminationStrategy.- Parameters:
test- the IndependenceTest object used by the strategyknowledge- the Knowledge object used by the strategyverbose- boolean indicating whether to provide verbose output- Returns:
- a configured FciOrientDataExaminationStrategy object
- Throws:
IllegalArgumentException- if test or knowledge is null
-
defaultConfiguration
Returns a default configuration of the FciOrientDataExaminationStrategy object.- Parameters:
dag- the graph representationknowledge- the Knowledge object used by the strategy- Returns:
- a default configured FciOrientDataExaminationStrategy object
-
defaultConfiguration
Returns a default configuration of the FciOrientDataExaminationStrategy object.- Parameters:
test- the IndependenceTest object used by the strategyknowledge- the Knowledge object used by the strategy- Returns:
- a configured FciOrientDataExaminationStrategy object
- Throws:
IllegalArgumentException- if test or knowledge is null
-
isUnshieldedCollider
Checks if a collider is unshielded or not.- Specified by:
isUnshieldedColliderin interfaceR0R4Strategy- Parameters:
graph- the graph containing the nodesi- the first node of the colliderj- the second node of the colliderk- the third node of the collider- Returns:
- true if the collider is unshielded, false otherwise
-
doDiscriminatingPathOrientation
public org.apache.commons.lang3.tuple.Pair<DiscriminatingPath, Boolean> doDiscriminatingPathOrientation(DiscriminatingPath discriminatingPath, int recursiveDepth, int maxDiscriminatingPathLength, Graph graph, Set<Node> vNodes) throws InterruptedException Does a discriminating path orientation.- Specified by:
doDiscriminatingPathOrientationin interfaceR0R4Strategy- Parameters:
discriminatingPath- the discriminating pathrecursiveDepth- the maximum length of a blocking pathmaxDiscriminatingPathLength- the maximum length of a discriminating pathgraph- the graph representationvNodes- the set of v-nodes- Returns:
- The discriminating path is returned as the first element of the pair, and a boolean indicating whether the orientation was done is returned as the second element of the pair.
- Throws:
IllegalArgumentException- if 'e' is adjacent to 'c'IllegalStateException- if a blocking set cannot be found.InterruptedException- if the operation is interrupted- See Also:
-
setPathContainingFallback
public void setPathContainingFallback(boolean pathContainingFallback) Sets the opt-in R4 fallback for recorded separators that do not contain the collider path; see thepathContainingFallbackfield. Off by default.- Parameters:
pathContainingFallback- true to enable the recursive-blocking fallback.
-
setKnowledge
Sets the knowledge object used by the FciOrientDataExaminationStrategy.- Specified by:
setKnowledgein interfaceR0R4Strategy- Parameters:
knowledge- the knowledge object to be set
-
getknowledge
Retrieves the Knowledge object used by the FciOrientDataExaminationStrategy.- Specified by:
getknowledgein interfaceR0R4Strategy- Returns:
- the Knowledge object used by the strategy
-
setVerbose
public void setVerbose(boolean verbose) Sets the verbose mode for the FciOrientDataExaminationStrategy object.- Parameters:
verbose- true to enable verbose output, false otherwise
-
setDepth
public void setDepth(int depth) Sets the depth for the FciOrientDataExaminationStrategy object.- Parameters:
depth- the depth to be set for the strategy
-
getTest
Retrieves the IndependenceTest object used by the strategy.- Returns:
- the IndependenceTest object used by the strategy
-
setMaxLength
public void setMaxLength(int maxLength) Sets the maximum length for relevant paths.- Parameters:
maxLength- the maximum length to be set. Set to -1 for no maximum length.
-
setDdpMaxP
public void setDdpMaxP(boolean ddpMaxP) Sets the PreserveMarkov object used by the R0R4StrategyTestBased. Sets whether R4's recursive discriminating-path search picks the strongest candidate separating set (max-p) rather than the first one found. Off by default.- Parameters:
ddpMaxP- whether to use the max-p rule
-
setPreserveMarkovHelper
Sets the PreserveMarkov helper.- Parameters:
preserveMarkovHelper- the PreserveMarkov object to be set
-
setBlockingType
Sets the blocking type for the strategy.- Parameters:
blockingType- the blocking type to be set, which can be either RECURSIVE or GREEDY.
-
setSepsetMap
Sets the SepsetMap used by the R0R4StrategyTestBased.- Parameters:
sepsets- the SepsetMap object to be set
-
setSepsetGraph
Sets the frozen reference graph (G_0) used to compute separators for endpoint pairs that have no recorded separator. Pass the initial PAG; pass null to recompute on the live graph (prior behavior).- Parameters:
sepsetGraph- the frozen initial PAG, or null
-