Durante la temporada pasada, como parte de mi eterna misión de cuantificar todo lo cuantificable en Overwatch, desarrollé un sistema Elo para medir la potencia de los equipos de la Overwatch League a lo largo del tiempo. Por desgracia, y a pesar de haberme permitido elaborar gráficos muy bonitos, la implementación de este sistema no dio los resultados esperados, puesto que no evalué correctamente su precisión. Ahora, con la mirada puesta en el futuro, vamos a echar un vistazo a un nuevo sistema reestructurado y mejorado: el Elo de la Overwatch League 2.0 (EOL 2.0 para los amigos). Este sistema incluye correcciones para todos los errores del pasado y es una mezcla al más puro estilo Frankenstein del Elo de la NBA y el Elo de la NFL de FiveThirtyEight con modificaciones centradas en adaptar estos métodos al ecosistema específico de la OWL.

Los modelos Elo funcionan como juegos de suma cero: cuando dos equipos se enfrentan, el ganador obtiene la misma cantidad de Elo que se resta al perdedor. La cantidad que intercambian se rige en todos los sistemas de este tipo por una constante de volatilidad K y una probabilidad de victoria esperada que se basa en la diferencia entre la puntuación Elo de los dos equipos:

Elo intercambiado = K(1 - probabilidad de victoria esperada)

Los sistemas Elo de FiveThirtyEight llevan este cálculo unos cuantos pasos más allá para mejorar la precisión de sus resultados. El primero de estos pasos es el índice de transferencia de año a año (TAA, o CT en inglés), en el que una parte de la puntuación Elo de un equipo en la temporada pasada se mantiene para la siguiente. En los deportes tradicionales, esto sirve para ajustar la interpretación que hace el sistema de la potencia de un equipo tras un descanso entre temporadas repleto de cambios en las plantillas y alteraciones similares.

En el EOL 2.0, he experimentado con una serie de combinaciones de K y de TAA hasta dar con un par que maximizaba mis resultados en términos de puntuación de Brier, de predicción de mapas y de resultados de las partidas. El valor final de K es 47, mientras que la TAA es del 60 %. En lugar utilizarse cada nueva temporada, este porcentaje se aplica con cada nuevo parche, ya que en la Overwatch League no hemos de preocuparnos solo por los cambios en las plantillas, sino también por las modificaciones en el funcionamiento del propio juego. Por ejemplo, los Vancouver Titans terminaron la primera fase con un Elo de 1183,5, lo que significa que comenzaron la segunda con una de (1183,6 * 0,6) + (1001 * 0,4) = 1110,6.

Los sistemas de FiveThirtyEight también tienen en cuenta a los nuevos equipos, a los que se les asigna un Elo por debajo de la media. La Overwatch League ha dado la bienvenida a ocho nuevos equipos de expansión hace poco, así que me pareció adecuado añadir este elemento. En el EOL 2.0, los equipos nuevos comienzan con un Elo de 990 (siendo 1000 la media) que representa las incógnitas relativas a su futuro rendimiento en la liga. Esto reduce de forma natural la media del sistema, pero también he adaptado el método de conservación de la media a lo largo del tiempo de FiveThirtyEight: la puntuación Elo de todos los equipos se reinicia con un valor ligeramente por encima de la media (1001, como se puede observar en el cálculo con TAA de más arriba) con cada nuevo parche.

El último elemento que he tomado prestado de FiveThirtyEight y ajustado para el EOL 2.0 es el multiplicador del margen de victorias (el MdV, o MoV en inglés). El objetivo del MdV es recompensar a los equipos ganadores por las victorias más espectaculares, puesto que un resultado de 1-0 con control completo del mapa resulta mucho más significativo a la hora de ilustrar la diferencia entre equipos que un 5-4 muy ajustado.

El EOL 2.0 utiliza un multiplicador de MdV de dos niveles basado en el factor diferencial de victorias en peleas de equipo en el tiempo y el factor diferencial de muertes en el tiempo. Que un equipo gane en un mapa no quiere decir que vaya a ganar en términos del factor diferencial de victorias en peleas de equipo (los empates se dan con frecuencia), así que, en caso de necesidad, se usa el factor diferencial de muertes.

