¿Qué pasaría si después de un partido simulásemos muchas veces el resultado final de éste, basándonos en los tiros que ha habido? ¿Creéis que el resultado real sería el más repetido? O sin embargo, ¿pensáis que no fue justo que vuestro equipo se quedase sin los tres puntos? En esta entrada intentaremos responder a estas preguntas a través de los xPoints.
Resumen
Nombre: xPoints. Viene del inglés Expected Points, que en español significa Puntos Esperados.
Definición: Es una métrica que nos permite calcular la cantidad de puntos que se llevaría cada equipo si simulásemos muchas veces el resultado del encuentro, basándonos en la probabilidad que otorga el xG a cada tiro. En nuestro caso, simularemos 10000 veces el partido, por lo que tenemos que simular 10000 veces cada tiro utilizando una distribución binomial (0: No gol, 1: Gol) y computar los resultados de cada uno de estos encuentros.
Valores: Entre 0 y 3. Para calcular los xPoints de cada equipo, tenemos que obtener el porcentaje de victorias locales, empates y victorias visitantes resultantes de la simulación. Una vez hecho esto, estos porcentajes nos dirán cuántos puntos se reparte cada equipo, pero lo veremos mucho mejor con un ejemplo.
Ejemplo
Vamos a utilizar el partido de la UEFA Champions League entre el Real Madrid y el FC Sheriff para ver como se calculan los xPoints. El resultado final (1-2) fue la sorpresa más sonada de lo que llevamos de temporada en el fútbol europeo. Un equipo modesto, debutante en la competición, como es el FC Sheriff, consiguió llevarse los tres puntos del Santiago Bernabéu. Si ya de por sí es asombroso el resultado, lo es más si nos fijamos en la cantidad de ocasiones de cada equipo. El Real Madrid realizó 31 tiros acumulando un xG de 3.15, mientras que los de Tiráspol sólo lo hicieron 4 veces con un bagaje de 0.37 de xG.
Fuente
Los datos de los tiros los vamos a obtener de Opta a través de la web Fotmob. Para ello utilizaremos la librería de R httr.
Cálculo
Ahora que ya tenemos todos los tiros del partido con sus características, lo primero que debemos hacer es ver que tiros fueron tras un rechace y recalcular el xG. El xG de un tiro que sucede al rechace de otro no se computa de manera normal, pues no sería justo sumar el xG de ambos al total, ya que si el en el primero se marcase gol, el que sigue al rechace nunca ocurriría. Se calcula de la siguiente manera:
xGPrimerTiro + xGSegundoTiro · (1 – xGPrimerTiro)
Es decir, al xG del segundo tiro lo multiplicamos por la probabilidad de fallo del primero y se lo sumamos al xG del primero. En el script del ejemplo, lo calculamos utilizando una función que hemos creado llamada recalcular.rechaces.
Una vez que tenemos ya listos los disparos, vamos a realizar la simulación. Para ello utilizaremos la función rbinom del paquete stats de R. La realizaremos 10000 veces y calcularemos los resultados de cada partido, así como el porcentaje de victorias locales, empates y victorias visitantes.
Con esto, ya tenemos todo para calcular los xPoints. Este es el resultado:

Según la simulación, el Real Madrid gana el 96% de las veces, empatan el 3.7% y sólo en un 0.4% de la ocasiones sale victorioso el FC Sheriff.
Con estos porcentajes calculamos los xPoints de la siguiente forma:
xPointsLocal = %VictoriasLocal · 3 + %Empates · 1 = 0.96 · 3 + 0.037 · 1 = 2.92
xPointsVisitante = %VictoriasVisitante· 3 + %Empates · 1 = 0.004 · 3 + 0.037 · 1 = 0.05
Como podemos ver, el Real Madrid se fue de vacío, cuando lo más normal hubiese sido que el triunfo se quedase en casa.
Analicemos ahora la cantidad de goles anotados por equipo en cada partido de la simulación:

El número de goles que más veces se repite para el Real Madrid es 3, mientras que en el partido real sólo consiguió anotar uno. Incluso podemos ver como, en un alto porcentaje de veces, anota 4 o incluso cinco goles.

El FC Sheriff, por su parte, no marca gol en el 65.58% de los casos y, sólo en un 3.61% de ellos, anota los 2 goles que consiguió en una noche histórica.
¿Qué os parece esta métrica? ¿Cómo creéis que quedaría la clasificación de vuestra liga favorita si, en vez de la puntuación actual, se utilizasen los xPoints? Podéis dejarnos vuestra opinión en Twitter y, si queréis una información más amplia, os recomiendo ver el video que realizaron sobre los xPoints la gente de Planeta Data Fútbol.
Además, recordad que tenéis todo el código de este ejemplo en nuestro Github.