causal

A Beginner's Guide to Causal Inference with DoWhy in Python

A beginner-friendly introduction to causal inference using DoWhy's four-step framework with simulated observational data on working from home and productivity

Double Machine Learning with 401(k) Data: From Eligibility Effects to Complier Analysis

Estimating the causal effect of 401(k) eligibility and participation on net financial assets using three DoubleML models (PLR, IRM, IIVM) with the 1991 SIPP pension dataset

MGWFER: Causal Spatially Varying Coefficients via Panel Fixed Effects

A faithful Python tutorial on Li & Fotheringham (2026) — using a two-stage MGWFER algorithm to remove time-invariant spatial confounders from Multiscale GWR and recover both unbiased spatially varying slopes and intrinsic contextual effects from simulated panel data (225 units x 3 periods).

Causal Machine Learning for Policy Evaluation: From ATE to IATE to a Better Assignment Rule

A beginner-friendly walk-through of Causal Machine Learning — ATE, GATE, IATE, and welfare-maximising assignment — using DoubleML and EconML on a synthetic Flanders ALMP-style cohort with known true effects.

Conditional Average Treatment Effects (CATE) with Stata 19

Estimate how the effect of 401(k) eligibility on household assets varies across households using Stata 19's new cate command, with PO, AIPW, GATE, GATES, and nonparametric series estimators applied to the canonical assets3 dataset

Treatment Effects in Stata: A Beginner's Tour of Six Estimators with the Maternal Smoking and Birth Weight Case Study

A beginner-friendly walk-through of six treatment-effects estimators in Stata --- regression adjustment, IPW, IPWRA, AIPW, nearest-neighbor matching, and propensity-score matching --- applied to the classic maternal-smoking and birth-weight case study.

Basic Synthetic Control with R: The Basque Country Case Study

A beginner-friendly tutorial on the synthetic control method in R, using the Basque Country case study to estimate the economic cost of conflict on regional GDP per capita from 1970 to 1997.

Dynamic Panel Data with Arellano-Bond GMM in Stata: The Effect of War on Economic Growth

Estimate the within-country dynamic effect of war on log GDP per capita using Arellano-Bond GMM in Stata, reproducing Thies and Baum (2020) on a 1955-2015 panel of 160 countries.

Introduction to Difference-in-Differences (DiD) in Python

Learn Difference-in-Differences (DiD) in Python using PyFixest and Great Tables. Covers the 2x2 design, TWFE regression, inference comparison, publication-quality tables, event studies, and parallel trends testing based on Corral and Yang (2024).

IV Estimation with Panel Data: Economic Shocks and Civil Conflict

Replicate Hodler and Raschky (2014) to estimate the causal effect of economic shocks on civil conflict using 2SLS instrumental variables with panel data from 5,689 African regions