Class TestwiseDeletionStudy

java.lang.Object
edu.cmu.tetrad.study.missingness.TestwiseDeletionStudy

public final class TestwiseDeletionStudy extends Object
Maps out where test-wise deletion fails and where it is fine, before any decision about its place in the interface. The BossMultipleImputationStudy showed test-wise scoring in BOSS over-adding edges badly in one cell of the space (Gaussian, MCAR, twenty percent missing, n of one thousand); this study sweeps the axes that one cell held fixed.

The four questions, one axis each

  • Algorithm. Is the damage specific to BOSS, or does any search over a test-wise-deleted score inherit it? Every score arm runs under BOSS, FGES, and GRaSP. PC with a test-wise Fisher Z is included as its own pair of arms, since per-test deletion in constraint-based search is the estimator the literature's consistency results are actually about, and the incoherence argument against test-wise scores (the two sides of a score comparison computed on different rows) does not apply to it.
  • Penalty versus likelihood. Test-wise deletion's failure could come from the penalty using each family's own row count, or from the likelihood comparison itself being incoherent across row sets. The three TESTWISE arms (fullN, meanPairwise, minPairwise effective-sample-size modes) vary only the sample-size convention; if they close most of the gap to EM, the story is penalty miscalibration, which is fixable, not incoherence, which is not.
  • Rate. At low rates, competing parent sets share most of their rows and the incoherence should be mild. The sweep over MISSING_RATES shows where the damage turns on.
  • Sample size. Incoherence is a property of the objective, so its damage should persist as n grows; noise-driven damage should shrink. Put more than one value in SAMPLE_SIZES to see which.

The multiple-imputation arms are deliberately absent: that question belongs to the other study, and leaving them out keeps every cell here to fast single searches, so the full sweep is minutes.

Run this from IntelliJ; it streams a table per (mechanism, n, rate) cell. The simulated data are exactly multivariate normal, which is the setting most favorable to the covariance-based arms; the mixed-data version of this comparison, where the literature's own simulations favored deletion, is a separate follow-on.

Author:
josephramsey
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor for the TestwiseDeletionStudy class.
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    main(String[] args)
    The entry point: for each mechanism, sample size, and missing rate, simulates data, injects missingness, runs every arm on every rep, and prints a summary table of adjacency precision and recall, arrowhead precision and recall, structural Hamming distance where defined, and seconds per rep.

    Methods inherited from class Object

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

    • TestwiseDeletionStudy

      public TestwiseDeletionStudy()
      Default constructor for the TestwiseDeletionStudy class.
  • Method Details

    • main

      public static void main(String[] args) throws Exception
      The entry point: for each mechanism, sample size, and missing rate, simulates data, injects missingness, runs every arm on every rep, and prints a summary table of adjacency precision and recall, arrowhead precision and recall, structural Hamming distance where defined, and seconds per rep.
      Parameters:
      args - Command-line arguments; not used.
      Throws:
      Exception - If any error occurs during simulation or search.