Skip to content

Commit a02c61c

Browse files
igerberclaude
andcommitted
Address PR #448 R3 review (2 P3 informational)
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>
1 parent 899caac commit a02c61c

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

METHODOLOGY_REVIEW.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -693,8 +693,8 @@ and covariate-adjusted specifications.)
693693
**Documentation in place:**
694694
- 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)
695695
- **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 tests in `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`
698698
- 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
699699
- 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
700700

@@ -1118,7 +1118,7 @@ These are not estimators but variance/inference plumbing used across many estima
11181118
- 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`)
11191119
- **Theory document**: `docs/methodology/survey-theory.md` — full Binder-Lumley derivation of design-based variance for modern DiD estimators, including influence-function machinery
11201120
- 13 dedicated `tests/test_survey*.py` files: `test_survey.py`, `test_survey_dcdh.py`, `test_survey_dcdh_replicate_psu.py`, `test_survey_estimator_validation.py`, `test_survey_phase3.py`, `test_survey_phase4.py`, `test_survey_phase5.py`, `test_survey_phase6.py`, `test_survey_phase7a.py`, `test_survey_phase8.py`, `test_survey_r_crossvalidation.py`, `test_survey_real_data.py`, `test_survey_staggered_ddd.py`
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)
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.
11221122

11231123
**Outstanding for promotion:**
11241124
- 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

Comments
 (0)