Econometrics, Quantitative Economics, Data Science

Archive for the ‘Uncategorized’ Category


Lecture series

Two lectures on matching models for family economics

Invited lectures given at the University of Toronto, April 1 and April 8, 2022


The first lecture will cover transferable utility (TU) matching models with logit heterogeneity following the seminal paper by Choo and Siow (JPE 2006), its extension and parametric estimation following Galichon and Salanié (Restud 2022).
The second lecture will discuss the interplay between models of matching and collective models as depicted in Browning and Chiappori’s (Cambridge, 2014) monograph, and how models of imperfectly transferable utility (ITU) and logit or more general heterogeneity are needed to address this new class of problems, as is done in Galichon, Kominers and Weber (JPE, 2019).


April 1 and April 8, 10am-12pm Eastern time, online.

Course material

The lecture slides are available from the following github repository.


These lectures are based on:
[GS] Galichon and Salanie (2022). Cupids invisible hands: Social Surplus and Identification in Matching Models. Review of Economic Studies.
[GKW] Galichon, Kominers and Weber (2019). Costly Concessions: An Empirical Framework for Matching with Imperfectly Transferable Utility (2019). Journal of Political Economy.
[MEC-OPTIM] Galichon (2022). `math+econ+code’ masterclass on optimal transport and economic applications.
[MEC-EQUIL] Galichon (2022). `math+econ+code’ masterclass on equilibrium transport and matching models in economics.


Lecture 1: Matching models with transferable utility:
Matching models as an optimization problem / regularized optimal transport / generalized linear models
Lecture 2: Matching models with imperfectly transferable / nontransferable utility:
Matching models as an equilibrium problem with substitutes

Seattle 2022

Lecture series

Gross substitutes, optimal transport and matching models

Optimal Transport Summer School, the University of Washington, Seattle, June 19-July 1, 2022


Gross substitutes is a fundamental property in mathematics, economics and computation, almost as important as convexity. It is at the heart of optimal transport theory — although this is often underrecognized — and understanding the connection key to understanding the extension of optimal transport to other models of matching.



Course material

The lecture slides are available before each lecture from the following github repository.


These lectures will be loosely based on my math+econ+code lectures:
A. Galichon, ‘math+econ+code’ masterclass on equilibrium transport and matching models in economics. June 2021. Available here.


Lecture 1. Introduction to gross substitutes
M-matrices and M-maps, nonlinear Perron-Froebenius theory, convergence of Jacobi algorithm. A toy hedonic model.

Lecture 2. Models of matching with transfers
Problem formulation, regularized and unregularized case. IPFP and its convergence. Existence and uniqueness of an equilibrium. Lattice structure.
Lecture 3. Models of matching without transfers
Gale and Shapley’s stable matchings. Adachi’s formulation. Kelso-Craford. Hatfield-Milgrom.


Kidney transplant hackaton

a math+econ+code event

When? TBA

Who? participation to this math+econ+code event is open to the public upon request.

What? Kidney transplant problems provide a very interesting real-life examples of dynamic matching problems. A large academic literature exists on the topic, both in economics and in operations research. Because the problem is a difficult problem computationally speaking, a number of algorithms exist out there to try to approximate the best solution. This hackaton will put you in the shoes of the transplant agency: at each period, you will receive the state of your population, which is made of your existing population of patients, plus new patients and minus deceased ones (simulated by our platform). Your role will be write the algorithm that matches donors and receivers, given the constraints on the way transplants can be done (state of the patient, compatibility between donor and receiver, length of transplant chains, etc.)

Each player plays in parallel and is evaluated by a score, which will reflect the state of their population of patients. The game is played over a very large number of periods. The player with the highest final score has come up with the best algorithm and wins the hackaton.

What is required? In order to participate, you need to be familiar with Python programming. Your only input is the matching function that assigns donors to receivers — a function whose length can be less than a hundred lines but can be more depending on your design. All the interfacing is done by the platform.

Interested? contact us at