Originalmente , eu publiquei isso no StackOverflow , pois poderia ser um bug nas implementações, mas alguns sugeriram que eu publicasse em matemática. Acabei de encontrar essa troca de pilha e pensei em quem melhor? Alguns de vocês devem saber de imediato que isso parece preciso ou não, sem a necessidade de depuração. Quaisquer links para calculadoras on-line ou métodos alternativos de classificação são bem-vindos.
O Glicko-2 é um sistema de classificação usado no xadrez, mas pode ser usado em muitas outras situações. O Glicko-2 é uma melhoria do Glicko-1, que abordou problemas da classificação ELO mais antiga.
O que torna o Glicko-2 especial em comparação com a versão 1 é que ele incorpora um maior desvio de classificação (RD) quanto mais tempo alguém fica inativo. Faz isso com a noção de uma constante do sistema relacionada a períodos de tempo / classificação.
Um exemplo escrito do autor é encontrado aqui: http://www.glicko.net/glicko/glicko2.pdf .
Dentro deste documento, ele explica:
O sistema Glicko-2 funciona melhor quando o número de jogos em um período de classificação é moderado a grande, digamos uma média de pelo menos 10 a 15 jogos por jogador em um período de classificação. O período de tempo para um período de classificação fica a critério do administrador.
Partindo do pressuposto de que um grupo de jogadores de xadrez ativos joga de 10 a 15 jogos em média em um período de 1 mês, o administrador atualiza as classificações no final de cada mês.
Eu precisava de uma implementação em PHP do sistema de classificação Glicko-2 e me deparei com o seguinte:
Implementação do Glicko-2 JavaScript
- O JavaScript teve um pequeno erro, no qual não o deixava corresponder ao exemplo de redação técnica, o autor o achou próximo o suficiente e não se incomodou em depurar.
- A implementação do PHP foi afetada por muitos bugs, mas isso não era aparente, a menos que você fizesse mais de um período de classificação (do qual a revisão técnica nunca mostra os valores esperados)
- Finalmente, a calculadora do Excel parecia livre de erros e a mais profissional, feita por alguém da comunidade de xadrez. Depois que o bug do JavaScript foi resolvido, o JavaScript e a Calculadora do Excel se aproximavam muito (embora não fossem perfeitos, poderiam estar dentro de um erro de arredondamento)
Corrigi os bugs (e enviei problemas / correções aos autores) que encontrei nas versões PHP e JavaScript para corresponder o mais próximo possível à Calculadora do Excel
Agora estou 99% confiante de que tenho uma implementação precisa do Glicko-2 (entre os três) para análise e foi aí que me deparei com algo estranho e o tópico desta discussão.
Dado o padrão sugerido para o Glicko-2 para um novo player:
Rating: 1500
RD: 350
Volatility: 0.06
Se você enfrentar um oponente médio da classificação 1378 e RD 99 ( Fonte ) apenas uma vez a cada período de classificação (1 mês) pelos próximos 12 períodos (1 ano), terá acumulado uma classificação presumida de Classe Nacional A (1800-1999) de 1852 quando, na realidade, você venceu apenas 12 jogadores com classificação média em um período de 12 meses.
Month Rating RD Volatility Class
1 1625 259 0.059999 National Class B
2 1682 225 0.059998 〃
3 1718 205 0.059997 〃
6 1784 174 0.059994 〃
12 1852 148 0.059988 National Class A
24 1922 127 0.059976 〃
Se você enfrentar 2 oponentes médios a cada período de classificação, poderá chegar à Classe A Nacional por cerca de 4-5 meses, enfrentando apenas 8-10 oponentes médios.
Month Rating RD Volatility Class
1 1672 215 0.059999 National Class B
2 1733 183 0.059997 〃
3 1770 166 0.059995 〃
4 1797 154 0.059993 〃
5 1819 146 0.059992 National Class A
6 1836 140 0.059991 〃
Essas suposições são precisas? Há algum erro na minha calculadora?
Se não for um bug, quais são algumas maneiras de combater isso além disso:
- Considere "classificação verdadeira" como o limite inferior do desvio (Rating - RD)
- Não mostrar a classificação do usuário inativo
- Não mostrar usuários com menos de N jogos