docs: Gardner (2022) paper review — TwoStageDiD (PR-A)#539
Conversation
Overall AssessmentExecutive Summary
MethodologyFinding 1 — P1Location: Impact: The PR fixes the fabricated Eq. (6) variance deviation in Concrete fix: Update the TwoStageDiD tracker entry to say Gardner Eq. (6) is the event-study spec, §3.3 uses the global Jacobian/GMM sandwich, and the implementation matches the paper and Finding 2 — P2Location: Impact: The new review states “Block bootstrap is the R Concrete fix: Change the sentence to: R Code QualitySeverity: N/A PerformanceSeverity: N/A MaintainabilitySeverity: P2 Tech DebtSeverity: P3 SecuritySeverity: N/A Documentation/TestsSeverity: P3 Path To Approval
|
4f14300 to
460e0f1
Compare
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall AssessmentExecutive Summary
MethodologyFinding 1 — P1 [Newly identified]Location: Impact: The Verified Components checklist still says Concrete fix: Replace the checklist item with something like: Code QualitySeverity: N/A PerformanceSeverity: N/A MaintainabilitySeverity: P2 Tech DebtSeverity: P3 SecuritySeverity: N/A Documentation/TestsSeverity: P2 Path To Approval
|
460e0f1 to
21ecef9
Compare
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall AssessmentExecutive Summary
MethodologyFinding 1 — P1 [Newly identified]Location: Impact: The new review says its checklist is “paper → library” and marks Eq. (5) Concrete fix: Reword the checklist/tuning table so only implemented components are checked: overall ATT Eq. (4), event-study Eq. (6), untreated-only Stage 1, and current variance behavior. Mark Eq. (5) Code QualitySeverity: N/A PerformanceSeverity: N/A MaintainabilitySeverity: P3 Tech DebtSeverity: P3 SecuritySeverity: N/A Documentation/TestsSeverity: P1 Path to Approval
|
21ecef9 to
6f66aba
Compare
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment✅ Looks good — no unmitigated P0/P1 findings. The prior P1 overclaim about Eq. (5) / full-sample first-stage support is resolved. Executive Summary
MethodologyFinding 1 — P2Location: Impact: The review correctly says Gardner has no numbered theorem of his own, and correctly replaces the nonexistent “Gardner 2022, Theorem 1” variance attribution with Gardner §3.3 / Newey-McFadden Theorem 6.1. But the sentence overstates this as “the only ‘Theorem’ invoked anywhere is Newey & McFadden,” while the paper also invokes de Chaisemartin and D’Haultfœuille Theorem 1 for the TWFE-weight representation. This does not change the Concrete fix: Reword to: “The paper contains no Gardner-numbered theorems or propositions; the variance relies on Newey-McFadden (1994), Theorem 6.1. Section 2.2 separately cites de Chaisemartin and D’Haultfœuille (2020), Theorem 1, for the TWFE-weight representation.” Code QualitySeverity: N/A PerformanceSeverity: N/A MaintainabilitySeverity: N/A Tech DebtSeverity: P3 SecuritySeverity: N/A Documentation/TestsSeverity: P2 |
6f66aba to
aa29cec
Compare
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment✅ Looks good — no unmitigated P0/P1 findings. Executive Summary
MethodologySeverity: N/A Code QualitySeverity: N/A PerformanceSeverity: N/A MaintainabilitySeverity: N/A Tech DebtSeverity: P3 informational SecuritySeverity: N/A Documentation/TestsSeverity: P3 informational |
Methodology-review PR-A for TwoStageDiD (Gardner 2022, arXiv:2207.05943;
R `did2s`), the imputation-pair twin of the just-completed ImputationDiD.
- New `docs/methodology/papers/gardner-2022-review.md`: eq./section-numbered
scholarly review of the primary source.
- REGISTRY `## TwoStageDiD` + `METHODOLOGY_REVIEW.md` tracker: corrected the
variance misattributions the source read surfaced — (i) the "Equation 6
per-cluster inverse (D_c'D_c)^{-1} deviation" was fabricated (eq. 6 is the
event-study spec; the variance is the unnumbered GLOBAL Newey-McFadden
Thm 6.1 Jacobian-inverse sandwich, which the code already matches — not a
deviation); (ii) "(Gardner 2022, Theorem 1)" (the paper has no numbered
theorems); relabeled the cluster-summed meat (was "Bread").
- Corrected the `did2s` bootstrap-default claim in 3 places (paper review,
REGISTRY, two_stage_results.py docstring): did2s defaults to analytical
corrected clustered SEs (`bootstrap = FALSE`); block bootstrap is optional,
not the default (verified vs the did2s source).
- doc-deps.yaml: mapped the review under two_stage.py. TODO.md: tracked the
PR-B deliverables (tests + did2s parity -> tracker flip).
doc-deps integrity green; references + catalog verified. Local + CI agentic
AI review clean after addressing the bootstrap-attribution and tracker-
consistency findings.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
aa29cec to
1f3b629
Compare
|
🔁 AI review rerun (requested by @igerber) Head SHA: Overall Assessment✅ Looks good — no unmitigated P0/P1 findings. Executive Summary
MethodologySeverity: N/A Severity: P3 informational Code QualitySeverity: N/A PerformanceSeverity: N/A MaintainabilitySeverity: N/A Tech DebtSeverity: P3 informational SecuritySeverity: N/A Documentation/TestsSeverity: P3 informational |
Summary
docs/methodology/papers/gardner-2022-review.md— eq./section-numbered scholarly review of Gardner (2022), Two-stage differences in differences (arXiv:2207.05943), the primary source forTwoStageDiD(Rdid2s). Covers the two-stage procedure (§3), estimands eqs. (4)/(5), event-study eq. (6) + Step 2′, the Newey-McFadden (1994) Thm 6.1 GMM variance (§3.3), and the Appendix B reference Stata GMM.REGISTRY.md## TwoStageDiDand theMETHODOLOGY_REVIEW.mdtracker that the source read surfaced:(D_c'D_c)^{-1}deviation" was fabricated — eq. (6) is the event-study regression spec; the variance (§3.3, unnumbered) uses the global Jacobian inverse (Newey-McFadden Thm 6.1), clustered at the unit (App. Bvce(cluster id)). Our code already matches this anddid2s— never a deviation.did2sbootstrap-default claim (3 places: paper review, REGISTRY, and the one-linetwo_stage_results.pydocstring):did2sdefaults to analytical corrected clustered SEs (bootstrap = FALSE); block bootstrap is optional, not the default (verified against the did2s source).doc-deps.yaml: mapped the review undertwo_stage.py.TODO.md: tracked the PR-B deliverables.This is PR-A of the 2-PR TwoStageDiD methodology validation (the imputation-pair twin of the just-completed ImputationDiD). PR-B adds
tests/test_methodology_two_stage.py+ adid2sR-parity fixture, then flips the tracker row to Complete.Methodology references (required if estimator / math changes)
did2s)two_stage_results.py(thedid2sbootstrap-default claim); no logic changes.Validation
tests/test_doc_deps_integrity.pygreen (149 passed); scholarly references (references.rst) + catalog surfaces verified via/docs-check;two_stage_resultsimports clean.did2sdefaults tobootstrap = FALSE), a tracker-consistency finding (theMETHODOLOGY_REVIEW.mdEq. 6 deviation claim), and a PDF page/table metadata fix (34 pages, tables 1–4).Security / privacy
🤖 Generated with Claude Code