Esta práctica consiste en dos partes. En la primera se trabaja con 3 modelos de crecimiento de redes en NetLogo y en la segunda se trabaja con el script de python presentado por José López durante la semana 1 del curso.
--------------------------------
PARTE 1
El objetivo de esta sesión es explorar los patrones que pueden surgir en las redes bajo los tres diferentes modelos de crecimiento de redes que revisamos en clase: el de Ërdos-Renyi, el de vínculos preferenciales y el de mundo pequeño.
Para ello, abre Netlogo y busca los siguientes modelos en la librería de modelos, en el folder “Networks”:
a) Giant component
b) Preferential attachment
c) Small worlds
Una vez que te hayas familiarizado con las tres pestañas en la interfase de Netlogo, utiliza la pestaña de Información para conocer más acerca del modelo, cómo funciona y qué aspectos son importantes de cada uno.
Considera los siguientes puntos de cada modelo para incluir en tu reporte:
a) Componente gigante: el gráfico que se muestra en la ventana de netlogo muestra la fracción del total de nodos que forman parte del componente gigante (eje y), en función del número de conexiones promedio por nodo (eje x). ¿Qué indica la línea vertical que se muestra en el gráfico? ¿Qué le ocurre a la tasa de crecimiento del componente gigante después de este punto?
b) Vínculos preferenciales: ¿qué indican los dos gráficos que se muestran? ¿Qué patrones se aprecian cuando aumenta el número de nodos? ¿Cómo se relaciona ese patrón con la estructura de la red?
c) Mundo pequeño: ¿cómo es el coeficiente de acumulación (cc) y el camino promedio más corto (l) cuando surge la propiedad de pequeño mundo? Visualiza los gráficos para distintas probabilidades de reconexión (rewiring probabilities) y observa los patrones para cc y l. ¿Cuál es la relación entre la probabilidad de reconexión y la fracción de nodos reconectados? Es decir, ¿cuál es la relación entre los dos gráficos (rewire-one y rewire-all)? ¿Los patrones que se observan dependen del número de nodos en la red?
-------------------
PARTE 2
Esta sección consiste en revisar el análisis de datos de facebook (información aquí) en python que presentó José López durante la primera semana del curso y luego basarse en él para generar una visualización y un análisis básico de datos de twitter. La información proviene del Stanford Large Network Dataset Collection como parte del Stanford Network Analysis Project.
Revisa (ejecutando) el script presentado por José López para el análisis de datos de facebook. Para ello puedes descargar el script y los datos y correrlos por tu parte o puedes hacerlo desde un Colab Notebook aquí: https://colab.research.google.com/drive/1ddaA3qwM0M5Sg4LdhcGbOc2XxS1T3o3v?usp=sharing. En caso de usar esta última opción, es necesario colocar los datos en la carpeta "content" del espacio de ejecución.
Apóyate en el script revisado para analizar en python los datos que puedes descargar aquí. Se trata de datos de twitter (información aquí). Si el tamaño de la red dificulta su análisis en tu computadora, puedes analizar un fragmento parcial de la misma (al menos 50000 filas de los datos), indicando claramente cuántos nodos y vínculos se mantuvieron en la sección analizada. Presenta en tu reporte un análisis breve de la red, incluyendo lo siguiente:
Descriptores básicos incluyendo el tipo de red, número de nodos y vínculos, tipo de vínculos.
Una visualización de la red de twitter donde el tamaño de los nodos sea indicativo de alguna medida de centralidad y el color de los nodos represente la pertenencia a módulos (indicando qué algoritmo de modularidad/detección de comunidades utilizaste).
Gráfico mostrando la distribución de grado de la red
Gráfico mostrando la distribución de caminos más cortos de la red
Gráfico mostrando la distribución del coeficiente de acumulación.
--------------------
REPORTE (entregarse 20 de marzo por correo electrónico)
El reporte de esta práctica consiste en:
Una discusión de cada uno de los modelos de crecimiento de redes, con énfasis particular en las propiedades emergentes que surgen de las reglas simples en las que consiste cada uno. Incluye los puntos a-c mencionados arriba.
Un breve análisis de la red de twitter analizada con python, incluyendo los elementos señalados en la parte 2.