Which summary of your key variable would you defend in print?
HEC Montréal
pd.read_parquet and .dropna, and say how many rows went.quantileEverything you need to type is on one sheet — how to start Python in VS Codium on your platform, how to make a file and run it, the DataFrame basics, and every name from sessions 1 to 2, each with a line showing it in use.
Python Cheatsheet · Session 02 (PDF) · in the repository at
02-…/PYTHON-CHEATSHEET.pdf
One sheet per package, functions explained with pictures: pandas · NumPy · SciPy · statsmodels
Print it, or keep it open beside the editor. Nothing on it is examinable; all of it is assumed.
| 00–20 | Reproduce | one result from the paper you read |
| 20–55 | Apply | the method, to your own angle |
| 55–70 | Break | one assumption, deliberately |
| 70–90 | Write, and report | 250 words, then two minutes to the room |
The presenter is drawn at random when your group is called. All three of you prepare.
Everyone pushes at least once. Replace XX with your group number — group 07 uses group-07.
The git log is the participation record. It is not a formality.
The pre-session asked you to download it. If you did not, do it before the room starts — everything after this slide needs it.
mkdir -p 02-exploratory-data-analysis/data/replication # macOS and Linux
cd 02-exploratory-data-analysis/data/replication
curl -L -o replication.zip \
"https://dataverse.harvard.edu/api/access/dataset/:persistentId/?persistentId=doi:10.7910/DVN/QNKFJF"
unzip -q replication.zip && rm replication.zip && cd -mkdir 02-exploratory-data-analysis/data/replication # Windows
cd 02-exploratory-data-analysis/data/replication
curl.exe -L -o replication.zip `
"https://dataverse.harvard.edu/api/access/dataset/:persistentId/?persistentId=doi:10.7910/DVN/QNKFJF"
Expand-Archive replication.zip .; Remove-Item replication.zip; cd -33 MB. Windows PowerShell: curl.exe, and Expand-Archive replication.zip .
Take the result the paper rests on, and reproduce it.
import pandas as pd, qmib
REP = "02-exploratory-data-analysis/data/replication/public"
# The authors ship their outputs as CSV beside the figures they became, which
# is what makes a reproduction checkable: your number against their number.
fig2a = pd.read_csv(f"{REP}/results/figure_2a.csv")
print(fig2a.shape)
print(fig2a.head())
core = qmib.load("core") # the session's own data, for comparisonTheir code/ is Stata. You are not running it — you are reproducing one number in Python and saying whether you got it.
Paper: Fraiberger et al. (2021), Media sentiment and international asset prices · 10.7910/DVN/QNKFJF
A failed reproduction that you diagnose earns full marks. One you do not attempt earns none.
“It did not work” is not a diagnosis. Where did it stop, and what did you check?
core = qmib.load("core")
mine = qmib.load("angle_c_country") # your angle — see your dictionary
df = core.merge(mine, on=["geo", "time"], how="inner")Fit the session’s method on your data, and report what the lecture said to report — in the units of your own variables.
A coefficient without units is not a finding.
Every method in this course rests on something.
Find the assumption this one leans on hardest. Break it deliberately. Record what happened to your answer.
This is the part that carries the marks. A group that shows how its result falls apart understands it; a group that only shows it holding does not yet know.
250 words in your submissions folder:
And the standing rule: one LLM output you identified as wrong, and how you established that.
git add groups/A2026/group-XX/session-02
git commit -m "Session 02 practice — group XX"
git push -u origin group-XXDeliverable. A profile of your project’s three key variables — centre, spread and shape, thresholds tested — and the summary you would defend in print.
df.describe() pasted with no interpretationAnd everywhere in this course: an association described in causal language.
| One number | with its units and its uncertainty |
| One assumption | the one you broke, and what happened |
| One limit | what you cannot claim from this |
Listen for traceable evidence, not confidence of delivery.
The QMIB Lab has a knowledge check on what you have just done: warin.ca/qmib-labs
Optional, never a prerequisite for the next lecture, and never marked for correctness. A completed report counts because attempting it is the engagement being measured — it is one of the three routes to the participation mark.
What is required before the next session: the article, its Dataverse package, and the self-check. That is the pre-session deck, not this.
MATH60033A · Session 02 practice · Thierry Warin, PhD · HEC Montréal