Simulador de Lineups I: El Codigo

Introducción

Desde hace tiempo he estado programando simuladores de beisbol para resolver diferentes problemas que marca la literatura sabermetricaAcá te explico uno que hice  recientemente para optimizar lineups de un equipo.

Jugadores, const y paquetes

Para que esta herramienta funcione necesitaras descargar tres ficheros:

  1. jugadores.csv: Contiene las métricas de los jugadores que conforman el lineup.
  2. const.py: Encapsula la lógica de movimiento de bases y anotación de carreras por cada evento.
  3. simulador.py: Procesa el fichero jugadores.csv y simula partidos y apariciones al plato con la ayuda const.py.

Generar Probabilidades

El archivo simulador.py utiliza la función generarProbs para generar una tabla de probabilidades para cada jugador que se encuentre en el archivo jugadores.csv:

Simulador de apariciones al plato

La función simularAparicion toma como argumento el nombre de un jugador, genera un numero aleatorio y basado en su tabla de probabilidades calcula el resultado de una aparición al plato.

Simulador de partidos

La función simularPartido simplemente toma un lineup como argumento y simula 9 innings de bateo. Esta función manda a llamar al simulador de apariciones al plato y utiliza la lógica de transición de bases del archivo const.py; Da como resultado el numero de carreras que anotó la alineación y el número de apariciones al plato que ocurrieron en el partido.

Correr Simulaciones

La función correrSimulaciones simplemente se encarga de simular los N partidos que desees y de poner los N resultados en un data frame:

Para correr el código, simplemente ejecuta estas lineas. En el próximo post de esta serie veremos algunos de los resultados del simulador.

Deja un comentario