Let's be straightforward to my case. I'm building a matchmaking system where it produces groups of players. Each player has a weight that is obtained from his/her skill and experience. A group is good if it has low difference among its members' weights (meaning their weights are close to one another). I calculate the weight differences among the players in the same group and average them, resulting a number that determines the closeness of weights among a group's members. For example, a matchmaking process resulted these groups:
Group A
Player 1 weight: 25
Player 2 weight: 30
Player 3 weight: 10
Then the average weight differences among the players: (abs(25-30) + abs(25-10) + abs(30-25) + abs(30-10) + abs(10-25) + abs(10-30)) / 6 = (5 + 15 + 5 + 20 + 15 + 20) / 6 = 13.33.
Group B
Player 1 weight: 15
Player 2 weight: 40
Then the average weight differences among the players: (abs(15-40) + abs(40-15)) / 2 = (25 + 25) / 2 = 25.
Please note that the resulted groups of the matchmaking can have different number of members. It's up to the system's decision.
Then to examine all groups, I average those averages simply like this: (13.33 + 25) / 2 = 19.16500. My question is, is that the correct way to examine all groups? Or should I average the un-averaged differences among all groups like below?
(5 + 15 + 5 + 20 + 15 + 20 + 25 + 25) / 8 = 16.25
Of course the results are different, since I gave equal weight of every group in the first way, and I gave equal weight of every difference in the second way.
I have a feeling that it's better to give equal weight of every group regardless of how many of its members there are, because the matchmaking system is the one that combines the members, and the number of members for each combination is up to the system. It's the system's decision to put different or equal number of players in the groups. It's the system algorithm's responsibility. What do you think? Which one is the correct way and why is that?
Sorry if there's any unclear explanations. Thank you.