Predicción en fútbol a partir de los goles marcados: la distribución de Poisson (I)

En el año que acaba de terminar se cumplió el vigésimo aniversario de la publicación de uno de los modelos de predicción de resultados de fútbol más famosos: el Dixon & Coles, basado en la distribución de Poisson y publicado en 1997. Esta entrada pretende ser la primera de una serie que trate la reconstrucción de este modelo, desde lo más básico hasta el modelo final. Empezamos.

El modelo

El artículo original de Dixon y Coles (Modelling Association Football Score and Inefficiencies in the Football Betting Market) fue publicado en 1997. En él se utiliza como base la distribución de Poisson y se realizan algunos ajustes extra para refinar los resultados: hicieron un ajuste para los marcadores bajos (en estos marcadores la distribución de Poisson falla más) y permitieron que los parámetros de los equipos fueran dinámicos (su estado de forma varía con el paso del tiempo). Nosotros veremos un modelo estático y sin ningún tipo de ajuste. Los demás ajustes los dejamos para entradas posteriores.

La distribución de Poisson es una distribución discreta (enteros) que nos dice la probabilidad de que se produzcan un número determinado de sucesos en un período de tiempo (en nuestro caso, la duración de un partido de fútbol). El número de sucesos que queremos calcular es «número de goles marcados por el equipo X». Para ello, debemos alimentar el modelo con el número medio de sucesos, es decir, el número esperado de goles que el equipo debería marcar según sus partidos anteriores.

Como se puede ver hay varios parámetros que quedan indefinidos, por ejemplo, cuántos partidos previos utilizar para hacer la media de goles de ese equipo, si utilizar todos los goles o sólo los goles que ha marcado como local/visitante, etc.

Para simplificar vamos a seguir el mismo procedimiento que se explica en las siguientes entradas, donde se olvidan del ajuste dinámico del que hablábamos más arriba así como de la corrección para valores pequeños (marcadores tales como 0-0, 1-0, 0-1).

Distribución de Poisson: pronóstico del resultado en las apuestas de fútbol

Football Prediction Model: Poisson Distribution

Poisson Distribution: Predict a soccer betting winner. How to calculate Poisson Distribution for soccer betting

Procedimiento

Es un modelo muy sencillo de aplicar. Se apoya en el cálculo de medias de goles para cada equipo. Para dotar de mayor realismo al modelo se calculan medias separadas para el rendimiento de los equipos jugando como local y como visitante. Con la idea de establecer «una vara de medir» de cómo de bien o de mal lo está haciendo determinado equipo respecto a la liga en la que compite se ha de calcular también la media de goles de la liga (local y visitante).

Por tanto, necesitamos:

  • Media de goles marcados por el equipo local, actuando como local (Hf).
  • Media de goles recibidos por el equipo visitante, actuando como visitante (Ac).
  • Media de goles a favor de los equipos locales de la liga (THf). Esto es equivalente a la media de goles en contra de los equipos visitantes de la liga (TAc).
  • Media de goles a favor de los equipos visitantes de la liga (TAf). Esto es equivalente a la media de goles en contra de los equipos locales de la liga (THc).
  • Media de goles marcados por el equipo visitante, actuando como visitante (Af).
  • Media de goles recibidos por el equipo local, actuando como local (Hc).

Tomemos como referencia el partido Celta – Real Madrid de la jornada 18:

CELTA

Calculamos la media de goles esperados que marcará el Celta.

  1. Ataque del equipo local: Celta.
    1. Media de goles marcados por el Celta como local durante esta temporada (Hf): 1.38.
    2. Media de goles marcados por el Celta (Hf) respecto a la media de goles marcados por los equipos de la liga como locales (THf), lo cual nos da una medida de su fuerza atacante relativa (Hf/THf): 1.38 / 1.49 = 0.92 (Hf_r) –> Equipo que rinde un 8% peor que la media de la liga.
  2. Defensa del equipo visitante: Real Madrid.
    1. Media de goles recibidos por el Real Madrid como visitante (Ac): 0.71.
    2. Media de goles en contra del Real Madrid (Ac) respecto a la media de goles recibidos por los equipos de la liga como visitantes (TAc, por construcción es igual a THf), lo cual nos da una medida de la fuerza defensiva del Real Madrid como visitante (Ac/TAc): 0.71 / 1.49 = 0.48 (Ac_r) –> Este equipo recibe solo el 48% de los goles que suelen encajar los equipos visitantes.
  3. Goles esperados del equipo local (Celta). Multiplicamos el ataque del equipo local (Hf_r) por la fuerza defensiva del equipo visitante (Ac_r) y por la media total de la liga de goles locales (THf): 0.92 * 0.48 * 1.49 = 0.66 goles. Esto es la media de goles que esperamos que marque el Celta al Real Madrid.
