causal

Spatial Dynamic Panels with Common Factors in Stata: Credit Risk in US Banking

Estimate spatial dynamic panel models with unobserved common factors using the spxtivdfreg package in Stata --- an IV approach that handles spatial lags, temporal persistence, endogenous regressors, and latent factors simultaneously

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

Synthetic Control with Prediction Intervals: Quantifying Uncertainty in Germany's Reunification Impact

Synthetic control with prediction intervals quantifies uncertainty in Germany's reunification GDP impact using the scpi package.

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