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