Threshold distribution to support market over random allocation, for identical risk-neutral actors under constant returns to scale.

So, “risk neutal actors” implies that we can simply compare the expected value of outcomes without mapping them through utilities and our agents will prefer the highest value outcome. Equivalently, it implies our actors’ utility functions are linear, with marginal utility neither increasing nor decreasing. Which lets us map utility to wealth directly. Yay.

“Constant returns to scale” implies that the utility possibilities frontier does not bend. We can produce for one agent or for another and there is a tradeoff, but the tradeoff doesn’t increase (or decrease) as we specialize production towards any one agents preferences.

So, what we end up with is a linear utility possibilities curve. We can normalize the maximum values to one. Here is the utility possibilities curve for two agents.

Plot[1-x,{x,0,1},Frame->True,Filling->Bottom,FrameLabel->{"Kaldor","Hicks"},AspectRatio->1]

We are looking for the point on the x-axis where 50% of the area is to the left and 50% is to the right. For a triangle this would be easy, but we want to consider an economy with many more than two people, which means we’re going to end up with pyraminds and hyperpyramids:

Plot3D[1-x-y,{x,0,1},{y,0,1},AspectRatio->1,PlotRange->{0,1},Filling->Bottom]

So, it will be simplest to think about cubes and cubic sections. Here is our two dimensional frontier expanded into a 2D “hypercube”, also known as a square.

Graphics[{EdgeForm[Directive[{Thick,Black}]],Cyan,Rotate[Rectangle[{-((Sqrt[2])/2),-((Sqrt[2])/2)},{((Sqrt[2])/2),((Sqrt[2])/2)}],(π/4)]},Axes->True]

By symmetry, we can see that what we are looking for is the section of the “hypercube” cut along the x-axis that would divide the “volume” (area in 2D) into quarters. Or, equivalently, that would divide half the hypercube into two. This generalizes to any dimension. We will always imagine our hypercube lying such that the x-axis extends from one diagonal to its opposite. So:

volumeOfHalfHypercube[n_, sideLength_]:=((sideLength^n)/2)

volumeOfHalfHypercubeByLengthAlongXAxisFromCorner[n_, len_]:=volumeOfHalfHypercube[n,(Sqrt[2])len]

Here’s the equation that captures what we want, we want to find the length from the corner that gives us a half-hypercube whose “volume” is half of the full half-hypercube. Note that the full hypercube has a side-length of (Sqrt[2]), traveling diagonally between points one unit along the axes.

Solve[volumeOfHalfHypercubeByLengthAlongXAxisFromCorner[n, len]==(1/2)volumeOfHalfHypercube[n, (Sqrt[2])],len]

So we have the distance from the corner we need to go. The corner, in any dimension, we think of as oriented at (1,0) on the x-axis. So, to find the x value associated with that length, we just subtract it from 1:

xSlice[n_]:=1-(2^(-(1/n)))

The hyperplane that represents our multidimensional utility possibilities curve has the equation:

(∑_(i=1)^n)(Subscript[x, i])=1

So, the distribution under equality means (1/n)for each agent.

distributionUnderEquality[n_]:=(1/n)

Now we consider, for the agent whose wealth/utility is reflected by the x-axis, the ratio between the amount she requires to support a market allocation (given by xSlice) and the amount she would have under an equal distribution (distributionUnderEquality), for any number of agents — which means dimension — n:

minimumFractionOfEqualDistribution[n_]:=((xSlice[n])/(distributionUnderEquality[n]))

We want to consider an economy with lots and lots of agents, so let’s find the limit of that last quantity as n->∞:

Limit[minimumFractionOfEqualDistribution[n],n->∞]

Which, as a decimal number is approximately...

N[Log[2]]

And we’re done.

A quick, dumb sanity check...

In a two dimensional world, we can solvefind the xSlice by simple integration. The area of the full utility possibilities triangle would be (1/2) (1 1)=(1/2). We want the x value that gives us a trapezoid whose area is (1/2) that, or (1/4).

Solve[(∫_0^x)(1-t)\[DifferentialD]t==(1/4),x]//FullSimplify

Does that agree with our formula?

xSlice[2]

Yes, it does. In a 2D world, under equality each agent would have a utility of (1/2). So, we expect for a 2-agent economy the fraction of the mean required to keep an agent happy to be:

((1-(1/(Sqrt[2])))/(1/2))

...which had better be the same as what our function would have given:

2 (1-(1/(Sqrt[2])))==minimumFractionOfEqualDistribution[2]//Simplify

Hooray!