Bayesian models for football leagues
bpl is a python 3 library for fitting Bayesian versions of the Dixon & Coles (1997) model to data.
It uses the
stan library to fit models to data.
You will need a working C++ compiler. If you are using anaconda, you can install gcc with
conda install gcc
You can then install with
pip install bpl
This may take a little while, as two stan models are compiled as part of the build.
bpl provides a class
BPLModel that can be used to forecast the outcome of football matches.
Data should be provided to the model as a
pandas dataframe, with columns
You can also optionally provide a set of numerical covariates for each team (e.g. their ratings on FIFA) and these will be used in the fit.
import bpl import pandas as pd df_train = pd.read_csv("<path-to-training-data>") df_X = pd.read_csv("<path-to-team-level-covariates>") forecaster = bpl.BPLModel(data=df_train, X=df_X) forecaster.fit(seed=42) # calculate the probability that team 1 beats team 2 3-0 at home: forecaster.score_probability("Team 1", "Team 2", 3, 0) # calculate the probabilities of a home win, an away win and a draw: forecaster.overall_probabilities("Team 1", "Team 2") # compute home win, away win and draw probabilities for a collection of matches: df_test = pd.read_csv("<path-to-test-data>") # must have columns "home_team" and "away_team" forecaster.predict_future_matches(df_test) # add a new, previously unseen team to the model by sampling from the prior X_3 = np.array([0.1, -0.5, 3.0]) # the covariates for the new team forecaster.add_new_team("Team 3", X=X_3, seed=43)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size bpl-0.0.4.tar.gz (27.6 kB)||File type Source||Python version None||Upload date||Hashes View hashes|