-

Building a Football Prediction Model: Week 6
Above are my predictions for this week’s games, alongside the % probability of each outcome occurring, as well as the Poisson distribution’s most likely score. Key games Manchester City vs Newcastle (xG: 2.49 vs 0.90) Model lean: Man City Win. Current Score Call: 2-1 Betting Angle: Strong favourite, but Newcastle’s quality means BTTS could be… Read more
-

Is Backing the Favourite A Winning Strategy?
Backing the favourite is a common (and easiest) strategy in horse racing. Instead of guessing, I wanted to examine the numbers to see whether this was effective. In this post, I’m using race data, Starting Price (SP) odds, and a few Excel pivot tables to answer a basic question: Do favourites win often enough to… Read more
-

Building a Football Prediction Model: Week 5
This week I have added a Monte Carlo Simulation into the predictions, simulating 20,000 matches. Monte Carlo Simulation Here is the code I used for the Monte Carlo Simulation added this week, alongside a simple explanation. This next code is more experimental.. Matches are then counted in a tally format, and each result is expressed… Read more
-

Results from Week 4
Accuracy with added SARIMA model: 6/20 teams predicted- 30% Accuracy without added SARIMA model: 9/20 – 45% Thoughts Incorporating the time-series SARIMA model, actually reduced my prediction accuracy by 15%. This could be because time series methods assume that past patterns and trends in performance will persist into the future, but football is noisy, and… Read more
-

Building a Football Prediction Model: Week 4
This week I am adding a time series model (SARIMA) to better react to team momentum and dips in form. Again, I am predicting matches days ahead of time to increase transparency. What is SARIMA? Seasonal AutoRegressive Integrated Moving Average (SARIMA) is a time-series forecasting model designed to predict future values based on historical patterns.… Read more
-

Building a Football Prediction Model: Week 3
Accuracy: 40% (8/20 teams had predicted goals scored) Home Away xG Home xG Away Actual Score Leeds Arsenal 1.06 1.25 0-4 Wolves Bournemouth 1.61 2.35 0-2 Brighton Everton 0.68 0.72 1-1 Chelsea West Ham 1.99 0.81 3-2 Liverpool Newcastle 0.88 0.77 4-1 Aston Villa Brentford 1.88 0.75 0-1 Man United Fulham 1.69 0.95 3-2 N… Read more
-

Predicting this weeks results: Week 3
I’m predicting the games before they’re played, and will write a separate post after all games are played to analyse what went wrong/right. Changes made I’ve added a slight advantage to teams with a new manager, incrementally boosting Chelsea’s, Manchester United’s, and Wolves’ xG. Considering last week’s positive 50% correct results, I don’t want to… Read more
-

Ranking clubs by the state of their finances
It’s well known that Premier League clubs make a lot of money. But I was curious about something different: which clubs are actually well run financially? To answer that, I built a small Python model to rank football clubs based on their financial health. Instead of league position or trophies, this looks purely at how… Read more
-

Building a Football Prediction model: Week 2
Summary To the nearest whole number, the model predicted the correct goals scored for 10 out of the 20 teams, giving a strong accuracy of 50%. Since last week, I’ve made a few changes to my model. I’ve downweighted past results exponentially and added the factor of recent form (last 5 matches) to influence the… Read more
-

Building a Football Prediction Model: Week 1
Passionate about football and data, I want to see if it’s possible to program a model to give me a consistently accurate prediction of a football match. This series of posts attempts to document my experiences in building a model that will predict games. Background One thing I found from reading papers is that a… Read more
