I am trying to create a tennis simulator. Specifically I am trying to make a 'random' simulator so that I can see how many times streaks of wins or losses occur, and then compare this to historical data to see if 'The Hot Hand Effect' exists or not. i.e. Do streaks of wins or losses occur more or less often than would be expected by chance.

I create a pool of players and assign them a strength score between 0 and 10 from a normal distribution of mean 5 standard deviation 2.

When I come to matching up players and deciding the outcome, my supervisor suggested using a logit model/logistic regression. I am not quite sure how this would work practically/mathematically though. I thought to somehow use the difference in strength scores of the two players with the logit function to give me a probability to put into a cointoss, with the probability of a head, i.e. a win for Player A, being equal to the logit model output. 'Somehow' is obviously very vague as I do not know how this would work, or even if it mathematically makes any sense. Does what I intend to do sound valid conceptually? How do I use the strength scores with the logit function to get the probability?

  • $\begingroup$ You might want to model the point difference between the two players rather than the outright winner: distinguishing between neck-and-neck competitions and total blowouts will contain more information about the players' relative talents. $\endgroup$
    – Sycorax
    Commented Jul 24, 2014 at 18:26
  • $\begingroup$ Its the match by match outcomes that I need to investigate though, so I definitely need a way to determine the winner in my model. I am trying to create the control, random model to compare against historical outcomes. Currently I have the matches being decided by a coin toss, but I think I need a way to account for stronger vs weaker matchups, but without delving into trying to create an accurate predictor model using all the different player stats etc. $\endgroup$ Commented Jul 24, 2014 at 19:01

1 Answer 1


I'm not quite sure I understand your approach or the problem you are trying to solve.

Seems like the only way your "hot streak" effect can exist is if players change their strength level overtime (meaning you can't just characterize their strength by taking an average of their strength). Is this the question you are really asking? Otherwise you need to define the "hot streak" more.

However one thing to note is that you can absolutely extend logistic regression to the multivariate case, so you may not have to do the "difference in strengths" thing. You can actually just have the two strengths as separate parameters.

Logistic regression is really just a form of linear regression. You are finding a function that takes in inputs x, and predicts the output P. The output P represents the two outcomes, win and lose. The logistic function takes the form:

P=\frac{1}{1+e^{-\omega x + c}}

If you extend it the multinomial case, x is just a vector of parameters and you are looking for the weights \omega and c

It seems to me like you need to do the following:

1) Train using existing statistics about strengths of the two players and the outcome of the game to find your \omega and c. You can add more parameters you want even stuff like weather, etc. if you have enough of it

2) Use your random generator to find the strengths of your two players. Not sure if this distribution should be completely normal, since the strength distribution of tennis players is not normal (you have a bunch of people who are mediocre and then a few extraordinary players and not really any terrible players). Then use your logistic function to simulate outcomes of the games.

3) Record the number of hotstreaks

If you provide more information on where you are confused I can try to help more.

  • $\begingroup$ The title of my project is "The Hot Hand Effect in Tennis: Fact or Fallacy". I have a large collection of historical match outcomes, including the betting odds. 'Surprise' (defined as against the market's expectations represented by the odds) wins or losses can be identified. I am looking at streaks of these surprises, where as you say, the strength of the player appears to have changed. As a starting point to my investigation, I want to see how often these streaks of surprise wins take place just by chance. $\endgroup$ Commented Jul 24, 2014 at 20:26
  • $\begingroup$ A coin toss is too simplistic though, since I can't identify a 'surprise' win without taking there having been a higher probability of one player winning in the first place. The normal distribution of strengths was my professors suggestion, as was the use of logistic regression, but I can look into alternatives. He specifically said not to try and make a tennis match predictor, which is what I thought was needed initially. Using just what I have - a strength number for each player and without doing any training how would I find omega and c? What do omega and c represent? $\endgroup$ Commented Jul 24, 2014 at 20:32
  • $\begingroup$ He said not to make a tennis match predictor? Maybe you should ask him to expand on that. You can't find \omega and c without data to train. See this tutorial luna.cas.usf.edu/~mbrannic/files/regression/Logistic.html You can't just "make up" those numbers. $\endgroup$
    – jyfan
    Commented Jul 24, 2014 at 21:04
  • $\begingroup$ A way to think about what \omega and c are is to look at the "analog" in linear regression. Your regression function in that case is a line that splits your space in two, telling you which class you fall on given the value of your parameters. There you have your slope and y-intercept which is analogous to the weights here. $\endgroup$
    – jyfan
    Commented Jul 24, 2014 at 21:06
  • $\begingroup$ By the way, perhaps your professor meant prediction as in more advanced techniques. Logistic regression can be used to predict, but poorly, so you can argue that it is not a "predictor." lol. $\endgroup$
    – jyfan
    Commented Jul 24, 2014 at 21:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.