Skip to main content

Gambling Odds To Outcome probabilities Conversion (goto_conversion)

Project description

Gambling Odds To Outcome probabilities Conversion (goto_conversion)

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, Gambling Odds To Outcome probabilities Conversion (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 show that the goto_conversion converts betting odds to probabilities more accurately than all three of these existing methods.

The favourite-longshot bias is not limited to gambling markets, it exists in stock markets too. Thus, we applied the original goto_conversion to stock markets by defining the zero_sum variant. Under the same philosophy as the original goto_conversion, zero_sum adjusts all predicted stock prices (e.g. weighted average price) by the same units of standard error to ensure all predicted stock prices relative to the index price (e.g. weighted average nasdaq price) sum to zero. This attempts to consider the favourite-longshot bias by utilising the wider standard errors implied for predicted stock prices with low trade volume and vice-versa.

Citations (not limited to, unofficial)

Most Voted Solution from 2023 Optiver Kaggle Competition

Gold Medal Winning (14th out of 3225) Solution from 2023 Optiver Kaggle Competition (the zero_sum variant)

Gold Medal Winning (3rd out of 821) Solution from 2024 March Mania Kaggle Competition

Gold Medal Winning (4th out of 821) Solution from 2024 March Mania Kaggle Competition

1xGold and 2xSilver Medal Winning Solution from 2019 to 2022 March Mania Kaggle Competition

15xBronze Medal Winning (86th to 100th place out of 821) Solution from 2024 March Mania Kaggle Competition

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

alt text

Experiment Results

Brier Score was mainly used to evaluate the accuracy of the probabilities implied by each conversion method. The Brier Score is essentially the mean squared error of the probabilities relative to the ground truth. Ranked Probability Score (RPS) was additionally used to evaluate the probabilities for football betting odds because the outcome is ordinal (home win, draw and away win). RPS is essentially the Brier Score on the cumulative probabilities.

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. goto_conversion outperforms all other conversion methods for all four bookmakers. Kaggle notebook to reproduce the table directly below can be found here.

alt text

The experiment results table directly below is based on 6,348 horse races' betting odds for the win and place markets. goto_conversion outperforms all other conversion methods for both win and place betting markets. Kaggle notebook to reproduce the table directly below can be found here.

alt text

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

via kaggle message: https://www.kaggle.com/kaito510/competitions

Q&A

Q1. I want to know whether the teams in the csv file named mensProbabilitiesTable in the 538 data you created are in 2024 or 2023?

A1. 2024 but it is NOT 538 data, it is my data displayed in a format inspired by 538.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

goto_conversion-0.3.0.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

goto_conversion-0.3.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file goto_conversion-0.3.0.tar.gz.

File metadata

  • Download URL: goto_conversion-0.3.0.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.6

File hashes

Hashes for goto_conversion-0.3.0.tar.gz
Algorithm Hash digest
SHA256 96d373a8e6326edaaff513872c25f127c1279a871b4a99c0509a38846873f1bb
MD5 eaa3fcf056de1b1c013fdbadb7ced959
BLAKE2b-256 0e37230ed9eda29549333259e9f4a435bc7b74a789086da262f4f17f72021612

See more details on using hashes here.

File details

Details for the file goto_conversion-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for goto_conversion-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b408a84c3841d5bd27c2ccc6b8a16b2e7de28366c2d5459fcfb830a15af5acf
MD5 12d5fbe2ab85be64aeafc97f970832cd
BLAKE2b-256 df10818412f79d68abfc2f9e5b27263438ed17929cbf70c65ae3057e87a5ef17

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page