Class BFci
- All Implemented Interfaces:
IGraphSearch
Uses BOSS 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.
BOSS is a an algorithm that is currently being written up for publication, so we don't yet have a reference for it.
For BOSS 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 TypeMethodDescriptionThe independence test being used for some steps in final orientation.search()
Does the search and returns a PAG.void
setBossUseBes
(boolean useBes) void
setCompleteRuleSetUsed
(boolean completeRuleSetUsed) Sets whether the complete (Zhang's) rule set should be used.void
setDepth
(int depth) void
setDoDiscriminatingPathRule
(boolean doDiscriminatingPathRule) void
setKnowledge
(Knowledge knowledge) Sets the knowledge to be used for the search.void
setMaxPathLength
(int maxPathLength) Returns the maximum length of any discriminating path, or -1 if unlimited.void
setNumStarts
(int numStarts) void
setVerbose
(boolean verbose) Sets whether verbose output should be printed.
-
Constructor Details
-
BFci
Constructor. The test and score should be for the same data.- Parameters:
test
- The test to use.score
- The score to use.- See Also:
-
-
Method Details
-
search
Does the search and returns a PAG.- Specified by:
search
in interfaceIGraphSearch
- Returns:
- The discovered graph.
-
setKnowledge
Sets the knowledge to be used for the search.- Parameters:
knowledge
- This knowledge.
-
setCompleteRuleSetUsed
public void setCompleteRuleSetUsed(boolean completeRuleSetUsed) Sets whether the complete (Zhang's) rule set should be used.- Parameters:
completeRuleSetUsed
- 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) Returns the maximum length of any discriminating path, or -1 if unlimited.- Parameters:
maxPathLength
- This maximum.
-
setVerbose
public void setVerbose(boolean verbose) Sets whether verbose output should be printed.- Parameters:
verbose
- True iff the case
-
getIndependenceTest
The independence test being used for some steps in final orientation.- Returns:
- This test.
-
setNumStarts
public void setNumStarts(int numStarts) -
setDepth
public void setDepth(int depth) -
setDoDiscriminatingPathRule
public void setDoDiscriminatingPathRule(boolean doDiscriminatingPathRule) -
setBossUseBes
public void setBossUseBes(boolean useBes)
-