Imagine there are 80 dodgeball players in the world. Each of them has played thousands of dodgeball games with the other 79 players in more-or-less random order. This is a world without teams (e.g., every player has a chance of being drafted in either team each game). I know the previous win rate of each player (e.g., one has won 46% of all previous games, another has won 56% of all his previous games). Lets say there is a match coming up and I know who is playing on each team. I also know their previous win rate.

What is the best way to calculate the probability of each team winning based on the composition of the team?

If it requires relatively advanced calculation (e.g., logistic regression) let me know some of the specifics. I am pretty familiar with SPSS, but I rather not need to ask a follow-up question.

Moreover, how would I explore the accuracy of my method using archival data? I know it won't be clear cut since most players hover around 40-60%, but still.

To be specific, what are the odds that team A is going to win?

A - comprised of individuals with previous win rate of 52%, 54%, 56%, 58%, 60% B - comprised of individuals with previous win rate of 48%, 55%, 56%, 58%, 60%

(this is just a random example for illustrative purposes. Two pretty good teams.)

Edit: Is there a way to start with a very simple algorithm and then see how it works? Maybe we could simply sum the percentages of each team and predict that the one with the highest percentage is going to win. Of course our classification would not be accurate, but over thousands of archived games we could see if we can predict better than chance.


3 Answers 3


Is it correct that you have not only those percentages but all the individual game outcomes as well? Then I would suggest the r package PlayerRatings. This package not only deals with problems like how to calculate player strength (using algorithms like elo or glicko), but offers functions that can predict future game outcomes as well.

For examples check: http://cran.r-project.org/web/packages/PlayerRatings/vignettes/AFLRatings.pdf


Sounds like a job for naive Bayes. I don't quite understand the theory behind it so unfortunately I can't give you an example but it Bayes works with known (archival) data to draw inferences.

I think Bayes is only available in Statistic Server of SPSS so if you have access to one of these you're in luck. Alternatively you can use Weka which also includes a bunch of other classifiers, so maybe you run your experiment and let us know of the results?

EDIT: Bayes and related classifiers can also draw inferences from the players themselves, eg. $A$ has a score of 65% but when $A$ and $B$ play in opposite teams, $A$'s performance drops by 5%.

  • $\begingroup$ Thank you for your comment and for your edit. I figured a Bayesian or machine learning approach might be best. Unfortunately I am relatively unfamiliar with these approaches. $\endgroup$
    – Behacad
    Commented Mar 18, 2013 at 17:22

Isn't it just a simple division of the averages? AvgTeam1WinP / AvgTeam2WinP? It should yield the odds that team1 will win against team2.

If I consider the following:

If player1 would play against player2 in "1-man" teams, you would agree that the odds that player1 will win against player2 would be the probability that player1 would win against random divided by the probability that player2 would win at random (this of course only holds in the case that you considered the win % to be accurate, like in their asymptotical limit), simply:

OddsP1VsP2 = WinProbabilityP1 / WinProbabilityP2 

If you would argue that there is no interaction effect of some players being terrible and thus influence the score more negatively than expected*, or, some players being really good influencing the score more positively than expected**, then it seems logical that you can just take the average probability for each player in each team.

* If the combination of 60%,60%,60%,60% is considered better than a team of like 70%,70%,70%,30%, where one bad player would result in worse odds for the team even though the averages are the same. Without additional hypotheses, that particular question is not possible to be addressed.

** Similarly, if 50,50,50,90 is not considered to be equal to 60,60,60,60, then the same applies.


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.