viernes, 28 de septiembre de 2018

Obteniendo datos de la NFL en Stata

Esta es una traducción basada en la publicación original de Kevin Crow, Senior Software Developer.


La temporada de fútbol está a la vuelta de la esquina, y no podría estar más emocionado. Tenemos una liga de fútbol de fantasía bastante competitiva de StataCorp. Siempre busco una ventaja en nuestra liga, así que desafié a uno de nuestros pasantes, Chris Hassell, a escribir un comando para buscar en la web http://www.nfl.com los datos de la NFL. El nuevo comando es nfl2stata.

Para instalar el comando, escriba:



Con este nuevo comando, puede encontrar fácilmente a los corredores que tuvieron más touchdowns la temporada pasada,



Puede encontrar los mejores 5 pateadores de gol de campo (por goles de campo realizados) de la temporada pasada.



Puede generar un gráfico de los mejores líderes en pases de la última temporada regular.




Hay muchos datos interesantes por recorrer, especialmente si te interesa el fútbol de fantasía, como a mí. Aunque esto parece un comando simple, en realidad no lo es, debido al tiempo que lleva buscar, analizar y cargar los datos desde http://www.nfl.com  a través del web scraping.


Web scraping


Es posible que haya oído hablar del término "web scraping". Una simple definición de web scraping es extraer datos de sitios web. La mayoría de las veces, los derechos de autor de un sitio web impiden que las personas distribuyan los datos obtenidos de su sitio web, pero puede usar una copia personal de los datos en su computadora personal. Esto es lo que dicen los derechos de autor de la NFL. Debido a esto, los usuarios deben “raspar” el sitio web ellos mismos. Para hacer esto para los datos de la NFL, escriba:



Este comando raspará todos los datos desde 2009 hasta el año actual y guardará los datos como base de datos en formato Stata en su computadora local en la ruta de acceso a los archivos ado. Específicamente, los guardará en su directorio PLUS donde los comandos nfl2stata estarán disponibles. El primer año de datos de la NFL almacenado en http://www.nfl.com es 2009. Actualmente, no hay datos para raspar antes de esto. El web scraping es un proceso costoso y lento. Dependiendo de varios factores (velocidad de la computadora, memoria de la computadora, conexión de red, etc.), este raspado inicial de datos puede tardar horas en completarse. Es posible que desee ejecutar el comando anterior durante la noche. Una vez que haya raspado los datos históricos, puede simplemente escribir:



La actualización de las bases almacenadas localmente con los datos de la semana actual se ejecuta más rápido.

A partir de la redacción de este blog, el comando de raspado funciona, pero si la NFL cambia el formato de la página HTML, el comando se romperá, y si esto sucede, lo corregiremos si podemos. Además, los datos que se eliminan cambiarán con el tiempo a medida que la NFL actualice los datos anteriores en su sitio, por lo que a veces los datos que recopiló hace unas semanas no coincidirán con los que ve en el sitio web de ESPN o NFL. Además, a veces los datos pueden existir en más de un lugar y pueden ser inconsistentes dado que un sitio se actualiza las estadísticas y otros no. Puede volver a raspar los datos utilizando nfl2stata scrape, season (_all) replace para crear nuevas bases de datos limpias. Estos problemas son los que hacen que el web scraping sea un proceso volátil.


Comando

El comando nfl2stata scrape produce bases de datos de: juego, resumen de juego, jugada por jugada, jugador, perfil de jugador, lista y equipo para cada año. Para cargar esos datos en Stata, debe usar los siguientes comandos:

Para cargar datos de juego por juego en Stata, use:


Para cargar datos del resumen del juego en Stata, use:


Para cargar datos de jugada por jugada en Stata, use:


Para cargar datos de un jugador especifico en Stata, use:


Para cargar datos del perfil de jugador en Stata, use:


Para cargar datos de la lista de equipo en Stata, use:


Para cargar datos del equipo juego por juego en Stata, use:



Cada uno de estos comandos buscan su respectiva base de datos. A menudo necesitará usar comandos de Stata como collapse, gsort y merge para generar las estadísticas, ordenar los datos y fusionar dos o más datasets de la NFL para examinar los datos. Veamos algunos ejemplos más.


Ejemplos


Descubrí que los dos comandos de Stata que uso con mayor frecuencia con estos datos son gsort, que ordena los datos en orden ascendente o descendente, y collapse, lo que hace un conjunto de datos de estadísticas de resumen. collapse es especialmente útil cuando se trabaja con datos de múltiples juegos o múltiples temporadas. Por ejemplo, para saber qué receptor abierto líderó la NFL en recepciones el año pasado, escribiría:



A veces, necesita fusionar dos o más bases de datos NFL para responder algunas preguntas sobre los datos. Por ejemplo, para encontrar el peso promedio de un corredor de la NFL en los últimos nueve años, debe fusionar los datos de la lista y los datos del perfil para obtener la posición del jugador y las variables de peso del jugador juntas en el mismo conjunto de datos. Por ejemplo, escriba:



Para encontrar quién lideró a la NFL en recepciones o carreras, necesita fusionar todos los datos de jugadores ofensivos en un solo conjunto de datos. Por ejemplo, para enumerar a los líderes de recepción escriba:




Implementación

Chris usó los complementos Java de Stata para escribir la mayoría del comando. Las otras librerías Java que él usó para escribir el comando son:



Hay una gran cantidad de bibliotecas de Java disponibles para web scraping. Estos son solo los que usamos.

Si desea acceder al artículo original, de clic aquí.

Gracias por leer una entrada más de nuestro blog. Le invitamos continuar al pendiente de este blog y de nuestras redes sociales en las que encontrará descuentos, lanzamientos y artículos de su interés. ¡Hasta la próxima entrada!



Este blog es administrado por MultiON Consulting S.A. de C.V.

No hay comentarios.:

Publicar un comentario