Econometrics, Quantitative Economics, Data Science


‘math+econ+code’ masterclass on optimal transport and economic applications

Online, January 18-22, 2021 (30h)
Time: 8am-12pm US Eastern time / 2pm-6pm Central European time Monday-Friday, plus five special lectures

Instructor: Alfred Galichon, email:
TA: Jules Baudet, email:


This intensive course, part of the ‘math+econ+code’ series, is focused on models of demand, matching models, and optimal transport methods, with various applications pertaining to labor markets, economics of marriage, industrial organization, matching platforms, networks, and international trade, from the crossed perspectives of theory, empirics and computation. It will introduce tools from economic theory, mathematics, econometrics and computing, on a needs basis, without any particular prerequisite other than the equivalent of a first year graduate sequence in econ or in applied math.
A particular emphasis will be given on cloud computation and parallel computing.
Because it aims at providing a bridge between theory and practice, the teaching format is somewhat unusual: each teaching “block” will be made of 50 minutes of theory followed by 1 hour of coding, based on an empirical application related to the theory just seen. Students are expected to write their own code, and we will ensure that it is operational at the end of each block. This course is therefore closer to cooking lessons than to traditional lectures.
The course is open to graduate students in the fields of economics and applied mathematics, but also in other quantitative disciplines. Students need to bring a laptop with them to the lectures. The knowledge of a particular programming language is not required; students are however expected to have some experience with programming. The language of the course will be Python.
The instructor is Alfred Galichon (professor of economics and of mathematics at NYU and affiliate professor at Sciences Po), and the TA is Jules Baudet (graduate student at ENS, EQUIPRICE team member). Pauline Corblet (graduate economics student at Sciences Po), Octavia Ghelfi and James Nesbit (graduate economics students at NYU) have helped prepare the course material over time. Current support from ERC CoG-866274 EQUIPRICE, and past support from NSF grant DMS-1716489 are acknowledged.

Suggested preparation readings (optional)

Alfred Galichon (2016). Optimal Transport Methods in Economics. Princeton University Press.

Course material

Available on github here.

Practical information

• Schedule: Monday to Friday, 8am-12pm US Eastern time / 2pm-6pm Central European time, plus four additional lectures to be scheduled. A zoom link will be provided.
• Credits: assessed through a take-home exam or a short final paper, at the student’s option. To be discussed with the instructor.
• A syllabus is available at
• Students are advised to contact the instructor ( ahead of time.


Day 1

Block 1. Basics of linear programming

• Theory: linear programming duality; complementary slackness; minimax formulation
• Coding: How to eat optimally? Dataset: Stigler’s original diet data (1945).

Block 2. Network flow problems

• Theory: directed graphs and min-cost flow problem
• Coding: How to find the shortest path through a network? Dataset: Paris subway; New York City street network.

Day 2

Block 3. Dynamic programming as linear programming

• Theory: Bellman’s equation; interpretation of duality; forward induction, backward induction
• Coding: When to repair mechanical engines? Dataset: Rust’s bus maintenance data (1994).

Block 4. Optimal assignments

• Theory: Shapley-Shubik duality; stability; decentralized equilibrium.
• Coding: How to solve it? Dataset from Dupuy and Galichon (JPE 2014).

Day 3

Block 5. Entropy-regularized optimal transport

• Theory: IPFP algorithm; log-sum-exp trick
• Coding: How to infer the unobservable quality of a car model? Dataset: Feenstra-Levinsohn (Restud 1994) car data.

Block 6. Basics of static discrete choice

• Theory: The MEV model; Daly-Zachary-Williams theorem, generalized entropy of choice, the inversion theorem
• Coding: How to solve it? simulation methods; AR, SARS, and GHK. Dataset: Greene and Hensher (1997) data on choice of travel mode.

Day 4

Block 7. Hotelling’s characteristics model and its offsprings

• Theory: the random coefficient logit model and the pure characteristics models; power diagrams, Aurenhammer’s method
• Coding: How to estimate demand for automobiles? Dataset: BLP.

Block 8. Parametric discrete choice

• Theory: MLE, moment-matching estimator, minimax regret.
• Coding: Choice of travel mode.

Day 5

Block 9. Separable models of matching

• Theory: matching with unobservable heterogeneity.
• Coding: Did Roe vs. Wade decrease the “value of marriage”? Datasets: Choo and Siow (JPE 2006); Chiappori, Oreffice and Quintana-Domeque’s (JPE 2012); and Dupuy-Galichon (JPE 2014).

Block 10. The gravity equation

• Theory: optimal transport and the gravity equation; generalized linear models and pseudo-Poisson maximum likelihood estimation; model selection using LASSO
• Coding: Forecasting international trade flows: estimating the gravity equation based on WTO international trade data.

Special lectures

Special lecture 1 (Feb 5, 2pm-4pm Paris time): cloud computing

Guest speakers: Flavien Léger (Sciences Po) and James Nesbit (NYU).

Special lecture 2 (March 5, 2pm-4pm Paris time): estimation of dynamic discrete choice problems

Speaker: Alfred Galichon

• Theory: Rust’s model; estimation; normalization issues
• Coding: maintenance choice.

Special lecture 3 (April 9, 2pm-4pm Paris time): kidney exchange problems

• Theory: Roth et al.
• Coding: an interactive multi-player simulator

Special lecture 4 (April 30, 2pm-4pm Paris time): traffic congestion

• Theory: Wardrop equilibria; price of anarchy
• Coding: traffic data.

Special lecture 5 (May 7, 2pm-4pm Paris time): matrix games

• Theory: Nash equilibria; correlated equilibria; zero-sum games and LP formulation
• Coding: soccer data on penalty.