Class SvarGFci

java.lang.Object
edu.cmu.tetrad.search.SvarGFci
All Implemented Interfaces:
GraphSearch

public final class SvarGFci extends Object implements GraphSearch
Replaces the FAS search in the previous version with GES followed by PC adjacency removals for more accuracy. Uses conservative collider orientation. Gets sepsets for X---Y from among adjacents of X or of Y. -jdramsey 3/10/2015

Following an idea of Spirtes, now it uses more of the information in GES, to calculating possible dsep paths and to utilize unshielded colliders found by GES. 5/31/2015

Previous: Extends Erin Korber's implementation of the Fast Causal Inference algorithm (found in Fci.java) with Jiji Zhang's Augmented FCI rules (found in sec. 4.1 of Zhang's 2006 PhD dissertation, "Causal Inference and Reasoning in Causally Insufficient Systems").

This class is based off a copy of Fci.java taken from the repository on 2008/12/16, revision 7306. The extension is done by extending doFinalOrientation() with methods for Zhang's rules R5-R10 which implements the augmented search. (By a remark of Zhang's, the rule applications can be staged in this way.)

Author:
Erin Korber, June 2004, Alex Smith, December 2008, Joseph Ramsey, Choh-Man Teng, Daniel Malinsky
  • Constructor Details

    • SvarGFci

      public SvarGFci(IndependenceTest test, Score score)
      Constructs a new GFCI search for the given independence test and background knowledge.
  • Method Details

    • search

      public Graph search()
      Specified by:
      search in interface GraphSearch
    • getMaxIndegree

      public int getMaxIndegree()
    • setMaxIndegree

      public void setMaxIndegree(int maxIndegree)
    • modifiedR0

      public void modifiedR0(Graph fgesGraph)
    • getKnowledge

      public Knowledge getKnowledge()
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
    • isCompleteRuleSetUsed

      public boolean isCompleteRuleSetUsed()
      Returns:
      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.
    • setCompleteRuleSetUsed

      public void setCompleteRuleSetUsed(boolean completeRuleSetUsed)
      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.
    • getMaxPathLength

      public int getMaxPathLength()
      Returns:
      the maximum length of any discriminating path, or -1 of unlimited.
    • setMaxPathLength

      public void setMaxPathLength(int maxPathLength)
      Parameters:
      maxPathLength - the maximum length of any discriminating path, or -1 if unlimited.
    • isVerbose

      public boolean isVerbose()
      True iff verbose output should be printed.
    • setVerbose

      public void setVerbose(boolean verbose)
    • getIndependenceTest

      public IndependenceTest getIndependenceTest()
      The independence test.
    • getPenaltyDiscount

      public double getPenaltyDiscount()
    • setPenaltyDiscount

      public void setPenaltyDiscount(double penaltyDiscount)
    • getCovMatrix

      public ICovarianceMatrix getCovMatrix()
    • getCovarianceMatrix

      public ICovarianceMatrix getCovarianceMatrix()
    • setCovarianceMatrix

      public void setCovarianceMatrix(ICovarianceMatrix covarianceMatrix)
    • getOut

      public PrintStream getOut()
    • setOut

      public void setOut(PrintStream out)
    • setIndependenceTest

      public void setIndependenceTest(IndependenceTest independenceTest)
    • setFaithfulnessAssumed

      public void setFaithfulnessAssumed(boolean faithfulnessAssumed)
    • setSamplePrior

      public void setSamplePrior(double samplePrior)
    • setStructurePrior

      public void setStructurePrior(double structurePrior)
    • getNameNoLag

      public String getNameNoLag(Object obj)
    • removeSimilarEdges

      public void removeSimilarEdges(Node x, Node y)