Monthly Archives: November 2018

Stiglitz and Norvig and Gini, oh my!

Executive Summary: A simple model shows that we can achieve positive changes in wealth inequality by returning to a more progressive tax structure.

Joseph Stiglitz has written an important article on inequality in the American economy. One of his key points is that the economy is not inevitable. We create the rules, the framework in which individual transactions take place.

Peter Norvig is a leading computer scientist, and currently Director of Research at Google. As a teaching tool, he created a simple model economy in Python. The Jupyter notebook explains the code and has some very interesting charts. A quick read of the notebook would give the impression that just about every choice of beginning income distribution, interaction, and transaction leads to serious inequality as measured by the Gini coefficient. This blog will show that that conclusion is wrong.

All models are wrong, but some are useful. – George Box

“All models are wrong…” is the statistician’s version of the aphorism “the map is not the territory.” In the case of Norvig’s Economics Game, the fact that it is implemented in Python gives us unusual insight into how the model is wrong and where we can tinker with it.

The key to Norvig’s model is the basic transaction. In this transaction, two individuals pool their resources and roll the dice on how to split them up.

This model of the economy is almost exactly the opposite of most models. If you look at most ‘rational man’ or ‘economic man’ models, they start with a market in which perfectly rational actors, with complete information, transact simultaneously in an infinite number of frictionless transactions that establish the clearing price for whatever goods are being traded. Instead, this model pair up individuals in a high-risk gamble of no information. There is no market, no good being traded, and no price being set.

No bad actors

In addition, cursory analysis of the transaction shows why it creates inequality and why no rational actor would choose to participate. Consider the case of two actors who put in nearly the same amount to the pool, say 60 and 40 simoleons. If the random number generator spits out a split between .4 and .6 the result will be that the actors have more equal amounts of money than when they started.

Considering the number line between 0 and 1, .4 to .6 is only 20% of the line. Therefore, the vastly more probable result, 80%, is that the wealth shares will be more unequal than previously.

The only group for whom the transaction is actually attractive is the very poor.  In this case, the poor actor has very little to lose and only a small chance of losing it, but they might become instantly rich.

Norvig’s results show exactly this kind of churn. Actors gain and lose fortunes in a single transaction. It is all very chaotic. But is it a bad model?

Actually, it is a very good model of the irrational choices people make every day. It is a good model of the substantial risks a farmer takes growing crops, or a business takes creating a product. The model captures perfectly our willingness to make stupid choices by distilling the economy down to the stupidest transaction possible.

So instead of controlling the economy, and assuming everyone only does smart things, let’s see what can be done while assuming the worst. Is there anything that can save this economy from falling into stark wealth inequality?

Yes, there is.

Taxes to the rescue

One of the modifications that Norvig shows is a primitive tax scheme.

In [20]:
def redistribute(A, B, rate=0.31):
    "Tax both parties at rate; split the tax revenue evenly, and randomly split the rest."


flat tax model

Here, we see that a ‘flat tax’ does help some, but as Norvig says

Another surprise: This transaction function does indeed lead to less inequality than split_randomly or winner_take_all, but surprisingly (to me) it still increases inequality compared to the initial (Gaussian) population.

Well, we can improve on that result, even though Norvig does not pursue it. I took Norvig’s Python code and added some functions to calculate a graduated tax and a split that gave 2/3 of the tax receipts to the poorer of the two parties. I also added data for tax rates of 2018 and 1979, the year before Reagan started chopping away at the progressive tax system.

My results show that the current rates, like the flat tax tested by Norvig, don’t help wealth inequality all that much. However, with the progressive rates of  1979, we can actually achieve a very substantial result, lowering inequality to levels of European social democracies.


This is the important point. Even allowing people the freedom to participate in the worst (riskiest and self-destructive) underlying economic transactions, a progressive tax and wealth redistribution system can preserve societal structures at acceptable levels.

As Stiglitz said, we make the rules. We had rules that worked to keep a lid on inequality, and we foolishly blew them up. Lowering top tax rates has never grown the economy, all it has done is make rich people richer. Returning to a more progressive system of taxation and wealth redistribution will benefit our society.

Nerdy postscript

Norvig says he is surprised that a flat tax can’t return the wealth distribution to the beginning ‘bell curve’ distribution. But looking at the Gini coefficients of real economies, that isn’t a realistic goal or expectation.

Norvig’s own ending is important. Data modeling is far more accessible and easier to change than a pen-and-paper Markov model or an R model.

The latest version of Norvig’s notebook (linked above) includes another simple model that is less illuminating of economics but does show that Gini is not necessarily a perfect measure of inequality. As that model shows, it is possible to have a few superwealthy people throw off the calculation of inequality. This shows that multiple measures – of inequality, poverty, and mobility, for example, are necessary for any deeper model of the structural problems of a real economy.