Suppose you want to predict the outcome of a political election that has four candidates. One approach is to get a group of experts and allow them to buy and sell shares of the candidates in a way that’s similar to how the stock market works. When shares in a candidate are bought, the cost of that candidate increases. When shares are sold, the cost decreases. At any point in time, the number of shares of a candidate that are held can be mapped to a probability that the candidate wins.
The system I’ve described is called a prediction market.
There is a lot of interesting math behind prediction markets. There are two fundamental equations. One determines the cost to a buyer of n shares of candidate i. The second equation determines the probability of a particular candidate winning, given the number of outstanding shares.
Both equations use a number called the liquidity constant, usually given the symbol b (lower case ‘b’). A typical liquidity constant value is 100.0. Smaller values of b make cost changes of shares larger after shares are bought or sold. Larger values of b produce smaller changes in cost.
The graph here shows some examples. Imagine a political contest with four candidates. The four lines show how the cost for one share of a candidate changes as shares in that candidate are bought (and the number of shares of the other candidates is held constant at 0) for four different values of b (10.0, 50.0, 100.0, and 1000.0).
The graph indicates that a b value of 10.0 makes the cost of a share change very quickly. A b value of 1000.0 makes the cost of a share essentially constant regardless of the number of outstanding shares.
So, a b value of 100.0 is a nice compromise. But in some situations you might want to decrease the value of b in order to generate more buying and selling action from the experts. An idea I haven’t seen tried is to use a liquidity value that varies by time.
Note: The value of the liquidity constant, b, in addition to controlling how much the costs of shares change after a transaction, also sets a limit on the maximum loss to the owner of the market. For a game with n candidates/options, the maximum loss is b * lg(n). For example, if there are three candidates and b = 100.0 then the maximum loss to the market maker is 100.0 * ln(3) = 100.0 * 1.0986 = $109.86.