Fin

Llevo tiempo pensando esta entrada y no sé que decir. Analisis y Decisión nació en 2008 y no va a llegar a la mayoría de edad porque estas son las últimas palabras que escribo aquí. WordPress ya no es un medio de divulgación, dejó de motivarme la formación y el servidor me cuesta 90 € al año. Así que ha llegado el momento de despedir este proyecto que llegó a tener 2.200 visitas diarias y que ahora apenas alcanzaba las 400.

Minutos de juego y puntos. El Espanyol, sus finales de partido y mis enfados

Pienso que el Espanyol este 2024 se está dejando muchos puntos al final de los partidos. Cuando el partido llega al minuto 75 pierdo años de vida. ¿Es verdad que el Espanyol se está dejando puntos en el tramo final del partido? Vamos a estudiarlo numéricamente con worldfootballR y datos de FBRef empleando funciones que ya se han trabajado con anterioridad.

El primer paso será obtener todos los partidos de la Liga Hypermotion de este 2024 con fb_mach_url

Truco Python. Pasar múltiples archivos pdf a texto

Estoy realizando un trabajo de scraping de archivos que genera una entidad estatal en pdf y es necesario transformar esos archivos pdf en archivos txt para un análisis de minería de textos. Los archivos que genera esta entidad estatal me los he descargado vía php y los he alojado en una carpeta específica por lo que será necesario recorrer esa carpeta e ir cambiando de pdf a texto cada archivo de esa carpeta (y subcarpetas) por lo que el truco se divide en dos partes.

Datos libres de StatsBomb. Independencia estadística y tandas de penaltis

«Suponiendo que los lanzamientos de una tanda de penaltis son independientes…» Así empiezo parte de una formación que imparto y siempre he pensado que no tiene ningún sustento científico y se me ha ocurrido estudiar la validez de esta suposición. Y por ello vamos a emplear datos de Statsbomb para investigar si un lanzamiento de una tanda de penaltis es independientes del anterior y aprovechamos para conocer el test de la chi cuadrado

Los porteros del Espanyol y la regresión binomial negativa

En la temporada 22/23 de la Liga el RCD Espanyol descendió a segunda división y los aficionados culpamos en parte los problemas que hubo durante toda la temporada con los porteros y quería analizar si hubo diferencias entre los porteros que jugaron esa temporada en el Espanyol y Diego López que jugó como portero titular la temporada anterior, dejaremos de lado las intervenciones de Joan García y Olazábal.

Comenzamos con un código conocido.

Alineaciones de equipos de fútbol con worldfootballR de Rstats

Para obtener datos sobre fútbol de distintos proveedores disponemos de la librería de rstats worldfootballR , está disponible en CRAN, con ella podremos extraer datos de:

Por supuesto, lo primero que tenéis que hacer es navegar por esas web y pensad en como haríais el scraping, de ese modo entenderéis mejor como van a trabajar las funciones que tiene este paquete. Al estar en CRAN no vamos a empezar por instalar así que directamente vamos a obtener los partidos de la Liga con un rango de fechas.

Pintando campos de fútbol con #rstats y entendiendo funciones de densidad

La librería de rstats ggsoccer permite representar campos de fútbol con un código bastante sencillo, a continuación se plantean una serie de ejemplos para empezar a ilustrar su uso y quiero que me de pie a escribir sobre la función de densidad de una variable, pero empezamos por el principio instalar el paquete y empezar a usar.

# install.packages("remotes")
# remotes::install_github("torvaney/ggsoccer")
library(tidyverse)
library(ggsoccer)

# Lo pintamos en el campo
ggplot() +
  annotate_pitch() +
  ggtitle("Campo sin nada") +
  theme_pitch()

El código habla por si solo, muy sencillo a ggplot añadimos annotate_pitch() y theme_pitch(). Ahora sería necesario añadir información a este terreno de juego y para ello recuperamos una entrada anterior donde podíamos disponer de datos de eventing de Statsbomb que nos van a permitir pintar mapas de calor o heatmaps si nos molamos.

