Dear all,
A new idea for ECF and an old one for FIDE...
Let us in the formula
Code: Select all
g2i = gi + Sum_j ((kij*(qij - pij))/ni)
replace 'ni' with 'n0>0', then one gets
Code: Select all
g2i = gi + Sum_j ((kij*(qij - pij))/n0)
where 'n0>0' is some constant number of games.
Replacing 'ni' with 'n0' has a direct implication on the status of 'kij' factors, as now the rate of grade change per season does not depend solely on the choice of 'kij' factors, but also on the choice of 'n0', say a grading system with 'kij=kji=1' and 'n0=30' would change grades equally rapidly as the system with 'kij=kji=1/2' and 'n0=15'.
The FIDE-like 'matrix' model...
Restrictions:
(none)
Definitions:
o 'n0' is some constant number of games, 'n0>0', note that if 'kij=kji=1' if 'i'th and 'j'th players played at least one game in the season and 'kij=kji=0' if 'i=j' or if 'i'th and 'j'th player did not play each other in the season, then 'n0' is a number of games after which a player's new grade would equal his or her actual performance,
o 'm' is the total number of players in the system, 'm>0'
o 'n_' is game number vector where 'ni' is a number of games 'i'th player played in the season
o 'g_' is a grade vector where 'gi' is grade from previous season of 'i'th player
o 'g2_' is a new grade vector where 'g2i' is a new grade for the season of 'i'th player (player's new grade for the season is calculated using the player's game results in the season and the player's and the player's opposition grades from previous season)
o 'Q_' 'is 'mxm' matrix where 'qij' is actual performance of 'i'th player against 'j'th player (if the players 'i' and 'j' played one game only then 'qij' is 0 if 'i'th player lost, 50 if 'i'th player drew and 100 if 'i'th player won, if the players 'i' and 'j' played more than one game than '0<=qji<=100', note that 'qij' and 'qji' are related, i.e., if 'qij=0' then 'qji=100','if 'qij=50' then 'qji=50', if 'qij=100' then 'qji=0', etc.), note that 'qij+qji=100' if 'i'th and 'j'th players played at least one game in the season, note that 'qij = qji = 0' if 'i=j' or if 'i'th and 'j'th player did not play each other in the season, 'Q_' is actual performance matrix
o 'P_' is 'mxm' matrix where 'pij=f(gi-gj)' is expected performance of 'i'th player in the game against 'j'th player, note that ECF is using 'f(dij=gi-gj)=50*(1 + (gi-gj)/50)' if '|dij=gi-gj|<=40' and 'f(dij=gi-gj)=90' if 'dij=gi-gj>40' and 'f(dij=gi-gj)=10' if 'dij=gi-gj<-40', FIDE logistic equivalent is 'f(dij=gi-gj)=100/(1 + 10^(-(gi-gj)/50))', note that if 'gi=gj' then 'f(gi-gj)=50', note that 'pij+pji=100', 'P_' is expected performance matrix
o 'K_' is 'mxm' matrix where 'kij' are 'k' factors used in calculation of new grades for the season, 'kij=kji=0' if 'i=j' or if 'i'th and 'j'th player did not play each other in the season, 'kij+kji=k', where 'k>0' is a constant, if 'i'th and 'j'th players played at least one game in the season, 'K_' is 'k' factors matrix
New grades in the season are calculated as follows (this is a generic formula covering a number of grading systems including the current ECF one, what makes the grading systems different is a choice of matrices 'K_' and 'P_')
Code: Select all
g2i = gi + Sum_j ((kij*(qij - pij))/n0)
where for a grading system matching the current one may have 'kij=kji=1' if 'i'th and 'j'th players played at least one game in the season, 'kij=kji=0' if 'i=j' or if 'i'th and 'j'th player did not play each other in the season, 'pij=f(gi-gj)' where 'f(dij=gi-gj)=50*(1 + (gi-gj)/50)' if '|dij=gi-gj|<=40' and 'f(dij=gi-gj)=90' if 'dij=gi-gj>40' and 'f(dij=gi-gj)=10' if 'dij=gi-gj<-40' and 'n0=30'.
New FIDE-like ECF grading systems proposed...
I propose a new FIDE-like ECF grading system FGS (FIDE-like Grading System) which is based on "The FIDE-like 'matrix' model" where 'kij=kji=1' if 'i'th and 'j'th players played at least one game in the season, 'kij=kji=0' if 'i=j' or if 'i'th and 'j'th player did not play each other in the season, 'pij=f(dij=gi-gj)' where 'f(dij=gi-gj)=100/(1 + 10^(-(gi-gj)/50))' and 'n0=30'.
FGS would change players' grades per season equally rapidly as GS (current Grading System) for players who played 30 games in the season, less rapidly than GS for players who played less than 30 games in the season, and more rapidly than GS for players who played more than 30 games in the season.
One would not need to grade at least 30 games, taking games from previous season or seasons if necessary, i.e., one would simply grade the games a player did play in the season, one or even zero games played in the season would be just fine.
FGS should help with the "junior problem" assuming that fast improving juniors play a lot, say 60is or more games per season, as then their grades would change more rapidly than now.
One could set 'kij=0' and 'kji=1' if 'i'th and 'j'th players played at least one game in the season and if 'i'th player is graded and 'j'th player is ungraded.
To further help with the "junior problem" one could set 'kij=1' and 'kji>1' if 'i'th and 'j'th players played at least one game in the season and if 'i'th player is not a junior and 'j'th player is a junior.
The lighthouse keeper example would be dealt as follows, say that the grades of the lighthouse keepers are 100 and 120 respectively and that the keepers drew all of their games in the season, if they played 15 games in the season their new grades would be 110 each, if they played 30 games in the season their grades would swap (as now), etc.
The best would be if one could grade (but not publish the grades) after every game, but I guess this may be impractical, though all one would need is date and time when each game finished.
One could fine-tune 'n0' and choose a value different from 30.
Thanks
Yours sincerely,