Expectativa de Carrera II: Promedio de Carreras después de cada Evento.

Después de explicar y calcular la matriz de expectativa de carrera, Tom Tango analiza el numero de carreras que se anotan luego de que ocurre un evento. En su opinión, el calcular el numero de carreras que timbran desde el momento en que se da un evento nos permite valorar a los jugadores bajo un esquema más neutral, es decir un ambiente independiente del contexto.

Para calcular el numero de carreras que entran después de cada evento vamos a utilizar un script muy similar al que utilizamos en Expectativa de Carrera I: Calculando la Matriz de Expectativa de Carrera, sin embargo en vez de agrupar por inning y outs, vamos a agrupar por evento. Asimismo, te recuerdo que estoy utilizando datos de la temporada 2018-2019 de la LIDOM.

import pandas as pd
df = pd.read_csv( filepath_or_buffer = 'data.csv'
, sep = ','
, names = [ 'Liga', 'Inning', 'Mitad Del Inning', 'Evento'
, 'Outs Antes De Jugada', 'Corredores Inicio De Jugada'
, 'Carreras Antes De Jugada', 'Carreras Anotadas En Jugada'
, 'Outs En Juego', 'Outs Despues De Jugada', 'Corredores Despues De Jugada'
, 'Carreras Despues De Jugada', 'Carreras Final Inning'
]
, header=0
)
ree = (
df.assign( Carreras = lambda x: x['Carreras Final Inning'] - x['Carreras Antes De Jugada'])
.groupby( by = ['Evento'])['Carreras']
.agg( func_or_funcs = { 'Carreras': 'sum'
, 'N' : 'count'
}
)
.assign( Promedio_de_Carreras = lambda x: x['Carreras'] / x['N'] )
.reset_index()
.rename( columns = { 'Promedio_de_Carreras' : 'Promedio de Carreras' } )
)
view raw ree.py hosted with ❤ by GitHub

Debo mencionar que la tabla que aquí generamos incorpora eventos que la tabla de Tom no incluye. Esto probablemente se debe a que tales eventos no suceden tan a menudo o a que el agrupa varios eventos (ej. out forzado, corredor out, etc) en un solo (ej. out). Acá la tabla:

Evento Carreras N Promedio de Carreras
11 Field Out 994 5953 0.166975
36 Strikeout 446 2862 0.155835
32 Single 1869 2140 0.873364
39 Walk 757 1070 0.707477
7 Double 606 502 1.207171
14 Forceout 88 306 0.287582
33 Stolen Base 2B 154 266 0.578947
15 Grounded Into DP 21 252 0.083333
40 Wild Pitch 210 232 0.905172
10 Field Error 177 219 0.808219
16 Hit By Pitch 130 164 0.792683
28 Sac Bunt 137 147 0.931973
17 Home Run 265 141 1.879433
9 Error 124 135 0.918519
30 Sac Fly 128 96 1.333333
38 Triple 160 92 1.739130
3 Caught Stealing 2B 1 81 0.012346
27 Runner Out 11 67 0.164179
19 Passed Ball 35 53 0.660377
18 Intent Walk 45 50 0.900000
8 Double Play 2 44 0.045455
34 Stolen Base 3B 22 42 0.523810
13 Fielders Choice Out 6 30 0.200000
23 Pickoff Caught Stealing 2B 3 28 0.107143
0 Balk 21 23 0.913043
25 Pickoff Error 1B 11 20 0.550000
4 Caught Stealing 3B 1 16 0.062500
6 Defensive Indiff 2 13 0.153846
20 Pickoff 1B 0 10 0.000000
12 Fielders Choice 20 9 2.222222
37 Strikeout Double Play 0 8 0.000000
26 Pickoff Error 2B 4 5 0.800000
21 Pickoff 2B 0 5 0.000000
31 Sac Fly Double Play 4 4 1.000000
2 Catcher Interference 7 3 2.333333
24 Pickoff Caught Stealing 3B 0 2 0.000000
1 Batter Interference 0 2 0.000000
22 Pickoff 3B 0 1 0.000000
29 Sac Bunt Double Play 0 1 0.000000
35 Stolen Base Home 2 1 2.000000
5 Caught Stealing Home 0 1 0.000000
view raw ree.txt hosted with ❤ by GitHub

Deja un comentario