Class Fci
- All Implemented Interfaces:
- IGraphSearch
Two alternatives are provided for doing the final orientation step, one due to Peter Spirtes, which is arrow complete, and another due to Jiji Zhang, which is arrow and tail complete.
This algorithm, with the Spirtes final orientation rules, was given in an earlier version of this book:
Spirtes, P., Glymour, C. N., Scheines, R., & Heckerman, D. (2000). Causation, prediction, and search. MIT press.
The algorithm with the Zhang final orientation rules was given in this reference:
Zhang, J. (2008). On the completeness of orientation rules for causal discovery in the presence of latent confounders and selection bias. Artificial Intelligence, 172(16-17), 1873-1896.
This class is configured to respect knowledge of forbidden and required edges, including knowledge of temporal tiers.
- 
Constructor SummaryConstructorsConstructorDescriptionFci(IndependenceTest independenceTest) Constructor.Fci(IndependenceTest independenceTest, List<Node> searchVars) Constructor.
- 
Method SummaryModifier and TypeMethodDescriptionlongReturns the elapsed time of search.Returns the independence test used in search.Returns the background knowledge that was set.Returns the sepset map from FAS.search()Performs a search using the FCI algorithm.voidsetCompleteRuleSetUsed(boolean completeRuleSetUsed) Sets whether the Zhang complete rule set should be used; false if only R1-R4 (the rule set of the original FCI) should be used.voidsetDepth(int depth) Sets the depth of search, which is the maximum number of variables conditioned on in any test.voidsetDoDiscriminatingPathRule(boolean doDiscriminatingPathRule) Sets whether the discriminating path rule should be used.voidsetKnowledge(Knowledge knowledge) Sets background knowledge for the search.voidsetMaxPathLength(int maxPathLength) Sets the maximum length of any discriminating path, or -1 if unlimited.voidsetPcHeuristicType(PcCommon.PcHeuristicType heuristic) Sets which PC heuristic type should be used in the initial adjacency search.voidsetPossibleMsepSearchDone(boolean possibleMsepSearchDone) Sets whether the (time-consuming) possible msep step should be done.voidsetResolveAlmostCyclicPaths(boolean resolveAlmostCyclicPaths) Sets whether to resolve almost cyclic paths during the search.voidsetStable(boolean stable) Sets whether the stable options should be used in the initial adjacency search.voidsetVerbose(boolean verbose) Sets whether verbose output should be printed.
- 
Constructor Details- 
FciConstructor.- Parameters:
- independenceTest- The test to use for oracle conditional independence information.
 
- 
FciConstructor.- Parameters:
- independenceTest- The test to use for oracle conditional independence information.
- searchVars- A specific list of variables to search over.
 
 
- 
- 
Method Details- 
searchPerforms a search using the FCI algorithm.- Specified by:
- searchin interface- IGraphSearch
- Returns:
- The resulting graph.
 
- 
setDepthpublic void setDepth(int depth) Sets the depth of search, which is the maximum number of variables conditioned on in any test.- Parameters:
- depth- This maximum.
 
- 
getElapsedTimepublic long getElapsedTime()Returns the elapsed time of search.- Returns:
- This time.
 
- 
getSepsetsReturns the sepset map from FAS.- Returns:
- This map.
- See Also:
 
- 
getKnowledgeReturns the background knowledge that was set.- Returns:
- This knowledge.
 
- 
setKnowledgeSets background knowledge for the search.- Parameters:
- knowledge- This knowledge.
 
- 
setCompleteRuleSetUsedpublic void setCompleteRuleSetUsed(boolean completeRuleSetUsed) Sets whether the Zhang complete rule set should be used; false if only R1-R4 (the rule set of the original FCI) should be used. False by default.- Parameters:
- completeRuleSetUsed- True for the complete Zhang rule set.
 
- 
setPossibleMsepSearchDonepublic void setPossibleMsepSearchDone(boolean possibleMsepSearchDone) Sets whether the (time-consuming) possible msep step should be done.- Parameters:
- possibleMsepSearchDone- True, if so.
 
- 
setMaxPathLengthpublic void setMaxPathLength(int maxPathLength) Sets the maximum length of any discriminating path, or -1 if unlimited.- Parameters:
- maxPathLength- This maximum.
 
- 
setVerbosepublic void setVerbose(boolean verbose) Sets whether verbose output should be printed.- Parameters:
- verbose- True, if so.
 
- 
getIndependenceTestReturns the independence test used in search.- Returns:
- This test.
 
- 
setPcHeuristicTypeSets which PC heuristic type should be used in the initial adjacency search.- Parameters:
- heuristic- The heuristic type.
- See Also:
 
- 
setStablepublic void setStable(boolean stable) Sets whether the stable options should be used in the initial adjacency search.- Parameters:
- stable- True, if so.
- See Also:
 
- 
setDoDiscriminatingPathRulepublic void setDoDiscriminatingPathRule(boolean doDiscriminatingPathRule) Sets whether the discriminating path rule should be used.- Parameters:
- doDiscriminatingPathRule- True, if so.
 
- 
setResolveAlmostCyclicPathspublic void setResolveAlmostCyclicPaths(boolean resolveAlmostCyclicPaths) Sets whether to resolve almost cyclic paths during the search.- Parameters:
- resolveAlmostCyclicPaths- True to resolve almost cyclic paths, false otherwise.
 
 
-