Novel Conversion of Betting Odds to Probabilities
Project description
goto_conversion (Novel Conversion of Betting Odds to Probabilities)
The most common method used to convert betting odds to probabilities is to normalise the inverse odds (Multiplicative conversion). However, this method does not consider the favourite-longshot bias.
To the best of our knowledge, there are two existing methods that attempt to consider the favourite-longshot bias. (i) Shin conversion [1,2,3] maximises the expected profit for the bookmakers assuming a small proportion of bettors have inside information. (ii) Power conversion [4] raises all inverse odds to the same constant power. However, both of these methods require iterative computation to convert betting odds to probabilities.
Our proposed method (goto_conversion) is significantly more efficient than Shin and Power conversion because it converts betting odds to probabilities directly without iterative computation.
The goto_conversion reduces all inverse odds by the same units of standard error. This attempts to consider the favourite-longshot bias by utilising the proportionately wider standard errors implied for inverses of longshot odds and vice-versa.
Furthermore, our tables of experiment results below show that the goto_conversion converts betting odds to probabilities more accurately than all three of these existing methods.
Installation
Requires Python 3.7 or above.
pip install goto-conversion
Usage
Decimal Odds
import goto_conversion
goto_conversion.goto_conversion([1.2, 3.4, 5.6])
[0.7753528189788175, 0.17479473292721065, 0.04985244809397199]
American Odds
import goto_conversion
goto_conversion.goto_conversion([-500, 240, 460], isAmericanOdds = True)
[0.7753528189788175, 0.17479473292721065, 0.04985244809397199]
Pseudo Code
Experiment Results
The experiment results table directly below is based on the same 6,000 football matches' betting odds (home win, draw or away win) across four different bookmakers.
Kaggle notebook to reproduce the table directly above: https://www.kaggle.com/code/kaito510/novel-conversion-of-football-betting-odds
The experiment results table directly below is based on 6,348 horse races' betting odds for the win and place markets.
Kaggle notebook to reproduce the table directly above: https://www.kaggle.com/code/kaito510/novel-conversion-of-horse-racing-odds
References
[1] H. S. Shin, “Prices of State Contingent Claims with Insider traders, and the Favorite-Longshot Bias”. The Economic Journal, 1992, 102, pp. 426-435.
[2] E. Štrumbelj, "On determining probability forecasts from betting odds". International Journal of Forecasting, 2014, Volume 30, Issue 4, pp. 934-943.
[3] M. Berk, "Python implementation of Shin's method for calculating implied probabilities from bookmaker odds"
[4] S. Clarke, S. Kovalchik, M. Ingram, "Adjusting bookmaker’s odds to allow for overround". American Journal of Sports Science, 2017, Volume 5, Issue 6, pp. 45-49.
Contact Me
LinkedIn Message: https://www.linkedin.com/in/goto/
Kaggle Message: https://www.kaggle.com/kaito510/competitions
Or fire an issue on this repo.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file goto_conversion-0.1.0.tar.gz
.
File metadata
- Download URL: goto_conversion-0.1.0.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | abac7bd25ecd1dbf28e9a1056d7c5c918f62f4ee83c70a25b9915e088013fd12 |
|
MD5 | 8cebe4d0d1519db26b0b8e6252f4eeb9 |
|
BLAKE2b-256 | 67ff74f9346755bab7dce339afcc50f59ba9fd64053aa0970521781027f152c7 |
File details
Details for the file goto_conversion-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: goto_conversion-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b68876a08743234e05502c5cd769718375c68ec69ae5ef7e58690dd19750e5e3 |
|
MD5 | c325df073ec35bd4112633ccc6abc02c |
|
BLAKE2b-256 | a9c81e2c91ce5a464a105d2335fc97aa4b8d9ffe976cd96a4290842b5d5296b6 |