Tennis match analysis
Using logistic regression to examine ATP match outcomes on different court surfaces.

From match statistics to probabilities
Our team used logistic regression to connect ATP match outcomes with serve statistics and player characteristics. The paper’s analysis uses the 2024 season, splitting earlier matches into training data and the remaining matches into a test set. We compared player features through differences between the two opponents.
Checking what a coefficient means
The accompanying exploratory notebook fits a broader collection of ATP matches, checks multicollinearity, and compares surface-specific models. It also asks whether the estimated effect of height changes when return statistics are included. In the saved comparison above, the height coefficient moves from about −0.032 to −0.028. That is a conditional association within these models, not evidence that height itself causes a player to lose.
Prediction has a timing problem
Serving and return statistics describe events inside a match. They can explain a completed result, but a forecast needs inputs known before the match starts. Our paper explores using historical player averages at test time; the exploratory notebook also includes in-match models. Those analyses answer different questions, so I do not present their results as a single pre-match prediction score.
What we would test next
The paper identifies recent form, interactions between predictors, and court surface as areas for further work. A stronger forecasting evaluation would calculate each player’s history using only earlier matches, then test chronologically. The notebook’s surface comparisons are useful for inspecting relationships, but they do not replace that evaluation.