Skip to content

Commit bb6bf5c

Browse files
igerberclaude
andcommitted
Add (1-W) weight masking to TROP global method + rename joint→global
Align the TROP global method with the paper's Eq. 2 by adding (1-W) masking so the model is fit on control data only, then extracting treatment effects post-hoc as residuals (tau_it = Y - mu - alpha - beta - L). Key changes: - Apply (1-W) masking in _compute_joint_weights, zeroing treated cells - Remove tau from the joint solvers (no longer identifiable under masking) - Extract per-observation treatment effects post-hoc; ATT = mean(tau_it) - Add FISTA/Nesterov acceleration to the nuclear norm solver (O(1/k²)) - Rename method='joint' to method='global' with FutureWarning deprecation - Extract _solve_joint_model and _extract_posthoc_tau helpers to reduce duplication - Mirror all changes in Rust backend Monte Carlo validation (20 reps × 5 configs) shows: - No-lowrank configs: exact match with CVXPY reference (|Δτ| = 0) - Low-rank configs: mean |Δτ| = 0.0004 (λ_nn=0.1), 0.026 (λ_nn=0.01) - 100% of comparisons within 0.10 of reference Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 44124ca commit bb6bf5c

File tree

7 files changed

+546
-242
lines changed

7 files changed

+546
-242
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,6 @@ trop_avg_ref/
8787

8888
# Academic papers (local only, not for distribution)
8989
papers/
90+
91+
# Local analysis notebooks (not committed)
92+
analysis/

0 commit comments

Comments
 (0)