Class StroblTestwiseFciStudy
Their claims under test:
- T1: FCI (and RFCI) with test-wise deletion via their Algorithm 1 beats list-wise deletion under their latent-driven MNAR at every n, with the largest gains at small n;
- T2: under that MNAR, imputation (hot deck, kNN, regression, PMM, random forests) performs much worse than either deletion flavor;
- T3: under MAR, correctly specified imputation modestly beats deletion, and deletion remains mid-pack;
- T4 (argued, not simulated by them): when the non-ancestral missingness assumption fails -- a missingness mechanism causally affecting another -- test-wise deletion loses its justification. The VIOLATION mechanism below realizes this as hierarchical nonresponse (one target set's missingness indicator causes the other's, the survey skip-pattern case).
Design follows their Section 9.2: random Gaussian DAGs with average degree 2 over TOTAL_VARS
variables, coefficients Uniform(+/-[0.1, 1]) (Tetrad's SemIm defaults are close), two latent common causes,
and for MNAR two latent driver variables L-tilde, each deleting the bottom r-percentile (r ~ U[0.1, 0.5]) of
3-6 observed target variables by its own value; latent columns are then dropped. MAR uses observed drivers
instead. Alpha 0.01 with Fisher-Z, as in the paper.
Metric deviation, on purpose: their MNAR oracle is the SELECTION-BIASED PAG (FCI with the list-wise selection set S_l), which Tetrad does not construct cheaply; estimates here are scored against the unselected true PAG (dagToPag of the latent-marked DAG). That choice tilts the comparison AGAINST the deletion arms (which converge to the selected PAG) and toward imputation (which targets the unselected law), so a test-wise win under this metric strengthens rather than weakens their conclusion; imputation should look relatively better here than in their tables.
Arms: ORACLE FCI on complete data; FCI TW-ALG1 (their Algorithm 1: test-wise test, with independence
confirmed list-wise); FCI TW-HEURISTIC (test-wise only, their line-1-only variant); FCI LISTWISE; FCI
MEAN-IMPUTE; FCI PMM m=1 (their best-performing imputation class); FCI MICE m=5 POOLED-Z (our pooled test,
which their paper predates); FCI EM-COV. Set USE_RFCI to run the same grid with RFCI.
Repetitions run concurrently (RandomUtil is thread-local; each rep seeds its own thread), the MICE
chains run concurrently, and each arm is abandoned after ARM_TIMEOUT_SECONDS. Run from IntelliJ;
nothing outside this file is touched.
- Author:
- josephramsey
-
Method Summary
-
Method Details
-
main
-