Class GraspFci
- All Implemented Interfaces:
IGraphSearch
Uses GRaSP in place of FGES for the initial step in the GFCI algorithm. This tends to produce a accurate PAG than GFCI as a result, for the latent variables case. This is a simple substitution; the reference for GFCI is here:
J.M. Ogarrio and P. Spirtes and J. Ramsey, "A Hybrid Causal Search Algorithm for Latent Variable Models," JMLR 2016. Here, BOSS has been substituted for FGES.
For the first step, the GRaSP algorithm is used, with the same modifications as in the GFCI algorithm.
For the second step, the FCI final orientation algorithm is used, with the same modifications as in the GFCI algorithm.
For GRaSP only a score is needed, but there are steps in GFCI that require a test, so for this method, both a test and a score need to be given.
This class is configured to respect knowledge of forbidden and required edges, including knowledge of temporal tiers.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionsearch()
Run the search and return s a PAG.void
setCompleteRuleSetUsed
(boolean completeRuleSetUsed) Sets whether Zhang's complete rules set is used.void
setDepth
(int depth) void
setDoDiscriminatingPathRule
(boolean doDiscriminatingPathRule) void
setKnowledge
(Knowledge knowledge) Sets the knowledge used in search.void
setMaxPathLength
(int maxPathLength) Sets the maximum length of any discriminating path searched.void
setNonSingularDepth
(int nonSingularDepth) void
setNumStarts
(int numStarts) void
setOrdered
(boolean ordered) void
setSingularDepth
(int uncoveredDepth) void
setUseDataOrder
(boolean useDataOrder) void
setUseRaskuttiUhler
(boolean useRaskuttiUhler) void
setUseScore
(boolean useScore) void
setVerbose
(boolean verbose) Sets whether verbose output should be printed.
-
Constructor Details
-
GraspFci
-
-
Method Details
-
search
Run the search and return s a PAG.- Specified by:
search
in interfaceIGraphSearch
- Returns:
- The PAG.
-
setKnowledge
Sets the knowledge used in search.- Parameters:
knowledge
- This knowledge.
-
setCompleteRuleSetUsed
public void setCompleteRuleSetUsed(boolean completeRuleSetUsed) Sets whether Zhang's complete rules set is used.- Parameters:
completeRuleSetUsed
- set to true if Zhang's complete rule set should be used, false if only R1-R4 (the rule set of the original FCI) should be used. False by default.
-
setMaxPathLength
public void setMaxPathLength(int maxPathLength) Sets the maximum length of any discriminating path searched.- Parameters:
maxPathLength
- the maximum length of any discriminating path, or -1 if unlimited.
-
setVerbose
public void setVerbose(boolean verbose) Sets whether verbose output should be printed.- Parameters:
verbose
- True, if so.
-
setNumStarts
public void setNumStarts(int numStarts) -
setDepth
public void setDepth(int depth) -
setUseRaskuttiUhler
public void setUseRaskuttiUhler(boolean useRaskuttiUhler) -
setUseDataOrder
public void setUseDataOrder(boolean useDataOrder) -
setUseScore
public void setUseScore(boolean useScore) -
setDoDiscriminatingPathRule
public void setDoDiscriminatingPathRule(boolean doDiscriminatingPathRule) -
setSingularDepth
public void setSingularDepth(int uncoveredDepth) -
setNonSingularDepth
public void setNonSingularDepth(int nonSingularDepth) -
setOrdered
public void setOrdered(boolean ordered)
-