causal inference

Visualizing Regression with the FWL Theorem in R

A hands-on guide to the fwlplot package in R --- from understanding the Frisch-Waugh-Lovell theorem through simulated confounding to visualizing fixed effects in real panel data --- showing what "controlling for" looks like as a scatter plot.

Visualizing Regression with the FWL Theorem in Stata

A hands-on guide to the scatterfit package in Stata --- from understanding the Frisch-Waugh-Lovell theorem through simulated confounding to visualizing fixed effects in real panel data --- showing what "controlling for" looks like as a scatter plot.

Difference-in-Differences for Policy Evaluation: A Tutorial using R

A guide to Difference-in-Differences with staggered treatment --- from TWFE pitfalls through Callaway-Sant'Anna group-time ATTs, doubly robust estimation, and HonestDiD sensitivity analysis --- applied to minimum wage effects on teen employment.

Sensitivity Analysis for Parallel Trends in Difference-in-Differences Using honestdid in Stata

Assess how robust difference-in-differences results are to violations of parallel trends using the honestdid package in Stata, progressing from a simple 2x2 DiD to multi-period event studies with relative magnitudes and smoothness restrictions

Evaluating a Cash Transfer Program (RCT) with Panel Data in Stata

Evaluate the causal effect of a cash transfer program on household consumption using regression adjustment, inverse probability weighting, doubly robust, and difference-in-differences methods in Stata

Introduction to Difference-in-Differences in Python

Estimating causal treatment effects using Difference-in-Differences with the diff-diff package, from the classic 2x2 design through staggered adoption with Callaway-Sant'Anna and HonestDiD sensitivity analysis

The FWL Theorem: Making Multivariate Regressions Intuitive

Understanding the Frisch-Waugh-Lovell theorem to isolate causal relationships by partialling-out confounders in a simulated retail store dataset

Introduction to Partial Identification: Bounding Causal Effects Under Unmeasured Confounding

Computing causal bounds under unmeasured confounding using Manski and Tian-Pearl bounds with the CausalBoundingEngine package in Python

Introduction to Causal Inference: The DoWhy Approach with the Lalonde Dataset

Estimating the causal effect of a job training program on earnings using DoWhy's four-step causal inference framework with the Lalonde dataset

Introduction to Causal Inference: Double Machine Learning

Estimating the causal effect of a cash bonus on unemployment duration using Double Machine Learning with the Pennsylvania Bonus Experiment