Buscar este blog

lunes, 25 de marzo de 2013

Simulación de Monte Carlo aplicada al Fútbol

Simulación de Monte Carlo aplicada al Fútbol

Ahora que está de moda el tema de las “Clasificatorias” al mundial Brasil 2014, pues me anime a simular lo que queda del torneo.
Como mencione en un post anterior, puede usarse la simulación de Monte Carlo para estos fines. Pero veamos como lo lograremos.
En primer lugar, ¿Cuál es el objetivo del juego? Pues el GOL, entonces lo que simularemos será justo eso. Pero como vimos es necesario tener las frecuencias de los eventos. Y pues me di el afán de analizar esta situación.
Veamos, tenemos que ver cuán frecuente es que un equipo puede hacer en un partido 0, 1, 2, 3 … n goles, además de eso está el hecho de que un equipo es Local y el rival es visitante, o ambos están en terreno neutral.
Busque en la página de la FIFA información de los procesos de eliminatorias desde 1964 y obtuve las siguientes estadísticas:

Frecuencia de Goles por partido

Mundial Goles anotados por partido por Equipo
0 1 2 3 4 5 6 7 8 Total
1966 10 10 10 4 1 1 1 1 38
1970 17 14 9 4 1 1 2 48
1974 9 12 5 1 3 30
1978 15 16 5 2 1 1 1 1 42
1982 13 12 5 5 1 36
1986 16 18 17 6 2 1 60
1990 10 10 11 2 1 1 1 36
1994 23 20 10 2 3 3 1 2 64
1998 40 60 25 8 7 2 2 144
2002 60 58 32 18 5 6 1 180
2006 57 63 28 18 8 6 180
2010 65 56 34 14 8 5 2 184
2014 21 36 16 6 8 1 88
Total 356 385 207 90 48 28 12 3 1 1130
Como vemos, desde 1966 se han anotado 1130 Goles en procesos de Clasificatorias para los mundiales, y la frecuencia partidos en los que no se han anotado goles es de 356, mientras que en los que se ha anotado 1 Gol es de 385, incluso hay 1 solo caso (1978) en el que se anotaron 8 Goles!!!, con esta información podríamos armar la tabla de frecuencias para un estado “Neutral”, sin embargo, es sabido que los equipos se hacen más fuertes cuando juegan en sus estadios, y esto lo vamos a ver en las siguiente tabla:
Mundial Goles anotados por partido por Equipo Total general
Local Total Visitante Total
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7
1966 3 3 7 3 1 1 1 19 7 7 3 1 1 19 38
1970 7 7 4 3 1 2 24 10 7 5 1 1 24 48
1974 3 5 3 1 3 15 6 7 2 15 30
1978 5 7 4 1 1 1 1 1 21 10 9 1 1 21 42
1982 4 6 2 5 1 18 9 6 3 18 36
1986 6 8 9 4 2 1 30 10 10 8 2 30 60
1990 3 3 9 1 1 1 18 7 7 2 1 1 18 36
1994 9 7 9 1 3 1 1 1 32 14 13 1 1 2 1 32 64
1998 13 25 18 6 7 1 2 72 27 35 7 2 1 72 144
2002 22 26 18 16 3 5 90 38 32 14 2 2 1 1 90 180
2006 21 27 16 13 8 5 90 36 36 12 5 1 90 180
2010 24 28 21 7 5 5 2 92 41 28 13 7 3 92 184
2014 4 19 7 5 8 1 44 17 17 9 1 44 88
Total general 124 171 127 66 42 22 10 2 1 565 232 214 80 24 6 6 2 1 565 1130
Aquí vemos una comparación de goles de Local y Visitante, como se aprecia, la frecuencia de 0 goles anotados para los locales ha bajado drásticamente, mientras que para los visitantes ha subido bastante. Esto demuestra el hecho de que el local en su estadio se hace “Más Fuerte”, entonces podríamos armar las tablas de frecuencia para los estados de “Local” y “Visitante”
Entonces tenemos la siguiente tabla de frecuencias:
Goles Frecuencias
Local Visitante Neutral
0 124 232 356
1 171 214 385
2 127 80 207
3 66 24 90
4 42 6 48
5 22 6 28
6 10 2 12
7 2 1 3
8 1 1
Total general 565 565 1130
¿Entonces ya está?, pues parece que sí, con esto sería suficiente para poder simular los resultados del resto del torneo, sin embargo, podríamos añadir un “Modificador” de posibilidades, basadas en por ejemplo:
  • Plantel
    • Arqueros
    • Defensas
    • Medio Campo
    • Delanteros
  • Moral del Equipo
  • Fatiga del Equipo
  • Entrenador
  • Apoyo de la Afición
Esto debido a que por ejemplo un encuentro entre Argentina contra Bolivia (disculpen amigos Bolivianos), Argentina, tiene un mejor plantel, y si nos basamos solo en las frecuencias descritas anteriormente, pues no sería del todo “Justo”.
Entonces comparemos planteles, “Arqueros + Defensas” contra “Delanteros +Medio Campo”, de cada equipo, afectados por supuesto por las otras variables
Entonces el modelo que planteo es el siguiente:
El plantel tendrá un acumulado de máximo 100 puntos, distribuido de la siguiente manera:
  • Arqueros 15%
  • Defensas 35%
  • Medio Campo 25%
  • Delanteros 25%
El resto de variables afectarían al acumulado de plantel, con la siguiente configuración:
  • Moral del Equipo +/- 15%
  • Fatiga del Equipo +/- 5%
  • Entrenador +/- 3%
  • Apoyo de la Afición +/- 10%
Claro que esta distribución debería ser configurable
Entonces definamos variables:
  • Plantel PLA
    • Arqueros ARQ
    • Defensas DEF
    • Medio Campo MED
    • Delanteros DEL
  • Moral del Equipo ME
  • Fatiga del Equipo FE
  • Entrenador ENT
  • Apoyo de la Afición AF
Entonces la fórmula para el “Peso” de un equipo seria:
PESO=(ARQ+DEF+MED+DEL)*(1+ME)*(1+FE)*(1+ENT)*(1+AF)
Entonces, por ejemplo, supongamos la siguiente configuración para Argentina

  • Plantel 95
    • Arqueros 15
    • Defensas 30
    • Medio Campo 25
    • Delanteros 25
  • Moral del Equipo 0.10
  • Fatiga del Equipo 0
  • Entrenador 0.03
  • Apoyo de la Afición -0.02

Esto quiere decir que tiene los valores más altos en el plantel, en apoyo de la afición tiene una merma, y fatiga del equipo está en 0, porque suponemos que empiezan en un estado neutral de fatiga. Por lo tanto su “Peso” seria:
PESO=(15+30+25+25)*(1+0.10)*(1+0)*(1+0.03)*(1-0.02)=105.48
Ahora hagamos una para Bolivia:

  • Plantel 59
    • Arqueros 5
    • Defensas 20
    • Medio Campo 15
    • Delanteros 19
  • Moral del Equipo 0.05
  • Fatiga del Equipo -0.01
  • Entrenador 0
  • Apoyo de la Afición 0.09

Esto quiere decir que por ejemplo, el entrenador no aporta “nada”, tiene un plantel inferior al de Argentina, pero su afición lo apoya bastante; entonces su peso seria:
PESO=(5+20+15+19)*(1+0.05)*(1-0.01)*(1+0)*(1+0.09)=66.85
Como vemos, Argentina tiene un mayor “peso” que Bolivia, y debería tener mayor oportunidad de anotar goles
Ahora, esto parece estar listo, sin embargo, no es lo mismo enfrentar a Bolivia contra Argentina, que a Bolivia contra Paraguay; ya que supongamos, que tienen los mismos pesos, pero uno tiene mejor delantera que defensas del otro equipo, entonces nos falta aún analizar este aspecto.
Hagamos una merma más entonces. Comparamos (Defensas + Arqueros) de uno, contra (Medio Campo + Delanteros) del otro
Nace una nueva variable: Peso en el Encuentro=PEN
Las formulas serían las siguientes:
PEN1=PESO1*((ARQ1+DEF1)/(MED2+DEL2))=105.48*((15+30)/(15+19))=139.61
PEN2=PESO2*((ARQ2+DEF2)/(MED1+DEL1))=66.85*((5+20)/(25+25))=33.425
Ahora que tenemos los pesos para encuentro de cada uno, calculamos con que modificadores simularemos usando el método de Monte Carlo
M1=PEN1/Max(PEN1,PEN2)=139.61/139.61=1
M2=PEN2/Max(PEN1,PEN2)=33.425/139.61=0.2394
Listo, ahora tengo el modificador calculado para ambos equipos, y este actuara de la siguiente manera:
Suponemos que:

  • Argentina es Local, y obtengo un aleatorio de 0.425
  • Bolivia es Visita, y obtengo un aleatorio de 0.862

Aplicamos modificadores:

  • Aleatorio para Argentina: 0.425*M1=0.425*1=0.425
  • Aleatorio para Bolivia: 0.862*M2=0.862*0.2394=0.2064

Ahora veamos las frecuencias:

Frecuencias para Local

Goles Frec Frec Rel Frec Acum Inicio Final
1 171 0.30265 0.3027 0.0000 0.3027
2 127 0.22478 0.5274 0.3027 0.5274
0 124 0.21947 0.7469 0.5274 0.7469
3 66 0.11681 0.8637 0.7469 0.8637
4 42 0.07434 0.9381 0.8637 0.9381
5 22 0.03894 0.9770 0.9381 0.9770
6 10 0.01770 0.9947 0.9770 0.9947
7 2 0.00354 0.9982 0.9947 0.9982
8 1 0.00177 1.0000 0.9982 1.0000
Total 565 1.00000
Como suponemos que el local es Argentina, su aleatorio, al ser el mayor no le afecta el modificador, y caería en la zona de 2 Goles
Ahora para Bolivia:

Frecuencias para Visita

Goles Frec Frec Rel Frec Acum Inicio Final
0 232 0.41062 0.4106 0.0000 0.4106
1 214 0.37876 0.7894 0.4106 0.7894
2 80 0.14159 0.9310 0.7894 0.9310
3 24 0.04248 0.9735 0.9310 0.9735
4 6 0.01062 0.9841 0.9735 0.9841
5 6 0.01062 0.9947 0.9841 0.9947
6 2 0.00354 0.9982 0.9947 0.9982
7 1 0.00177 1.0000 0.9982 1.0000
8 0 0.00000 ----- ----- -----
Total 565 1.00000
Bolivia al ser visitante, usa esta tabla de frecuencias, y como vemos, con su aleatorio modificado caería en 0 Goles, mientras que si no hubiéramos aplicado el modificador caería en la zona de 2 Goles
Por lo tanto, el resultado sería:

  • Si se aplica modificadores: Argentina (2) – (0) Bolivia
  • Si no se aplica modificadores: Argentina (2) – (2) Bolivia

Como vemos, la aplicación de los modificadores brindan “justicia” al resultado, pero como sabemos, los números aleatorios, nos pueden dar cualquier resultado, pero creo que el modelo propuesto describe un poco mejor la realidad
Ahora supongamos que Argentina es la Visita, y tenemos los mismos modificadores y números aleatorios, el resultado seria:

Frecuencias para Local

Goles Frec Frec Rel Frec Acum Inicio Final
1 171 0.30265 0.3027 0.0000 0.3027
2 127 0.22478 0.5274 0.3027 0.5274
0 124 0.21947 0.7469 0.5274 0.7469
3 66 0.11681 0.8637 0.7469 0.8637
4 42 0.07434 0.9381 0.8637 0.9381
5 22 0.03894 0.9770 0.9381 0.9770
6 10 0.01770 0.9947 0.9770 0.9947
7 2 0.00354 0.9982 0.9947 0.9982
8 1 0.00177 1.0000 0.9982 1.0000
Total 565 1.00000

Frecuencias para Visita

Goles Frec Frec Rel Frec Acum Inicio Final
0 232 0.41062 0.4106 0.0000 0.4106
1 214 0.37876 0.7894 0.4106 0.7894
2 80 0.14159 0.9310 0.7894 0.9310
3 24 0.04248 0.9735 0.9310 0.9735
4 6 0.01062 0.9841 0.9735 0.9841
5 6 0.01062 0.9947 0.9841 0.9947
6 2 0.00354 0.9982 0.9947 0.9982
7 1 0.00177 1.0000 0.9982 1.0000
8 0 0.00000 1.0000 1.0000 1.0000
Total 565 1.00000

  • Si se aplican modificadores: Bolivia (1) – (1) Argentina
  • Si no se aplican modificadores: Bolivia (3) – (1) Argentina

Conclusiones

El método de Montecarlo si es aplicable para este tipo de problemas
Es necesario señalar que el uso de los modificadores planteados, proporcionan un sentido de “Justicia” a la simulación

Finalizando

Bueno eso es todo por esta vez, en un próximo post, implementaremos una aplicación para hacer esta simulación

No hay comentarios.: