# Creating statistically balanced teams

Suppose that you have a tournament for a game with four players on each team. We also have a table that tells us overall statistics for each player. This table includes things like each player's # of games played, % of games won, and other game-specific stats.

Now, If I were running a tournament with, I would want to create balanced teams for each game, where neither team has a significant advantage. However, I only have stats for individual players. So, I need a way to balance the teams given the data of individual players.

I also have a multiple regression model that is reasonably accurate in calculating the win percentage of an individual player. Could I use this model to predict the win percentage of a particular team. (perhaps by averaging the stats of the 4 players on the team?) I don't know if this approach is any more valid than just calculating something with win percentages alone, but it did come to mind as an option.

(I'm getting ahead of myself on this last question, but it would be a good idea to know)

Also, how should I calculate the odds of one team beating the other, if one team has (for example) a 60% win percentage and the other team has an 80% win percentage?

Would I just take 60 and 80 over 140 to get the "scaled" win percentage (43% vs 57%), or is there a better method?

• Perhaps the approaches discussed in the very similar thread at stats.stackexchange.com/questions/34789/… will be helpful. – whuber Jul 16 '14 at 21:45
• @whuber, I can see the benefits in taking similar players and putting them on different teams, but that seems to be a non-optimal solution. It's not what I was looking for, but it is interesting nevertheless. – Stack Tracer Jul 16 '14 at 21:47
• If you read to the second part of my solution you will see that I reframed the question in a way that seems perfectly aligned with your formulation. Don't you think "balanced teams" and "teams of nearly equal strength" are the same concept? – whuber Jul 16 '14 at 21:53
• Yes. I didn't go down to the second part. Thanks. That looks like something I could try. However, in a larger tournament than six people (with, say, 100 participants) would there be a computationally easier way to do that? It seems like checking 10^8 (100 nCr 4) teams would be a bit of a computational load. – Stack Tracer Jul 16 '14 at 22:00
• That's true--I believe it's an NP hard problem. But there are established solutions. Simulated annealing would work well. So should an integer linear program. And unfortunately the number to check with a brute force solution is far larger than $10^8$: it's $100!/(4!^{25}25!)\approx 4.6 \times 10^{217}$. – whuber Jul 16 '14 at 22:14