A mathematical model of momentum in tennis, combining match-state simulation with logistic regression and ExtraTrees prediction.
22p
MCM paper
MCM
competition model
2.3
largest event weight
01 / Overview
What this package actually contains.
The MCM 2024 paper models momentum in tennis as a state variable that changes after points, games, sets and specific events. The Python workflow scores each event, accumulates momentum over time and tests whether the resulting state improves match-outcome prediction.
Objectives
01Define a measurable momentum score from observable match events.
02Model when momentum shifts and which player benefits.
03Predict point or match outcomes with the momentum state as a feature.
Competition narrative
Problem, model, result, paper.
The page foregrounds the modelling decision and result before implementation details.
Stage 01
Point-level data
Scores, sets, games, aces, errors and winners.
01
Stage 02
Momentum scoring
Weighted event contributions accumulated through the match.
02
Stage 03
Model features
Momentum series, scoring context and player state.
03
Stage 04
Prediction
Logistic regression and tree-based model candidates.
04
Stage 05
Evaluation
Accuracy, feature weights and match-flow visualisation.
05
02 / Package highlights
What this work demonstrates.
Models shifts in match momentum using player, court and strategy variables.
Uses Lazypredict for model screening and ExtraTreesRegressor for prediction.
Connects stochastic simulation with interpretable sports analytics.
03 / Model
The modelling choices behind the result.
01
Momentum as an engineered state
Each point updates the momentum score for the two players. Set, game and point advantages receive smaller weights, while winners, unforced errors and net points produce larger shifts. The score is accumulated across the match and clipped at zero to avoid an unbounded negative state.
Event weights were chosen to distinguish scoreboard progress from shot-level quality.
Accumulation gives the model a short memory of recent match flow.
The momentum series can be plotted to identify swing points.
02
Predictive validation
The momentum variables were passed into logistic regression together with match context. The paper also explored model screening and ExtraTrees prediction, allowing the team to compare a transparent baseline with a nonlinear ensemble.
04 / Key code
Selected modelling code.
Only verified source excerpts and pseudocode taken from the project papers are shown.
Verified project codePython
Momentum update rules
Original Python excerpt showing weighted point-event updates and accumulation.