Datos utilizados para calcular los goles esperados del Celta
Datos de la tabla para calcular los goles del Celta
Celta - Goles esperados y tabla marcadores-probabilidades.
Celta – Goles esperados y tabla marcadores-probabilidades.

REAL MADRID

Se opera exactamente igual pero atendiendo a los goles a favor para el Real Madrid y en contra para el Celta.

  1. Ataque del equipo visitante: Real Madrid.
    1. Af = 1.57 goles.
    2. Af_r = 1.57 / 1.14 = 1.38 goles.
  2. Defensa del equipo local: Celta.
    1. Hc = 1.25 goles.
    2. Hc_r = 1.25 / 1.44 = 1.09 goles.
  3. Goles esperados del equipo visitante (Real Madrid): 1.38 * 1.09 * 1.14 = 1.719 goles.

Transformar goles esperados en marcadores

Una vez que se tiene el número de goles esperados (0.66 Celta vs. 1.719 Real Madrid) hay que obtener las probabilidades de que se produzca cada marcador. Para ello utilizamos la distribución de Poisson:

Aplicándolo al Celta:

P(k goles): probabilidad de que el Celta marque k goles.

e: número de Euler (2.71…).

λ: media de goles del Celta (0.66).

Sustituyendo obtenemos estos valores:

  • k=0 –> P=51.6%.
  • k=1 –> P=34.1%.
  • k=2 –> P=11.2%.
  • Etc.

Suponemos que los goles de ambos equipos son independientes, es decir, los goles que marque un equipo no influyen en los goles que pueda marcar el otro equipo y viceversa. Este supuesto puede no ser muy realista pero seguiremos adelante con la simplificación.

A continuación se calcula de igual manera la probabilidad de que el Real Madrid marque 1, 2, 3, etc., goles. Por ejemplo, para el Real Madrid λ=1.719 y k=0 goles, la probabilidad es 17.9%.

Finalmente, se multiplican ambos sucesos independientes: la probabilidad de que ambos equipos marquen 0 goles (0 – 0) es: 0.516 * 0.179 = 0.092 (9.2%). En la tabla que se muestra a continuación hay un pequeño desajuste debido al número de decimales utilizados.

Probabilidades conjuntas de cada marcador.

Simplificando cálculos

Los cálculos se pueden simplificar a través de un libro Excel (2 hojas).


ÚLTIMA ACTUALIZACIÓN: 16/05/2020

  • Gracias al comentario de un lector hemos actualizado los cambios de la tabla para la temporada 2018/2019.
  • También se ha añadido un Excel para ligas con 18 equipos para la temporada 2018/2019.
  • En otra actualización se ha añadido un Excel para ligas de 15 equipos.

Para acceder pídeme la clave aquí.

Conoce el servicio de apuestas recomendadas de Vencex.


Pasamos a explicar cómo actualizar los datos en las siguientes jornadas y el cálculo para diferentes partidos:

  1. Ir al enlace que aparece en la hoja «Tabla».
  2. Seleccionar los datos y copiarlos en la hoja Excel. Para ello «pegar haciendo coincidir con formato de destino» en la celda verde. Con ello las medias de los equipos y de la liga quedan actualizados.
  3. En la hoja siguiente «Partido» se selecciona el equipo local (Home) y visitante (Away) utilizando el desplegable.
  4. A la derecha está la tabla con las combinaciones de goles del equipo local y visitante. Por ejemplo, la diagonal marca los resultados que terminan con empate. Si sumamos todas las probabilidades de la diagonal obtendremos la probabilidad de que el partido termine en empate (23.16%). La probabilidad de que el partido termine 2-0 a favor del Celta es 2.016%. Un último ejemplo, la probabilidad de que el Real Madrid gane el partido es la suma de todos los resultados por encima de la diagonal (equipo visitante), es decir, 62.96%.

Probabilidades de los resultados de la próxima jornada

Utilizando los dos desplegables para los equipos calculamos las probabilidades de victoria/empate/derrota de los encuentros de la próxima jornada de liga del 6-8 de enero de 2018.

