causal

Double LASSO in Python: Does Abortion Reduce Crime?

Python companion to the R and Stata Double LASSO tutorials — same data, same five estimators, plus a hands-on introduction to the DoubleML library (DoubleMLPLR, DoubleMLIRM, and learner-robustness across LASSO, RandomForest, XGBoost).

Double LASSO in Stata: Does Abortion Reduce Crime?

Stata companion to the R Double LASSO tutorial — same data, same five estimators, replicating the Belloni-Chernozhukov-Hansen 284-control extension of Donohue and Levitt's abortion-and-crime panel with pdslasso, rlasso, and cvlasso.

Double LASSO for Causal Inference: Does Abortion Reduce Crime?

A beginner-friendly walkthrough of Double LASSO for causal inference, replicating Fitzgerald, Lattimore, Robinson and Zhu's (2026) analysis of the Donohue–Levitt abortion–crime question with 284 candidate controls and state-clustered standard errors.

Difference-in-Differences with Geocoded Microdata: When Distance Defines Treatment

When the 'treatment' is a point in space, distance becomes the running variable. We walk through the parametric ring DiD and a data-driven nonparametric alternative, first on a simulated world with a known answer, then on Linden and Rockoff's home-prices study, and reconcile a parametric −5.78 % with a nonparametric −20.6 %.

Comparative Causal Metrics

An introduction to regional impact evaluation using modern causal-inference methods with worked examples and publicly available data for full reproducibility.

Difference-in-Differences for Regional Data: Did Medicaid Expansion Reduce Mortality?

A case study on the Affordable Care Act's Medicaid expansion --- working through 2x2 cell-means, TWFE, covariate-adjusted DRDID, 2xT and Callaway-Sant'Anna staggered event studies, and HonestDiD sensitivity --- to show how population weighting changes the target parameter when the units are regions of very different sizes.

Carbon Taxes and CO2 Emissions: A Synthetic-Control Analysis in Python

Synthetic Control and IV in Python — replicating Andersson (2019) on Sweden's carbon tax and CO2 emissions with pysyncon and pyfixest.

Six Ways to Evaluate a Policy using R: Comparative Case Studies of Proposition 99

Six estimators in one tutorial --- naive pre-post, DiD, two flavours of ITS, RDD on time, Synthetic Control, and CausalImpact --- all applied to California's 1988 Proposition 99 cigarette tax to see how much (and where) they disagree.

Bayesian Spatial Synthetic Control: California's Proposition 99 in R

Replicating the California tobacco case study from Sakaguchi & Tagawa in R: three estimators, one ATT, and a Nevada-sized spillover.

Do Institutions Cause Prosperity? An IV Tutorial in Python

Replicate Acemoglu, Johnson and Robinson (2001) in Python with pyfixest and linearmodels: instrument modern institutions with settler mortality across 64 ex-colonies and learn how IV recovers a causal effect that OLS understates by 80 percent.