Did the policy do anything, or were the groups different to begin with?
HEC Montréal
smf.logit and match with NearestNeighbors| 1 | Read the paper | 45–60 min |
| 2 | Get both datasets — the paper’s, and your own angle | 10 min |
| 3 | Attempt the self-check | 15 min |
The lecture assumes all three are done. The practice assumes the data is already cached on your machine.
Atkin, Khandelwal & Osman (2017), Exporting and Firm Performance: Evidence from a Randomized Experiment, Quarterly Journal of Economics 132(2)
Read for the argument, not for coverage. Annotate four things:
| 1 | The research question, in one sentence |
| 2 | The method or design, and why they chose it |
| 3 | The strongest single piece of evidence |
| 4 | One limitation you would raise as a referee |
The practice uses two: the paper’s data, to reproduce one of its results, and your own angle, to apply the method. Have both before you arrive.
a) The paper’s replication package — Harvard Dataverse
Download it from the terminal — no Dataverse account, no browser. From the repository root:
macOS and Linux
mkdir -p 10-causal-inference-foundations/data/replication && cd 10-causal-inference-foundations/data/replication
curl -L -o replication.zip \
"https://dataverse.harvard.edu/api/access/dataset/:persistentId/?persistentId=doi:10.7910/DVN/QOGMVI"
unzip -q replication.zip && rm replication.zip && cd -Windows PowerShell
mkdir 10-causal-inference-foundations/data/replication; cd 10-causal-inference-foundations/data/replication
curl.exe -L -o replication.zip `
"https://dataverse.harvard.edu/api/access/dataset/:persistentId/?persistentId=doi:10.7910/DVN/QOGMVI"
Expand-Archive replication.zip .; Remove-Item replication.zip; cd -data/replication/ is git-ignored, so nothing large is committed. Keep the authors’ own structure — do not tidy it.
This deposit sits behind a Dataverse guestbook, so the curl recipe above returns an error for this session. Open the DOI in a browser, click Access Dataset -> Download ZIP, accept the terms once, and unzip it to the same folder. Everything after that is identical.
import qmib
core = qmib.load("core") # the spine, shared by every group
mine = qmib.load("angle_c_country") # REPLACE with your own angle
print(core.shape, mine.shape)Run this before you arrive. It downloads once and caches as parquet, so the practice works whatever the room’s wifi is doing.
angle_c_country is an example, not your angle. Yours is named in RESEARCH-MANDATES.md.
The spine’s documented treatment, with a known effect to recover · everything available: qmib.catalog()
Answer these on paper. If you cannot, that is what the lecture is for.
By the end of the session you should be able to:
Arrive with: the paper read and annotated · the replication package unzipped · qmib.load() run at least once · your self-check answers on paper.
Everything runs in the VS Codium terminal, from the repository root, with the project environment active. Activate it in every new terminal, not only the first:
Your prompt must begin with (.venv). Without it python and pip are your system’s, and nothing the course installed is visible to them.
ModuleNotFoundError means the packages went somewhere else, or were never installed. Check the prompt first, then pip install -r requirements.txt — from the repository root, with the environment active. Building the environment from scratch is Session 01, step 1.4.
Session 10: README.md · the lecture: 01-lecture/
MATH60033A · Session 10 pre-session · Thierry Warin, PhD · HEC Montréal