Probabilidades de victoria/empate/derrota de la Jornada 18.

Con estos datos, y si el modelo tiene alguna utilidad (aporta información), se podrían establecer qué equipos y resultados están siendo sobrevalorados o infravalorados por las casas de apuestas. Es lo que haremos a continuación.

Modelo y mercado

Lo primero que hay que hacer es obtener las cuotas para estos partidos. Tomamos los de Bet365:

Cuotas Bet365 – La Liga – Jornada 18 – 20:00

A continuación hay que transformar las cuotas en «probabilidades justas», es decir, eliminar el margen de beneficios con el que las casas de apuestas alteran los precios (overround). Se puede consultar el proceso aquí y ampliar información aquí. Los resultados son los siguientes:

Probabilidades justas de Bet365.

Y finalmente, comparamos las probabilidades de Bet365 y las del modelo:

Diferencia de probabilidades Bet365 y probabilidades del modelo.

Los porcentajes positivos indican resultados sobrevalorados por la casa de apuestas, mientras que los valores negativos indican resultados infravalorados. Se han señalado los 3 resultados más sobrevalorados y los 3 más infravalorados. Por ejemplo, el empate entre el Bilbao y el Alavés es más probable (45.1%) de lo que indica Bet365 (26.1%).


La siguiente cuestión es: ¿cuánto apostar a los resultados donde hay margen de ganancia?

Realmente, la decisión de apostar se compone de 2 partes: identificar oportunidades (generación de un modelo mejor que el de las casas de apuestas) y decidir la cantidad a apostar (la gestión de caja). Para lo primero ya hemos presentado el modelo base que será mejorado en entradas futuras. Para lo segundo, hay que pensar menos: el criterio de Kelly. En futuras entradas mostraremos cómo calcularlo.

Si has encontrado errores o tienes dudas, comenta, es el momento.


ACTUALIZACIÓN: por sugerencia de un lector se publican los datos para la Jornada 24 de la liga española 2018/2019 (13 de febrero de 2019):

Pronósticos para la jornda 24 de la liga española y probabilidades de Bet365
Diferencia entre las probabilidades de Bet365 y los pronósticos del modelo

 

