Class Rlcd

java.lang.Object
edu.cmu.tetrad.algcomparison.algorithm.other.Rlcd
All Implemented Interfaces:
Algorithm, AcceptsKnowledge, HasParameters, PoolsImputations, TetradSerializable, Serializable

Wrapper for the RLCD algorithm (Rank-based Latent Causal Discovery; Dong et al., ICLR 2024), which learns a graph over the observed variables and newly introduced latent variables from rank constraints on the covariance matrix. The output graph contains the observed variables and the discovered latents, marked as latent nodes. Background knowledge over the observed variables is honored in stage 1, restricts which observed variables may act as parents in stage 2, and restores required observed edges; it cannot refer to the latents.
Author:
josephramsey
See Also:
  • Constructor Details

    • Rlcd

      public Rlcd()
      Constructs a new instance of the algorithm.
  • Method Details

    • search

      public Graph search(DataModel dataModel, Parameters parameters)
      Runs RLCD on a continuous data set.
      Specified by:
      search in interface Algorithm
      Parameters:
      dataModel - the data; must be a continuous tabular data set.
      parameters - the parameters.
      Returns:
      the graph over observed and latent variables.
    • searchImputations

      public Graph searchImputations(List<DataModel> imputations, Parameters parameters)
      Runs ONE RLCD search over several imputations of a data set with missing values; see Rlcd(List).
      Specified by:
      searchImputations in interface PoolsImputations
      Parameters:
      imputations - the imputed data sets; continuous tabular data sets with the same variables and rows.
      parameters - the parameters.
      Returns:
      the graph over observed and latent variables.
    • getComparisonGraph

      public Graph getComparisonGraph(Graph graph)
      The true graph itself is used for comparison, since the output includes latent nodes.
      Specified by:
      getComparisonGraph in interface Algorithm
      Parameters:
      graph - the true graph.
      Returns:
      a copy of it.
    • getDescription

      public String getDescription()
      Description copied from interface: Algorithm
      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()
      Description copied from interface: Algorithm
      Returns the data type that the search requires, whether continuous, discrete, or mixed.
      Specified by:
      getDataType in interface Algorithm
      Returns:
      This type.
    • getKnowledge

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

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

      public List<String> getParameters()
      Description copied from interface: HasParameters
      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.