Rat Containerization and Complaint Volume: Did NYC's Mandatory Bin Rollout Causally Reduce Rodent Sightings?
Appendix artifact

APPENDIX_C_honestdid.md

Download
manuscripts/APPENDIX_C_honestdid.md·7.8 KB·markdown

Appendix C — HonestDiD mathematical details

Formal statements of the two Rambachan-Roth-style bound families reported in §4.6, plus implementation notes.

C.1 Setting

Let δt\delta_t denote the event-study coefficient at relative time tt, with δ1=0\delta_{-1} = 0 by convention (the reference period). Under no bias from pre-treatment trends, δt=0\delta_t = 0 for all t<0t < 0 and δt=τt\delta_t = \tau_t for t0t \ge 0, where τt\tau_t is the dynamic ATT at lag tt. The pooled post-period ATT is

τ=1Tpostt=0Tpost1τt\tau = \frac{1}{T_\text{post}} \sum_{t=0}^{T_\text{post}-1} \tau_t

In practice, δ^t\hat\delta_t for t<0t < 0 is not identically zero; the pre-period event-study coefficients {δ^t}t<0\{\hat\delta_t\}_{t<0} carry the empirical signature of the parallel-trends violation. The Rambachan & Roth (2023) framework expresses the bias in the pooled post-period ATT as a function of the (unobservable) counterfactual trend δtCF\delta_t^{CF} at post-period lags, and bounds the bias under a restriction on how much δtCF\delta_t^{CF} can deviate from the extrapolated pre- trend.

The identified set for τ\tau under restriction RR is

I(R)={τ^B(R):B(R) consistent with R}\mathcal{I}(R) = \left\{ \hat\tau - B(R) : B(R) \text{ consistent with } R \right\}

where B(R)B(R) is the bias under RR and τ^\hat\tau is the observed pooled post-period coefficient.

C.2 Relative-magnitudes (RM-Mˉ\bar M)

Restriction. Define Dpre=maxt<0δ^tD_\text{pre} = \max_{t<0} |\hat\delta_t|. The RM-Mˉ\bar M restriction asserts

δtCFMˉDpret0|\delta_t^{CF}| \le \bar M \cdot D_\text{pre} \quad \forall\, t \ge 0

— the counterfactual post-period deviation is bounded by a multiple of the largest observed pre-period deviation. At Mˉ=0\bar M = 0, the restriction is "parallel trends hold" (vanilla DiD); at Mˉ=1\bar M = 1, "post-period deviations are no larger than the biggest pre-period deviation"; as Mˉ\bar M \to \infty, the restriction imposes nothing and the identified set is the real line.

Bound. Under RM-Mˉ\bar M, the bias is

B(Mˉ)=1Tpostt=0Tpost1δtCF[MˉDpre,MˉDpre]B(\bar M) = \frac{1}{T_\text{post}} \sum_{t=0}^{T_\text{post}-1} \delta_t^{CF} \in [-\bar M D_\text{pre}, \bar M D_\text{pre}]

so the identified set is

I(Mˉ)=[τ^MˉDpre,τ^+MˉDpre]\mathcal{I}(\bar M) = [\hat\tau - \bar M D_\text{pre},\, \hat\tau + \bar M D_\text{pre}]

This is a symmetric interval centered on the observed pooled ATT with half-width MˉDpre\bar M D_\text{pre}.

Breakdown point. The smallest Mˉ\bar M such that I(Mˉ)\mathcal{I}(\bar M) includes zero:

Mˉ=τ^Dpre\bar M^* = \frac{|\hat\tau|}{D_\text{pre}}

In our panel (per-unit event-study spec), τ^=2.03\hat\tau = -2.03, Dpre=19.17D_\text{pre} = 19.17, so Mˉ=0.106\bar M^* = 0.106. Reported as "breakdown at Mˉ=0.5\bar M = 0.5" in the paper because we only sweep the grid {0,0.5,1.0,1.5,2.0}\{0, 0.5, 1.0, 1.5, 2.0\}.

C.3 Linear-trend extrapolation (LT-Mˉ\bar M)

The RM family is coarse: it bounds deviation in levels, not deviation from a clear trend signal. When the pre-period coefficients visibly trend (as ours do, with a fitted slope of +0.48+0.48 complaints per month), the relevant "counterfactual trend" is the continuation of that linear trend, not the absolute level.

Setup. Fit an OLS line to the pre-period coefficients:

δ^t=a^+b^t+e^tfor t<0\hat\delta_t = \hat a + \hat b \cdot t + \hat e_t \quad \text{for } t < 0

