Page 1 of 1

Improvements in ELO change computation

Posted: 27 May 2020, 22:06
by whatshisbucket
Not sure if this is the right place to post this, but currently the way ELO ratings are updated after a match is a little weird. Currently the rating change after a match is as follows:
Δrating = k*c*((sum over all beaten palyers of (1-win prob))-(sum over all players lost to of (win prob))),
where k is the K factor (smaller if your true rating is more certain) and c is a constant that depends on the number of players (that seems to be consistent across multiple games). This makes sense intuitively, except for the choices of c. It makes sense that c should be 1 for a 2 player game and should decrease as the number of players increases, as this prevents the winners and losers of larger games from having preposterously large rating changes. However, the true values of c are as follows:
2 players: 1
3 players: 3/4
4 players: 2/3
5 players: 5/8
6 players: 1
7 players: 5/6
8 players: 5/7
9 players: 5/8
10 players: 5/6
(I don't know if there are any games with more players)
These values seem pretty arbitrary and unintuitive. If there is a good reason for these, that's fine, but otherwise I think it would make more sense to have c be something strictly (but not too sharply) decreasing, like 5/(3+n) (where n is the number of players).

Re: Improvements in ELO change computation

Posted: 27 May 2020, 22:41
by Tulivuori
Those may vary between games. In 7 wonders they are

1
3/4
2/3
2/4
2/5
2/6

But no one reads these forum suggestions anyway.

Re: Improvements in ELO change computation

Posted: 27 May 2020, 22:52
by aesche
What bothers me about the ELO calculation is that the result can be rounded down to 0...
While 1 point for a win is low enough, in my opinion, even if it‘s someone with 800 ELO vs 1 ELO, if the pro wins he still should get 1 ELO point.
In games with not so many players this rounding down to 0 makes it totally pointless to keep playing for a top player most of the day, because simply noone is around from whom he can gain points...

Re: Improvements in ELO change computation

Posted: 28 May 2020, 00:53
by whatshisbucket
Tulivuori wrote: 27 May 2020, 22:41 Those may vary between games. In 7 wonders they are

1
3/4
2/3
2/4
2/5
2/6

But no one reads these forum suggestions anyway.
Huh I guess they are different between games. It looks like games are the same for up to 4 players. 6 nimmt! has the ridiculous values in the OP, and Solo has the much more reasonable c=n/(2n-2). It would probably be nice if they were all the same though, and 6 nimmt especially needs a fix.
aesche wrote: 27 May 2020, 22:52 What bothers me about the ELO calculation is that the result can be rounded down to 0...
While 1 point for a win is low enough, in my opinion, even if it‘s someone with 800 ELO vs 1 ELO, if the pro wins he still should get 1 ELO point.
In games with not so many players this rounding down to 0 makes it totally pointless to keep playing for a top player most of the day, because simply noone is around from whom he can gain points...
This is not an issue; as internally ratings are stored to a greater precision. They can be seen to 2 decimal places simply by hovering over an ELO change at the end of a game. In order for the change to be less than .01 (with a minimal K factor of 20), the rating difference would have to be more than 1300, which is almost impossible.

Re: Improvements in ELO change computation

Posted: 28 May 2020, 04:18
by Jest Phulin
If I recall correctly, the variance between games is based on BoardGameGeek's "best with" rating.

Re: Improvements in ELO change computation

Posted: 28 May 2020, 04:48
by augustjologs
Jest Phulin wrote: 28 May 2020, 04:18 If I recall correctly, the variance between games is based on BoardGameGeek's "best with" rating.
True, it's based on Boardgamegeek's best played with X number of player. But basing the normalizing factor on bgg's arbitrary poll is absurd. People vote using different personal criteria -- fun factor, downtime with some many players, strategic depth, experience or lack thereof with certain number of players, etc. For example, Through The Ages: A New Story, has votes against maximum number of players (4) because of long downtime between players, even though it's more strategic and fun with maximum number of players. As with most games, it's more common to have a group of 4-5 players available than to have the maximum number of players for that game (say for 7 Wonders, common to have 4 available than 7 players). As a result, more people vote it's best with 4, because they've played with 4 and very few have played with 6 or 7 (so less votes for these player counts).

What's really wrong is basing the normalizing factor for the Elo calculation (which measure skill) on the bgg poll which measures 'fun' or 'enjoyment'. As a result we have this Elo point gain/loss bias against higher player counts. It takes more skill to win against more opponents than to win against fewer players. But the Elo calculation in bga treats them the same, with the use of normalizing factor.

Re: Improvements in ELO change computation

Posted: 28 May 2020, 12:41
by Tulivuori
I guess when the K-factor is over 20, then c=1 always. When K-factor is 20, it c can be less than 1. It is weird.

Re: Improvements in ELO change computation

Posted: 31 May 2020, 07:00
by dschingis27
Tulivuori wrote: 28 May 2020, 12:41 I guess when the K-factor is over 20, then c=1 always. When K-factor is 20, it c can be less than 1. It is weird.
This is apparently not true as you can see from this post:
https://boardgamearena.com/forum/viewto ... =3&t=16001

Re: Improvements in ELO change computation

Posted: 31 May 2020, 10:42
by Tulivuori
dschingis27 wrote: 31 May 2020, 07:00
Tulivuori wrote: 28 May 2020, 12:41 I guess when the K-factor is over 20, then c=1 always. When K-factor is 20, it c can be less than 1. It is weird.
This is apparently not true as you can see from this post:
https://boardgamearena.com/forum/viewto ... =3&t=16001
c=1 in both of them. K-factor was different.

Re: Improvements in ELO change computation

Posted: 31 May 2020, 14:11
by igoldan
Tulivuori wrote: 31 May 2020, 10:42
dschingis27 wrote: 31 May 2020, 07:00
Tulivuori wrote: 28 May 2020, 12:41 I guess when the K-factor is over 20, then c=1 always. When K-factor is 20, it c can be less than 1. It is weird.
This is apparently not true as you can see from this post:
https://boardgamearena.com/forum/viewto ... =3&t=16001
c=1 in both of them. K-factor was different.
All players in both games were playing those games for the first time. Why is K-factor different?