Optimización estocástica del orden al bat de un equipo de baseball Optimización Estocástica del Orden al Bat 1 Motivación El objetivo de un partido de baseball es anotar más carreras que el equipo rival. El manager de un equipo decide el orden en el cual sus jugadores batearán durante el partido con la intención de tratar de maximizar el número de carreras que podrían anotar durante el juego. Una de las cuestionas únicas del baseball como deporte es que todos los jugadores del equipo tienen las mismas oportunidades de contribuir para anotar carreras, ya que todos se paran a batear en seguidilla bajo el siguiente esquema: Jugador #1 Jugador #2 Jugador #3 Jugador #9 Jugador #1 El proceso sigue hasta que el equipo contrario logre poner fuera (out) a 3 de los jugadores ofensivos por entrada (inning). Cuando esto ocurre termina la entrada. Para la siguiente entrada, el jugador que sigue continua el orden. Optimización Estocástica del Orden al Bat 2 Motivación De forma empírica los managers de Grandes Ligas ordenan su lineup (orden al bat) siguiendo algunos criterios, los cuáles se resumen básicamente en los siguientes aspectos: • • • • El jugador más rápido debe ser el primero en batear. El tercero en batear será el de mejor efectividad al bateo. El cuarto en batear usualmente es el slugger o bateador de poder. Los siguientes en batear los ordenan regularmente de «mejor» a «peor», por lo cual los últimos en batear son casi siempre los «peores» bateadores, por ejemplo el pitcher. Estos criterios funcionan casi como una regla general en los equipos de Grandes Ligas, sin embargo resulta interesante comprobar si en realidad los criterios antes mencionados maximizan el número de carreras que un equipo puede anotar por partido, lo cual motiva la realización de este proyecto. Optimización Estocástica del Orden al Bat 3 Modelación estocástica El baseball es un deporte que se puede modelar estocásticamente debido a la simpleza del juego y a la gran cantidad de estadísticas que se compilan para cada jugador. De manera general, cuando un jugador se para a batear existen 8 diferentes resultados: 1. 2. 3. 4. 5. 6. 7. 8. Que el jugador sea out porque al batear la pelota ésta salió hacia el aire y fue atrapada por un defensivo sin que cayera al suelo. Que el jugador sea out porque al batear la pelota ésta salió rodando por el suelo y el equipo defensivo le hizo out en primera base. Que el jugador sea ponchado, es decir, que el pitcher le tiró 3 strikes. Que al bateador le sea otorgada la primera base por 4 bolas malas o sea golpeado por la pelota. Que el jugador llegue quieto (safe) a primera base derivado de su batazo (hit sencillo). Que el jugador llegue a segunda base derivado de su batazo (hit doble). Que el jugador llegue a tercera base derivado de su batazo (hit triple). Que el jugador anote carrera derivado de su batazo (homerun). Optimización Estocástica del Orden al Bat 4 Modelación estocástica El resultado de cada jugada es desconocido (de ahí lo estocástico del fenómeno), sin embargo las estadísticas que se compilan para cada jugador pueden ayudar a modelar el fenómeno. De una manera parsimoniosa se propone utilizar una función de distribución discreta general para modelar el fenómeno, es decir, cada uno de los posibles resultados tiene una probabilidad no negativa de ocurrir y la probabilidad de todos los eventos debe sumar 1, como sigue: pi ≥ 0 p1 + p 2 + p3 + p 4 + p5 + p 6 + p 7 + p8 = 1 Optimización Estocástica del Orden al Bat 5 Modelación estocástica Debido a que en el baseball se compilan los resultados de cada jugada y a que las temporadas constan de 162 partidos para cada equipo, los jugadores suelen terminar cada temporada con un gran número de apariciones al bat (plate appearances, PA) durante la misma, resultando en un tamaño de muestra considerable para poder estimar las probabilidades mencionadas en el punto anterior. Así, los jugadores suelen tener entre 300 y 700 apariciones al bat durante una temporada. Las probabilidades de cada evento se estiman de manera directa con las fórmulas que siguen: p1 = FO PA p2 = GO PA p3 = K PA p4 = BB + HBP PA p5 = p6 = p7 = 3B PA p8 = HR PA 1B PA 2B PA Optimización Estocástica del Orden al Bat 6 Modelación estocástica Una vez calculadas las probabilidades discretas de cada evento (p1…p8) para cada jugador, se vuelve relativamente sencillo modelar el fenómeno con @Risk a través del uso de la función =RiskDiscrete, construyendo la siguiente matriz de parámetros: La función propia de @Risk, =RiskDiscrete(x1:x8,p1:p8) arrojará un valor discreto x dentro del espacio muestral (‐2, ‐1.5, ‐1, 0, 1, 2, 3, 4) donde cada posible valor tiene una probabilidad distinta de ser seleccionado denotada por las p1..p8 de cada jugador. Optimización Estocástica del Orden al Bat 7 Modelación estocástica 5 4 3 2 1 0 -1 -2 -3 Ejemplo: Edgar Martínez fue un bateador excepcional, tanto que a pesar de no ser gran jugador defensivo tuvo una larga carrera como bateador designado, es decir que solo bateaba sin tomar parte en el campo defensivo. Durante la temporada 2001, una de sus más productivas, éstas fueron sus estadísticas: Optimización Estocástica del Orden al Bat 8 Modelación estocástica La siguiente gráfica muestra de una manera comparativa los parámetros (p1..p8) de 2 jugadores diferentes, donde se aprecia claramente que Wilson tiene mayores probabilidades de generar un out que Martínez. Wilson / Inn1 -2.05 2.0 4.35 0.0% 0.0% 100.0% 100.0% 0.0% 0.0% 1.8 1.6 1.4 Wilson / Inn1 Mínimo Máximo Media Desv Est Valores 1.2 1.0 -2.00 4.00 -0.670 1.41 5000 Martínez / Inn1 Mínimo Máximo Media Desv Est Valores 0.8 0.6 -2.00 4.00 -0.424 1.50 5000 0.4 0.2 5 4 3 2 1 0 -1 -2 -3 0.0 Optimización Estocástica del Orden al Bat 9 Modelación estocástica Sin embargo, los códigos para cada jugada no tienen mucho sentido por sí solos, es decir, el promedio o la varianza no tienen ningún significado, no pueden ser interpretados. En realidad, solo son números que sirven para clasificar cada jugada en una categoría diferente. Lo importante es traducir estos números en lo que sucede después en un partido de baseball derivado de estas jugadas. Para esto se creó una hoja de cálculo donde se lleva un control de la situación de bases y outs dependiente de cada jugada. Es decir, dependiendo del resultado de la simulación de cada jugador se lleva un control de las bases que estarían ocupadas y de los outs que se han generado. Optimización Estocástica del Orden al Bat 10 Modelación estocástica Un ejemplo de este proceso se muestra a continuación: Contador de outs por entrada Variable aleatoria que define el resultado de la jugada Fin de entrada #1 Fin de entrada #2 Control de bases ocupadas (1) y desocupadas (0) antes de la jugada. Control de bases ocupadas (1) y desocupadas (0) después de la jugada. Contador de entradas El proceso continúa hasta que el contador de Contador de carreras entradas llega a 9. anotadas Optimización Estocástica del Orden al Bat 11 Modelación estocástica Algunos supuestos tuvieron que ser considerados para simplificar la modelación, que en ocasiones no suceden de la misma manera en un partido real de baseball, pero para simplificar se asumió lo siguiente: 1. 2. 3. 4. 5. 6. Si el resultado de la jugada es ponche (K) o Flyout (FO) ningún corredor avanza bases adicionales. Si el resultado de la jugada es out rodado (GO) los corredores en base avanzan una base. Si el resultado de la jugada es base x bolas (BB) solo los corredores forzados avanzan una base, por ejemplo, un corredor en 3ª base no anotaría carrera a menos que las bases estén llenas. Si el resultado de la jugada es hit sencillo (1B) los corredores avanzan una sola base, independientemente de la base en la que se encuentren. Si el resultado de la jugada es hit doble (2B) los corredores avanzan dos bases. Si el resultado de la jugada es hit triple (3B) o cuadrangular (HR) todos los corredores en base anotan carrera. Optimización Estocástica del Orden al Bat 12 Modelación estocástica Si el bateador se poncha (K) o es out por elevado (FO). Optimización Estocástica del Orden al Bat 13 Modelación estocástica Si el bateador es out por rola (GO). Optimización Estocástica del Orden al Bat 14 Modelación estocástica Si el bateador recibe base por bolas (BB). Optimización Estocástica del Orden al Bat 15 Modelación estocástica Si el bateador pega hit sencillo. Optimización Estocástica del Orden al Bat 16 Modelación estocástica Si el bateador pega hit doble. Optimización Estocástica del Orden al Bat 17 Modelación estocástica Si el bateador pega hit triple. Optimización Estocástica del Orden al Bat 18 Modelación estocástica Si el bateador pega homerun. Optimización Estocástica del Orden al Bat 19 Modelación estocástica Es decir que se asume que cada corredor avanzará solamente las bases básicas sin ningún movimiento adicional que en ocasiones ocurre (en ocasiones con un hit sencillo un corredor desde segunda anota carrera). También se asume que la defensiva no comete errores, pero que tampoco hacen doubleplays. Sin embargo existe otro elemento importante en la definición del orden al bat que tiene que ver con las bases robadas. Normalmente los primeros bateadores son los más rápidos, es decir, los que pueden robar más bases. El modelo cuenta con un módulo adicional sobre robos de base. Para modelar de forma estocástica los robos de base se necesitan 3 variables adicionales que son las siguientes: 1. 2. 3. Bases robadas (Stolen Bases , SB) Out en intento de robo (Caught Stealing, CS) Oportunidades de robo de base (Stolen Base Opportunities, SBO) Optimización Estocástica del Orden al Bat 20 Modelación estocástica Con base en las estadísticas anteriores se construyen 2 parámetros adicionales para cada jugador que son: SB prop = SBeff = SB + CS SBO SB SB + CS Se refiere a la propensión de robar bases, es decir, qué tan frecuentemente el jugador intenta un robo de base cuando tiene la oportunidad de hacerlo, y Que se refiere a la eficiencia al robar bases, es decir, la proporción de intentos de robo en que consigue robarse la base. Optimización Estocástica del Orden al Bat 21 Modelación estocástica Una vez construidos dichos parámetros para cada jugador se simulan 2 variables aleatorias Bernoulli para cada fenómeno: 1. 2. Bernoulli (SBprop), para el fenómeno de intentar robarse la base Bernoulli (SBeff), para el fenómeno de si fue exitoso el robo o no. De modo que se añade al modelo celdas que controlan los robos de base de la siguiente forma, previo al resultado de la siguiente jugada: Si existe un corredor en primera base (el robo más común es el de segunda base) y no existe corredor en segunda base, y si la Bernoulli del intento es igual a 1, y si la Bernoulli del éxito es igual a 1, entonces, el corredor en primera es movido a segunda antes del inicio de la siguiente jugada (Robo exitoso, SB). Si existe un corredor en primera base, y no existe corredor en segunda, y si la Bernoulli del intento es igual a 1 y la Bernoulli del éxito es igual a 0, entonces se borra el corredor de primera (Out en robo, CS). Optimización Estocástica del Orden al Bat 22 Modelación estocástica Un partido de baseball normalmente dura 9 entradas, por lo cual el proceso anterior continúa indefinidamente hasta que el contador de entradas llega a 9. Otra particularidad del baseball es que no tiene un tiempo fijo. Tampoco existe un número de veces al bate que los jugadores pueden batear. Existe un mínimo que equivale a 3 outs x 9 entradas = 27 apariciones a batear de todo el equipo, siendo 9 bateadores, cada uno de ellos como mínimo bateará en 3 ocasiones. Sin embargo no existe ningún límite superior. Los jugadores seguirán bateando tantas veces como sea necesario hasta que generen los 27 outs. La variable de salida (=RiskOutput) será el contador total de carreras. Se crea una celda que cuente el total de carreras del proceso anterior y esa celda se define como variable de salida de @Risk. Optimización Estocástica del Orden al Bat 23 Ejemplo de aplicación Uno de los equipos más sorprendentes que ha existido en la historia fueron los Seattle Mariners en la temporada 2001. No eran considerados favoritos y sin embargo ganaron 116 de los 162 partidos que disputaron (71.6%), lo cual representa un récord. Por eso resulta interesante aplicar el modelo anterior usando las estadísticas de los jugadores de los Seattle Mariners durante ese año. La tabla a continuación muestra los 9 jugadores que ocuparon de manera primordial cada posición y las estadísticas que ellos tuvieron. Fuente: Baseball Reference. http://www.baseball‐reference.com/teams/SEA/2001.shtml Optimización Estocástica del Orden al Bat 24 Ejemplo de aplicación La siguiente tabla muestra ahora los parámetros de cada jugador (p1..p8) donde puede compararse con colores a los mejores y a los peores en cada categoría. A manera de semáforo, de color rojo están representados los peores mientras de color verde los mejores. Puede apreciarse que algunos jugadores son buenos en ciertas categorías, mientras otros jugadores son los mejores en otras. El problema es, entonces, cómo utilizar las fortalezas de cada jugador de la mejor manera con el fin de anotar más carreras. Optimización Estocástica del Orden al Bat 25 Ejemplo de aplicación Si simulamos 5,000 iteraciones del proceso anterior sería como si el equipo jugara 5,000 diferentes partidos con ese orden. La siguiente gráfica muestra el histograma de las 5,000 iteraciones usando el orden al bat que se mostró en la lámina anterior, es decir, un orden en el cual primero batea el cátcher, después el primera base, y así sucesivamente hasta el bateador designado. En promedio, este orden anota 4.89 carreras por partido. TotalRuns 0.14 0.00 5.0% 11.00 90.0% 5.0% 0.12 0.10 TotalRuns 0.08 Mínimo 0.00 Máximo 21.00 Media 4.89 Desv Est 3.37 0.06 0.04 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 -1 0.00 0 0.02 Optimización Estocástica del Orden al Bat 26 Proceso de optimización Una alternativa (no muy sensata, por cierto) sería la de hacer prueba y error con diferentes órdenes al bat y comparar el promedio de carreras por partido que hace cada orden. Jugador 1 … Jugador 2 Jugador 1 Jugador 9 … Jugador 2 Jugador 9 Orden al bat #1 2,000 iteraciones (partidos) Promedio de Carreras Anotadas por Juego (PCAJ1) Orden al bat #2 2,000 iteraciones (partidos) Promedio de Carreras Anotadas por Juego (PCAJ2) Si PCAJ1 > PCAJ2 entonces descartamos el orden #2 Si PCAJ1 < PCAJ2 entonces descartamos el orden #1 Optimización Estocástica del Orden al Bat 27 Proceso de optimización El siguiente algoritmo ejemplifica la forma en que podemos calcular el número de diferentes combinaciones de órdenes al bat que se pueden armar con 9 jugadores. #1 #3 #2 Para la primera posición existen 9 posibles jugadores que la pueden ocupar. #5 #4 #7 #6 #9 #8 Combinaciones totales = 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 9! = 362,880 Una vez establecido ese jugador, para la segunda posición existen 8 posibles jugadores que la pueden ocupar. Así, sucesivamente hasta que al haber definido la posición #8, queda definido automáticamente el jugador que ocupe la posición #9, por lo cual hay 1 posibilidad. Optimización Estocástica del Orden al Bat 28 Algoritmos genéticos Evidentemente, el proceso de prueba y error sería muy tedioso y poco efectivo. Una mejor alternativa es el uso de algoritmos genéticos. Un algoritmo genético es una búsqueda heurística que imita el proceso de evolución natural. Este algoritmo es usado rutinariamente para generar soluciones útiles para problemas de optimización. Los algoritmos genéticos pertenecen a una clase de algoritmos inspirados en la evolución natural utilizando conceptos como herencia, mutación, selección y mestizaje. Optimización Estocástica del Orden al Bat 29 Algoritmos genéticos En un algoritmo genético una población de cadenas (llamadas cromosomas) que llevan de forma codificada candidatos a soluciones para un problema de optimización (llamados individuos, criaturas o fenotipos), evolucionan hacia mejores soluciones. Tradicionalmente, las soluciones son representadas de forma binaria como cadenas de 0 y 1, pero se puede utilizar otro tipo de codificación. La evolución normalmente empieza con una población de individuos generados al azar en generaciones. Para cada nueva generación, se evalúa la aptitud de cada individuo en la población y se seleccionan múltiples individuos de manera estocástica (basándose en su aptitud) y posteriormente modificados (combinados o incluso posiblemente mutados de manera aleatoria) para formar una nueva población. La nueva población se utiliza en la siguiente iteración. Normalmente el algoritmo termina cuando se han producido un número determinado de generaciones o cuando se satisface un cierto nivel de aptitud en la población. Si el algoritmo se detiene por el primer criterio podría no haberse encontrado “la” solución óptima. Optimización Estocástica del Orden al Bat 30 Algoritmos genéticos El siguiente esquema representa el algoritmo de una manera general: CROMOSOMA 1 1010011010 CROMOSOMA 2 1010011010 CROMOSOMA DESCENDIENTE Optimización Estocástica del Orden al Bat 31 Optimización estocástica De modo que se aplicó el proceso de optimización estocástica basada en algoritmos genéticos al modelo de simulación de carreras anotadas de un equipo de baseball. La variable a optimizar es estocástica, ya que considerará el promedio de las iteraciones del modelo estocástico. Es decir, el algoritmo buscará maximizar el Promedio de Carreras Anotadas por Partido (PCAJ) de los diferentes órdenes al bat de una manera inteligente. El RiskOptimizer del Decision Tools incluye diferentes métodos de solución, a través de los cuáles se modifican las celdas ajustables. En este caso, las celdas ajustables son los jugadores y el orden en el cual batearán, por lo cual se propone el método de solución de orden («order»). Celdas ajustables Buscador (=ConsultaV) de nombre del jugador y parámetros (p1..p8) Optimización Estocástica del Orden al Bat 32 Resultados de Optimización El modelo se dejó corriendo por un tiempo aproximado de 3 horas y media, y generó 1,649 diferentes simulaciones, representando el 0.5% del total de combinaciones posibles, con 2,000 iteraciones por simulación. Es decir, el equipo «jugó» 3,298,000 diferentes juegos (iteraciones). La siguiente gráfica resume el proceso de optimización, donde puede apreciarse los pasos en los que se encontró una mejor solución. Optimización Estocástica del Orden al Bat 33 Resultados de Optimización La siguiente tabla muestra de manera gráfica con colores las soluciones encontradas, es decir el orden al bat que mejora el promedio de carreras anotadas, los colores representan a los diferentes jugadores con el fin de identificar patrones de manera más fácil. Codificación: 1. Wilson, C 2. Olerud, 1B 3. Boone, 2B 4. Guillén, SS 5. Bell, 3B 6. McLemore, LF 7. Cameron, CF 8. Ichiro, RF 9. Martínez, DH Optimización Estocástica del Orden al Bat 34 Resultados de Optimización Como puede apreciarse el orden al bat que «maximizó» el promedió de carreras anotadas por juego (PCAJ) es el siguiente: Mejor orden: 1. Martínez, DH 2. McLemore, LF 3. Olerud, 1B 4. Ichiro, RF 5. Boone, 2B 6. Bell, 3B 7. Guillén, SS 8. Cameron, CF 9. Wilson, C Con este orden al bat, el promedio (PCAJ) se mejoró a 5.1625 carreras por partido, de las 4.89 carreras por partido que anotaba el orden por posición mostrado en láminas anteriores. Proyectado a 162 partidos la diferencia es de 16 carreras (808 vs. 792). Optimización Estocástica del Orden al Bat 35 Resultados de Optimización Al analizar las características de los jugadores ya en el orden que maximiza el número de carreras, podemos apreciar los siguientes patrones: Los primeros en batear son los de mejor vista o paciencia, es decir, los que reciben más bases x bolas. En la parte media del orden se ubican los que menos se ponchan. Contrario a la creencia popular de que el cuarto en batear tiene que ser el que más homeruns pega, se ubica el bateador que más sencillos pega, aprovechando que normalmente tiene corredores en base. Los últimos en batear son los que menores probabilidades tienen de embasarse, particularmente el último no tiene ningún parámetro verde. Optimización Estocástica del Orden al Bat 36 Otro ejemplo A manera de prueba, supongamos un equipo compuesto por Albert Pujols, el mejor bateador de la actualidad, y por 8 «diferentes» Mario Mendoza. La siguiente gráfica muestra la diferencia abismal entre ambos jugadores. Fuente: Baseball Reference. http://www.baseball‐reference.com/ Optimización Estocástica del Orden al Bat 37 Otro ejemplo Si el orden al bat del equipo anterior fuera con los 8 Mendoza bateando primero y Pujols al final tendría la siguiente distribución de carreras anotadas, que como se puede observar, anotaría en promedio 1.93 carreras por juego. TotalRuns 0.00 0.8 6.00 5.0% 90.0% 5.0% 0.7 0.6 0.5 TotalRuns Mínimo 0.00 Máximo 14.00 Media 1.93 Desv Est 1.93 Valores 5000 0.4 0.3 0.2 0.1 16 14 12 10 8 6 4 2 0 -2 0.0 Optimización Estocástica del Orden al Bat 38 Otro ejemplo Un ejercicio interesante en un ejemplo tan drástico como este sería: ¿En qué posición debe batear mi mejor bateador, cuando los demás son muy malos? El problema en realidad sería muy sencillo de resolver usando prueba y error por que solo hay 9 posiciones en las cuáles lo podemos «probar», pero como el modelo no «sabe» que los otros 8 jugadores son el mismo (o igual de malos) dejamos al optimizador correr y estos son los resultados: Después de aproximadamente una hora y 578 simulaciones diferentes, la mejor solución la encontró desde la simulación número 19, ubicando a Pujols en la posición número 1 como lo muestra la gráfica de diversidad, sin embargo, con este orden el equipo anotaría en promedio 1.9915 carreras por partido, mejorando apenas las 1.93 carreras que se anotarían en promedio con Pujols de noveno. Optimización Estocástica del Orden al Bat 39 Otro ejemplo Otro ejercicio interesante sería asumir que el equipo tiene 4 jugadores buenos (Pujols) y 5 muy malos (Mendoza). Algunas teorías señalan que es mejor poner a los buenos bateadores juntos para aprovechar que se puedan embasar al mismo tiempo. Otras teorías señalan lo contrario, sugiriendo intercalar a los buenos jugadores entre los malos. Un equipo compuesto por 5 Mendoza al principio y 4 Pujols al final anotaría en promedio 3.787 carreras por partido. Busquemos con el optimizador cual de las 2 teorías maximiza las carreras anotadas. Optimización Estocástica del Orden al Bat 40 Otro ejemplo Se dejó corriendo el optimizador por aproximadamente 2 horas, y después de 1,008 simulaciones diferentes los resultados se presentan a continuación: Codificación: 1. Pujols 2. Pujols 3. Pujols 4. Pujols 5. Mendoza 6. Mendoza 7. Mendoza 8. Mendoza 9. Mendoza Como puede apreciarse, la solución óptima, la cual por cierto anotaría en promedio 4.086 carreras por partido, fue encontrada desde la simulación número 92, y contiene a los 4 Pujols juntos al principio del orden al bat. Es decir que la teoría de agrupar a los mejores jugadores juntos maximiza el número de carreras, más si éstos se juntan al inicio del orden. Proyectado a una temporada de 162 partidos, el equipo con los 4 mejores bateadores al inicio anotaría 662 carreras, contra 619 que anotaría el orden al revés. Optimización Estocástica del Orden al Bat 41 Conclusiones y hallazgos • Es posible establecer el orden al bat de un equipo de baseball que maximice el promedio de carreras por juego que ese equipo pueda anotar de manera estocástica, a través de un optimizador inteligente. • Es conveniente utilizar a los bateadores con mejor ojo (los que más bases por bolas reciben) al inicio del orden. • No necesariamente el cuarto en batear debe ser el slugger, como lo demostró la optimización realizada a los Seattle Mariners del 2001. • Los equipos que tengan un solo buen bateador maximizan el promedio de carreras que pueden anotar si lo colocan como primer bateador. • Los equipos que tengan la mitad de buenos bateadores y la mitad de malos bateadores maximizan el promedio de carreras que pueden anotar juntando a los buenos bateadores al inicio del turno, es decir que no conviene intercalaros con los malos bateadores. Optimización Estocástica del Orden al Bat 42 Gracias! M. en C. Luisarturo Castellanos [email protected] www.catriskmexico.com Optimización Estocástica del Orden al Bat 43