r-bayesian-football-odds
is based on the works of Rasmus Baath. He predicted the results of the 50 last matches of the 2012/2013 Spanish LaLiga season. Originally, I slightly adapted his code to predict the results of the last two competition rounds of the 2018/2019 Dutch Eredivisie season. Later on, I added some new functionalities to the code such as parallel computation.
Rasmus predicted the results of the 50 last matches of the 2012/2013 Spanish LaLiga season. He used data of the 2008/09-2012/13 seasons (5 seasons in total) to estimate his regression model in a Bayesian way. See this thread for an intuitive explanation of the difference between the Bayesian approach and the conventional approaches of linear regression and maximum likelihood.
I slightly adapted his code to predict the results of the last two competition rounds (that is, the last 18 matches) of the 2018/2019 Dutch Eredivisie season. These predictions are based on soccer match data of the 2014/15-2018/19 seasons (5 seasons in total). The source of these data is here. Out of the three model specifications that Rasmus developed, I used the most sophisticated model that allowed for year-to-year variability in team skill (called "iteration 3" by Rasmus).
The results of the most recent version of the code can be found here. Alternatively, click here if you want to dive into the results of my first application to the Dutch Eredivisie.
The latter weblink refers to the original output file of the VERSION 1.0 code release. I also wrote a blog post about my one-off betting experience (in Dutch). Short summary in English: 3 euro stake earned 4.15 euro, so a profit margin of 1.15 / 3 = 38%.
Rasmus Baath submitted his code to the UseR 2013 data analysis contest and licensed it under the Creative Commons Attribution 3.0 Unported license. My contribution is licensed under the equivalent MIT license as Creative Commons recommend against using Creative Commons licenses for software.