Frontman Dato Fútbol | |||
Consultor e Instructor LPDT | |||
Data Scientist (Ice Hockey) |
Ismael Gómez Schmidt
Sports Data Analyst
Frontman Dato Fútbol | |||
Consultor e Instructor LPDT | |||
Data Scientist (Ice Hockey) |
¿Qué son las métricas xG y xGOT?
¿Cómo se utilizan?
¿Cómo se calculan?
¿Qué puedo hacer si no tengo los datos de un proveedor?
Métricas avanzadas de Fútbol Analytics que tienen relación con los remates.
Ambos casos representan la probabilidad de gol, cuantificada como proporción numérica entre 0 y 1, donde 0 es probabilidad nula y 1 total.
El sitio FOTMOB tiene este tipo de info.
La mayoría de sus valores son relativamente bajos (Un penal está entre 0.77 y 0.78)
La variable más importante es la posición del tiro (lo que tiene sentido): mientras más cerca y más centrado respecto al arco rival, mayor es el valor xG.
¿Qué implica, por ejemplo, que un remate tenga un valor xG = 0.3?
Se utilizan para comparar, analizar y evaluar el desempeño tanto de equipos (colectivo) como de jugadores (individual)
¿Desempeño en qué?:
Fotos de un partido: xG Timeline + Shotmap
Top 15 extremos según xG p90 | ||||||||
Premier League 2021-2022 | ||||||||
Player | Pos. | Team | MJ | unblocked shots | xG | avg. xG per shot | xG p90 | Goles p90 |
---|---|---|---|---|---|---|---|---|
Diogo Jota | LM | Liverpool | 2526 | 68 | 19.0 | 0.279 | 0.677 | 0.534 |
Mohamed Salah | RM | Liverpool | 2957 | 99 | 22.0 | 0.222 | 0.670 | 0.700 |
Riyad Mahrez | RM | Man City | 1626 | 42 | 11.0 | 0.262 | 0.609 | 0.609 |
Raheem Sterling | LM | Man City | 2274 | 47 | 14.0 | 0.298 | 0.554 | 0.515 |
Sadio Mane | LM | Liverpool | 3010 | 66 | 17.0 | 0.258 | 0.508 | 0.478 |
Phil Foden | LM | Man City | 2279 | 39 | 11.0 | 0.282 | 0.434 | 0.355 |
Heung-Min Son | LM | Tottenham | 3187 | 66 | 14.0 | 0.212 | 0.395 | 0.650 |
Jarrod Bowen | RM | West Ham | 3198 | 60 | 13.0 | 0.217 | 0.366 | 0.338 |
Bryan Mbeumo | RM | Brentford | 3121 | 59 | 11.0 | 0.186 | 0.317 | 0.115 |
Raphinha | RM | Leeds United | 3141 | 60 | 11.0 | 0.183 | 0.315 | 0.315 |
Mason Greenwood | RM | Man United | 1344 | 38 | 4.7 | 0.124 | 0.315 | 0.335 |
Ademola Lookman | RM | Leicester | 1553 | 17 | 5.4 | 0.318 | 0.313 | 0.348 |
Bukayo Saka | RM | Arsenal | 3179 | 51 | 11.0 | 0.216 | 0.311 | 0.311 |
W. Zaha | LM | Crystal Palace | 2964 | 50 | 10.0 | 0.200 | 0.304 | 0.425 |
Harvey Lewis Barnes | LM | Leicester | 2253 | 43 | 7.0 | 0.163 | 0.280 | 0.240 |
Tabla: @DatoFutbol_cl | Data: Instat |
Parte de las métricas para apoyar el Scouting
Diferencial de xG: xG a favor – xG en contra
xGOT - xG
Goles salvados = xGOT en contra - Goles recibidos
Se obtienen a partir de modelos de Machine Learning entrenados con una gran cantidad de remates
Se consideran sus características tales como posición (coordenadas x,y: distancia y ángulo al arco rival), parte del cuerpo, tipo de jugada, altura del balón, posición de otros jugadores, entre otros; además de su resultado (gol, atajado, fuera, bloqueado, etc.).
## Instalación del paquete {StatsbombR}
# https://github.com/statsbomb/StatsBombR
# install.packages("devtools")
# devtools::install_github("statsbomb/SDMTools")
# devtools::install_github("statsbomb/StatsBombR")
# cargamos el paquete
library(StatsBombR)
# traemos la tabla con todos los torneos disponibles abiertamente en Statsbomb:
competitions = FreeCompetitions()
# elegimos uno en particular: en este caso Qatar 2022
qatar = competitions %>%
filter(competition_id == 43 & season_id == 106)
# partidos de Qatar:
qatar_games = FreeMatches(qatar)
# datos de eventing de esos partidos:
qatar_eventing = free_allevents(qatar_games)
# limpieza/proceso de datos necesarios
# (ej: coordenadas X,Y separadas en 2 columnas distintas)
qatar_eventing_clean = allclean(qatar_eventing)
# guardamos los datos en formato CSV
library(readr)
write_csv(qatar_eventing_clean, "datos_eventing_qatar_2022_statsbomb.csv")
[1] "Whilst we are keen to share data and facilitate research, we also urge you to be responsible with the data. Please credit StatsBomb as your data source when using the data and visit https://statsbomb.com/media-pack/ to obtain our logos for public use."
country_name | competition_name | competition_gender | season_name |
---|---|---|---|
Germany | 1. Bundesliga | male | 2015/2016 |
Europe | Champions League | male | 2018/2019 |
Europe | Champions League | male | 2017/2018 |
Europe | Champions League | male | 2016/2017 |
Europe | Champions League | male | 2015/2016 |
Europe | Champions League | male | 2014/2015 |
Europe | Champions League | male | 2013/2014 |
Europe | Champions League | male | 2012/2013 |
Europe | Champions League | male | 2011/2012 |
Europe | Champions League | male | 2010/2011 |
Europe | Champions League | male | 2009/2010 |
Europe | Champions League | male | 2008/2009 |
Europe | Champions League | male | 2006/2007 |
Europe | Champions League | male | 2004/2005 |
Europe | Champions League | male | 2003/2004 |
Europe | Champions League | male | 1999/2000 |
Europe | Champions League | male | 1972/1973 |
Europe | Champions League | male | 1971/1972 |
Europe | Champions League | male | 1970/1971 |
Spain | Copa del Rey | male | 1983/1984 |
Spain | Copa del Rey | male | 1982/1983 |
Spain | Copa del Rey | male | 1977/1978 |
England | FA Women's Super League | female | 2020/2021 |
England | FA Women's Super League | female | 2019/2020 |
England | FA Women's Super League | female | 2018/2019 |
International | FIFA U20 World Cup | male | 1979 |
International | FIFA World Cup | male | 2022 |
International | FIFA World Cup | male | 2018 |
International | FIFA World Cup | male | 1990 |
International | FIFA World Cup | male | 1986 |
International | FIFA World Cup | male | 1974 |
International | FIFA World Cup | male | 1970 |
International | FIFA World Cup | male | 1962 |
International | FIFA World Cup | male | 1958 |
India | Indian Super league | male | 2021/2022 |
Spain | La Liga | male | 2020/2021 |
Spain | La Liga | male | 2019/2020 |
Spain | La Liga | male | 2018/2019 |
Spain | La Liga | male | 2017/2018 |
Spain | La Liga | male | 2016/2017 |
Spain | La Liga | male | 2015/2016 |
Spain | La Liga | male | 2014/2015 |
Spain | La Liga | male | 2013/2014 |
Spain | La Liga | male | 2012/2013 |
Spain | La Liga | male | 2011/2012 |
Spain | La Liga | male | 2010/2011 |
Spain | La Liga | male | 2009/2010 |
Spain | La Liga | male | 2008/2009 |
Spain | La Liga | male | 2007/2008 |
Spain | La Liga | male | 2006/2007 |
Spain | La Liga | male | 2005/2006 |
Spain | La Liga | male | 2004/2005 |
Spain | La Liga | male | 1973/1974 |
Argentina | Liga Profesional | male | 1997/1998 |
Argentina | Liga Profesional | male | 1981 |
France | Ligue 1 | male | 2015/2016 |
North and Central America | North American League | male | 1977 |
United States of America | NWSL | female | 2018 |
England | Premier League | male | 2015/2016 |
England | Premier League | male | 2003/2004 |
Italy | Serie A | male | 2015/2016 |
Italy | Serie A | male | 1986/1987 |
Europe | UEFA Euro | male | 2020 |
Europe | UEFA Europa League | male | 1988/1989 |
Europe | UEFA Women's Euro | female | 2022 |
International | Women's World Cup | female | 2023 |
International | Women's World Cup | female | 2019 |
Para más detalles revisar la presentación ¿Cómo obtener datos del fútbol élite?
Ejemplo: Crear tu propio modelo xG usando R
¡Gracias!