where “
Because of the nature of exponential decay, a high discount rate (yellow line) results in a very low weight for matches a long time in the past compared to a low discount rate (green line).
The simplest solution is to use backtesting. In short, this means training the model for a variety of different values of epsilon and seeing which one results in the best predictions.
If we backtest both Goals-based and xG-based models for a variety of “
On the x-axis, I have plotted the weight at day 365 (
Both plots show the same overall shape: a very low weight at day 365 (i.e. a very high discount weight), leads to very poor performance followed by a sharp rise, a peak, and a slower decline as the discount rate increases (and old data is given more importance).
The peak model performance for the xG-based model comes at with a weight at day 365 of around 25%. On the other hand, the peak performance for the goals-based model comes at around 50% weight-at-day-365.
This goes back to what I mentioned earlier about signal-vs-noise. A goal-based model needs to give matches from the past a higher weight because goals are a noisy data source. Whereas the xG-based model performs best with a higher discount rate, because it’s able to extract more information from each match. Or, to put it another way, it requires less information before the staleness of additional data-points starts to harm the model’s performance.
We already knew xG was a better way to evaluate teams both intuitively and empirically, but I think looking at the comparison of goals and xG through the time-discounting is a nice way to develop our intuition about why xG is better.
EDIT (2020-07-19): Originally, I speculated that a change in “
Thanks to Diogo for pointing this out to me on Twitter.
As a final note, the original Dixon-Coles paper from 1997, they estimate an optimal value of “
Assuming I’ve correctly reproduced their method, what might be the cause of this change? Could it be that a more entrenched elite at the top of the Premier League has meant that old (e.g. 6+ months ago) results have more information about the present?
We talk a lot about how the economics of the game have changed and made it harder for small clubs to compete, so I think this is an interesting hypothesis. Especially as this could give us an empirical way to measure those changes. I don’t think we can evaluate from this analysis alone whether it this is driving the change in “
If you would like to reproduce this analysis, or dig a bit more into the technical details, the code can be found in my wingback
(because it’s concerned with back-testing models… I couldn’t help myself, I’m sorry) repository.
This repo is built on top of understat-db
, a project for pulling data from Understat.com into a database. It uses a Python library called mezzala
for modelling team-strengths and match predictions.
I still have some Liverpool 2019/20 “data scarves” left for sale (shipping to the UK). If football+data is your thing, take a look:
The most common form that I know of. If you know of any others that you think might work better, let me know! I’d love to try them out. ↩︎