| NonlinearDiD-package | R Documentation |
The NonlinearDiD package extends the Callaway and Sant'Anna (2021) staggered difference-in-differences framework to handle nonlinear outcome models, including binary (logit/probit), count (Poisson/NegBin), and odds-ratio estimands.
The Core Problem
The canonical CS2021 framework assumes parallel trends on the mean scale of a continuous outcome. For binary and count outcomes, this assumption is not scale-invariant: parallel trends in P(Y=1) does NOT imply parallel trends in log-odds, pre-trend tests depend on which scale is used, and treatment effect estimates conflate true effects with Jensen's inequality.
Main Functions
nonlinear_attgt() – Estimate ATT(g,t) under nonlinear outcome models
nonlinear_aggte() – Aggregate: event-study, group, calendar, overall
nonlinear_pretest() – Pre-treatment parallel trends test
binary_did_logit() – 2x2 DiD with logit outcome
binary_did_probit() – 2x2 DiD with probit outcome
binary_did_dr() – Doubly-robust binary DiD
count_did_poisson() – Poisson QMLE DiD for count outcomes
odds_ratio_did() – Odds-ratio DiD (scale-free)
nonlinear_bounds() – Nonparametric Manski / PT bounds
sim_binary_panel() – Simulate binary staggered panel data
sim_count_panel() – Simulate count staggered panel data
Quick Start
library(NonlinearDiD)
dat <- sim_binary_panel(n = 500, nperiods = 8, seed = 42)
res <- nonlinear_attgt(dat, yname = "y", tname = "period",
idname = "id", gname = "g",
outcome_model = "logit")
agg <- nonlinear_aggte(res, type = "dynamic")
plot(agg)
nonlinear_pretest(res)
Maintainer: Subir Hait haitsubi@msu.edu (ORCID)
Callaway, B., & Sant'Anna, P. H. C. (2021). Difference-in-differences with multiple time periods. Journal of Econometrics, 225(2), 200-230.
Roth, J., & Sant'Anna, P. H. C. (2023). When is parallel trends sensitive to functional form? Econometrica, 91(2), 737-747.
Wooldridge, J. M. (2023). Simple approaches to nonlinear difference-in-differences with panel data. The Econometrics Journal, 26(3).
Useful links:
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.