El MdV debe estructurarse de manera que reduzca la autocorrelación, que se da cuando los equipos que se espera que ganen consiguen la victoria con grandes factores diferenciales a su favor. Si se espera que un equipo gane, es por algo, y un MdV sin ajustes puede resultar en inflaciones imprecisas de las puntuaciones de Elo de los equipos ganadores a lo largo del tiempo. Para controlar la autocorrelación, el cálculo del MdV de los sistemas de FiveThirtyEight otorga un multiplicador mayor a los equipos con las de perder que se hacen con la victoria siempre que se dé la misma puntuación de factores diferenciales (PFD, o SD en inglés). En mi sistema, la PFD de los diferentes mapas varía desde 0,3 hasta 5. Estos márgenes de victoria se introducen en la siguiente fórmula (que, de nuevo, he adaptado de los cálculos de FiveThirtyEight):

log(1 + PFD) * 1/(diferencia de Elo * 0,001 + 1)

En el EOL 2.0, una puntuación de factores diferenciales de 2,5 otorga cerca de 1,4 de MdV a un equipo cuyo Elo esté unos 100 puntos por debajo de la media, y 1,15 a los equipos que estén unos 100 puntos por encima. Ahora que hemos definido todas las herramientas de la EOL 2.0, vamos a analizar la progresión de los equipos de este año hasta el momento:

La primera fase nos ha presentado un sinfín de oportunidades: se han unido a la liga un total de ocho nuevos equipos, cada uno de ellos con una puntuación Elo de 990 y en la posición perfecta para comenzar a arrebatarles Elo a los veteranos con mejor historial de la liga. Sin embargo, solo uno de los equipos de expansión ha terminado significativamente por encima de su posición inicial, los Vancouver Titans. La arrasadora trayectoria de los Titans hasta la victoria en la final de la primera fase ya forma parte de la historia, pero lo cierto es que, de haberse enfrentado a NYXL, los resultados podrían haber sido diferentes. Seoul Dynasty evitó que esto sucediera. Prestad especial atención a la caída en picado del Elo de NYXL y al meteórico ascenso de los Seoul Dynasty:

Esta es la representación visual de la derrota de los Excelsior ante los Seoul Dynasty. En la víspera del enfrentamiento, tanto expertos como aficionados daban por segura la derrota de los Dynasty. Y tanto unos como otros se equivocaron, pero ¿por cuánto margen?

La elaboración del EOL 2.0 ha abierto la puerta a un nuevo tipo de análisis: las predicciones. Si dispongo de dos puntuaciones Elo, de una base de datos llena de resultados de partidas y de un sistema que me ayude a actualizar esas puntuaciones Elo, ahora puedo aprovechar el pasado para predecir el futuro. Para ello, me he apoyado en un modelo de simulación de Montecarlo*.

* El origen del método de Montecarlo mola un montón, e incluye el primer ordenador ENIAC y el Proyecto Manhattan. Su tenéis un rato, os recomiendo que le echéis un vistazo.

Las simulaciones de Montecarlo sirven para determinar los resultados probables de un sistema proporcionándole datos aleatorios. Imaginaos que tenéis un par de dados de seis caras y queréis saber la probabilidad de que los resultados de los dos dados sumen siete al tirarlos. Por un lado está la opción de perderse en cálculos para obtener la solución matemática a esta pregunta; por el otro, podríais poneros a tirar los dados 10 000 veces y apuntar la cantidad de veces que os sale siete. Esto último es lo que hacen las simulaciones de Montecarlo.

Mi simulación usa el sistema EOL 2.0 para tirar unos dados virtuales que determinan diferencias de Elo, índices de selección de mapas y márgenes de victoria:

  1. Empecemos con dos puntuaciones Elo iniciales del EOL 2.0.
  2. Ahora, vamos a disputar una partida en un mapa hipotético: determinamos un ganador de forma aleatoria basándonos en la diferencia de Elo, utilizamos ejemplos aleatorios de márgenes de victoria existentes e incluimos la posibilidad de empates si el mapa en cuestión los permite.
  3. A continuación, actualizamos el Elo de los dos equipos de acuerdo con el resultado del mapa en el EOL 2.0.
  4. Repetimos los pasos 2 y 3 hasta que tengamos un ganador del enfrentamiento (cuatro mapas, o cinco si el cuarto resulta en empate).
  5. Obtenemos como resultado las puntuaciones del enfrentamiento.
  6. Repetimos los pasos del uno al cinco unas 10 000 veces.