526 comentarios en “Predicción en fútbol a partir de los goles marcados: la distribución de Poisson (I)”

  1. Hola. Se cayó el link donde dice cómo sacar la probabilidad justa. ¿Algún otro lugar donde pueda verlo o cómo puedo buscarlo? Gracias por tu excelente aporte.

    1. Hola. Lo acabo de probar otra vez. Funciona perfectamente. Recuerda descargar el archivo cuando se abra con el link que te llega utilizando el icono correspondiente (arriba a la derecha). Saludos.

    1. Hola. Te has dado de alta correctamente. En el email que has recibido está el link de enlace. Haz clic en él, y cuando se abra el archivo descárgalo con el icono correspondiente (arriba a la derecha).
      Dime si todo ha ido bien.
      Un saludo.

    1. Hola. No pongas datos personales en sitios públicos. Reviso personalmente todos los comentarios, pero a veces se me puede pasar algo y vuestros datos personales quedarían expuestos.
      Para obtener el fichero Excel sólo tienes que rellenar el mini-formulario que hay en el artículo, y seguir las indicaciones.
      Gracias.
      Un saludo.

    1. Hola. En tu bandeja de entrada (o spam) tienes que tener un email remitido por Vencex. Dentro tienes el enlace. Haz clic y descarga desde la pestaña que se abre para que puedas manipularlo a tu gusto.
      pantallazo de email de envio de Excel Poisson.

  2. Estuve a punto de ganar una apuesta con momio x22. Es una chulada! Hay alguna actualización? El modelo tiene un gran porcentaje de exactitud.

    1. Hola.
      Gracias por comentar.
      De momento no hay actualizaciones para el modelo de Poisson. Pero estoy pensando en sacar una segunda parte mejorada del artículo. Si quieres, pásate por el modelo Vencex (que es lo que yo he estado usando hasta que las casas de apuestas me cerraron) y mira qué te parece (es más complejo).
      Realmente, el modelo funciona con medias y distribuciones estadísticas. El ajuste es siempre a largo plazo (cientos o miles de resultados), por tanto, siento desanimarte pero no se puede juzgar el modelo por un solo partido: sea acierto o fallo.
      Un saludo y para cualquier duda aquí estamos.

  3. Alguien conoce una buena página de hockey por favor, quiero ver tabla de posiciones estadísticas todo lo que me ayude a saber mas de este deporte, por favor…. Gracias 🙂

  4. Bueno, leí todo, me suscribí, confirmé correo, me llegó mensaje de confirmación… pero la famosa planilla nada.
    ¿Será tan complicado poner un link de descarga para poder tener la planilla?

  5. Hc_r = 1.25 / 1.44 = 1.09 goles.
    Goles esperados del equipo visitante (Real Madrid): 1.38 * 1.09 * 1.44 = 1.719 goles.

    Hola.
    No es 1.44, sino 1.14. ¿No?

    Saludos.

    1. Hola.
      Sí. Correcto. Se puede ver en la imagen que es una 1.14. Y si se hace el cálculo se comprueba que debe ser 1.14 para obtener 1.719. Muchas gracias por avisar. Lo voy a corregir ahora mismo. Los resultados están bien, el problema solo está en la redacción.
      Se agradecen lectores atentos.
      Saludos.

  6. Hola buenas tardes,

    Excelente trabajo, muchas gracias. También se me ocurre que sería interesante mover las estadísticas según las noticias del mercado, por ejemplo:

    Messi no podrá estar contra el levante, entonces preguntarse, cuántos goles anota messi en promedio por partido, y descontarlos de los goles que hace el Barcelona, para ajustar el resultado.

    1. Hola. Gracias. Lo que sugieres tiene sentido, el problema que encuentro es cómo llevarlo a la práctica numéricamente. Se podría hacer simplemente sustituyendo los goles esperados de un jugador por los goles esperados del sustituto. Aunque para eso tienes que saber a quién va a poner a jugar el entrenador… Lo cual desemboca en otro problema.
      Saludos.

    1. Hola. Tienes que introducir los datos «ACTUALES» de todos los equipos, o bien descargártelos de alguna página web. Luego, en la otra hoja, arrastra desde el último equipo para incluir más equipos de la tabla de datos inicial. Por ejemplo, si empezabas con 18 equipos y tu liga es de 20 equipos tendrás que arrastrar hacia abajo dos celdas.
      Saludos.

  7. Lo siento pero cuando descargo la tabla e introduzco los 20 equipos de la liga española, no se corrige bien ya que estaba con 18 al descargar la plantilla

    1. Hola.
      No es nada recomendable poner datos privados en sitios públicos. He borrado tu email antes de publicar tu comentario por esa razón. Te contacto por privado. Un saludo.

    1. Hola. Mira en tu bandeja de spam o en la papelera, a veces acaban allí directamente los correos.
      Si sigues sin recibirlo, dímelo y vemos cómo hacer que te llegue.
      Saludos.

  8. Hola, esta genial este modelo pero tengo una duda, en el modelo aparecen 18 casillas para 18 equipos por liga, pero algunas ligas manejan 20 equipos, en la evaluación de los que se encuentran en la posición 19 y 20 no me muestra resultados, quisiera saber como agregar a la formula 2 estas dos casillas.

    1. Hola.
      Gracias.
      Como se ha comentado más arriba, para ajustar el número de equipos a tus preferencias tienes que hacer 2 cosas:
      1-Añadir los equipos a la tabla de clasificación, con sus datos y estadísticas.
      2-Alargar la lista de equipos en la hoja de probabilidades, para que coja esos datos.
      Saludos.

  9. Buenas, voy a probarlo porque tiene una pinta muy interesante pero lo que no entiendo es donde está la parte en la tabla para hacer el cálculo de las probavilidades justas y cálculos de probabilidades. Es otra tabla diferente?

  10. Buenos días, no encuentro en la tabla la parte para calcular las Probabilidades justas y diferencia entre probabilidades. Es otra tabla?

      1. Hola buenos días,
        Tampoco he podido encontrar método en internet para ajustar las probabilidades.
        Te agradecería muchísimo que me enviaras la tabla de la que hablas para este proceso.

        correo: santiagohdt@gmail.com.

        De nuevo muchas gracias.

    1. Hola.
      No es buena idea dejar datos personales en foros o comentarios.
      El archivo te llega automáticamente cuando dejas tu email como suscriptor.
      Si tienes cualquier duda, ponte en contacto.
      Un saludo.

    1. Hola.
      No es buena idea dejar datos personales en foros o comentarios.
      El archivo te llega automáticamente cuando dejas tu email como suscriptor.
      Si tienes cualquier duda, ponte en contacto.
      Un saludo.

      1. me llegó, pero hay resultados que no están bien (al tener que poner 20 y 22 partidos cuando la plantilla trae solo 18). Trato de corregirlos pero no soy capaz (quizás dependerá del programa con que se abra, y del año que sea).

  11. José Alvarado Acosta

    Hola amigo ya estoy suscrito pero no me llego nada a mi correo, ya confirme mi spam y tampoco.
    Podrías mandarme a mi correo
    Saludos

    1. Hola, José. Suele llegar a recibidos, o bien, a spam o a la papelera de reciclaje. Tienes que completar todo el proceso de suscripción, tenlo en cuenta. De todas formas, para no hacerte esperar más te lo mando a tu correo.
      Un saludo.

  12. Rodrigo Fernando Obregon Romero

    Cordial Saludo! actualmente me encuentro inscrito en la plataforma, y cuento con el Excel de Predicción para 18 equipos. Sera posible que me envíen el Excel para 20 equipos?
    Gracias!

  13. Rodrigo Fernando Obregon Romero

    Cordial Saludo! Actualmente cuento con el Excel para 18 equipos. Sera posible enviarme la versión para 20 Equipos?

    1. Buenas. Solo tienes que añadir las filas de datos en la hoja de la tabla. Luego ve a la otra hoja y arrastra (esquina inferior derecha) hacia abajo 2 lugares.
      Saludos.

    1. Buenas.
      No está aún publicado. En realidad, era algo que tenía planeado pero que he ido dejando de lado puesto que he estado ocupado con otras cosas.
      Si te suscribes, recibirás los avisos de nuevas publicaciones.
      Gracias por el interés.
      Un saludo.

  14. Buenas tardes, ¿no sería mas correcto basarnos en la relación entre probabilidades más que en la diferencia? Puede haber una diferencia de un 10% en dos cuotas de dos partidos distintos, y sin embargo estar mucho más infravalorada o sobrevalorada una de las dos respecto a la otra, por tener una relación menor/mayor que la otra.

    Por otro lado, no se si conforme avanza el método se van introduciendo otros factores, pero únicamente con este post, es un poco peligroso comparar cuotas con probabilidades obtenidas exclusivamente según el número de goles. Entiendo que es una forma aproximada de sacar una probabilidad, pero no se tienen en cuenta factores como que haya algún jugador lesionado o sancionado, etc. Mismamente hoy, la victoria del Español se paga en las casas de apuestas un 50% más que lo que debería pagarse según tu excel, aparentemente sería un resultado muy favorable para apostar porque está muy infravalorado por la casa de apuestas, pero claro, no estamos teniendo en cuenta la sanción del jugador más importante del Español, y ellos sí. A lo que quiero llegar es que al final la probabilidad mas parecida a las reales las da la casa de apuestas, que tiene en cuenta millones de factores que nosotros no podemos tener, más allá de los goles. No se si conforme avanza el método se van incluyendo más factores para recalcular las probabilidades y de alguna manera se mejora más.

    A pesar de esto, un post muy interesante, me gustaría como te digo tener acceso a los siguientes posts sobre el modelo. Gracias.

    1. Buenas.
      Gracias por tu comentario.
      Como dices es un modelo simplificado que trata de modelizar el resultado de un partido únicamente a partir de los goles marcados.
      Como se comenta en el texto este modelo es a su vez una simplificación del modelo original de los ’90 de Dixon & Coles. Este incluía una par de aspectos más para refinar el pronóstico obtenido. Lo que tiene a favor la exposición que he hecho es que no necesita programación y se puede hacer simplemente en Excel. Tras D&C han salido otros modelos basados en otras distribuciones, pero como dices (y en parte tienes razón) las casas de apuestas son las que operan al límite de la eficiencia.
      De momento no he publicado más posts. Si te suscribes se te avisará de las nuevas entradas.
      Por último, se puede vencer a las casas de apuestas. No te quepa duda. Las casas de apuestas no maximizan beneficio acertando mucho (poniendo las cuotas más ajustadas a la realidad) sino ensanchando el margen y recogiendo volumen de apuestas. En definitiva, al menos en España, el problema gordo no es ganar dinero apostando sino que no te cierren la cuenta.
      Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada.