# Even Odds

(Cross-posted on my per­sonal blog, which has LaTeX, and is eas­ier to read.)

Let’s say that you are are at your lo­cal less wrong meet up and some­one makes some strong claim and seems very sure of him­self, “blah blah blah re­s­ur­rected blah blah al­i­corn princess blah blah 99 per­cent sure.” You think he is prob­a­bly cor­rect, you es­ti­mate a 67 per­cent chance, but you think he is way over con­fi­dent. “Wanna bet?” You ask.

“Sure,” he re­sponds, and you both check your wallets and have 25 dol­lars each. “Okay,” he says, “now you pick some bet­ting odds, and I’ll choose which side I want to pick.”

“That’s crazy,” you say, “I am go­ing to pick the odds so that I can­not be taken ad­van­tage of, which means that I will be in­differ­ent be­tween which of the two op­tions you pick, which means that I will ex­pect to gain 0 dol­lars from this trans­ac­tion. I wont take it. It is not fair!”

“Okay,” he says, an­noyed with you. “We will both write down the prob­a­bil­ity we think that I am cor­rect, av­er­age them to­gether, and that will de­ter­mine the bet­ting odds. We’ll bet as much as we can of our 25 dol­lars with those odds.”

“What do you mean by ‘av­er­age’ I can think of at least four pos­si­bil­ities. Also, since I know your prob­a­bil­ity is high, I will just choose a high prob­a­bil­ity that is still less than it to max­i­mize the odds in my fa­vor re­gard­less of my ac­tual be­lief. Your propo­si­tion is not strat­egy proof.”

“Fine, what do you sug­gest?”

You take out some pa­per, solve some differ­en­tial equa­tions, and ex­plain how the bet should go.

Satis­fied with your math, you share your prob­a­bil­ity, he puts 13.28 on the table, and you put 2.72 on the table.

A third meet up mem­ber takes quickly takes the 16 dol­lars from the table and an­swers, “You wait.”

I will now de­rive a gen­eral al­gorithm for de­ter­min­ing a bet from two prob­a­bil­ities and a max­i­mum amount of money that peo­ple are will­ing to bet. This al­gorithm is both strat­egy proof and fair. The solu­tion turns out to be sim­ple, so if you like, you can skip to the last para­graph, and use it next time you want to make a friendly bet. If you want to try to de­rive the solu­tion on your own, you might want to stop read­ing now.

First, we have to be clear about what we mean by strat­egy proof and fair. “Strat­egy proof” is clear. Our al­gorithm should en­sure that nei­ther per­son be­lieves that they can in­crease their ex­pected profit by ly­ing about their prob­a­bil­ities. “Fair” will be a lit­tle harder to define. There is more than one way to define “fair” in this con­text, but there is one way which I think is prob­a­bly the best. When the play­ers make the bet, they both will ex­pect to make some profit. They will not both be cor­rect, but they will both be­lieve they are ex­pected to make profit. I claim the bet is fair if both play­ers ex­pect to make the same profit on av­er­age.

Now, lets for­mal­ize the prob­lem:

Alice be­lieves S is true with prob­a­bil­ity p. Bob be­lieves S is false with prob­a­bil­ity q. Both play­ers are will­ing to bet up to d dol­lars. Without loss of gen­er­al­ity, as­sume p+q>1. Our bet­ting al­gorithm will out­put a dol­lar amount, f(p,q), for Alice to put on the table and a dol­lar amount, g(p,q) for Bob to put on the table. Then if S is true, Alice gets all the money, and if S is false, Bob gets all the money.

From Alice’s point of view, her ex­pected profit for Alice will be p(g(p,q))+(1-p)(-f(p,q)).

From Bob’s point of view, his ex­pected profit for Bob will be q(f(p,q))+(1-q)(-g(p,q)).

Set­ting these two val­ues equal, and sim­plify­ing, we get that (1+p-q)g(p,q)=(1+q-p)f(p,q), which is the con­di­tion that the bet­ting al­gorithm is fair.

For con­ve­nience of no­ta­tion, we will define h(p,q) by h(p,q)=g(p,q)/​(1+q-p)=f(p,q)/​(1+p-q).

Now, we want to look at what will hap­pen if Alice lies about her prob­a­bil­ity. If in­stead of say­ing p, Alice were to say that her prob­a­bil­ity was r, then her ex­pected profit would be p(g(r,q))+(1-p)(-f(r,q)), which equals p(1+q-r)h(r,q)+(1-p)(-(1+r-q)h(r,q))=(2p-1-r+q)h(r,q).

We want this value as a func­tion of r to be max­i­mized when r=p, which means that -h+(2r-1-r+q)(dh/​dr)=0.

Sepa­ra­tion of vari­ables gives us (1/​h)dh=1/​(-1+r+q)dr,

which in­te­grates to ln(h)=C+ln(-1+r+q) at r=p,

which sim­plifies to h=e^C(-1+r+q)=e^C(-1+p+q).

This gives the solu­tion f(p,q)=e^C(-1+p+q)(1+p-q)=e^C(p^2-(1-q)^2) and g(p,q)=e^C(-1+p+q)(1+q-p)=e^C(q^2-(1-p)^2).

It is quick to ver­ify that this solu­tion is ac­tu­ally fair, and both play­ers’ ex­pected profit is max­i­mized by hon­est re­port­ing of be­liefs.

The value of the con­stant mul­ti­plied out in front can be any­thing, and the most ei­ther player could ever have to put on the table is equal to this con­stant. There­fore, if both play­ers are will­ing to bet up to d dol­lars, we should define e^C=d.

Alice and Bob are will­ing to bet up to d dol­lars, Alice thinks S is true with prob­a­bil­ity p, and Bob thinks S is false with prob­a­bil­ity q. As­sum­ing p+q>1, Alice should put in d(p^2-(1-q)^2), while Bob should put in d(q^2-(1-p)^2). I sug­gest you use this al­gorithm next time you want to have a friendly wa­ger (with a ra­tio­nal per­son), and I sug­gest you set d to 25 dol­lars and re­quire both play­ers to say an odd in­te­ger per­cent to en­sure a whole num­ber of cents.

• A less com­plex way of mak­ing bets on prob­a­bil­ities, which I learned at a fi­nance in­tern­ship, is for one player to “make a mar­ket” on the out­come of in­ter­est—that is, offer to buy or sell con­tracts whose value set­tles to, e.g., $1 if the out­come is true and$0 if the out­come is false. If you make a mar­ket with a “spread”—e.g. buy at .40, sell at .60--then you can safely name your prob­a­bil­ity, as the coun­ter­party in this anec­dote asks you to do, with­out giv­ing up a large ad­van­tage. For ex­am­ple, at my in­tern­ship one com­mon thing was pre­com­mit­ting to trade on any mar­ket of a given spread.

This has the ad­van­tage of be­ing eas­ier to re­mem­ber and al­low­ing mul­ti­ple par­ties, but the dis­ad­van­tage of (prob­a­bly, I think) be­ing sub­ject to gam­ing and mar­ket dy­nam­ics which dis­tract from the prob­a­bil­ities (but are in­ter­est­ing in their own right).

• I don’t think it is too difficult to re­mem­ber. You put in the square of prob­a­bil­ity you think you’re cor­rect minus the square of prob­a­bil­ity he thinks you are cor­rect all times 25. He uses the same al­gorithm.

• A: 60% con­fi­dence B: 30% confidence

• af = .6 **2 == .36

• bf = .3 **2 == .09

• A pays (af—bf) * 25 == $6.75 • B pays (bf—af) * 25 == -$6.75?!?!

My in­tent is to demon­strate that, while the above is prob­a­bly in­cor­rect,

You put in the square of prob­a­bil­ity you think you’re cor­rect minus the square of prob­a­bil­ity he thinks you are cor­rect all times 25. He uses the same al­gorithm.

is not an ad­e­quate ex­pla­na­tion to re­mem­ber and get the right re­sult out of, be­cause the calcu­la­tions I speci­fied above are my gen­uine in­ter­pre­ta­tion of your state­ments.

(this prob­lem per­sists for ev­ery value of p and q, whether they to­tal to above 1 or not)

• Some­body replied with an ex­pla­na­tion of how I was ba­si­cally omit­ting the rel­a­tiviza­tion of ‘you’ when con­sid­er­ing what val­ues to use.

That is, B should bet ac­cord­ing to his con­fi­dence that he is cor­rect, which in my case would be 70%..

• B bets (.49 - .16) * 25 == $8.25 • A bets (.36 - .09) * 25 ==$6.75

• Since you know it’s wrong, how about you try again to make sense of it?

• Nei­ther prob­a­bil­ity should be <50%, you take the prob­a­bil­ity that your opinion is the right one, not whether the propo­si­tion is true or false.

In your ex­am­ple B would be bet­ting against his be­liefs, thus the nega­tive re­sult.

The right calcu­la­tion: A = 0.6 B = 0.7

A pays: (A ^ 2 - (1 - B) ^ 2) * 25 = (0.36 − 0.09) * 25 = 6.57
B pays: (B ^ 2 - (1 - A) ^ 2) * 25 = (0.49 − 0.16) * 25 = 8.25


Edit:

ac­tu­ally, it’s suffi­cient that A and B sum to over 1. Since you can always negate the con­di­tion, the right calcu­la­tion here is:

A = 0.4
B = 0.7

A pays: (A ^ 2 - (1 - B) ^ 2) * 25 = (0.16 − 0.09) * 25 = 1.75
B pays: (B ^ 2 - (1 - A) ^ 2) * 25 = (0.49 − 0.36) * 25 = 3.25


Also, ap­par­ently I can’t use the re­tract but­ton the way I wanted to use it.

• I’ve gen­er­al­ized the Even Odds Al­gorithm to any num­ber of peo­ple and any num­ber of al­ter­na­tives that they want to bet on. Here is the link http://​​by­way­of­con­tra­dic­tion.com/​​?p=118

• A sim­pler gen­er­al­iza­tion:

As­sume there are n peo­ple. Let S_i be per­son i’s score for the event in ques­tion from your fa­vorite proper scor­ing rule. Then let the to­tal pay­ment to per­son i be

$T_i=S_i-\frac{1}{n-1}\sum_{j\ne\,i}S_j$

(i.e. the per­son’s score minus the av­er­age score of ev­ery­one else). If T_i is nega­tive, that’s a pay­ment that per­son has to make.

This scheme is always strat­e­gyproof and bud­get-bal­anced. If the scor­ing rule is bounded, then the pay­ment is bounded. If the Breg­man di­ver­gence as­so­ci­ated with the scor­ing rule is sym­met­ric (like it is with the quadratic scor­ing rule), then each per­son ex­pects the same pay­ment (fair by your defi­ni­tion).

• Or in the lan­guage this com­ment uses, each player di­vides the square of their sur­prise equally among all the other play­ers.

• A worked ex­am­ple:

Your friend says “It’s to­tally gonna work this time”. You say “uh, no it’s not”. She says “Okay, maybe not but like 90% yes”. You say “Bet, it’s only like 1 in 4,” putting down $25 (.5625-.0081) =$13.86. She puts down her $25 (0.8281-.0625) =$19.14. She at­tempts, smug in her ex­pected 0.91 $13.86 − 0.09$19.14 = $10.89, while you wait arms folded for your ex­pected 0.75$19.14 − 0.25 $13.86 =$10.89.

Sweet! In prac­tice I would al­low any per­cent es­ti­mate, loser gets to keep frac­tional cents as a hu­morous con­so­la­tion prize, and ob­vi­ously always set­tle up over PayPal or suc­ces­sive games of zero $EV high card to even up to what­ever de­nom­i­na­tions the loser has on hand, be­cause us­ing pen­nies low­ers both par­ti­ci­pants$EV to nega­tive in­finity.

This doesn’t pun­ish es­ti­mates like 99.999% when the es­ti­mate should be more like 99%, un­less you rescale and al­low much higher than $25 bets. • Here is an­other at­tempt to pre­sent the same al­gorithm, with the goal of mak­ing it eas­ier to mem­o­rize: “Each puts in the square of their sur­prise, then swap.” To spell this out, I pre­dict that some event will hap­pen with prob­a­bil­ity 0.1, you say it is 0.25. When it hap­pens, I am 0.9 sur­prised and you are only 0.75 sur­prised. So I put down (0.9)^2 D, you put down (0.75)^2 D, and we swap our piles of money. Since I was more sur­prised, I come out the loser on the deal. “Square of the sur­prise” is a quan­tity com­monly used to mea­sure the failure rate of pred­ica­tive agents in ma­chine learn­ing; it is also known as Brier score. So we could de­scribe this rule as “each bet­tor pays the other his or her Brier score.” There was some dis­cus­sion of the mer­its of var­i­ous scor­ing sys­tems in an ear­lier post of Coscott’s. • I thought it was very in­ter­est­ing that my nat­u­ral as­sump­tions lead to a Brier score like sys­tem rather than Bayes score. I re­ally don’t think Bayesi­anists re­spect Brier score enough. • I thought it was in­ter­est­ing too. As far as I can tell, your re­sult is spe­cial to the situ­a­tion of two bet­tors and two events. The de­scrip­tion I gave de­scribes a bet­ting method when there are more than two al­ter­na­tives, and that method is strat­egy proof, but it is not fair, and I can’t find a fair ver­sion of it. I am re­ally stumped about what to do when there are three peo­ple and a bi­nary ques­tion. Naive ap­proaches give no money to the per­son with the me­dian opinion. • You could just do all three pair­wise bets. That will not be fair, since not ev­ery­one par­ti­ci­pates in all bets. The mid­dle man might just be guaran­teed to make money though. (for some prob­a­bil­ities) • As­sume p=0.5, q=0.8. Alice should bet d( (1-0.8)^2 − 0.5^2 ) = −0.21d. Am I miss­ing some­thing here? • You are cor­rect. There was a sign er­ror that I didnt no­tice be­cause the an­swer looked so similar to the one I knew was right from do­ing it be­fore Thanks! It is cor­rected now • This is great, thank you! • I claim the bet is fair if both play­ers ex­pect to make the same profit on av­er­age. I like this idea. As you say, it’s not the only way to define it but it does seem like a very rea­son­able way. The two play­ers have come upon a situ­a­tion which seems prof­itable to both of them and they sim­ply agree to “split the profit”. • In or­der to give the play­ers in­cen­tives to be hon­est, the al­gorithm seems to “use up” some of the to­tal po­ten­tial profit. For ex­am­ple, in the OP, the play­ers are in­structed to bet$2.72 and $13.28 when each was ac­tu­ally will­ing to bet up to$25. I think this also means that this method of com­ing up with bet amounts is not strat­egy proof if play­ers are able to lie about their max­i­mum bet amounts.

• Yes. That is cor­rect. It is only strat­egy proof if the max bet amount is fixed.

As for the used up po­ten­tial, that is com­mon in mechanism de­sign. It is very com­mon to have to choose be­tween Pareto op­ti­mal­ity and strat­egy proof.

• A fur­ther prob­lem with this mechanism: since the po­ten­tial profit isn’t ac­tu­ally used up be­fore the bet is re­solved (i.e., each player still has the money they didn’t put on the table), the play­ers can always make an­other bet with each other us­ing their re­main­ing money. But this knowl­edge changes the play­ers’ in­cen­tives when they’re choos­ing the prob­a­bil­ities to out­put.

I’m guess­ing that in or­der to de­sign a mechanism that is ac­tu­ally strat­egy proof, we’d need to make the cost more ex­plicit, for ex­am­ple by hav­ing a third party col­lect some sort of fee based on the ex­pressed prob­a­bil­ities.

• ...the play­ers can always make an­other bet with each other us­ing their re­main­ing money. But this knowl­edge changes the play­ers’ in­cen­tives...

From the OP:

“Now what?” He asks. A third meet up mem­ber takes quickly takes the 16 dol­lars from the table and an­swers, “You wait.”

• The play­ers had money left over. They only put in 16 of 50 dol­lars.

• I thought the ra­pidity with which the third per­son was de­scribed to have taken the funds in es­crow and de­clared, “You wait” in­di­cated that she (and you) had seen the prob­lem pointed out by Wei_Dai and moved to block it. (Silly me?)

• Here I thought it was just a joke about some­one steal­ing the stakes.

• I wasn’t try­ing to in­di­cate any­thing with the third per­son. Sorry for the con­fu­sion. I just thought that it would be hard to end the story with­out de­scribing where the money goes, since the pre­dic­tion I was refer­enc­ing was not go­ing to be an­swered for a year.

• What’s wrong with just us­ing this al­gorithm to es­tab­lish ra­tios be­tween bets, then scal­ing up to meet whichever limit is hit first?

In your ex­am­ple, it’d be scaled up to 5.12 against 25.

• That is not strat­egy proof

• Oh, I see. You prob­a­bly already un­der­stood that, but I’ll write it up for any­one else who didn’t ini­tially grok the pro­cess (like me).

In­tu­itively, the origi­nal al­gorithm in­cen­tivises peo­ple to post their true es­ti­mates by scal­ing up the op­po­nents in­vest­ment with your given odds, so that it doesnt pay for you to ar­tifi­cially lower your es­ti­mate. The pos­si­ble wins will be much lower; dis­pro­por­tionately to your in­vest­ment, if you un­der­es­ti­mate your odds. Con­versely, the pos­si­ble losses will not be cov­ered by in­creased wins if you over­es­ti­mate your chances.

It does not work if you scale the bets. If A be­lieves he wins the bet half the time, and B be­lieves it will be 90%, with the as­sump­tion of B be­ing hon­est and both play­ers set­ting the limit at 1 (for ease of calcu­la­tion):

With A declar­ing 50%, the in­vest­ment ra­tios would be:

A: 0.24
B: 0.56


With the origi­nal amount calcu­la­tion that gives the ex­pected value of

E(A) = (0.5 * 0.56 − 0.5 * 24) = 0.16


Whereas with scaled up bets A puts in 0.43 while B gives 1:

E’(A) = (0.5 * 1 − 0.5 * 0.43) = 0.285


With A declar­ing 20%, the num­bers are:

A: 0.03
B: 0.17
E(A) = 0.5 * (0.17 − 0.03) = 0.07


While with scaled bets (B = 1, A = 0.18)

E’(A) = 0.5 * 1 − 0.5 * 0.18 = 0.41


Note how E(A) goes down if A lies, but E’(A) went way up.

• “Sure,” he re­sponds, and you both check your wallets and have 25 dol­lars each. “Okay,” he says, “now you pick some bet­ting odds, and I’ll choose which side I want to pick.”

“That’s crazy,” you say, “I am go­ing to pick the odds so that I can­not be taken ad­van­tage of, which means that I will be in­differ­ent be­tween which of the two op­tions you pick, which means that I will ex­pect to gain 0 dol­lars from this trans­ac­tion. I wont take it. It is not fair!”

At first read­ing I got lost here—why would I say that this is crazy or that the bet is not fair if I ex­pect to gain (and lose) 0 dol­lars? Is the rea­son that my op­po­nent would ex­pect (ac­cord­ing to their es­ti­ma­tion of prob­a­bil­ities of events) to gain from the trade, and it’s not fair for all the gains to be on one side?

• That is ex­actly right.

• Thanks!

• This is in­deed great. I’ve already set it up in a bet­ting thread I run—I’ll re­port back with how well it works.

Note, if p > 1-q, then switch the sense of the bet so you’re work­ing with 1-p and q in­stead. Or tol­er­ate hav­ing nega­tive wa­gers as be­ing pay­outs in­stead of wa­gered amounts

ETA: uh, yes, I meant p < 1-q

• Ex­cited to see your re­port.

You meant to say if p<1-q, and yes the two in­ter­pre­ta­tions give the same re­sults. The mechanism also re­sults in no bet at all when the prob­a­bil­ities are the same. I did not have to make any as­sump­tions on the prob­a­bil­ities, but I did for the sake of pro­duc­ing pos­i­tive bets.

• I have used it in two places. In both places, it has cre­ated some slight con­fu­sion.

In one place, two promi­nent users said they are dis­satis­fied with it and not go­ing to use it again. This was be­cause the bet ended up much smaller than they origi­nally thought. It is not pop­u­lar there.

I changed the rule so if you de­clared a prob­a­bil­ity and a max bet, the scale is set so that the largest pos­si­ble bet you could end up mak­ing (if some­one puts down the 100% fur­ther away from your prob­a­bil­ity) is what you de­clared as the max bet, in­stead of us­ing the max bet as the scale di­rectly. That would have solved the prob­lem… but by that point the dam­age was done.

In the other place, I got a dozen par­ti­ci­pants to give their prob­a­bil­ity dis­tri­bu­tions for an out­come, us­ing a pool rule which is prob­a­bly equiv­a­lent to the rule for pools given el­se­where in this thread, but for more ob­vi­ous rea­sons (round robin of 1-on-1 bets on just the ob­served out­come, vs all other par­ti­ci­pants). Ap­par­ently, the band­wagon jumped onto was to try it rather than the re­verse. They might end up be­ing dis­ap­pointed by the small size of the re­sults too.

• Ah, didn’t catch that: “Without loss of gen­er­al­ity, as­sume p+q>1.”

• he puts 2.72 on the table, and you put 13.28 on the table.

I’m con­fused...if the pre­dic­tion does not come true (which you es­ti­mated as be­ing 33 per­cent likely) you only gain \$2.72? and if the most prob­a­ble out­come does come true you lose 13.28?

• Yep, I put the num­bers in back­wards (be­cause of the sign mis­take I made origi­nally.) I fixed it now. Thanks for the cor­rec­tion.

• For an ex­plicit deriva­tion of why this is fair:

Say that you be­lieve the event is likely with prob­a­bil­ity p, and your bet­ting part­ner tells you that it will fail with prob­a­bil­ity q. Then I am go­ing to mod­ify my es­ti­mate by c be­fore I tell it to the other per­son. So my ex­pected value is:

p*(q^2-(1-(p+c))^2) - (1-p)((p+c)^2 - (1-q)^2)

Nat­u­rally I want to find the lo­cal max­i­mum for vari­a­tion in c, for a fixed value of p and as­sum­ing q is out of my con­trol. So we take the deriva­tive with re­spect to c. Us­ing Wolfram Alpha shows this is −2c. So the only lo­cal max­ima pos­si­ble are tel­ling some­one 0, tel­ling them 1, or tel­ling them the true value of p.

• What if Alice is will­ing to bet up to d dol­lars, but Bob is will­ing to bet up to e dol­lars?

For what it’s worth, I don’t care that much about fair­ness. If I have to give it up to make it strat­egy-proof against ly­ing about the rel­a­tive amounts of money, that’s fine.

• Take the min­i­mum. If you re­quire that both par­ties are re­quired to have the amount of money they are will­ing to bet, then tak­ing the min­i­mum and then run­ning the al­gorithm is strat­egy proof and fair. The op­ti­mal strat­egy is to put in as much money as you can, then re­port hon­est prefer­ences.

• Yeah, but you might be able to find a bet­ter strat­egy. Per­haps you can get it so Alice and Bob both have a higher ex­pected benefit. Per­haps you can make Alice only go down slightly, but Bob go up sig­nifi­cantly.

• I think I can prove that you can­not in­crease the ex­pected benefit for both with­out know­ing some­thing about their prob­a­bil­ities ahead of time. You can sac­ri­fice fair­ness, but I do not think Alice can go up much more than Bob goes down, and I do not want to.

• I feel like if Bob has enough money, he ought to just be able to raise the stakes if he has enough money. In your ex­am­ple, if Alice is 50% sure, then she will never bet more than a quar­ter of her money, re­gard­less of how cer­tain and rich Bob is.

Even if I do have to let Bob go down a lit­tle, I still feel like it could be worth it. I don’t know be­fore-hand if I’m go­ing to be Alice or Bob, so it’s au­to­mat­i­cally fair. I want to max­i­mize the sum of their ex­pected prof­its.