Class MimbuildBollen

java.lang.Object
edu.cmu.tetrad.search.MimbuildBollen

public class MimbuildBollen extends Object
MimbuildBollen (BlockSpec version)

Takes a clustering of measured variables (disjoint blocks), one latent per block, estimates the latent covariance via a simple ML-like objective, then learns a structure over the latents using BOSS + SEM-BIC.

Required input is a DataSet and a BlockSpec (blocks + latent nodes).

See Spirtes et al., "Causation, Prediction, and Search".

  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor for the MimbuildBollen class.
  • Method Summary

    Modifier and Type
    Method
    Description
    Retrieves the latent covariance matrix associated with the MimbuildBollen instance.
    double
    Retrieves the minimum value associated with the MimbuildBollen class.
    double
    Retrieves the p-value associated with the MimbuildBollen class.
    Executes a search operation to build and optimize a graphical structure based on the covariance of latent and measured variables.
    void
    setPenaltyDiscount(double penaltyDiscount)
    Sets the penalty discount value associated with the MimbuildBollen class.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • MimbuildBollen

      public MimbuildBollen(BlockSpec spec)
      Constructor for the MimbuildBollen class. Initializes the object with the provided BlockSpec, validates the input, and prepares internal data structures for processing.
      Parameters:
      spec - the BlockSpec defining the data set, blocks, and latent variables. Must not be null. The BlockSpec must contain at least one block, and the number of latent variables must match the number of blocks. Each block must be non-empty, reference valid columns in the data set, and be disjoint from all other blocks. Latent variable names must be unique.
      Throws:
      IllegalArgumentException - if spec is null, contains invalid blocks, or fails validation criteria as described above.
  • Method Details

    • search

      public Graph search() throws InterruptedException
      Executes a search operation to build and optimize a graphical structure based on the covariance of latent and measured variables.

      The procedure comprises:

      1. Construct a covariance matrix for the selected variables within the specified blocks.
      2. Define an indicator layout consistent with the selected covariance matrix.
      3. Estimate the latent covariance matrix and associated parameters via optimization.
      4. Score and search over latent variables to construct the resulting graph.
      Returns:
      a Graph representing the optimized structure of latent variables and their relationships.
      Throws:
      InterruptedException - if the thread executing the search is interrupted.
    • getLatentsCovariance

      public ICovarianceMatrix getLatentsCovariance()
      Retrieves the latent covariance matrix associated with the MimbuildBollen instance.
      Returns:
      the latent covariance matrix as an ICovarianceMatrix object.
    • getMinimum

      public double getMinimum()
      Retrieves the minimum value associated with the MimbuildBollen class.
      Returns:
      the minimum value as a double.
    • getPValue

      public double getPValue()
      Retrieves the p-value associated with the MimbuildBollen class.
      Returns:
      the p-value as a double
    • setPenaltyDiscount

      public void setPenaltyDiscount(double penaltyDiscount)
      Sets the penalty discount value associated with the MimbuildBollen class.
      Parameters:
      penaltyDiscount - the penalty discount value to set, represented as a double