The extrapolated counterfactual trend at post-period lag t0t \ge 0 is a^+b^t\hat a + \hat b \cdot t. Define the maximum absolute pre- period residual as

Rpre=maxt<0e^tR_\text{pre} = \max_{t < 0} |\hat e_t|

Restriction. The LT-Mˉ\bar M restriction asserts

δtCF(a^+b^t)MˉRpret0|\delta_t^{CF} - (\hat a + \hat b t)| \le \bar M R_\text{pre} \quad \forall\, t \ge 0

— the counterfactual deviation from the extrapolated linear trend is bounded by a multiple of the largest pre-period residual. At Mˉ=0\bar M = 0, we assume the linear extrapolation holds exactly; at Mˉ=1\bar M = 1, we allow deviations up to the largest residual.

Bound. Under LT-Mˉ\bar M, the trend-adjusted ATT is

τadj(Mˉ)=τ^(a^+b^t)t0\tau_\text{adj}(\bar M) = \hat\tau - \overline{(\hat a + \hat b t)}_{t \ge 0}

where the second term is the mean of the extrapolated linear trend over the post-period. The identified set is

I(Mˉ)=[τadjMˉRpre,τadj+MˉRpre]\mathcal{I}(\bar M) = [\tau_\text{adj} - \bar M R_\text{pre},\, \tau_\text{adj} + \bar M R_\text{pre}]

— a symmetric interval centered on the trend-adjusted ATT with half-width MˉRpre\bar M R_\text{pre}.

Breakdown point.

Mˉ=τadjRpre\bar M^* = \frac{|\tau_\text{adj}|}{R_\text{pre}}

In our panel, τadj=22.07\tau_\text{adj} = -22.07, Rpre=7.97R_\text{pre} = 7.97, so Mˉ=2.77\bar M^* = 2.77. Reported as "breakdown beyond Mˉ=2.0\bar M = 2.0" because the sweep grid tops out at 2.02.0.

C.4 Why we report LT alongside RM

When the pre-period is stationary around zero with bounded jitter, RM is the natural restriction family — there is no trend to extrapolate, just noise. When the pre-period visibly trends, RM is overly conservative because it bounds deviation in levels (which grow with time under a linear trend) rather than deviation from the trend's extrapolation. Our pre-period is the second case, so LT is the more informative restriction family.

The LT family is not the original Rambachan-Roth smoothness (SD) restriction — SD bounds the second difference of the counterfactual trend, which grows the identified-set half-width quadratically in the post-period horizon and quickly becomes uninformative for long post-windows. LT is a simpler cousin that keeps the half-width constant by construction and is more interpretable for a 19-month post-window.

C.5 Interpretation for a non-econometrician

The LT-Mˉ\bar M restriction says: "imagine the pre-period trend kept going — what post-period deviation from that smooth extrapolation can you tolerate before the estimate becomes zero?" At Mˉ=2\bar M = 2 we're asking "can we tolerate a deviation twice as large as the biggest pre-period jitter?" The answer is yes — the identified set is still entirely negative.

This is the concrete operational content of "the HonestDiD bounds say the parallel-trends rejection is not fatal." The pre-period trend was doing something — but whatever the counterfactual post- period trend was, within a reasonable bound on deviation from its linear extrapolation, the treatment effect is robustly negative.

C.6 Caveats and limitations of this implementation

  1. Single-number summary of the pooled post-period ATT. We report bounds on the pooled ATT rather than on individual post-period event-study coefficients. The original Rambachan- Roth construction is lag-by-lag; pooled bounds are a summary.
  2. Linear extrapolation assumption. LT assumes the pre-period trend is well-approximated by OLS. In our panel the fit is good (R² ≈ 0.6 for the linear OLS on 23 pre-period points), but a non-linear pre-trend would require a more flexible fit.
  3. No confidence-interval coverage. The bounds are identified sets, not confidence intervals. Combining statistical uncertainty (the event-study SEs) with identification uncertainty (the Mˉ\bar M sensitivity) requires the Rambachan-Roth conditional-coverage construction, which we have not implemented in the Python port. A follow-up revision will either add this or swap in the R HonestDiD package through an rpy2 bridge.
  4. Bounds on pooled ATT, not on per-cohort ATT. The per-cohort decomposition in §4.4 is NOT subjected to the HonestDiD analysis directly; it uses the standard TWFE confidence intervals. An extension would apply HonestDiD to each cohort's own event study separately.

The implementation lives in notebooks/11_honestdid_sensitivity.py and consumes the event-study CSV from notebooks/04_diagnostics.py. Regeneration is deterministic (same CSV → same bounds) and takes under a second on the cached artifacts.