Sistema de clasificación Glicko-2: ¿error o explotación?


13

Originalmente tenía esto publicado en StackOverflow, ya que podría ser un error en las implementaciones, pero algunos sugirieron que publique en matemáticas. Acabo de encontrar este stackexchange y pensé quién mejor. Algunos de ustedes pueden saber de inmediato que esto parece correcto o no, sin la necesidad de depurar. Cualquier enlace a calculadoras en línea o métodos de calificación alternativos son bienvenidos.


Glicko-2 es un sistema de clasificación utilizado en el ajedrez, pero puede utilizarse en muchas otras situaciones. Glicko-2 es una mejora en Glicko-1, que abordó los problemas de la calificación ELO anterior.

Lo que hace que Glicko-2 sea especial en comparación con la versión 1 es que incorpora una desviación de calificación más alta (RD) cuanto más tiempo alguien ha estado inactivo. Lo hace con la noción de una constante del sistema que se relaciona con los períodos de tiempo / calificación.

Un ejemplo escrito del autor se encuentra aquí: http://www.glicko.net/glicko/glicko2.pdf .
En este documento, explica:

El sistema Glicko-2 funciona mejor cuando el número de juegos en un período de calificación es de moderado a grande, digamos un promedio de al menos 10-15 juegos por jugador en un período de calificación. El período de tiempo para un período de calificación queda a discreción del administrador.

Suponiendo que un grupo de jugadores de ajedrez activos juegan 10-15 juegos en promedio en un período de 1 mes, el administrador actualizará las calificaciones al final de cada mes.


Necesitaba una implementación PHP del sistema de calificación Glicko-2 y encontré lo siguiente:

Implementación de JavaScript Glicko-2

  • El JavaScript tenía un pequeño error, en el que no lo dejaba coincidir con el ejemplo de redacción técnica, el autor lo encontró lo suficientemente cerca y no se molestó en depurarlo.

Implementación PHP Glicko-2

  • La implementación de PHP estuvo plagada de muchos errores, pero eso no era evidente a menos que hiciera más de un período de calificación (que la descripción técnica nunca muestra los valores esperados de)

Calculadora Glicko-2 en Excel

  • Finalmente, la calculadora Excel parecía estar libre de errores y la más profesional, realizada por alguien de la comunidad de ajedrez. Una vez que se solucionó el error de JavaScript, la Calculadora de JavaScript y Excel coincidió muy estrechamente entre sí (aunque no es perfecta, podría estar dentro del error de redondeo)

Solucioné los errores (y envié problemas / parches a los autores) que pude encontrar en las versiones de PHP y JavaScript para que coincidan lo más posible con la Calculadora de Excel


Ahora estoy 99% seguro de que tengo una implementación precisa de Glicko-2 (entre los 3) para el análisis y es cuando encontré algo extraño y el tema de esta discusión.

Dado el valor predeterminado sugerido para Glicko-2 para un nuevo jugador:

Rating:      1500
RD:           350
Volatility:  0.06

Si se enfrenta a un oponente promedio de la calificación 1378 y RD 99 ( Fuente ) solo una vez cada período de calificación (1 mes) durante los próximos 12 períodos (1 año) habrá acumulado una calificación asumida de Clase Nacional A (1800-1999) de 1852 cuando en realidad solo has vencido a 12 jugadores con calificación promedio en un lapso 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        〃

Si te enfrentas a 2 oponentes promedio en cada período de calificación, puedes llegar a la Clase Nacional A alrededor de 4-5 meses, enfrentando solo a 8-10 oponentes promedio.

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        〃


¿Son precisos estos supuestos? ¿Hay algún error en mi calculadora?

Si no es un error, ¿cuáles son algunas formas de contrarrestar esto además de:

  • Considere que la "calificación verdadera" es el límite inferior de la desviación (Calificación - RD)
  • No mostrar la calificación del usuario inactivo
  • No mostrar a los usuarios con menos de N juegos


Respuestas:


9

Trabajé en una implementación de Scala hace unos meses, aunque estaba un poco sin pulir, debería volver para terminarla. Al menos obtuve algunos resultados razonables.

Si ganas cada juego que juegas, sí, tu calificación crecerá hasta ser bastante alta, incluso si juegas contra jugadores de baja calificación. La probabilidad de que ganes cada juego contra tal oponente probablemente se deba a lo que lograría un jugador de clase A (aunque probablemente todavía esté un poco inflado debido a la RD relativamente alta).

La mejor manera de contrarrestar, en mi opinión, es no considerar a alguien con un RD por encima de cierta cantidad como una calificación estable, es decir, considerarlo como "provisional". Además, para obtener un título, al menos en la USCF, tienen un sistema de normas, donde debes desempeñarte a cierto nivel en un torneo de 4 juegos o más (4 veces, creo), lo que hace que sea probable de jugar contra un ~ 1378 para todo el torneo [cuatro veces] muy poco probable.

¿Tu objetivo es usar esto para el ajedrez? ¿Cuál es su caso de uso?

Actualización: FICS lo maneja solo considerando a las personas con un RD de <80 activo. (Todavía usan Glicko-1, creo). Http://www.freechess.org/Help/ficsfaq.html#Q005.003

Y, por cierto, Glicko-1 también usa RD / decadencia de tiempo. La principal mejora de Glicko-2 fue el factor de "volatilidad", que permite que las personas con resultados erráticos o resultados estables se calculen de manera muy diferente. Creo que es un ajuste muy pequeño para Glicko-1 que causa un cálculo adicional considerable, pero como tú, todavía estaba interesado en calcularlo. De hecho, le pedí al propio Glickman algunos puntos de datos adicionales para las pruebas, pero estaba demasiado ocupado para proporcionarlos en ese momento.


FYI, un título de nivel de clase de USCF requiere ganar una norma en 5 torneos.
DM
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.