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:
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:
So let's calculate the Z-score for each of the 4 heads/tails combinations above:
OK so now we have a bunch of Z-scores. Now what?
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:
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.
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:
(To convert from US to decimal odds you can reead the refresher in this post, punch up my Odds Converter, or use the US2DEC() function in my VBA Sports Betting template for Excel.)
So let's look at a couple of examples:
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:
Converting to probabilities using Excel's NORMSDIST() function yields:
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.)
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?
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.
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:
variance = (bet_size)^2 * (decimal_odds - 1)
(To convert from US to decimal odds you can reead the refresher in this post, punch up my Odds Converter, or use the US2DEC() function in my VBA Sports Betting template for Excel.)
So let's look at a couple of examples:
- A 1 unit bet at => variance = 1^2 * ( - 1) = 4
- A 1 unit bet at => variance = 1^2 * ( - 1) = 2
- 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:
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
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%
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.)