When you do not know how the world will react

Use distributionally robust Stackelberg games to make decisions - by Zheyu Wu

You make the decisions; the world reacts in an uncertain way later. That is how most real decisions work. Imagine you are the only ice cream seller in town. You can raise the price of ice cream and then demand might drop; you can lower it and you might sell out. However, it is not that simple: Weather, luck, events, and mood swings all stir the pot in unpredictable ways, and make it harder for you as an ice cream seller to prepare for tomorrow.

Your previous experience and other people’s suggestions could give you some intuition but may not exactly fit reality of what is going to happen, since tomorrow probably will not be a replay of yesterday. So, under these uncertainties, how do you choose the price and decide how much ice cream to prepare?

Our answer is a distributionally robust Stackelberg game. The name sounds heavy, but the idea is simple:

  • Stackelberg game means that there are a “leader” and a “follower”: the leader (e.g. the seller) acts first (sets the price), and the follower (e.g. the customers) responds (chooses to buy or not to buy) later.

  • Distributionally robust means we do not trust a single prediction of the future. Instead, we plan for a set of plausible futures, including the tricky ones. In the ice cream example, being robust means that the seller starts considering that the weather report says there is a 30% probability that tomorrow might be rainy. Being distributionally robust goes further: instead of fixing on a single weather report, we regard “30% chance of rain” as a baseline and optimize over a neighborhood around it that also leaves room for surprises the forecast doesn’t spell out. From sun to rain to thunderstorms, distributionally robust helps you plan for things the forecast cannot predict.

What is more appealing about distributionally robust Stackelberg Games is that we plan not only for the uncertainties we know about, but also for the ones we haven’t even thought of. We do this by tuning an ambiguity set, which is a basket of all plausible futures. Take the ice cream example: we might start by modeling weather uncertainty, but then we consider an ambiguity set that can include rain, power outages, equipment failures, a street closure and more. Even better: Through one knob, which is the size of this ambiguity set, we can control how conservative we want to be: turn it up and make the set larger to guard against rarer but costly scenarios (you will stock a bit less ice cream for tomorrow), or turn it down and make the set smaller when you trust your baseline forecast (you will stock roughly the usual amount).

By tuning this single parameter, you can dial in as much safety as you want with one parameter, and you can make good decisions for more than one tomorrow.

Text by Zheyu Wu; illustration created with ChatGPT

Related articles