Datos de eventing gratuitos en Statsbomb

Da comienzo una serie de entradas sobre datos, fútbol y rstats. Todas estas entradas estarán disponibles en mi repositorio de github. La función de estos artículos es poner en orden cosas que yo he ido aprendiendo, no olvidar esas cosas y servir de ayuda a nuevos analistas. Para entender mejor esta serie recomiendo leer el libro Introducción a la Estadística para Científicos de Datos con R que yo mismo escribí.

Introducción a la Estadística para Científicos de Datos. Capítulo 17. Modelización estadística. Seleccionar variables y modelo

El capítulo anterior comenzó con esta imagen.

Se trataba de establecer un marco de trabajo, un guión para el científico de datos con los pasos a seguir en el proceso de modelización estadística. Se trabajó la primera parte de ese marco, el conocimiento de los datos, el inicio del proceso de modelización. Este capítulo será el siguiente paso ilustrando como seleccionar variables a partir de los parámetros del modelo y proponer una selección del modelo final midiendo su capacidad predictiva. Es necesario comenzar justo donde finalizó el paso anterior.

Introducción a la Estadística para Científicos de Datos. Capítulo 16. Modelización estadística. Conociendo los datos

Establecer un método para la modelización estadística

En el capítulo 3 del ensayo se hacía mención al universo tidyverse y las librerías de R que englobaba, además de esas librerías hay una publicación de Hadley Wickham y Garret Grolemund R for data sience donde aparece la siguiente imagen:

Esa imagen describe un método para realizar ciencia de datos con R. Como en la anterior figura, este capítulo se dedicará a describir e ilustrar un método de modelización que recoge todo lo trabajado con anterioridad en el ensayo, para ello se emplea el ejemplo que ha servido de hilo conductor en otros capítulos. El ya conocido modelo de venta cruzada en el sector asegurador :

Introducción a la Estadística para Científicos de Datos. Capítulo 15. Modelos GLM. Regresión logística y regresión de poisson

Motivación de los modelos GLM

Hasta el momento se han planteado los siguientes modelos.

  • Modelo de regresión lineal
  • Modelos factoriales en diseño de experimentos

Para ambos modelos la variable respuesta ha de ser cuantitativa y distribuida normalmente, pero en el capítulo 10 se vio la siguiente figura.

La respuesta normal o gaussiana aparece, pero existen otro tipo de situaciones a las que se enfrenta el científico de datos donde el evento a estudiar no se distribuye normalmente. Sin ir mas lejos, en el ejercicio que está sirviendo de hilo conductor en el ensayo, una aseguradora española que opera en múltiples ramos quiere ofrecer seguro de automóviles a sus clientes del ramo de salud. Para ello se realizó un cuestionario a los clientes de forma que se marcó quienes de ellos estarían interesados en el producto de automóviles y quienes no. La variable de interés es si o no lo que plantea una clasificación binomial. ¿Qué sucede si se modeliza eventos si/no mediante un modelo de regresión lineal? Siguiendo el propio ejemplo de trabajo al que se hace permanentemente referencia.

Introducción a la Estadística para Científicos de Datos. Capítulo 14. Introducción al diseño de experimentos

Otro de los temas dedicados a la Estadística que tiene que conocer el científico de datos es el diseño de experimentos. La motivación del diseño de experimentos está magistralmente ilustrada por Julio Mulero en este hilo de Twitter. Y se considera imprescindible conocer estas técnicas porque aportan una forma de trabajar, de plantear los problemas y un conocimiento de las variables que mejorará el desempeño (y los modelos) del científico de datos.

Resultados de La Liga con rstats. Estudiando gráficamente rachas


Vamos a crear un gráfico con #rstats que recoja los resultados de La Liga equipo a equipo para poder estudiar rachas e «intuir» como puede ser la segunda vuelta. Además, este ejercicio es un buen uso del paquete worldfootballR y la función de ggplot geom_tile además me va a servir para animarme esta segunda vuelta para que el Español no sufra. La web que vamos a emplear para el trabajo es FBREF. Empezamos.