# Who is going to Win the Euro 2020

**R – Predictive Hacks**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

We have reached the knock-out phase of Euro 2020 (or 2021) where the final-16 teams and the games can be shown below:

The question is who is going to be the Euro 2020 Winner. Although we cannot predict the Winner, we can estimate the probabilities of each team to win the Euro.

## The Methodology

This is a very simple model that is based on UEFA Ranking. Our assumption is that each team follows the Normal Distribution, with **mean **its corresponding **ranking **and **standard deviation** the (max ranking – min ranking)/6. Regarding the standard deviation, we assumed that the UEFA teams are coming from the same distribution where the standard deviation can be estimated from the 6 sigma rule.

Finally, once we define the distribution of each team, we will simulate the results of Round 16 and we will estimate the Winner.

## The Code

We will work in R and we will run **10000 **simulations.

# get the UEFA Ranking ranking<-list(bel=1783, fra=1757, eng=1687, por=1666, esp=1648, ita=1642, den=1632, ger=1609, sui=1606, cro=1606, net=1598, wal=1570, swe=1570, aus=1523, ukr=1515, cze=1459) # get the range of the max UEFA ranking (Belgium) minus the minimum (San Marino) and devide it by 6 # assuming that 6 sigma is the range stdev<-(1783-805)/6 sim_champion<-c() for (i in 1:10000) { ####################### #### Final 16 ####################### # game bel vs por teams_game1<-c("bel","por") game1<-rnorm(1, ranking[[teams_game1[1]]], stdev)>rnorm(1, ranking[[teams_game1[2]]], stdev) if (game1) { qualified_game1<-teams_game1[1] } else { qualified_game1<-teams_game1[2]} qualified_game1 # game ita vs aus teams_game2<-c("ita","aus") game2<-rnorm(1, ranking[[teams_game2[1]]], stdev)>rnorm(1, ranking[[teams_game2[2]]], stdev) if (game2) { qualified_game2<-teams_game2[1] } else { qualified_game2<-teams_game2[2]} qualified_game2 # game fra vs sui teams_game3<-c("fra","sui") game3<-rnorm(1, ranking[[teams_game3[1]]], stdev)>rnorm(1, ranking[[teams_game3[2]]], stdev) if (game3) { qualified_game3<-teams_game3[1] } else { qualified_game3<-teams_game3[2]} qualified_game3 # game cro vs esp teams_game4<-c("cro","esp") game4<-rnorm(1, ranking[[teams_game4[1]]], stdev)>rnorm(1, ranking[[teams_game4[2]]], stdev) if (game4) { qualified_game4<-teams_game4[1] } else { qualified_game4<-teams_game4[2]} qualified_game4 # game swe vs ukr teams_game5<-c("swe","ukr") game5<-rnorm(1, ranking[[teams_game5[1]]], stdev)>rnorm(1, ranking[[teams_game5[2]]], stdev) if (game5) { qualified_game5<-teams_game5[1] } else { qualified_game5<-teams_game5[2]} qualified_game5 # game eng vs ger teams_game6<-c("eng","ger") game6<-rnorm(1, ranking[[teams_game6[1]]], stdev)>rnorm(1, ranking[[teams_game6[2]]], stdev) if (game6) { qualified_game6<-teams_game6[1] } else { qualified_game6<-teams_game6[2]} qualified_game6 # game net vs cze teams_game7<-c("net","cze") game7<-rnorm(1, ranking[[teams_game7[1]]], stdev)>rnorm(1, ranking[[teams_game7[2]]], stdev) if (game7) { qualified_game7<-teams_game7[1] } else { qualified_game7<-teams_game7[2]} qualified_game7 # game wal vs den teams_game8<-c("wal","den") game8<-rnorm(1, ranking[[teams_game8[1]]], stdev)>rnorm(1, ranking[[teams_game8[2]]], stdev) if (game8) { qualified_game8<-teams_game8[1] } else { qualified_game8<-teams_game8[2]} qualified_game8 ####################### #### Final 8 ####################### teams_f8_1<-c(qualified_game1,qualified_game2) game_f8_1<-rnorm(1, ranking[[teams_f8_1[1]]], stdev)>rnorm(1, ranking[[teams_f8_1[2]]], stdev) if (game_f8_1) { qualified_f8_1<-teams_f8_1[1] } else { qualified_f8_1<-teams_f8_1[2]} qualified_f8_1 teams_f8_2<-c(qualified_game3,qualified_game4) game_f8_2<-rnorm(1, ranking[[teams_f8_2[1]]], stdev)>rnorm(1, ranking[[teams_f8_2[2]]], stdev) if (game_f8_2) { qualified_f8_2<-teams_f8_2[1] } else { qualified_f8_2<-teams_f8_2[2]} qualified_f8_2 teams_f8_3<-c(qualified_game5,qualified_game6) game_f8_3<-rnorm(1, ranking[[teams_f8_3[1]]], stdev)>rnorm(1, ranking[[teams_f8_3[2]]], stdev) if (game_f8_3) { qualified_f8_3<-teams_f8_3[1] } else { qualified_f8_3<-teams_f8_3[2]} qualified_f8_3 teams_f8_4<-c(qualified_game7,qualified_game8) game_f8_4<-rnorm(1, ranking[[teams_f8_4[1]]], stdev)>rnorm(1, ranking[[teams_f8_4[2]]], stdev) if (game_f8_4) { qualified_f8_4<-teams_f8_4[1] } else { qualified_f8_4<-teams_f8_4[2]} qualified_f8_4 ####################### #### Final 4 ####################### teams_f4_1<-c(qualified_f8_1,qualified_f8_2) game_f4_1<-rnorm(1, ranking[[teams_f4_1[1]]], stdev)>rnorm(1, ranking[[teams_f4_1[2]]], stdev) if (game_f4_1) { qualified_f4_1<-teams_f4_1[1] } else { qualified_f4_1<-teams_f4_1[2]} qualified_f4_1 teams_f4_2<-c(qualified_f8_3,qualified_f8_4) game_f4_2<-rnorm(1, ranking[[teams_f4_2[1]]], stdev)>rnorm(1, ranking[[teams_f4_2[2]]], stdev) if (game_f4_2) { qualified_f4_2<-teams_f4_2[1] } else { qualified_f4_2<-teams_f4_2[2]} qualified_f4_2 ####################### #### Final ####################### teams_f<-c(qualified_f4_1,qualified_f4_2) game_f<-rnorm(1, ranking[[teams_f[1]]], stdev)>rnorm(1, ranking[[teams_f[2]]], stdev) if (game_f) { champion<-teams_f[1] } else { champion<-teams_f[2]} sim_champion<-c(sim_champion,champion) } prop.table(table(sim_champion))*100

## The Estimated Results

After running 10,000 simulations, we get that **Belgium **is the most likely team to win the Euro 2020 with a **25.8%** probability followed by **France **(21%) and **England **(13%)

Team | Probability (%) |

Belgium | 25.82 |

France | 21.17 |

England | 13.18 |

Denmark | 6.61 |

Italy | 5.24 |

Netherlands | 5.18 |

Spain | 4.74 |

Portugal | 4.66 |

Germany | 3.76 |

Sweden | 2.31 |

Croatia | 2.14 |

Wales | 2.1 |

Switzerland | 1.91 |

Ukraine | 0.78 |

Austria | 0.22 |

Czech Republic | 0.18 |

## The Estimated Odds from the Market/Bookmakers

According to Bookmaker, the favorite to win the trophy is **France**, followed by **Italy **and **England**.

## My Suggestion

Personally, I see mispricing in Bookmakers’ odds for Belgium that pays off 9 times (meaning an estimated probability to win the euro 11.11%). So my suggestion is to go with Belgium!

**leave a comment**for the author, please follow the link and comment on their blog:

**R – Predictive Hacks**.

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.