Tras conseguir 10 000 casos con esta simulación, obtenemos tanto un total de victoria en el enfrentamiento por equipo como un total de resultados únicos para cada enfrentamiento (desde 4-0 hasta 3-2). He realizado pruebas con estas predicciones en las partidas de la semana pasada y los resultados fueron espeluznantemente positivos: el ganador esperado se hizo con la victoria en 13 de los 16 enfrentamientos. Una de las predicciones fallidas, además (Boston contra Hangzhou), se decidió por una probabilidad de victoria del 50,5 % y con un 3-2 muy ajustado. El sistema fue incluso capaz de predecir la primera victoria de la temporada de los Valiant frente a los Atlanta. Por otro lado, metió la pata al determinar con un 60 % de probabilidad que los Chengdu ganarían a los Shanghai, y con un 56 % que los Toronto lo harían contra los Philadelphia.

Lo más probable es que lo de la semana pasada haya sido una racha de suerte y la precisión general del modelo sea menor. Procedí a realizar pruebas con la cuarta fase del año pasado, una de las más impredecibles y llenas de variables para el EOL 2.0: coincidió con la llegada de Brigitte, la caída de los NYXL y el ascenso de los Dallas Fuel desde lo más bajo hasta las eliminatorias de fase, entre otras sorpresas. No obstante, y aun teniendo todo esto en cuenta, el modelo acertó con sus predicciones para 40 de las 60 partidas.

Y ahora volvamos a la pregunta que me animó a embarcarme en este viaje de cálculos y ajustes: ¿hasta qué punto fue una sorpresa la victoria de los Seoul Dynasty ante los NYXL en las eliminatorias de la primera fase? Antes de esa partida, los Dynasty tenían un Elo de 1015,2 y los NYXL, de 1183,6 (la más alta de la liga en ese momento). Estos son los resultados que he obtenido al introducir estos datos en el simulador (con unos ajustes a la progresión de mapas para que se adecúe al formato de las eliminatorias):

Por un lado, no solo se esperaba que los NYXL se alzaran victoriosos en un 81,86 % de los resultados predichos, sino que también aparecían invictos en un 40,73 % de ellos. El resultado final de la victoria de los Dynasty, un 3-1, solo se dio en un 6,82 % de los casos simulados.

El patinazo de los NYXL en las eliminatorias fue una gran sorpresa, y no pasa nada. Si un algoritmo de predicción de partidas fuera capaz de determinar correctamente los resultados de todas ellas, ¿qué sentido tendría disputarlas?

Ahora que tengo un nuevo juguete, vamos a probar un juego con los resultados de la tercera semana: ¿sabéis más que mi simulador? Aquí tenéis tres enfrentamientos de la semana que viene que se plantean interesantes por diversos motivos. ¿Cómo serán vuestras predicciones en comparación con las del algoritmo?

Primer enfrentamiento: Vancouver Titans (1132,9) contra Dallas Fuel (1054,5)

Motivo: Dallas se enfrenta a su primer gran desafío de la segunda fase.

Resultados de la simulación:

Segundo enfrentamiento: Los Angeles Valiant (939,7) contra Washington Justice (903,7)

Motivo: ambos equipos buscan su segunda victoria esta temporada.

Resultados de la simulación:

Tercer enfrentamiento: Hangzhou Spark (998,3) contra Guangzhou Charge (882,3)

Motivo: es la última oportunidad de los Guangzhou para no establecer un nuevo récord de mapas perdidos consecutivamente.

Resultados de la simulación:

Podéis seguir a Ben «CaptainPlanet» Trautman, productor de estadísticas del equipo de retransmisión global de la Overwatch League, en Twitter.