# Modelling approach - tennis match predictions

I am working with a dataset about a fictitious type of sport which is fairly similar to tennis: One has to win 5 points to win a game, 4 games to win a set and 3 sets to win the match. However, there is no advantage to be gained by serving or similar effects. I am also given a list of players together with their age, height, weight and whether they are left or right handed. Furthermore, I am given a large data set which contains for every match played between two of those players the exact sequence of points, games, sets and matches won.

Using the data I want to compute the probability of a certain player winning the next point, the next game, the next set and the match. To do so I plan to make use of the hierarchical structure of the game, i.e. it suffices to compute the probability of a point being won in order to compute the other probabilities.

When predicting the probability of a player winning a point, I want to use the following features:

• Player characteristics: Age, weight, height, hand
• Score: I assume the probability of a player winning the next point is dependent on the current score. By doing so I want to incorporate momentum and the fact that players may perform differently in different sets. I plan to model the features as follows: $$(p1_{points},p2_{points},p1_{games},p2_{games},p1_{sets},p2_{sets})$$ where $$p1_{games}$$ and $$p2_{games}$$ give the number of games won in the current set by players 1 and 2, respectively, and $$p1_{points}$$ and $$p2_{points}$$ the number of points won in the current game.
• Past statistics: I also plan to incorporate past performance of the players. That is, if players A and B play against each other I want to use data of their past encounters as well as performance against common opponents (which seems to be a standard approach in tennis modelling).

Now, lets say I use logistic regression to do the modelling. I then use $$\mathbb{P}(Y=1\vert x) = \frac{1}{1-\exp(-\beta^Tx)}$$

where $$Y$$ is the Bernoulli random variable indicating whether player A wins the next point or not and $$x$$ is the vector containing all the above features. I then loop over all the single points played in every match in my data (possible as I have detailed in-game data) when I optmize the loss function. The problem now is the following: In the first points of my data I do not have any past statistics to put in as the features. Only later in my dataset when I have reliable estimates of those statistics and can really use those features.

My question is how to resolve that issue. I thought of using the statistics over the whole dataset but that would undermine the fact that at prior times a player might have had worse or better stats than over the whole history. That is, at a certain point in time, the past statistics should be computed using this point in time as the reference point in order to avoid look-ahead bias. Another idea to circumvent the problem is to use a fixed fraction of the dataset (say the first p%) to first get reliable estimates and then use the rest of the data to compute the beta. This ensures that even the first points in the data set used for training have reliable stats of past matches.

• Have you considered looking at the Elo system in chess? Have you also considered a weak prior based on the prior period's system's average and variance? Feb 2 '19 at 17:31