Class RestrictedBoss

java.lang.Object
edu.cmu.tetrad.algcomparison.algorithm.AbstractBootstrapAlgorithm
edu.cmu.tetrad.algcomparison.algorithm.oracle.cpdag.RestrictedBoss
All Implemented Interfaces:
Algorithm, LatentStructureAlgorithm, ReturnsBootstrapGraphs, TakesCovarianceMatrix, HasParameters, TakesScoreWrapper, TetradSerializable, Serializable

Implements a restricted version of the BOSS (Best Order Score Search) algorithm that focuses search on a set of target variables and their immediate causes.

The algorithm proceeds in two stages. In the first stage, BOSS is run on the full dataset with the target variables placed in a later tier than all other variables, with edges forbidden within the first tier. This uses the Grow-Shrink Tree (GST) structure from the resulting search to identify the "first layer" of each target — that is, the variables that are direct or proximal causes of the targets.

In the second stage, the data is restricted to just the target variables and their first-layer variables, and BOSS is run again on this reduced dataset, once more with the target variables in a later tier. The resulting graph is then trimmed according to the specified trimming style to yield the final output.

This two-stage approach is more computationally efficient than running BOSS on the full variable set when only the relationships among a small set of target variables and their causes are of interest.

Version:
$Id: $Id
Author:
bryanandrews, josephramsey
See Also:
  • Constructor Details

    • RestrictedBoss

      public RestrictedBoss()

      Constructor for RestrictedBoss.

    • RestrictedBoss

      public RestrictedBoss(ScoreWrapper score)

      Constructor for RestrictedBoss.

      Parameters:
      score - a ScoreWrapper object
  • Method Details

    • getComparisonGraph

      public Graph getComparisonGraph(Graph graph)
      Returns that graph that the result should be compared to.
      Specified by:
      getComparisonGraph in interface Algorithm
      Parameters:
      graph - The true directed graph, if there is one.
      Returns:
      The comparison graph.
    • getDescription

      public String getDescription()
      Returns a short, one-line description of this algorithm. This will be printed in the report.
      Specified by:
      getDescription in interface Algorithm
      Returns:
      This description.
    • getDataType

      public DataType getDataType()
      Returns the data type that the search requires, whether continuous, discrete, or mixed.
      Specified by:
      getDataType in interface Algorithm
      Returns:
      This type.
    • getParameters

      public List<String> getParameters()
      Returns the list of parameter names that are used. These are looked up in ParamMap, so if they're not
      Specified by:
      getParameters in interface HasParameters
      Returns:
      Returns the list of parameter names that are used. These are looked up in ParamMap, so if they're not already defined they'll need to be defined there.
    • getScoreWrapper

      public ScoreWrapper getScoreWrapper()
      Returns the score wrapper.
      Specified by:
      getScoreWrapper in interface TakesScoreWrapper
      Returns:
      the score wrapper.
    • setScoreWrapper

      public void setScoreWrapper(ScoreWrapper score)
      Sets the score wrapper.
      Specified by:
      setScoreWrapper in interface TakesScoreWrapper
      Parameters:
      score - the score wrapper.