Predicting the Outcome of the English Premier League By Using Monte Carlo Method (in R)
By: Kristóf Menyhért
Tags: R, Simulation, Premier League, Monte Carlo Method, Machine Learning

Background — Understanding how betting works and how to be profitable in the long run

One concept that is essential to understand when it comes to profitable betting that you need to look for value bets.

What does this mean in practice? That you should look for events that you think are mispriced. Then you bet on outcomes where the real odds are in your favor.

Let me give you a small example. There is a football match in the near future where Southampton is going to play against Liverpool. On Betfair — which operates the world’s largest online betting exchange — you can find the following odds:

Odds for Southampton vs Liverpool

We can convert these odds to probabilities by using the following formula:

Odds to probability

In this case, the odds on the betting site reflects the following probabilities for a Liverpool win:

Chance provided by Betfair for Liverpool to win.

So if you think that Liverpool has higher chances to win than 62.1 % then you should bet on this outcome. However, if you think that the chances are lower you can easily see that you should bet against it.

If you are correct you are on the right track to win money in the long run.

The (biding) market of the Winner of English Premier League 2020/21

In this article, I am going to predict the final standing of the teams in the Premier League (PL) and I would like to compare my calculated probabilities to odds that are offered on Betfair.

As of today (2021.01.04.), the league standings look like this:

Premier League current standings

And the odds on Betfair are the following for the winner of the PL:

Premier League Winning Probabilities (on 2020.01.04.)

We would like to know that the odds are in our favor or not. Or in other words, should we bet on Liverpool, Manchester Utd, Man City or any other team?

If you are interested, there are other markets on Betfair which you might want to look at. (e.g.: top 2 finish, top 3 finish, etc.)

Okay, but what is the Monte Carlo Method (MCM)?

I am not a mathematician so forgive me if I am not using the correct terms but this is how I would tell what MCM is in short:

Let’s say that you would like to know what is the chance of rolling exactly 12 by rolling 5 dice. It would be possible to calculate this by using mathematical formula(s), but let’s be honest it can be complicated. But another approach is to simulate 1 million 5 dice rolls and check how many of those would be exactly 12. In this way, you can approximate the chance by counting the favorable outcomes and divide it by 1 million. The more you simulate the closer you will get to the real probability. In this case, it will be very close to the real probability since 1 million rolls is a lot. This is an example of how you can use the Monte Carlo Method.

It is commonly used for calculating the chance of outcome(s) of non-deterministic processes where calculating the exact chance(s) using the exact mathematical formula(s) is hard or even impossible.

Many times you can approach these problems by the MCM. You can simulate the results by drawing samples from a known probability distribution and then simulate the final outcome many many times. Then you can easily see the chances of occurrence for each outcome by simply counting them and do a division.

Btw: you can use this method for many things, including approximating Pi. Learn more on the Wikipedia page of Monte Carlo Method.