Class FasLofs

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

public final class FasLofs extends Object implements GraphSearch
Fast adjacency search followed by robust skew orientation. Checks are done for adding two-cycles. The two-cycle checks do not require non-Gaussianity. The robust skew orientation of edges left or right does.
Author:
Joseph Ramsey
  • Constructor Details

    • FasLofs

      public FasLofs(DataSet dataSet, Lofs2.Rule rule)
      Parameters:
      dataSet - These datasets to analyze.
  • Method Details

    • search

      public Graph search()
      Runs the search on the concatenated data, returning a graph, possibly cyclic, possibly with two-cycles. Runs the fast adjacency search (FAS, Spirtes et al., 2000) follows by a modification of the robust skew rule (Pairwise Likelihood Ratios for Estimation of Non-Gaussian Structural Equation Models, Smith and Hyvarinen), together with some heuristics for orienting two-cycles.
      Specified by:
      search in interface GraphSearch
      Returns:
      the graph. Some of the edges may be undirected (though it shouldn't be many in most cases) and some of the adjacencies may be two-cycles.
    • getDepth

      public int getDepth()
      Returns:
      The depth of search for the Fast Adjacency Search (FAS).
    • setDepth

      public void setDepth(int depth)
      Parameters:
      depth - The depth of search for the Fast Adjacency Search (S). The default is -1. unlimited. Making this too high may results in statistical errors.
    • getElapsedTime

      public long getElapsedTime()
      Returns:
      The elapsed time in milliseconds.
    • getPenaltyDiscount

      public double getPenaltyDiscount()
      Returns:
      Returns the penalty discount used for the adjacency search. The default is 1, though a higher value is recommended, say, 2, 3, or 4.
    • setPenaltyDiscount

      public void setPenaltyDiscount(double penaltyDiscount)
      Parameters:
      penaltyDiscount - Sets the penalty discount used for the adjacency search. The default is 1, though a higher value is recommended, say, 2, 3, or 4.
    • getKnowledge

      public Knowledge getKnowledge()
      Returns:
      the current knowledge.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Parameters:
      knowledge - Knowledge of forbidden and required edges.