You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
P3.1: Survey support list omitted SyntheticDiD. SDiD is exported as a
top-level estimator, accepts survey_design=, and has REGISTRY-documented
survey support on its placebo + jackknife paths (refit bootstrap rejects
survey designs in this release, but the other variance methods work).
Added SyntheticDiD to the Survey Data Support estimator list and added
an explicit scope clarification: scope is *estimators*; survey-capable
diagnostics (BaconDecomposition Phase 3, HonestDiD survey-df handling)
are tracked in their own sections.
P3.2: HAD test counts drifted further (247 -> 248 in test_had_pretests.py;
the 12 and 11 counts for test_bandwidth_selector.py and
test_nprobust_port.py were sub-section subset counts I mis-cited as file
totals -- actual file totals are 45 and 47 respectively). De-brittled by
replacing hard-coded counts with structural file descriptions:
test_had.py for the HAD estimator, test_had_pretests.py for the
qug/stute/yatchew_hr/workflow surface, test_had_mc.py for Monte-Carlo
coverage, test_had_dual_knob_deprecation.py for deprecation paths,
test_bandwidth_selector.py for the public-API wrapper, and
test_nprobust_port.py for the full lprobust/lpbwselect_mse_dpi port.
No status flips. No estimator, weighting, variance, or inference code
changed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: METHODOLOGY_REVIEW.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -693,8 +693,8 @@ and covariate-adjusted specifications.)
693
693
**Documentation in place:**
694
694
- REGISTRY.md section: `## HeterogeneousAdoptionDiD` (~330 lines covering Phases 1a-5: Epanechnikov/triangular/uniform kernels, HC2+Bell-McCaffrey, CR2 Imbens-Kolesar Satterthwaite DOF, Calonico-Cattaneo-Farrell MSE-DPI bandwidth, bias-corrected local-linear, three design paths — continuous_at_zero / continuous_near_d_lower / mass_point — multi-period event-study via Appendix B.2, three pretest helpers `qug_test` / `stute_test` / `yatchew_hr_test`, composite `did_had_pretest_workflow`, survey support including PSU-level Mammen wild bootstrap for Stute family)
695
695
-**Paper review on file**: shares `dechaisemartin-2026-review.md` with DCDH (universal-rollout coverage)
696
-
- Implementation: 299 unit tests in `tests/test_had.py`+ 247 pretest testsin `tests/test_had_pretests.py`
697
-
- Bandwidth port: 12 tests in `tests/test_bandwidth_selector.py`+ 11 in `tests/test_nprobust_port.py`; bias-corrected `lprobust` parity in `tests/test_bias_corrected_lprobust.py`
696
+
- Implementation: comprehensive coverage in `tests/test_had.py`(HAD estimator) and `tests/test_had_pretests.py` (`qug_test` / `stute_test` / `yatchew_hr_test` and the composite workflow); Monte-Carlo coverage in `tests/test_had_mc.py`; dual-knob deprecation in `tests/test_had_dual_knob_deprecation.py`
697
+
- Bandwidth port: `tests/test_bandwidth_selector.py`(public-API wrapper, HAD configuration) and `tests/test_nprobust_port.py` (full `lprobust` / `lpbwselect_mse_dpi` port surface); bias-corrected `lprobust` parity in `tests/test_bias_corrected_lprobust.py`
698
698
- R parity: 5 R-direct parity tests in `tests/test_did_had_parity.py`; `nprobust` golden fixtures in `benchmarks/data/nprobust_*_golden.json` validated at `0.0000%` relative error
699
699
- Two dedicated tutorials: T21 (`docs/tutorials/21_had_pretest_workflow.ipynb`) and T22 (`docs/tutorials/22_had_survey_design.ipynb`) with companion `tests/test_t21_had_pretest_workflow_drift.py` and `tests/test_t22_had_survey_design_drift.py` drift-test files
700
700
@@ -1118,7 +1118,7 @@ These are not estimators but variance/inference plumbing used across many estima
1118
1118
- REGISTRY.md sub-sections (under `## Survey Data Support`): Weighted Estimation, TSL Variance, Weight Type Effects on Inference, Absorbed FE with Survey Weights, Survey Degrees of Freedom, Survey Aggregation (`aggregate_survey`), Survey-Aware Bootstrap (Phase 6), Replicate Weight Variance (Phase 6), DEFF Diagnostics (Phase 6), Subpopulation Analysis (Phase 6), Survey DGP (`generate_survey_did_data`)
1119
1119
-**Theory document**: `docs/methodology/survey-theory.md` — full Binder-Lumley derivation of design-based variance for modern DiD estimators, including influence-function machinery
- Per-estimator survey hooks documented in the REGISTRY sections of every estimator that supports survey design (DiD/TWFE/MultiPeriodDiD, CS, SunAbraham, StackedDiD, ImputationDiD, TwoStageDiD, WooldridgeDiD, EfficientDiD, ContinuousDiD, DCDH, HAD, TripleDifference, StaggeredTripleDifference, TROP)
1121
+
- Per-estimator survey hooks documented in the REGISTRY sections of every estimator that supports survey design (DiD/TWFE/MultiPeriodDiD, CS, SunAbraham, StackedDiD, ImputationDiD, TwoStageDiD, WooldridgeDiD, EfficientDiD, ContinuousDiD, DCDH, HAD, TripleDifference, StaggeredTripleDifference, TROP, SyntheticDiD). Scope is *estimators*; survey-capable diagnostics (e.g., `BaconDecomposition` Phase 3, `HonestDiD` survey-df handling) are tracked in their own sections.
1122
1122
1123
1123
**Outstanding for promotion:**
1124
1124
- Dedicated `tests/test_methodology_survey.py` (or split between TSL and replicate-weight surfaces) with Binder-equation-numbered Verified Components walk-through
0 commit comments