Skip to content

docs: add CJM 2020 paper review (density-test PR-A) - #769

Merged
igerber merged 1 commit into
mainfrom
rdd-density-review
Aug 16, 2026
Merged

igerber merged 1 commit into
mainfrom
rdd-density-review

Conversation

@igerber

@igerber igerber commented Aug 15, 2026

Copy link
Copy Markdown
Owner

Summary

  • Density-test PR-A per the 2-PR methodology convention: full paper review of Cattaneo, Jansson & Ma (2020, JASA 115:531, 1449-1455), "Simple Local Polynomial Density Estimators" - the methodology behind R/Stata rddensity and the manipulation (density-discontinuity) test that is currently the RD toolkit's documented v1 seam. Sources: the main article plus its 44-page supplemental appendix.
  • The review file (docs/methodology/papers/cattaneo-jansson-ma-2020-review.md) carries a registry-ready entry: assumptions (i.i.d. sampling, continuous running variable with a fail-closed mass-point requirement, main-text local vs SA global smoothness forms), the EDF-smoothing estimator with Theorem 1/2 asymptotics and boundary-adaptive N_x scaling, unrestricted vs restricted test variants with their distinct variance contracts (additive per-side vs the Lemma 13 coupled sandwich, Psi reflection identity, Moore-Penrose one-sided Gram handling), the RBC prescription T_{p+1}(h_hat_p) (default T_3(h_hat_2)) distinguished from undersmoothing, parity-conditioned MSE-optimal bandwidth selection, a model-scoped algorithm with the Remarks 5-6 rescaling identities, plug-in/jackknife variance alternatives with correct localization cost bounds, and a tuning-parameter table separating source defaults from simulation configurations.
  • Head Start Table 1 (x_bar = 59.1984, n_- = 2504, n_+ = 300; all six T_q(h_hat_p) rows plus the McCrary comparison) transcribed as future parity anchors.
  • Seven flagged gaps for PR-B, most importantly: the RBC test's formal construction exists only as a main-text prescription (the SA proves the undersmoothed test), and the difference-objective bandwidth recipe plus remaining defaults defer to the rddensity software sources.
  • docs/methodology/REGISTRY.md: one index line in the RegressionDiscontinuity "Paper reviews on file" block (review-only; the packaged density test remains the documented v1 seam).

Methodology references (required if estimator / math changes)

  • Method name(s): N/A - no estimator/math changes (paper-review documentation only; implementation is a separate future PR-B)
  • Paper / source link(s): Cattaneo, M. D., Jansson, M., & Ma, X. (2020). Simple Local Polynomial Density Estimators. JASA, 115(531), 1449-1455. https://doi.org/10.1080/01621459.2019.1635480 (+ supplemental appendix)
  • Any intentional deviations from the source (and why): None - review-only; transcription ambiguities in the SA scan (a printed side-condition discrepancy, sub-resolution superscripts, one arg-max typo) are flagged in "Gaps and Uncertainties" rather than silently resolved

Validation

  • Tests added/updated: No test changes (documentation-only; the review's implementation checklist specifies the future PR-B test obligations, including R rddensity golden parity and mass-point fail-closed tests)
  • Backtest / simulation / notebook evidence (if applicable): N/A; the review records the SA's own simulation evidence (Tables 1-14) with the E-centering caveat on its size columns

Security / privacy

  • Confirm no secrets/PII in this PR: Yes

Full methodology extraction of Cattaneo, Jansson & Ma (2020, JASA
115:531) - boundary-adaptive local polynomial density estimators and
the density-discontinuity manipulation test (the rddensity
methodology) - from the main article and its 44-page supplemental
appendix.

The review file carries a registry-ready entry: DGP/kernel assumptions
(i.i.d. sampling, continuous running variable with a fail-closed
mass-point requirement, local main-text vs global SA smoothness forms),
the EDF-smoothing estimator with Theorem 1/2 asymptotics and the
boundary-adaptive N_x scaling, unrestricted vs restricted manipulation
tests with their distinct variance contracts (additive per-side vs the
Lemma 13 coupled sandwich with the Psi reflection identity and
Moore-Penrose one-sided Gram handling), the RBC prescription
T_{p+1}(h_hat_p) (default T_3(h_hat_2)) distinguished from
undersmoothing, parity-conditioned MSE-optimal bandwidth selection
(interior even-parity second-order case included; CDF boundary
pseudo-selector limitation), a model-scoped algorithm with the
Remarks 5-6 rescaling identities, plug-in and jackknife variance
alternatives with correct localization cost bounds, the Head Start
Table 1 empirical anchors for future parity work, a tuning-parameter
table separating source defaults from simulation configurations, and
seven flagged gaps (RBC construction exists only as a main-text
prescription; the difference-objective bandwidth recipe and remaining
defaults defer to the rddensity software sources).

REGISTRY.md: one index line in the RegressionDiscontinuity 'Paper
reviews on file' block (review-only; the packaged density test remains
the documented v1 seam).
@github-actions

Copy link
Copy Markdown

Overall assessment: ✅ Looks good

Executive summary

  • No unmitigated P0/P1 findings.
  • Changes are documentation-only; no estimator or default behavior changes.
  • The review accurately distinguishes unrestricted/restricted variance, RBC T_{p+1}(\hat h_p), bandwidth parity cases, and source assumptions.
  • The registry correctly preserves density testing as an unimplemented v1 seam.
  • Deferred implementation and parity work is explicitly documented.

Methodology

No findings. The documented EDF estimator, weighting, Studentization, bandwidth rates, assumptions, and edge-case requirements are internally consistent with the cited CJM methodology.

Code Quality

No findings; no executable code changed.

Performance

No findings. Proposed complexity reductions are clearly identified as implementation observations requiring future parity validation.

Maintainability

No findings. The implementation checklist and separation between paper-backed requirements and unresolved software-level choices are clear.

Tech Debt

No findings. Future implementation, reference parity, bandwidth details, and unresolved source ambiguities are explicitly tracked within the review.

Security

No findings. No secrets, PII, or executable content were introduced.

Documentation/Tests

No findings. The registry index is updated consistently, and tests are not required for this documentation-only change.

@igerber igerber added the ready-for-ci Triggers CI test workflows label Aug 15, 2026
@igerber
igerber merged commit d9cd475 into main Aug 16, 2026
14 of 15 checks passed
@igerber
igerber deleted the rdd-density-review branch August 16, 2026 00:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-ci Triggers CI test workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant