|
|
| Probability Discussions of probability theory |
09-29-2011, 02:20 PM
|
#1
|
|
Carpal \'Tunnel
Join Date: Jun 2005
Location: Psychology Department
Posts: 6,793
|
Risk of Ruin playing the WSOP ME
I've been playing around with Risk of Ruin for MTT players lately and I came across an issue. First, consider the traditional risk of ruin formula:
e-2*WR*BR/VAR
where WR is one's win-rate, BR is one's starting bankroll, and VAR is the variance around the win-rate. This is the formula typically used to estimate risk of ruin for cash game players (at least as far as I know). We can replace WR with ROI*BI (return on investment * buy-in) for tournament players and we get basically the same formula:
e-2*ROI*BI*BR/VAR
In tournaments we can calculate the VAR around one's ROI using the following formula:
VAR = sum[ (prizes-BI)^2 * p(prize) ] - ROI^2
where prizes is a vector of all of the possible prizes one could win (you get $0 if you finish OOTM), BI is the buy-in, p(prize) is the probability of winning each particular prize in that vector, and ROI is the return on investment.
Therefore, if we have information about the prizes and the probability of winning each prize, we have all of the information we need to calculate the Risk of Ruin for a particular player playing a series of MTTs with that structure.
Now, consider the following prize structure (from the 2010 WSOP Main Event, 7319 runners):
Code:
Prizes Profits Places Probs Probs15
8944310 8934310 1 0.000136631 0.000200803
5545955 5535955 2 0.000136631 0.000200803
4130049 4120049 3 0.000136631 0.000200803
3092545 3082545 4 0.000136631 0.000200803
2332992 2322992 5 0.000136631 0.000200803
1772959 1762959 6 0.000136631 0.000200803
1356720 1346720 7 0.000136631 0.000200803
1045743 1035743 8 0.000136631 0.000200803
811823 801823 9 0.000136631 0.000200803
635011 625011 10-12 0.000409892 0.00060241
500165 490165 13-15 0.000409892 0.00060241
396967 386967 16-18 0.000409892 0.00060241
317161 307161 19-27 0.001229676 0.001807229
255242 245242 28-36 0.001229676 0.001807229
206395 196395 37-45 0.001229676 0.001807229
168556 158556 46-54 0.001229676 0.001807229
138285 128285 55-63 0.001229676 0.001807229
114205 104205 64-72 0.001229676 0.001807229
94942 84942 73-81 0.001229676 0.001807229
79806 69806 82-90 0.001229676 0.001807229
67422 57422 91-99 0.001229676 0.001807229
57102 47102 100-171 0.00983741 0.014457831
48847 38847 172-243 0.00983741 0.014457831
41967 31967 244-315 0.00983741 0.014457831
36463 26463 316-387 0.00983741 0.014457831
31647 21647 388-459 0.00983741 0.014457831
27519 17519 460-531 0.00983741 0.014457831
24079 14079 532-603 0.00983741 0.014457831
21327 11327 604-675 0.00983741 0.014457831
19263 9263 676-747 0.00983741 0.014457831
0 -10000 748+ 0.897936877 0.85
Note that the prizes column is the amount of money awarded, while the profits columns is the prizes column minus $10,000 (the BuyIn). The places column indicates how many places were paid each unique prize. Finally, the probability column contains the theoretical probability of finishing in each payout position if there were no skill involved at all. In other words, this represents the payout distribution of a player who would break-even if there were no rake, or because there is a $600 rake in the main-event, should expect to lose $600 (an ROI of -6%) each time he plays. This player also has an ITM of 10.20631%.
Using this data and the formula listed above, we can calculate the risk of ruin for a player like this with a $1 million (100 BIs) bankroll. First it should be noted that the actual ROI (if you calculate on these numbers) is -5.999373%. This is probably due to rounding in the payouts by the WSOP (I'm not sure though). Using this, we can also find that the VAR is 21151033348 (SD = $145,433.948403) for this player.
RoR = e-2 * -.05999373 * 10,000 *1,000,000 / 21151033348 = 105.836883
That is good because we know that a player with a negative expectation should always lose. I also built a tool for simulating risk of ruin. This tool requires that you set an "upper-limit" stopping point (i.e. point at which one will stop playing). I set it at 10,000,000 (1000 buyins). The source code for the simulation (using R) is posted here:
Code:
RoR.sim <- function(prizes, probs, startBR=100, winAmt=5*startBR, sims=1000) {
if(sum(probs) != 1) {stop("Finish probabilities do not total 1.00. Please adjust input probabilities.")}
if(length(prizes) != length(probs)) {stop("prizes and probs must be the same length (have the same number of elements).")}
BI <- -min(prizes)
ROI <- sum(prizes*probs) / BI
VAR <- sum(prizes^2 * probs) - ROI^2
if(sims==FALSE) {tradRoR <- exp(-2*(ROI*BI)*startBR/VAR)
out <- rbind("ROI %"=ROI, "Traditional RoR"=tradRoR)
colnames(out) <- "Results"
return(out)
}
res <- rep(NA, sims)
print("Simulating...please wait")
for (i in 1:sims) {
BR <- startBR
if(i == .25*sims) {print("25% of sims complete.")}
if(i == .5*sims) {print("50% of sims complete.")}
if(i == .75*sims) {print("75% of sims complete.")}
while(BR >= BI & BR < winAmt) {
BR <- BR + sample(prizes, 1, T, prob=probs)
}
res[i] <- BR
}
tradRoR <- exp(-2*ROI*BI*startBR/VAR)
out <- rbind(sims, BI, startBR/BI, ROI*100, sqrt(VAR), tradRoR*100, (sum(res < BI) / sims)*100, (sum(res >= winAmt) / sims)*100)
rownames(out) <- c("Sims", "BuyIn", "BR (in Buyins)", "ROI %", "SD", "Trad. Ruin %", "Sim. Ruin %", "Sim. Win %")
colnames(out) <- "Results"
return(out)
}
Running this code using these data as inputs returned the following results:
Code:
Results
Sims 1000.000000
BuyIn 10000.000000
BR (in Buyins) 100.000000
ROI % -5.999373
SD 145433.948403
Trad. Ruin % 105.836883
Sim. Ruin % 92.900000
Sim. Win % 7.100000
Which isn't too bad given the somewhat arbitrary stopping rule (if I made the stopping point higher, the player would go broke more often).
So that is all well and good. The traditional RoR formula maps onto a simulated model of RoR pretty well (in fact, we know it is actually better).
However, something happens when I have a different type of player. Consider doing the same analysis on a player who gets in the money 15% of the time instead of simply losing to the rake. This player's finish distribution is represented in the aforementioned table under the column labeled "Probs15."
The traditional RoR formula indicates that the probability of this player (still with 100 BIs) going broke is 78.20549%, however the simulated Ruin % is 55.40%. Now, you might say that this is because of the 1000 x the BI stopping rule again. So I ran the analysis again, this time setting the stopping rule at 2000 Buyins rather than 1000. In this case, the simulated Ruin % was 56.6%...a tiny increase. To be extra sure, I ran the RoR simulation one more time with the stopping rule at a whopping 5000 buyins and this resulted in a Ruin % of 57%.
So something is going on here and I don't think it can all be attributed to the use of stopping rule because if a player of this ability actually reaches 5000 buyins, the probability of him becoming ruined playing this game is so tiny that the player will virtually never go broke. That is, I don't think increasing the stopping rule further is ever going to get us to the 78.20549% Risk of Ruin that the traditional formula suggests.
So what the heck?
|
|
|
09-29-2011, 02:50 PM
|
#2
|
|
veteran
Join Date: Dec 2003
Location: US
Posts: 3,033
|
Re: Risk of Ruin playing the WSOP ME
It seems you want profits instead of prizes a couple times in your code.
Also why does the simulation end when the player's BR reaches 5*startBR?
|
|
|
09-29-2011, 02:57 PM
|
#3
|
|
Carpal \'Tunnel
Join Date: Jun 2005
Location: Psychology Department
Posts: 6,793
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by jmark
It seems you want profits instead of prizes a couple times in your code.
Also why does the simulation end when the player's BR reaches 5*startBR?
|
Nah...I enter the profits. It says prizes, but that is just bad coding on my part. I give the functions the profits...not the prizes, so the numbers (like ROI) come out as they should. I'm actually re-writing some other functions to fix this (i.e. so that one can enter the prizes and the BI and it computes the profits for the calculations).
That code just gives the function a default stopping point if one isn't provided. For some reason I decided 5 times the starting bankroll was a good default. But in the simulations I am talking about above, I didn't use that default. I did 10 times, 20 times, and 50 times respectively.
|
|
|
09-29-2011, 03:53 PM
|
#4
|
|
old hand
Join Date: Jun 2011
Posts: 1,303
|
Re: Risk of Ruin playing the WSOP ME
The exponential formula isn't an exact RoR estimator?
The first example gives you a RoR of more than 100% and that obviously isn't correct.
Is the simulation really supposed to converge to the exponential formula over the the long run?
How many "tourneys" is the average simulation having to do before you either go busto or stop because you profited the top prize (or even more) lifetime?
|
|
|
09-29-2011, 06:47 PM
|
#5
|
|
Carpal \'Tunnel
Join Date: Jun 2005
Location: Psychology Department
Posts: 6,793
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by tringlomane
The exponential formula isn't an exact RoR estimator?
The first example gives you a RoR of more than 100% and that obviously isn't correct.
Is the simulation really supposed to converge to the exponential formula over the the long run?
How many "tourneys" is the average simulation having to do before you either go busto or stop because you profited the top prize (or even more) lifetime?
|
Well if you have an negative win-rate, which we do in the first case, you are guaranteed to bust in the long run. So there is a sense in which the formula is correct because the theoretical upper limit to a Risk of Ruin is 100%. Even though the computation goes over 100%, it is considered a 100% Risk of Ruin. Not a lot of people are familiar with that aspect of the formula though because we don't usually both computing RoR when our expectation is negative. :-)
In regards to your second question, the answer is most certainly yes. If the formula is performing correctly, it should mirror the results exactly. That is why I think there is a problem. I know I suggested this could be an issue in another thread, but until now, I hadn't actually found a situation where the two methods (formula & simulation) didn't closely converge. Of course, I haven't really tried very hard either. Up until this tests, I had only looked at HUSNGs, STTs, and 180 person MTTs.
I don't keep track of how many tournies it takes for the simulations to finish. I could add that feature to the function of course, but that requires storing more information in memory and I guess I don't feel that is worth spending the memory on for most purposes. It might be worth adding to figure out what is going on here though.
|
|
|
09-30-2011, 01:53 AM
|
#6
|
|
old hand
Join Date: Jun 2011
Posts: 1,303
|
Re: Risk of Ruin playing the WSOP ME
From the "Video Poker" thread in Other Gambling games:
Quote:
Originally Posted by bandit8402
|
Using the formula in the article with 2010 WSOP payouts yields a ROR of 57.4% for someone that starts with a 100BI bankroll, which is consistent with your simulations (and mine rerunning your code).
Using the RoR formula:
# of BI...RoR
10 0.9459659563
25 0.8703396476
50 0.7574911021
100 0.5737927698
200 0.3292381426
300 0.1889144658
500 0.0621978478
750 0.01551183
1000 0.0038685723
|
|
|
09-30-2011, 09:36 AM
|
#7
|
|
Carpal \'Tunnel
Join Date: Jun 2005
Location: Psychology Department
Posts: 6,793
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by tringlomane
From the "Video Poker" thread in Other Gambling games:
Using the formula in the article with 2010 WSOP payouts yields a ROR of 57.4% for someone that starts with a 100BI bankroll, which is consistent with your simulations (and mine rerunning your code).
Using the RoR formula:
# of BI...RoR
10 0.9459659563
25 0.8703396476
50 0.7574911021
100 0.5737927698
200 0.3292381426
300 0.1889144658
500 0.0621978478
750 0.01551183
1000 0.0038685723
|
Very cool. The only problem is, I don't really understand the equations in their article. Can you use the formula in their article for my information (as you mentioned you did already) and post it here so that I can see how it actually works?
|
|
|
09-30-2011, 11:24 AM
|
#8
|
|
Carpal \'Tunnel
Join Date: Sep 2002
Posts: 7,138
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by Sherman
Very cool. The only problem is, I don't really understand the equations in their article. Can you use the formula in their article for my information (as you mentioned you did already) and post it here so that I can see how it actually works?
|
You have to solve a high order polynomial equation with 32 terms, since there are 31 possible payoffs. This is done numerically in Excel. There is not a closed form solution in general. I'll let tringlomane post this since he's already done it. I've used this method on here before.
You have to understand what our usual risk of ruin formula represents. It gives the risk of ruin for a biased coin flip game with 2 possible payouts where the EV and SD of the coin flip game is the same as that of our poker game. This is an approximation that works well for games like blackjack and poker ring games because they can be modeled this way accurately even though their payouts are variable. It will break down for games with highly skewed payouts such as the tournament in the OP. In this case, the more general formula takes into account multiple payouts, but the resulting polynomial equation is based on the same principle as used in the derivation of our usual risk of ruin formula which considers 2 payouts.
While the formula in the article usually gives good results, there is a problem which sometimes arises with it as well. That is, the idea that we can find the ROR for a B bet bankroll by taking the risk of ruin for a 1 bet bankroll and raising it to the B power is not exact for variable payouts because we don't actually have to lose 1 bet in B independent trials to go broke. Unlike for video poker, the polynomial powers will not be integers for the WSOP because the payouts are not all integer multiples of the buy-in.
Last edited by BruceZ; 09-30-2011 at 11:59 AM.
|
|
|
09-30-2011, 01:17 PM
|
#9
|
|
old hand
Join Date: Jun 2011
Posts: 1,303
|
Re: Risk of Ruin playing the WSOP ME
As Bruce says, I basically Excel'ed it up by using:
R = Sum(i=1 to N) p_i*R^(payout_i)
Where R = RoR for 1 BI bankroll, p_i = probability of ith payout occuring, payout_i = Total payout for ith payout (including original buyin), N = total number of unique payout
So for not cashing the term is: 0.85*R^0....for winning the event the term is 0.0002008032*R^894.4138
Sum all the possible payouts together and solve for R for a SINGLE buyin.
To find RoR for BR's > 1 BI...just use the R value solved for the 1 BI case and exponentiate it for the appropriate BR value:
So RoR for 500 BI case equals:
R(for 1 BI)^500 = 0.99446053^500 = 0.0622
|
|
|
09-30-2011, 01:47 PM
|
#10
|
|
Carpal \'Tunnel
Join Date: Jun 2005
Location: Psychology Department
Posts: 6,793
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by tringlomane
As Bruce says, I basically Excel'ed it up by using:
R = Sum(i=1 to N) p_i*R^(payout_i)
Where R = RoR for 1 BI bankroll, p_i = probability of ith payout occuring, payout_i = Total payout for ith payout (including original buyin), N = total number of unique payout
So for not cashing the term is: 0.85*R^0....for winning the event the term is 0.0002008032*R^894.4138
Sum all the possible payouts together and solve for R for a SINGLE buyin.
To find RoR for BR's > 1 BI...just use the R value solved for the 1 BI case and exponentiate it for the appropriate BR value:
So RoR for 500 BI case equals:
R(for 1 BI)^500 = 0.99446053^500 = 0.0622
|
Ok...so the first part of the this is what I am not quite getting. We have R on both sides of the equation and we don't know what R is, so we have to come up with some number for R that makes both sides equal to each other?
We need R == sum( p * R prize) to be TRUE in other words?
This seems fairly complicated to solve for R, so how do you go about doing that? Or is it simpler than this and I am missing something?
Maybe we could start with something simple like this:
STTprizes <- c(50, 30, 20, 0)
STTprofits <- c(39, 19, 9, -11)
STTprob <- c(.1, .1, .1, .7)
So we have a 10 person STT that pays the top 3 positions and we have a 1/10 probability of falling into any position. The price is $10+1 and the payout structure is 50, 30, 20, 0...0. Obviously we are losing to the rake, so we should find an RoR of 1.0. How do we calculate the RoR for one BI in this case?
|
|
|
09-30-2011, 02:08 PM
|
#11
|
|
Carpal \'Tunnel
Join Date: Sep 2002
Posts: 7,138
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by Sherman
We need R == sum( p * Rprize) to be TRUE in other words?
This seems fairly complicated to solve for R, so how do you go about doing that? Or is it simpler than this and I am missing something?
|
Non-linear equations like this are solved numerically, such as with Excel's goal seek feature. Basically it makes iterative guesses until it converges on the answer. You can make the iterative guesses manually too. And of course R will have a utility to do it.
|
|
|
09-30-2011, 02:17 PM
|
#12
|
|
Carpal \'Tunnel
Join Date: Jun 2005
Location: Psychology Department
Posts: 6,793
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by BruceZ
Non-linear equations like this are solved numerically, such as with Excel's goal seek feature. Basically it makes iterative guesses until it converges on the answer. You can make the iterative guesses manually too. And of course R will have a utility to do it.
|
Ok. That is what I was guessing is going on. I've never used Excel's goal seek so I have no idea how that works. I've never built a function in R that uses iterative search either. Guess I need to figure that out.
Thanks guys.
|
|
|
09-30-2011, 02:26 PM
|
#13
|
|
Carpal \'Tunnel
Join Date: Sep 2002
Posts: 7,138
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by Sherman
Ok. That is what I was guessing is going on. I've never used Excel's goal seek so I have no idea how that works. I've never built a function in R that uses iterative search either. Guess I need to figure that out.
|
That article has a paragraph describing how to do in Excel. It's easy. You put the formula in one cell arranged so it equals 0, and it uses another cell for the variable we are trying to find. Then just select goal seek, and tell it what cell you want to be 0, and what cell you want it to change. You can also specify accuracy or iterations for such calculations. In R, just look for a non-linear equation solver. Many use Newton's method.
BTW, in that article, they compare the performance of their formula to a risk of ruin formula presented by George C. when they are applied to video poker. The George C. formula may not look like the exponential formula we use, but it is almost identical when the SD is large compared to the EV which it almost always is for our cases of interest. Our formula is a simplification of his formula for these cases, and my derivation that I linked to actually derives his formula first, then simplifies it to our usual exponential formula.
|
|
|
09-30-2011, 02:39 PM
|
#14
|
|
Carpal \'Tunnel
Join Date: Jun 2005
Location: Psychology Department
Posts: 6,793
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by BruceZ
That article has a paragraph describing how to do in Excel. It's easy. You put the formula in one cell arranged so it equals 0, and it uses another cell for the variable we are trying to find. Then just select goal seek, and tell it what cell you want to be 0, and what cell you want it to change. You can also specify accuracy or iterations for such calculations. In R, just look for a non-linear equation solver. Many use Newton's method.
BTW, in that article, they compare the performance of their formula to a risk of ruin formula presented by George C. when they are applied to video poker. The George C. formula may not look like the exponential formula we use, but it is almost identical when the SD is large compared to the EV which it almost always is for our cases of interest. Our formula is a simplification of his formula for these cases, and my derivation that I linked to actually derives his formula first, then simplifies it to our usual exponential formula.
|
Ok. I found what I think is the thing I want in R. Perhaps if you have time Bruce you can see if this is it?
http://127.0.0.1:31428/library/stats/html/optimize.html
I can do things like this:
optimize(function(x) sum(STTprob*x^STTprizes), c(0,1), tol=.000000001)
This says, optimize the function:
sum(STTprob*x^STTprizes) between the ranges of 0 and 1 with some really low precision (.0000001 or whatever).
It returns two results. A "minimum" and an "objective." I'm not sure what the difference between these is, but they converge as you decrease the tol= option.
|
|
|
09-30-2011, 02:43 PM
|
#15
|
|
Carpal \'Tunnel
Join Date: Sep 2002
Posts: 7,138
|
Re: Risk of Ruin playing the WSOP ME
Quote:
Originally Posted by Sherman
Ok. I found what I think is the thing I want in R. Perhaps if you have time Bruce you can see if this is it?
http://127.0.0.1:31428/library/stats/html/optimize.html
I can do things like this:
optimize(function(x) sum(STTprob*x^STTprizes), c(0,1), tol=.000000001)
This says, optimize the function:
sum(STTprob*x^STTprizes) between the ranges of 0 and 1 with some really low precision (.0000001 or whatever).
It returns two results. A "minimum" and an "objective." I'm not sure what the difference between these is, but they converge as you decrease the tol= option.
|
That link didn't work, but optimize usually means find the value that makes it a maximum. You want to find the value that makes it equal to zero. Actually what you have minus x should be zero. It is possible that the same routine can do both.
|
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 01:33 PM.
|