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 gambling 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.

Our proposed method, Gambling Odds To Outcome probabilities Conversion (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.

Our table of experiment results shows goto_conversion converts gambling odds to probabilities more accurately than all three of these existing methods.

This package is an implementation of goto_conversion as well as efficient_shin_conversion. The Shin conversion is originally a numerical solution but according to Kizildemir 2024 [6], we can enhance its efficiency by reduction to an analytical solution. We have implemented the enhanced Shin conversion proposed by Kizildemir 2024 as efficient_shin_conversion in this package.

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.

Presentation at the Royal Statistical Society

Applications on Kaggle

To the best of my knowledge, on Kaggle, at least four gold medal solutions and many other medal solutions have publicly stated that they leveraged goto_conversion:

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]

Numpy array inputs will return numpy array outputs

import goto_conversion
Import numpy as np
goto_conversion.goto_conversion(np.array([1.2, 3.4, 5.6]))
[0.77535282 0.17479473 0.04985245]

Test cases for efficient_shin_conversion

import goto_conversion
print(goto_conversion.efficient_shin_conversion([1.22,4.57,6.54]))
print(goto_conversion.efficient_shin_conversion([1.22,4.63,6.38]))
print(goto_conversion.efficient_shin_conversion([1.17,4.97,7.57]))
[0.8005889182988829, 0.13614976602243348, 0.0632613156786835]
[0.8004787158953608, 0.1325348922189233, 0.0669863918857159]
[0.8396249156189404, 0.11832615760257503, 0.04204892677848464]

Notice the printed probability lists match the first three rows of table 1 of Kizildemir 2024 [6].

Pseudo Code

alt text

Experiment Results

The experiment results table below evaluates each conversion method's predicted probabilities based on ~200,000 football matches' gambling odds (home win, draw or away win) across 8 different bookmakers that had at least 12 seasons of data on football-data.co.uk [5].

goto_conversion significantly outperforms all other conversion methods for all 8 bookmakers with just one exception. goto_conversion outperforms efficient_shin_conversion for only 6 out of the 12 seasons under the Pinnacle Sports (PS) bookmaker which implied an insignificant p-value of exactly 0.5.

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 gambling 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.

[5] Football-Data

[6] Kizildemir, M., Akin, E., & Alkan, A. (2024). A Family of Solutions Related to Shin’s Model For Probability Forecasts. Cambridge Open Engage

Contact Me

via LinkedIn Message: https://www.linkedin.com/in/goto/

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-2.0.0.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

goto_conversion-2.0.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for goto_conversion-2.0.0.tar.gz
Algorithm Hash digest
SHA256 c208fe638cdb2746984c63bde1485564aaf86bd11668e5b9559d3f13c728789d
MD5 6e19387ad094364033d3fadcf1eb1721
BLAKE2b-256 770c08eb844b004101d19b64d6261f346f4ec9fdd456eb3d89c5d84bc4388c03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for goto_conversion-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 880047d5448be2e16a289937b4283d4f24ba0bd088a7c88f59cf8bd743f23f5f
MD5 73c04ea1954f4d9c3c73b8322455b63e
BLAKE2b-256 4afe2f3eb7df87c49faa42d7c2de7421e8a7bb3cfde7ca6167ed8eb58e36b3aa

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