Class PcAr

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

Peter/Clark algorithm with adjacency-rescue (PcAR): PC augmented with detection, and optionally repair, of cancelled unfaithful-triangle edges. See PcAR for the detection/recovery machinery itself; this class only wires it into algcomparison.

NOTE ON UNWIRED HOOKS: edu.cmu.tetrad.search.PcAR exposes three functional hooks (DeterminismGuard, RecoveryOddsEstimator, MarkovAuditor) that take code, not primitive values, and so cannot be expressed as Parameters entries. They are left unset here (i.e. the built-in fallbacks apply, or RECOVER behaves like MARK with no odds estimator) — wire them programmatically against a specific IndependenceTest implementation if you want them active, rather than through this wrapper. As of this revision a placeholder RecoveryOddsEstimator IS wired below for the RECOVER path (see PLACEHOLDER_ALWAYS_RECOVER), purely so RECOVER produces a visibly different graph without you having to write a real estimator first. Swap it out before trusting a recovered edge as more than a demo.

NOTE ON PARAMS: Params.RESCUE_ACTION and Params.RECOVERY_ODDS_THRESHOLD are used directly below on the assumption you've now registered them (plus their ParamDescriptions entries) yourself; an earlier revision of this file referenced them without that registration existing, which wouldn't have compiled.

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

  • 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.
    • getKnowledge

      public Knowledge getKnowledge()
      Returns a knowledge object.
      Specified by:
      getKnowledge in interface AcceptsKnowledge
      Returns:
      a knowledge object.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Sets a knowledge object.
      Specified by:
      setKnowledge in interface AcceptsKnowledge
      Parameters:
      knowledge - a knowledge object.
    • getIndependenceWrapper

      public IndependenceWrapper getIndependenceWrapper()
      Returns the independence wrapper.
      Specified by:
      getIndependenceWrapper in interface TakesIndependenceWrapper
      Returns:
      the independence wrapper.
    • setIndependenceWrapper

      public void setIndependenceWrapper(IndependenceWrapper test)
      Sets the independence wrapper.
      Specified by:
      setIndependenceWrapper in interface TakesIndependenceWrapper
      Parameters:
      test - the independence wrapper.