Class BFci

java.lang.Object
edu.cmu.tetrad.search.BFci
All Implemented Interfaces:
IGraphSearch

public final class BFci extends Object implements 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.

Author:
josephramsey, bryan andrews
See Also:
  • Constructor Details

    • BFci

      public BFci(IndependenceTest test, Score score)
      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

      public Graph search()
      Does the search and returns a PAG.
      Specified by:
      search in interface IGraphSearch
      Returns:
      The discovered graph.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      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

      public IndependenceTest 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)