Este verano, quería poner a prueba mis habilidades de investigación de operaciones en un problema que me preocupaba. ¿Por qué soy tan malo en el béisbol de fantasía diario en línea?
Si estás leyendo esto, probablemente sepas de lo que estoy hablando. Supongo que eres del tipo que quería investigar un poco y tal vez tropezaste con esta publicación de blog de ciencia de datos en busca de consejos sobre cómo construir tu equipo.
Alerta de spoiler: tengo malas noticias para ti.
En este blog, aprenderá por qué los deportes de fantasía en línea son difíciles. Verá que la economía creada por estos proveedores de juegos en línea es eficiente, y necesitará dedicar mucho tiempo si quiere jugar con el sistema.
Si no está familiarizado con nada de lo que estoy hablando, entonces este párrafo es para usted. De acuerdo con un sitio web de apuestas en línea que no tendrá nombre, las apuestas deportivas de fantasía en línea son una industria de $ 48 mil millones de dólares. En los deportes de fantasía, eliges a los jugadores que juegan ese día y ves si pueden hacerte ganar dinero con un buen desempeño. En la versión de béisbol, eliges una lista de 8 jugadores de posición y 2 lanzadores; y su salario no puede superar el tope salarial de la liga. Su desempeño ese día dicta los puntos que obtienes. No tienes que hacer nada más que elegir a los mejores jugadores ese día.
Sencillo, ¿verdad?
Entra en mi equipo de fantasía, los Chicago Red Line Hustlers. Sí, construí un logotipo para mi equipo de fantasía. ¿Qué es para ti?
No somos tan buenos. Llevo jugando un mes más o menos y mi equipo ha perdido dinero. No mucho, no estoy poniendo un montón en la línea. Sin embargo, no puedo renunciar a mi trabajo diario; y quiero saber porque
Para entender por qué soy tan malo en este juego, busqué en mi kit de herramientas de análisis de decisiones y desempolvé la vieja herramienta probada y verdadera de análisis de cartera: la simulación de Monte Carlo. La simulación me ayudará a comprender el riesgo en las decisiones de personal, específicamente qué diez jugadores deben elegirse dada nuestra restricción de estar por debajo del tope salarial de la liga.
La simulación utilizará resultados de la vida real para los jugadores de béisbol de las ligas mayores desde 2018 hasta el día anterior al juego que estamos simulando. Logro eso al obtener estadísticas diarias de la API pública de MLB.com para todos los jugadores activos de las Grandes Ligas. (Nota: la ingeniería de datos está más allá del alcance de este blog).
Una vez que se recopilan las estadísticas, debemos recopilar los jugadores elegibles que participan en el juego de fantasía que nos interesa simular. Lo logro al interactuar con la API pública de un operador de apuestas deportivas en línea que se especializa en deportes de fantasía diarios. (Nota: la ingeniería de datos está más allá del alcance de este blog).
Una vez que se recopilan los datos y se identifican los jugadores elegibles, la simulación puede realizar una búsqueda exhaustiva, modificada por la propagación de restricciones novedosas, para encontrar la alineación con mejor desempeño; o un usuario puede definir una alineación y evaluar su desempeño.
El objetivo de la simulación es simular los resultados potenciales de los juegos de béisbol jugados por una alineación de 2 lanzadores y 8 jugadores de posición. Esos resultados se califican utilizando las reglas clásicas del concurso diario de béisbol de fantasía del proveedor en línea.
Con los datos disponibles, podríamos experimentar y modelar los resultados esperados a partir de nuestros datos del mundo real. Nuestro objetivo es identificar la puntuación de fantasía para jugadores de 8 posiciones (que representan las 8 posiciones de fildeo en el béisbol) y 2 lanzadores. Nuestro modelo deberá abordar los jugadores de posición y los lanzadores, por separado.
Para los jugadores de posición, la puntuación está muy sesgada hacia los resultados de bateo. Para los jugadores de posición, nuestro enfoque estará en simular las apariciones en el plato y los resultados potenciales correspondientes de esa aparición en el plato.
Logramos esto simulando los resultados de la ofensiva y solo nos preocupamos por las apariciones en el plato, ya que esta es la única posibilidad de que un jugador pueda impactar el juego de fantasía. El diagrama de flujo de nuestra simulación muestra cómo procederá nuestro modelo para identificar las apariencias de las placas y sus posibles resultados.
Los jugadores pueden tener una variedad de apariciones en el plato en cada juego, y principalmente está asociado con el orden en que aparecen en la alineación. Un jugador de posición en la parte trasera de la alineación tiende a tener menos apariciones en el plato que un jugador en la parte superior (principal) de la alineación. Nuestro modelo tiene acceso a la cantidad de apariciones en el plato que un jugador ha tenido históricamente, pero no tiene acceso al orden en la alineación en la que apareció para ese juego. Esa es la primera limitación a la precisión de nuestra simulación. Modelo las apariciones en el plato con base en los resultados históricos, no en las expectativas reales basadas en el orden de bateo para el próximo juego.
Para lograr nuestra simulación, muestreamos empíricamente las apariciones en el plato de juegos anteriores mediante el uso de un generador de números aleatorios para seleccionar las apariciones en el plato de una lista ordenada de apariciones históricas en el plato para cada jugador de posición.
Para cada juego simulado, se realiza esta selección aleatoria de apariciones en el plato. Esta metodología es muy precisa para igualar los resultados esperados de cada jugador.
Una vez que se simulan las apariciones en el plato, ahora debemos identificar el modelo para determinar qué resultados son posibles y aprovechar una probabilidad anidada para seleccionar un resultado que represente lo que se espera que logre el jugador. La primera parada en nuestra probabilidad anidada o encadenada es tomar muestras de la capacidad del jugador para convertir una aparición en el plato en un resultado ofensivo. Esta proporción se puede aplicar a las apariciones en el plato de la simulación para identificar cuántos resultados logró el jugador en ese juego.
Con el número de resultados determinado, podemos usar los resultados históricos logrados por el jugador para simular lo que ese jugador es capaz de hacer. Por ejemplo, si estamos simulando a un jugador conocido por batear muchos jonrones, veremos muchos jonrones en sus actuaciones históricas.
La simulación tomará muestras empíricas de la distribución de resultados que el jugador ha logrado en el pasado. Luego, el resultado se puede calificar de acuerdo con la tarjeta de puntaje del proveedor de fantasía en línea y luego procesarse para simular resultados adicionales según el estado del juego cuando ocurrió ese resultado.
El estado del juego cuando ocurre un resultado también afectará tres resultados finales que nuestra simulación debe modelar. Esos tres resultados dependen de los eventos que ocurrieron antes, durante y después de que el jugador logre el resultado. La capa final de nuestro diagrama de flujo muestra que las carreras, las bases robadas y las carreras impulsadas solo son posibles cuando ocurren ciertos resultados.
Además, la cantidad de esos tres eventos también se ve afectada por el resultado. Por ejemplo, si un jugador conecta un jonrón, se le otorga al menos una carrera impulsada y una carrera. Tampoco tienen posibilidad de lograr una base robada debido a ese resultado. Modelamos todas estas reglas en una capa adicional de probabilidad anidada y muestreamos empíricamente en función del desempeño anterior del jugador para simular los estados del juego en los que se estaba desempeñando el jugador. A continuación se muestra un ejemplo de uno de estos resultados, las ejecuciones de modelado.
Con todas nuestras funciones definidas, ahora puedo simular juegos ilimitados para cualquier jugador con suficientes actuaciones de muestra para aprovechar. El resultado funciona muy bien. Aquí hay un ejemplo de Trea Turner simulada de los LA Dodgers.
Teniendo en cuenta a los bateadores en la simulación, el modelo también debe poder simular los resultados de los lanzadores. La puntuación de fantasía para los lanzadores solo considera los resultados de las apariciones en el plato y los resultados de los bateadores a los que se enfrentan.
Para los lanzadores, el modelo comienza con la simulación de entradas lanzadas. Esto es importante ya que mi propia investigación novedosa sugiere que los lanzadores que lanzan más entradas tienden a desempeñarse mejor (reduciendo carreras, hits y mejorando su porcentaje de victorias a medida que avanza el juego, etc.)
Esta observación es intuitiva ya que es menos probable que un manager elija a un lanzador fuerte que tenga una buena salida del juego en lugar de otro lanzador.
Para lograr nuestra simulación, tomamos muestras empíricas de entradas lanzadas de juegos anteriores mediante el uso de un generador de números aleatorios para seleccionar entradas lanzadas de una lista ordenada de entradas históricas lanzadas por cada lanzador. El código para lograr esto es como la función de aparición en el plato para los bateadores. Para cada juego simulado, se realiza esta selección aleatoria. Esta metodología es muy precisa para igualar las entradas esperadas lanzadas por cada lanzador.
Los resultados del lanzador se evalúan en función del número de entradas lanzadas. Como indiqué anteriormente, hago esto porque el rendimiento del jugador es diferente dependiendo de qué tan avanzado esté el lanzador en el juego.
Hay tres resultados que nos preocupan: son la cantidad de victorias, carreras, hits, bases por bolas y ponches lanzados. Simulo estos resultados muestreando empíricamente subconjuntos de datos del lanzador correspondientes a las entradas lanzadas. Este proceso asegura que respetemos el desempeño del lanzador en función de las entradas lanzadas.
Los resultados finales son una verificación del estado de la simulación después de cada ejecución. El modelo anota juegos completos cada vez que el lanzador simulado lanza 9 entradas completas. Le da crédito al lanzador con una blanqueada completa del juego cada vez que el lanzador simulado lanza 9 entradas completas y no tiene carreras limpias. Finalmente, el modelo acredita al lanzador simulado con un juego sin hits si la simulación produce un lanzador que completó las 9 entradas y no logró hits.
Con todas nuestras funciones de lanzamiento definidas, ahora puedo simular juegos ilimitados para cualquier lanzador con suficientes datos de muestra. Los datos simulados son muy similares a las actuaciones reales de la MLB para los lanzadores que hemos modelado.
El objetivo de este proyecto era evaluar el riesgo en la selección de alineaciones para un juego de deportes de fantasía diario. Para lograr esto, construí una función que llena aleatoriamente una alineación válida gastando hasta el tope salarial de $50,000 indicado en las reglas clásicas de un proveedor de béisbol de fantasía. Hice esto 500 veces para crear 500 alineaciones válidas y aleatorias para simular. Cada jugador en la alineación válida pasó por su propia simulación, simulando 50 juegos de desempeño cada uno. Los resultados no fueron sorprendentes.
Parece que los resultados del béisbol tienen mucha aleatoriedad en ellos.
Aquí hay un resumen del desempeño simulado de las 10 mejores alineaciones aleatorias elegidas por la proporción de puntos a la variabilidad, como una proporción de Sharpe en finanzas. Estas alineaciones representan las opciones menos arriesgadas, pero más efectivas.
Aquí está la misma imagen pero seleccionando las alineaciones válidas con mayor puntuación.
Estas imágenes muestran alineaciones válidas con un rendimiento sólido, pero todas estas alineaciones tienen valores esperados muy cercanos entre sí. A través de esta amplia búsqueda, no pudimos encontrar una alineación que supere significativamente a todas las demás alineaciones. Nuestra simulación demostró con éxito que los juegos de béisbol de fantasía, sin un análisis y una evaluación significativos y detallados de los jugadores, son simplemente juegos de azar.
En conclusión, la simulación es una herramienta muy útil para comprender los riesgos asociados a la toma de decisiones. Se ha aplicado con éxito en una amplia gama de aplicaciones, incluido el diseño de productos, la formación de pilotos, la investigación de colas y, ahora, los deportes de fantasía.
Los resultados de esta simulación específica muestran que el béisbol a corto plazo es muy aleatorio. Cualquier jugador, en un día cualquiera, puede tener un buen o mal juego. Los emparejamientos pueden entrar en juego y las situaciones del juego pueden influir en la decisión de un jugador.
Logramos la capacidad de modelar un sistema muy complejo y obtener resultados muy reales. A largo plazo, espero que mi simulación genere jugadores que se desempeñen de manera similar a sus contrapartes de la vida real.
Las simulaciones se pueden mejorar. Por ejemplo, no tenemos datos sobre el estado del juego para ningún resultado de rendimiento. Simulamos en base a logros anteriores, pero un modelo mejorado también simularía el estado del juego. Este sería un próximo paso importante, ya que las decisiones de otros jugadores y el estado del juego afectarían la capacidad del jugador para generar resultados. Además, el modelo no puede simular enfrentamientos, un tema crucial en los deportes de fantasía. Los bateadores se desempeñan de manera diferente según el lanzador al que se enfrenten o el equipo con el que jueguen.
Al final, espero instalar nuevas mejoras que consideren los enfrentamientos y realizar mejoras incrementales en mi capacidad para evaluar el rendimiento de los jugadores a corto plazo.
También publicado aquí .