Does mining wealth help or hurt local development, and do good local institutions make the difference? This Python tutorial uses causal machine learning on simulated district data with known true effects to measure how the impact of mining and mineral prices varies from place to place. It comes with an interactive app that runs in your web browser.
Does working from home make employees more productive, or do productive people simply choose to work from home? This beginner Python tutorial uses simulated data with a known answer to show a four-step approach to cause and effect: state your assumptions, decide what to compare, estimate the effect and stress-test it. It comes with an interactive app that runs in your web browser.
Does access to a workplace retirement savings plan make American households save more, or do the households that get it simply earn more? This Python tutorial uses double machine learning, which lets flexible prediction models account for income and other differences, on 1991 survey data. It comes with an interactive app that runs in your web browser.
When we measure how a relationship changes from place to place, hidden features of each place can distort the answer. This Python tutorial follows a 2026 study by Li and Fotheringham and uses simulated data on 225 places over three periods to show how following the same places over time removes that distortion. It comes with an interactive app that runs in your web browser.
If a job training program helps unemployed people find work, who gains the most, and who should be offered a place first? This Python tutorial uses causal machine learning on simulated jobseeker data with known true effects to move from the average effect to personal effects and a better way to assign training. It comes with an interactive app that runs in your web browser.
Did an after-school tutoring program really raise student grades, or were grades rising everywhere? This Python tutorial compares 10 tutored high schools with 25 others, before and after the program, to separate its effect from the general upward trend. It comes with an interactive app that runs in your web browser.
As countries grow richer, do the gaps between their regions first widen and then narrow, or do they widen again at the top? This Python tutorial uses satellite images of night lights for about 180 countries and compares each country with itself over time, finding an N-shaped pattern. It comes with an interactive app that runs in your web browser.
Explore how researchers move from correlation to causal evidence in this Python companion to Angrist and Pischke’s Mastering ’Metrics. Run real-data notebooks in Google Colab to study randomized trials, regression, instrumental variables, regression discontinuity, and differences in differences. AI tutors, a code cheatsheet, and a Spotify show offer complementary ways to practice and review the methods.
How sure can we be about an estimate when the same firms are observed year after year? Using simulated data for 100 firms in Python, we compare several ways of measuring the margin of error and show that no margin of error can fix an estimate that is biased to begin with. It includes an interactive app that runs in your web browser.
Do regions with high or low human development cluster together on the map of South America, and did those clusters shift between 2013 and 2019? This Python tutorial maps 153 regions and uses spatial statistics to test whether neighbors are more alike than chance would suggest. It comes with an interactive app that runs in your web browser.