If your betting longshots and winning you're more likely to be getting lucky, but if you're loosing doing the same you're less likely to be getting unlucky.

[i]
Converting to probabilities using Excel's NORMSDIST() function yields:

P(obtaining handicapper A's result or better purely by chance) ≈ NORMSDIST(0.6492) ≈ 25.812%
P(obtaining handicapper B's result or better purely by chance) ≈ NORMSDIST(1.4500) ≈ 7.353%

So what we see is that a bettor placing the same bets as handicapper A would, purely by chance, obtain the same results as A (or better) about a quarter of the time.

Similarly, a bettor placing the same bets as handicapper B would, purely by chance, obtain the same results as B (or better) a bit less less than one time out of every 13.

Ganchrow,

Guess there's a typo in the above formulas. Shouldn't it be Probability (obtaining A's / B's results or better purely by chance) = 1- NORMSDIST (z-score (A / B)) ? The calculated values are not affected.

Thanks for this post and your other posts - very informative.

Guess there's a typo in the above formulas. Shouldn't it be Probability (obtaining A's / B's results or better purely by chance) = 1- NORMSDIST (z-score (A / B)) ? The calculated values are not affected.

Thanks for this post and your other posts - very informative.

Guess there's a typo in the above formulas. Shouldn't it be Probability (obtaining A's / B's results or better purely by chance) = 1- NORMSDIST (z-score (A / B)) ? The calculated values are not affected.

Thanks for this post and your other posts - very informative.

Damn, hell of a first post catching Ganch! I hope you stick around and offer some of your own ideas.

Perhaps if the goal of this exercise were to determine which of the two were the smarter person or the one with the better quality of life, then yes.

But in order to determine the significance of a betting record, then no.

Figuring out who has the better quality of life would be subjective but from a mathematical standpoint we could figure out who has the better record. Maybe something like dollars won divided by dollars wagered? Then you could build percentages off of that.

In an effort to make sure I'm doing this correctly, I thought I would post my past few bets and go through the process. I hope someone can confirm that I have the right answer.

Total Variance: 34270.51
Standard Deviation = sqrt(34270.51) ≈ $185.12

Now my actual result for this stretch of bets is +$305.37 for a remarkable 33.18% ROI.

My Z-Score is 1.65 and the 1-NORMSDIST(1.65) function in Excel gives me 4.95% but I'm not exactly sure what that means. If someone could elaborate on what that number means, it would help me.

Also, going a step further, I thought it would be useful to calculate my 99% confidence interval. I was hoping someone could check my work here too.
Lower bound = $305.37 - 2.58 * ($185.12/sqrt(33)) = $222.22
Upper bound = $305.37 + 2.58 * ($185.12/sqrt(33)) = $388.51

Now here is where I start to question if my work is correct. The lower bound on my 99% confidence interval would give me a still ridiculously high 24% ROI. That can't be correct, right? If anyone has some advice for me, I'd appreciate it.

Note: We are of course presupposing that the OP's data has been properly sampled and is not the result of data mining and is not subject to selection bias.

Originally Posted by splash

My Z-Score is 1.65 and the 1-NORMSDIST(1.65) function in Excel gives me 4.95% but I'm not exactly sure what that means. If someone could elaborate on what that number means, it would help me.

This means that a zero EV player would have a roughly 4.95% probability of achieving results at least as positive as yours strictly by chance. (I say "roughly" because this conclusion relies on what's known as the Central Limit Theorem, which only allows us to approximate the outcome distribution of a sufficient number of bets as Gaussian. The true p-value is actually more like 4.79%.)

Originally Posted by splash

Also, going a step further, I thought it would be useful to calculate my 99% confidence interval. I was hoping someone could check my work here too.
Lower bound = $305.37 - 2.58 * ($185.12/sqrt(33)) = $222.22
Upper bound = $305.37 + 2.58 * ($185.12/sqrt(33)) = $388.51

Now here is where I start to question if my work is correct. The lower bound on my 99% confidence interval would give me a still ridiculously high 24% ROI. That can't be correct, right? If anyone has some advice for me, I'd appreciate it.

What confidence interval are you trying to determine? The confidence interval for a single population edge parameter?

The problem with this would be that as odds shorten, the highest possible upper bound on edge decreases. For example, the highest possible edge given a line of -210 would be "only" 47.62%.

So if as our estimator of population edge we were to use our realized return (~33.22%), and if we wanted to guarantee ourselves meaningful results, then one thing we could do would be determine the 99% confidence interval for further observations given that our realized ROI were in fact our population edge (if we were dealing with a more modest population edge given our betting odds then we could get around this problem).

Letting x represent wager size and d, decimals odds we have:

σ^{2} = x^{2} * 133.22% * ( d -1 - 33.22% )

Taking the square root of the sum across your data sample yields:

σ ≈ $163.94

Hence our 99% (pseudo) confidence interval for our single population parameter would be given by:

Note: We are of course presupposing that the OP's data has been properly sampled and is not the result of data mining and is not subject to selection bias.

Wait, what do you mean by "data mining"? I did not handicap these bets. I have a database of MLB games for the past 10 years and I am using it to try to spot inefficiencies in market prices. There is no selection bias as these are actually my first 33 bets using this new system. I understand that I must be running very hot during this first stretch so I figured it would be useful to calculate my standard deviation and z-score.

This means that a zero EV player would have a roughly 4.95% probability of achieving results at least as positive as yours strictly by chance. (I say "roughly" because this conclusion relies on what's known as the Central Limit Theorem, which only allows us to approximate the outcome distribution of a sufficient number of bets as Gaussian. The true p-value is actually more like 4.79%.)

Ok I think I understand. So if there is only a 4.95% chance of achieving these results by chance, would it be accurate to conclude that there is a 95% chance that the system is doing something right?

What confidence interval are you trying to determine? The confidence interval for a single population edge parameter?

The problem with this would be that as odds shorten, the highest possible upper bound on edge decreases. For example, the highest possible edge given a line of -210 would be "only" 47.62%.

So if as our estimator of population edge we were to use our realized return (~33.22%), and if we wanted to guarantee ourselves meaningful results, then one thing we could do would be determine the 99% confidence interval for further observations given that our realized ROI were in fact our population edge (if we were dealing with a more modest population edge given our betting odds then we could get around this problem).

Letting x represent wager size and d, decimals odds we have:

σ^{2} = x^{2} * 133.22% * ( d -1 - 33.22% )

Taking the square root of the sum across your data sample yields:

σ ≈ $163.94

Hence our 99% (pseudo) confidence interval for our single population parameter would be given by:

$303.37 ± 2.5758 * $163.94
= [725.86, -118.72]

Or in percent terms:

= [78.96%, -12.91%]

Yes, thank you. That is precisely what I was trying to calculate. As my sample size grows, that interval should tighten. And once the lower bound rises above zero, I can be 99% sure my bets have a positive ROI. That is what I was trying to figure out.

Based on my analysis, Handicapper A is more successful. Comparing both handicappers, I determined that Handicapper A was up roughly 1 unit per game bet and Handicapper B was up roughly 1/3 of a unit per game bet. Now this analysis may not be meaningful because I do not know either player's average bet per game.

Based on my analysis, Handicapper A is more successful. Comparing both handicappers, I determined that Handicapper A was up roughly 1 unit per game bet and Handicapper B was up roughly 1/3 of a unit per game bet. Now this analysis may not be meaningful because I do not know either player's average bet per game.

Your analysis is wrong. Did you read the thread before commenting?

[/i]
Wait, what do you mean by "data mining"? I did not handicap these bets. I have a database of MLB games for the past 10 years and I am using it to try to spot inefficiencies in market prices. There is no selection bias as these are actually my first 33 bets using this new system. I understand that I must be running very hot during this first stretch so I figured it would be useful to calculate my standard deviation and z-score.

Ok I think I understand. So if there is only a 4.95% chance of achieving these results by chance, would it be accurate to conclude that there is a 95% chance that the system is doing something right?

Yes, thank you. That is precisely what I was trying to calculate. As my sample size grows, that interval should tighten. And once the lower bound rises above zero, I can be 99% sure my bets have a positive ROI. That is what I was trying to figure out.

That is still a tough assumption to make. There is always some bias. You are more likely than a random sample to have run good. Otherwise you wouldn't be here excited, asking questions. Hopefully, there's more than a 50-50 chance that the system is doing something right.

Note: This is not supposed to be a "Think Tank"-style thread but rather one that's meant to be accessible to a wider Players Talk audience. As always feel free to ask any relevant questions.

Handicapper A has a record of 12-68 for +79 units (obviously he's been betting many underdogs), while Handicapper B has a record of 63-17 for +26.5 units (obviously he's betting many favorites).

Based on these records who can we say is more likely to be a +EV handicapper?

Well, the truth is that armed with solely this information we can't say very much at all.

Even if we assume that each bettor were solely placing uncorrelated bets (and so, for example, weren't double counting a bet on a 5 inning line and a bet on a full game line) there are least two additional pieces of information that would further need to be considered:

How much did each handicapper wager on each bet?

At what odds were each bet placed?

One concept of great use to statisticians when analyzing data is that of the standard deviation. This refers to the degree of variability within a set of random (or partially random) data that may be attributed to chance.

For example, were you to flip a fair coin 1,000 times, then on average you'd expect to see 500 heads and 500 tails. But this doesn't mean you'd always expect to see exactly that heads/tails breakdown: sometimes you'd see 520 heads and 480 tails; or 488 heads and 512 tails; or every once in a long, long, long, long while 598 heads and 402 tails. In fact you'd only expect to see exactly 500 heads and 500 tails with probability 2.523%, which, while still the single most likely outcome is nevertheless a big dog to occur (fair odds of about +3864).

So this is where standard deviation comes in to play.

Every random variable is associated with both a "mean" (which is just an "average") and a "standard deviation". The mean tells us the expected value of the random variable, while the standard deviation tells us (loosely speaking) the expected degree to which we expect that that random value will tend deviate from that mean.

So let's go back to the example of flipping 1,000 coins. Obviously, the mean is 500 heads and 500 tails (which is what we'd "expect" to see on average). The standard deviation (and for now, don't worry where I'm getting this figure) is 15.81 heads.

So what does this standard deviation figure really tell us?

Well, for sufficiently large data sets it allows us to estimate the probability of a given event (or a rarer event) occurring. The way we do this is by formulating what's known as a "Z-score". The formula for a Z-score is given as follows:

Z = (Actual - Expected) / (Standard_Deviation)

So let's calculate the Z-score for each of the 4 heads/tails combinations above:

Z(500 heads) = (500 - 500) / 15.81 ≈ = 0

Z(520 heads) = (520 - 500) / 15.81 ≈ = 1.2649

Z(488 heads) = (488 - 500) / 15.81 ≈ = -0.7589

Z(598 heads) = (598 - 500) / 15.81 ≈ = 6.1981

OK so now we have a bunch of Z-scores. Now what?

We know from what's known as "The Central Limit Theorem" that as random data sets get sufficiently large the distribution approaches what's known as a "Gaussian" or simply a "Normal" distribution. The net effect of this is that we can treat Z-scores obtained from sufficiently large data sets as normally distributed random variables with a mean of 0 and a unit standard deviation.

Back when I was younger I remember our stats text books had pages of tables that converted between Z-scores and probabilities (not to mention the tables related to other commonly used distributions that are beyond the scope of this brief article). Luckily, those of us with MS Excel or OpenOffice Calc (or Google) no longer need to flip to the back of a book every time we encounter a Z-score.

Using the Excel function =NORMSDIST() (which the Excel help files explain, "Returns the standard normal cumulative distribution function. The distribution has a mean of 0 (zero) and a standard deviation of one. Use this function in place of a table of standard normal curve areas.") we can estimate the probabilities associated with each of the 4 Z-scores above:

P(500 or more heads) ≈ 1- NORMSDIST(Z(500 heads)) = NORMSDIST(0) = 50%

P(520 or more heads) ≈ 1 - NORMSDIST(1.2649) ≈ 10.30%

P(488 or more heads) ≈ 1 - NORMSDIST(-0.7589) ≈ 77.61%

P(598 or more heads) ≈ 1 - NORMSDIST(6.1981) ≈ 0.00000002858%

Note that because the NORMSDIST() function gives us the probability of the specified number or fewer heads, we subtract the resultant value from to give us the probability of the specified number or more heads.

There's actually a potentially easier, if less instructive, way of obtaining the same results using the related Excel function NORMDIST() (which the Excel help files explain, "Returns the normal distribution for the specified mean and standard deviation. This function has a very wide range of applications in statistics, including hypothesis testing."). This allows us to obtain identical results as those above without having to manually calculate a Z-score. The format is =NORMDIST(actual, mean, standard_deviation, TRUE). To wit:

P(500 or more heads) ≈ 1 - NORMDIST(500, 500, 15.81, TRUE) = 50%

P(520 or more heads) ≈ 1 - NORMDIST(500, 520, 15.81, TRUE) ≈ 10.30%

P(488 or more heads) ≈ 1 - NORMDIST(500, 488, 15.81, TRUE) ≈ 77.61%

P(598 or more heads) ≈ 1 - NORMDIST(500, 598, 15.81, TRUE) ≈ 0.00000002858%

which are of course values to identical to those obtained above.

So the next logical question for many sports bettor might be, "How would one use this to compare records between handicappers?"

Well the answer is pretty simple. We calculate a mean and standard deviation for each handicapper based upon his bets, and then using Z-scores determine the probability of obtaining such a record by chance alone.

The mean is the easy part. If we forget assume no juice, then the expected result for a handicapper is 0, in other words over the long run we expect him to break even. This is actually a bit less onerous an assumption than it might initially appear. Remember, we're not trying to determine if a handicapper is able to perform slightly better than a coin flipper, but rather determine how likely he is to be better than a breakeven handicapper. (Of no less importance is the fact this simplification makes the calculations much easier and allows to only concern ourselves only with the price of each bet rather than necessitate recording the price of the opposing side as well, so as to be able to calculate juice.)

The standard deviation is only slightly trickier. Recall from basic probability that the standard deviation is the square root of what's known as the variance (and that's really all you need to know about variance -- sqrt(variance) = standard deviation, and by the same token (standard deviation)^2 = variance). The standard deviation of a single "binary outcome" bet (meaning that the bet can only either win a certain amount or lose a certain amount -- we leave out pushes from our analysis) is given by this simple formula:

A 2 unit bet at => variance = 3^2 * ( - 1) ≈ 3.63636

A 3 unit bet at => variance = 3^2 * ( - 1) = 1.8

To then determine the variance across multiple bets, we simply sum up the variances of each individual bet.

Taking the square root of the sum then yields the standard deviation (which will be either in dollar or unit terms depending on how we choose to measure bet size).

So the total standard deviation of the 4 bets above would be given by:[indent]standard deviation = sqrt(4+2+3.63636+1.8) = 3.38177 units.

So now let's return to our two original handicappers (A & B) from above, Handicapper A with his record of 50-30 for +36 units, and Handicapper B with his record of 48-32 for +16 units.

Let's say that the two handicappers respective results were obtained from the following 80 bets:

So calculating the Z-score for handicappers A & B we have:

Z(han. A) = (79 units - 0 units) / 121.696 units ≈ 0.6492
Z(han. B) = (26.5 units - 0 units) / 18.28 units ≈ 1.4500

Converting to probabilities using Excel's NORMSDIST() function yields:

P(obtaining handicapper A's result or better purely by chance) ≈ 1 - NORMSDIST(0.6492) ≈ 25.812%
P(obtaining handicapper B's result or better purely by chance) ≈ 1 - NORMSDIST(1.4500) ≈ 7.353%

So what we see is that a bettor placing the same bets as handicapper A would, purely by chance, obtain the same results as A (or better) about a quarter of the time.

Similarly, a bettor placing the same bets as handicapper B would, purely by chance, obtain the same results as B (or better) a bit less less than one time out of every 13.

So anyway, in the interest of simplicity while I've certainly glossed some very important points, I hope this describes a simple framework through which handicappers' records may be compared and analyzed going forward.

So remember ... next time a handicapper tells you he's 32-30 for +15 units a good response would be, "Oh yeah, what's your Z-score?"

(A couple notes of caution -- Z-scores are less reliable over small sample sizes, tending to sometimes vastly overstate actual significance. They'll also be less reliable if the odds examined are over an extremely wide range, especially if there are are a small number of bets at very long odds. There are certainly other ways to measure a handicapper's success, but a discussion of this would be beyond the scope of this article.)

GANCH

It's pretty Obvious your Mathematical skills are far Beyond mine as well as 99% of us . . . . However, I think you are making this too Difficult . . . in my "Eyes" the only truly solid/Sucessful Handicappers are those that Bring home the cash each & every Month . . . . all cappers have Bad Days AND even Bad weeks, However it's the .00000001% that WIN each & every month I can COUNT on one Hand (& have couple fingers Left Over) How many Player's actually WIN significant amounts of Money each & Every month & have done so for Last 10-12 Yrs . . .

so, for MY MONEY, it's only those that turn Profits each & every month that would be WORTH following if you are seeking say even a 6 figure annual Incoming from Gambling . . . .

That said, I'm on the other side of the fence & have the STEVE WYNN approach to all this . . . he states you wanna make money in a casino . . . . . OWN ONE

I feel, you wanna make serious money in Sportsbooks, . . . . OWN ONE

Bottom line tho, there are a very very very few of you that Turn very Nice Profits each & every month . . . . YES 12/12 months in a row = PROFITS . . . . that's the capper I'm following

I'm just learning this in statistics class, it looked so boring but you've made it so interesting, thanks for the inspiration this is stuff I have to understand.

Note: We are of course presupposing that the OP's data has been properly sampled and is not the result of data mining and is not subject to selection bias.

This means that a zero EV player would have a roughly 4.95% probability of achieving results at least as positive as yours strictly by chance. (I say "roughly" because this conclusion relies on what's known as the Central Limit Theorem, which only allows us to approximate the outcome distribution of a sufficient number of bets as Gaussian. The true p-value is actually more like 4.79%.)

What confidence interval are you trying to determine? The confidence interval for a single population edge parameter?

The problem with this would be that as odds shorten, the highest possible upper bound on edge decreases. For example, the highest possible edge given a line of -210 would be "only" 47.62%.

So if as our estimator of population edge we were to use our realized return (~33.22%), and if we wanted to guarantee ourselves meaningful results, then one thing we could do would be determine the 99% confidence interval for further observations given that our realized ROI were in fact our population edge (if we were dealing with a more modest population edge given our betting odds then we could get around this problem).

Letting x represent wager size and d, decimals odds we have:

σ^{2} = x^{2} * 133.22% * ( d -1 - 33.22% )

Taking the square root of the sum across your data sample yields:

σ ≈ $163.94

Hence our 99% (pseudo) confidence interval for our single population parameter would be given by:

$303.37 ± 2.5758 * $163.94
= [725.86, -118.72]

Or in percent terms:

= [78.96%, -12.91%]

As somewhat of followup to this question, since this discussion was fairly educational -

Given the data, or the confidence interval, is there a quick way to figure out how many games it would take for the lower bound of the CI to rise above 0% ROI given that you perform at the same rate?

Secondly, is there a quick way for the same thing if you size bets according to Kelly (does flat betting vs variable bet sizing change the calculation significantly)?

Given the data, or the confidence interval, is there a quick way to figure out how many games it would take for the lower bound of the CI to rise above 0% ROI given that you perform at the same rate?

This is an example of an hypothesis test.

If we let p = true pick rate, and you're picking at decimal odds, d, you'd be looking to test the null hypothesis of H_{0}: p = 1/d, versus the alternative H_{A}: p > 1/d.

Given a realized success rate of q ≥ p over N trials, we'd reject the null with confidence level 1-α.

Hence the solution will be the least integer upper bound of N which satisfies the equation:

BINOMDIST(q*N-1, N, p, 1) ≤ 1 - α

Given a line of -200, a success rate q = 70%, we find that one would need 570 trials to be reject with 95% confidence the null hypothesis that one were a better than breakeven picker. Note however, that these results are a bit skewed due to the fact the Excel BINOMDIST() function truncates all its input to integers, thereby rendering impossible a success rate of precisely q for values of N not evenly divisible by 10 (for example at 564 trials, the binomial equation would effectively be using a success rate of only INT(70%*564)/564 ≈ 69.86%).

Using the CLT approximation, we need to solve for the least integer upper bound of N that satisfies:

sqrt(N)*(q*d-1)/sqrt(d-1) ≥ NORMSINV(1-α)

This gives us:

N = CEILING((d-1)*[NORMSINV(1-α)]^{2}/(q*d-1)^{2},1)

Given a line of , a success rate q = 70%, and alpha or 5%, we find that we find that one would need 542 trials to be reject with 95% confidence the null hypothesis that one were a better than breakeven picker.

Note that we get such a lower value of N from the Gaussian approximation because we're no longer automatically truncating q*N to an integer.

Originally Posted by Rustjive

Secondly, is there a quick way for the same thing if you size bets according to Kelly (does flat betting vs variable bet sizing change the calculation significantly)?

If you're betting at different sizes or at different odds, then no closed form solution will in general exist and you'd be best served optimizing out a solution.

But that of course would beg the question of why one would assume a constant success rate across wagers in the first place.

For a simple example see attached Excel spreadsheet (you'll need to enable Macros).

I'm trying to use this template to calculate my own Z-score (or P-value?) but the calculations seem to be off ..
I have 377 bets total so plugged in the prices, risk, and grade of my bets and changed the range from A2:280 to A2:800 and did the same for cells B and C.
The number of bets, wins, and win % seem to be calculating correctly .. but % returned (I'm assuming that's ROI) seems to be off. It's supposed to be 8.61% but it's showing 13.99%. Also, for Unit Return I'm getting 12,465.20 and I presume that is off as well ..

I'm late to the party here. Has someone put the formula in the original post into a spreadsheet calculator yet? I'd like to have that but not quite able to build it myself. Google sheets is preferred but excel is okay also.
Needs to work for varied odds sizes like someone betting on big dogs or heavy favs, along with varied unit size betting.

Lol, yeah. But someone out there does and I can test my own systems this way also but I'm just not sure how to get the formula to work right in spreadsheet for the variance and other things.