Class SvarGfci

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

public final class SvarGfci extends Object implements IGraphSearch

Adapts GFCI for the time series setting, assuming the data is generated by a SVAR (structural vector autoregression). The main difference is that time order is imposed, and if an edge is removed, it will also remove all homologous edges to preserve the time-repeating structure assumed by SvarFCI. Based on (but not identical to) code by Entner and Hoyer for their 2010 paper. Modified by dmalinsky 4/21/2016.

The references are as follows:

Malinsky, D., & Spirtes, P. (2018, August). Causal structure learning from multivariate time series in settings with unmeasured confounding. In Proceedings of 2018 ACM SIGKDD workshop on causal discovery (pp. 23-47). PMLR.

Entner, D., & Hoyer, P. O. (2010). On causal discovery from time series data using FCI. Probabilistic graphical models, 121-128.

This class is configured to respect knowledge of forbidden and required edges, including knowledge of temporal tiers.

Author:
danielmalinsky
See Also:
  • 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()
      Runs the search and returns a PAG.
      Specified by:
      search in interface IGraphSearch
      Returns:
      a PAG.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Sets the knowledge for the search.
      Parameters:
      knowledge - The knowledge.
    • setCompleteRuleSetUsed

      public void setCompleteRuleSetUsed(boolean completeRuleSetUsed)
      Sets whether the complete rule set is 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)
      Sets the maximum length of any discriminating path.
      Parameters:
      maxPathLength - the maximum length of any discriminating path, or -1 if unlimited.
    • setVerbose

      public void setVerbose(boolean verbose)
      Sets whether verbose output is printed.
      Parameters:
      verbose - True, if so.