Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
We will provide an example of how you can estimate the outcome of a Euro 2020 Game based on FIFA World Ranking. The current calculation method applied on 10 June 2018 and is based on the Elo rating system and after each game points will be added to or subtracted from a team’s rating according to the formula:
The Expected Result of a Game
The expected result of a Game is given by the following formula:
where \(dr\) is the difference between two teams’ ratings before the game. Let’s see the function of the Winning Probability versus the Ranking Difference:
diffs<-seq(-1000,1000) probs<-1/(1+10^(-(diffs)/600)) plot(diffs, probs, main="Winning Probability vs Ranking Difference", xlab = "Ranking Differences", ylab = "Winning Probability")
A Walk-Through Example
Let’s consider the Final-16 Game of England vs Germany with the following Odds from Bet365.
Probability to Qualify
Note that according to FIFA Ranking, England has 1687 points and Germany has 1609, so the difference is 81 points. This implies that the probability of England to qualify is 57.7%:
> 1/(1+10^(-(81)/600)) [1] 0.5770925
This means that the odds are 1/0.577092=1.732825 which is very close to what Bet365 pays-off, a little bit less due to the margin. Let’s do the same exercise for Germany (note that the difference is -81 this time).
> 1/(1/(1+10^(-(-81)/600))) [1] 2.364583
As we can see here the fair Odds appear to be 2.36 but Bet365 pays off 2.00. Now, you may understand why you will never make money from betting as we have explained in Bookmaker’s Margin.
Outcome Probability
The formula above gives the probability of each team to win, but it does not take into consideration the “Draw”. So we can claim that the Draw Probability is the product of the win probability of each team. So in our game, the draw probability is \(P(A \cap B) = P(A) \times P(B)\):
> 0.5770925*(1-0.5770925) [1] 0.2440567
But now the probability of England to Win is \(P(A)-P(A \cap B)\):
> 0.5770925-0.5770925*(1-0.5770925) [1] 0.3330358
And for Germany is:
> (1-0.5770925)-0.5770925*(1-0.5770925) [1] 0.1788508
Finally, we need to normalize the probabilities as follows:
> probs<-c(0.3330358, 0.2440567, 0.1788508) > probs/sum(probs) [1] 0.4405566 0.3228505 0.2365929
So finally we have:
- England: 44.05%
- Draw: 32.29%
- Germany: 23.66%
And if we want to get the odds:
> 1/(probs/sum(probs)) [1] 2.269856 3.097409 4.226670
We see that the estimated odds are 2.27, 3.1 and 4.22 where Bet365 pays 2.52, 3.38 and 2.97. Thus, according to this model, there is mispricing in the odds.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.