Originalmente publiqué esto 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 depurarlo. Cualquier enlace a calculadoras en línea o métodos de clasificació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 clasificació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 clasificación (RD) más alta alguien ha estado inactivo por más tiempo. Lo hace con la noción de una constante del sistema que se relaciona con los períodos de tiempo / calificación.

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

El sistema Glicko-2 funciona mejor cuando la cantidad de juegos en un período de clasificación es de moderada 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 ajedrecistas activos juega de 10 a 15 partidas en promedio en un período de 1 mes, el administrador actualizaba 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 cual no dejaba que coincidiera con el ejemplo de la redacción técnica, el autor lo encontró lo suficientemente cerca y no se molestó en depurar.

Implementación de PHP Glicko-2

  • La implementación de PHP estaba plagada de muchos errores, pero eso no era evidente a menos que hiciera más de un período de calificación (que el técnico escribe- hasta nev er muestra los valores esperados de)

Calculadora Glicko-2 en Excel

  • Finalmente, la calculadora de Excel parecía estar libre de errores y ser la más profesional, hecha por alguien de la comunidad del ajedrez. Una vez que se resolvió el error de JavaScript, JavaScript y Excel Calculator coincidieron muy de cerca entre sí (aunque no es perfecto, podría estar dentro de un error de redondeo)

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


Ahora estoy 99% seguro de que tengo una implementación precisa de Glicko-2 (entre las 3 de ellos) para su análisis y fue entonces cuando me encontré con algo extraño, y el tema de esta discusión.

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

Rating: 1500 RD: 350 Volatility: 0.06 

Si te enfrentas a un oponente promedio de calificación 1378 y RD 99 ( Fuente ) solo una vez en cada período de calificación (1 mes) durante los próximos 12 períodos (1 año), habrá acumulado una Clase nacional A supuesta (1800-1999) calificación de 1852 cuando en realidad tienes solo venció 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 clasificación, puedes llegar a la Clase Nacional A alrededor de 4-5 meses, enfrentándote 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 estas suposiciones precisas? ¿Hay algún error en mi calculadora?

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

  • Considere la «calificación verdadera» como 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

Comentarios

Responder

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 de

Si ganas todos los juegos que juegas, sí, tu calificación aumentará hasta ser bastante alta incluso si juegas solo contra jugadores de baja calificación. La probabilidad de que ganes todos los juegos contra ese oponente es probablemente sobre lo que lograría un jugador de clase A (aunque probablemente s un poco inflado debido a la RD relativamente alta, todavía).

La mejor manera de contrarrestar, en mi opinión, es no considerar a alguien con un RD superior a una cierta cantidad como una calificación estable, es decir. considérelo «provisional». Además, para ganar un título, al menos en la USCF, tienen un sistema de normas, donde debes rendir a un cierto nivel en un torneo de 4 juegos o más (4 veces, creo), lo que hace que la probabilidad de jugar contra un ~ 1378 durante todo el torneo [cuatro veces] es muy poco probable.

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

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

Y por Por cierto, Glicko-1 también usa RD / time decay. La principal mejora de Glicko-2 fue el factor de «volatilidad», que permite que las personas con resultados erráticos o estables se calculen de manera muy diferente. Creo que es una modificación mínima de Glicko-1 que genera 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.

Comentarios

  • FYI, un El título de nivel de clase de la USCF requiere obtener una norma en 5 torneos.

Respuesta

Todos los sistemas de clasificación tienen problemas en vida real. En el mejor de los casos, ninguno de ellos puede hacer más que aproximarse a una suposición de tu habilidad.

Lo harán mejor a nivel de DJ ya que esos jugadores son más consistentes y tienden a jugar más DJs; mientras que el resto de nosotros somos más inconsistentes y tendemos a jugar con una gama más amplia de jugadores de menor calificación que también son más inconsistentes. Y los jugadores nuevos tienden a mejorar mucho más rápido mientras juegan en menos torneos, lo que sesga aún más todas las calificaciones. Y en cualquier nivel, algunos jugadores tienen días libres o no se esfuerzan tanto si eso no cambia su posición en los resultados finales.

Tratar de ajustar las calificaciones de manera similar a Glicko2 es una tontería.

Otro factor que agrava el problema es que los jugadores tienden a jugar con los mismos jugadores. Si hubiera un sistema suizo obligatorio en todo el mundo que jugara suficientes rondas, habría una gran sacudida en las calificaciones de la mayoría de los jugadores. Un doble round robin mundial haría algunos cambios más, pero el suizo sería un buen comienzo para corregir errores de calificación, al menos en el medio con jugadores establecidos. Aún tienes el problema de que los nuevos jugadores distorsionan las calificaciones.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *