Sorry
Sprung that I annihilated your thread. Your idea is really interesting!
Note that what you call 120 is actually 400/log_2(10) and thus 2^(1/120) actually 10^(1/400) =: B.
quote: The values would be between 2^10 (ELO 1200) and 2^20 (ELO 2400). Floating points shouldn't have any problem with this. Make sure to add them up in ascending order, to prevent floating point inaccuracies. |
Yes. And the scale can be multiplied with any factor, so that we can get numbers rather like
Sprung proposed in his 1st post.
[Spoiler]I'd use the factor B^-1500 to get playerstrength=1 for elo=1500. Of course this factor is not really needed if the transformation to playerstrength is only done for calculation. It wouldn't even be necessary if sensible people would have defined the elo scale as 0+-1 instead of 1500+-400/ln(10). In order to also account for this factor being =1
I will use a general factor B^-eloShift to get playerstrength=1 for elo=eloShift. eloShift=0 is easiest to calculate, eloShift=1500 is most elegant (because it compensates the non-elegance of 1500), eloShift=1380 is used in
Sprung 's 1st example. Thus
playerstrength = B^(elo-eloShift).
teamstrength is the average of the team's players' playerstrength. Actually the only thing that changes is that team elo is no longer the normal average, but
team elo = log_B(teamstrength)+eloShift.
My observation with concrete values in comparison to the current system: For teams with no elo deviation it results in the same. The higher a team's elo deviation, the better its teamstrength.
I have proven that using this new kind of team elo in the current elo calculation for 2 teams of any size results in win probabilitites proportional to teamstrengths. Because I have recently calculated the correct solution for
ZK's team FFA elo (currently a wrong one is used), I wondered if teamstrengths are still proportional to win probabilities that were calculated by inserting this new team elo in the FFA solution. This would show that "playerstrength" is really fundamental. Unfortunately it didn't hold true, even though both alternatives seem valid.
TheEloIsALie indicated that the transformation could be arbitrary. So let's assume a general function f with inversion g, where
playerstrength = g(elo)
teamstrength = average of team's playerstrength
team elo = f(teamstrength).
[Spoiler]Now we can also see why elo deviation increases this team elo: As long as g is a convex and strictly monotonic increasing diffeomorphism, team elo is similar to the p-norm of a vector of player elos and thus between average (p=1) and maximum (p=infinity).
Then we have the possibility to use either team elo for a probability calculation as usual or probabilities proportional to teamstrength. I have shown that the equivalence of both even for team FFA with N teams is equivalent to
2/(N(N-1)) sum from k=2 to N (1/(1+B^(f(teamstrength_k) - f(teamstrength_1)))) = teamstrength_1 / (sum from k=1 to N (teamstrength_k)).
What is f? Does such an f even exist?[Spoiler]Example 2v2v2:
team 1: 1200, 1600
team 2: 1300, 1500
team 3: 1300, 1700
Win chances according to current system: 1: 42.6%, 2: 42.6%, 3: 64.0% (sum > 100%)
correct FFA solution for current system: 1: 28.7%, 2: 28.7%, 3: 42.7%
FFA solution with team elo from teamstrength: 1: 31.9%, 2: 22.6%, 3: 45.5%
proportional to teamstrength: 1: 29.0%, 2: 19.5%, 3: 51.5%
This could also be combined with (
team size dependancy and
probability system) or ANN. If you are interested in
TrueSkill,
here you are.