class: center, middle, inverse, title-slide # Introducción al análisis de R-edes ## R-Ladies Puebla ### María Cristina Ramos ### 2021/09/25 --- class: center, top # Antes de empezar... Asegúrate de descargar los materiales del taller: https://github.com/mcramosf/intro_redes_RLP --- class: left, top # Antes de empezar... Asegúrate de descargar los paquetes que necesitamos: <br> **igraph** para analizar redes ```r install.packages("igraph") ``` **igraphdata** para obtener datos ```r install.packages("igraphdata") ``` --- class: inverse, center, middle .center[# ¡Hora de escribir código!] .center[## Primera gráfica] --- class: left, top # Nuestra primera gráfica de redes .center[ <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-4-1.png" width="504" /> ] --- class: center, middle # Elementos de una red --- class: left, top # Elementos de una red - Vértices o nodos<br> *(vertices or nodes)* .center[ <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-5-1.png" width="504" /> ] --- class: left, top # Elementos de una red - Vínculos o conexiones<br> *(edges or ties)* .center[ <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-6-1.png" width="504" /> ] --- class: left, top # Red El conjunto de vértices y sus relaciones. .center[ <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-7-1.png" width="504" /> ] --- class: left, top # Ejemplos de vértices y vínculos --- class: center, middle # Atributos --- class: left, top # Atributos de los vértices  --- class: left, top # Atributos de los vínculos ## 1. Dirección .pull-left[ - Vínculos dirigidos<br> *(directed edges)* <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-8-1.png" width="504" /> ] .pull-right[ - Vínculos no dirigidos<br> *(undirected edges)* <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-9-1.png" width="504" /> ] --- class: left, top # Atributos de los vínculos ## 2. Pesos o ponderaciones .pull-left[ - Vínculos sin peso <br> *(unweighted edges)* <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-10-1.png" width="504" /> ] .pull-right[ - Vínculos con peso<br> *(weighted edges)* <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-11-1.png" width="504" /> ] --- class: inverse, center, middle .center[# ¡Hora de escribir código!] .center[##Inspección de redes] --- class: left, top # Características generales de la red .pull-left[ + Tamaño de red<br> (número de vértices) + Número de vínculos + Tipo de red - dirigida o no dirigida - ponderada o no ponderada + Atributos - de la red - de los vértices - de los vínculos ] --- class: inverse, center, top # ¡Tu turno! Carga y explora la red de profesores en una universidad de Inglaterra. .left[ 1. ¿Cuántos vértices tiene la red? 2. ¿Cuántos vínculos tiene la red? 3. ¿La red es dirigida o no dirigida? 4. ¿Cuál es el rango de los pesos de vínculos? ]
03
:
00
--- #Soluciones ```r data("UKfaculty") UKfaculty ``` ``` *## IGRAPH 6f42903 D-W- 81 817 -- ## + attr: Type (g/c), Date (g/c), Citation (g/c), Author (g/c), Group ## | (v/n), weight (e/n) ## + edges from 6f42903: ## [1] 57->52 76->42 12->69 43->34 28->47 58->51 7->29 40->71 5->37 48->55 ## [11] 6->58 21-> 8 28->69 43->21 67->58 65->42 5->67 52->75 37->64 4->36 ## [21] 12->49 19->46 37-> 9 74->36 62-> 1 15-> 2 72->49 46->62 2->29 40->12 ## [31] 22->29 71->69 4-> 3 37->69 5-> 6 77->13 23->49 52->35 20->14 62->70 ## [41] 34->35 76->72 7->42 37->42 51->80 38->45 62->64 36->53 62->77 17->61 ## [51] 7->68 46->29 44->53 18->58 12->16 72->42 52->32 58->21 38->17 15->51 ## [61] 22-> 7 22->69 5->13 29-> 2 77->12 37->35 18->46 10->71 22->47 20->19 ## + ... omitted several edges ``` ```r summary(E(UKfaculty)$weight) ``` ``` ## Min. 1st Qu. Median Mean 3rd Qu. Max. *## 1.000 2.000 2.000 4.565 6.000 16.000 ``` --- class: center, middle # Visualización de redes --- # Dos métodos .pull-left[Opción 1: Establecer las propiedades visuales fuera de la función `plot()` 1. Configurar los atributos de los vértices y/o vínculos en el objeto de tipo red 2. Graficar la red ```r # 1: crear/transformar el atributo V(karate)$color <- "dodgerblue" # 2: graficar la red plot(karate) ``` ] .pull-right[Opción 2: Establecer las propiedades visuales dentro de la función `plot()` 1. Utiliza los argumentos de la función ```r # 1: utilizar el argumento plot(karate, vertex.color = "dodgerblue") ``` ] --- class: left, top # Parámetros de visualización: vértices vertex.[parámetro]<br> (e.g., vertex.color =) <table> <thead> <tr> <th style="text-align:left;"> argumento </th> <th style="text-align:left;"> significado </th> <th style="text-align:left;"> propósito u opciones </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> color </td> <td style="text-align:left;"> color </td> <td style="text-align:left;"> color del vértice </td> </tr> <tr> <td style="text-align:left;"> shape </td> <td style="text-align:left;"> forma </td> <td style="text-align:left;"> círculo, cuadrado, rectángulo, esfera, etc. </td> </tr> <tr> <td style="text-align:left;"> size </td> <td style="text-align:left;"> tamaño </td> <td style="text-align:left;"> predeterminado = 15 </td> </tr> <tr> <td style="text-align:left;"> label </td> <td style="text-align:left;"> etiqueta </td> <td style="text-align:left;"> - </td> </tr> <tr> <td style="text-align:left;"> label.family </td> <td style="text-align:left;"> fuente de etiqueta </td> <td style="text-align:left;"> Helvetica, Times </td> </tr> <tr> <td style="text-align:left;"> label.font </td> <td style="text-align:left;"> opciones de fuente </td> <td style="text-align:left;"> 1= simple, 2= negrita, 3= cursiva, 4 = cursiva y negrita </td> </tr> <tr> <td style="text-align:left;"> label.cex </td> <td style="text-align:left;"> tamaño de fuente </td> <td style="text-align:left;"> - </td> </tr> <tr> <td style="text-align:left;"> label.dist </td> <td style="text-align:left;"> distancia de etiqueta </td> <td style="text-align:left;"> distancia entre la etiqueta y el vértice </td> </tr> <tr> <td style="text-align:left;"> </td> <td style="text-align:left;"> </td> <td style="text-align:left;"> </td> </tr> </tbody> </table> --- # Parámetros de visualización: vínculos edge.[parámetro]<br> (e.g., edge.color =) <table> <thead> <tr> <th style="text-align:left;"> argumento </th> <th style="text-align:left;"> significado </th> <th style="text-align:left;"> propósito u opciones </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> lty </td> <td style="text-align:left;"> tipo de línea </td> <td style="text-align:left;"> 1 = sólida, 2 = discontinua, 3 = punteada, 4 = punto y línea, etc. </td> </tr> <tr> <td style="text-align:left;"> width </td> <td style="text-align:left;"> ancho de línea </td> <td style="text-align:left;"> predeterminado = 1 </td> </tr> <tr> <td style="text-align:left;"> arrow.width </td> <td style="text-align:left;"> ancho de flecha </td> <td style="text-align:left;"> predeterminado = 1 </td> </tr> <tr> <td style="text-align:left;"> arrow.size </td> <td style="text-align:left;"> tamaño de flecha </td> <td style="text-align:left;"> predeterminado = 1 </td> </tr> <tr> <td style="text-align:left;"> arrow.mode </td> <td style="text-align:left;"> dirección de flecha </td> <td style="text-align:left;"> 0 = sin flecha, 1 = inversa, 2 = hacia adelante, 3 = bidireccional </td> </tr> <tr> <td style="text-align:left;"> curved </td> <td style="text-align:left;"> curvatura </td> <td style="text-align:left;"> rango [0,1] </td> </tr> </tbody> </table> --- class: inverse, center, middle .center[# ¡Hora de escribir código!] .center[## Visualización de redes] --- class: left, top # Paleta de igraph .center[ <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-19-1.png" width="504" /> ] --- class: inverse, center, top # ¡Tu turno! Configura las propiedades de visualización de la red del club de karate. .left[ 1. Utiliza la hoja de repaso de visualización para que los vínculos sean del color de tu elección. 2. ¿Qué fragmento del siguiente código hace que las etiquetas desaparezcan? 3. Cambia la gráfica para que el ancho de los vínculos sea igual al atributo “weight” o peso de los vínculos. 4. Cambia el código para que los vínculos sean representados por líneas punteadas. ]
03
:
00
--- class: center, middle # Soluciones --- class: center, middle # Métricas globales --- class: left, top # Densidad .center[Número de vínculos que observamos en la red sobre el número de vínculos posibles.] ```r graph.density(karate) ``` ``` ## [1] 0.1390374 ``` --- class: left, top # Transitividad global Número de tríadas transitivas sobre el total de tríadas. .pull-left[ **Tríada transitiva** <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-22-1.png" width="504" /> ] .pull-right[ **Tríada no transitiva** <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-23-1.png" width="504" /> ] --- class: left, top # Transitividad global Número de tríadas transitivas sobre el total de tríadas. ```r transitivity(karate, type = "global") ``` ``` ## [1] 0.2556818 ``` --- class: inverse, center, top #¡Tu turno! Explora métricas globales en la red de profesores en una universidad de Inglaterra. .left[ 1. Calcula la densidad y transitividad de la red de profesores en Inglaterra. 2. Compara la densidad y transitividad en la red del club de karate con las métricas obtenidas en la red de profesores. ]
03
:
00
--- class: left, top # Soluciones Densidad ```r graph.density(UKfaculty) ``` ``` ## [1] 0.1260802 ``` Transitividad ```r transitivity(UKfaculty, type = "global") ``` ``` ## [1] 0.4734084 ``` --- class: center, middle # Métricas a nivel de vértices --- # Centralidad de grado .pull-left[ **De entrada** <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-28-1.png" width="504" /> ] .pull-right[ **De salida** <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-29-1.png" width="504" /> ] --- class: left, top # Centralidad de grado .center[ <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-30-1.png" width="504" /> ] --- class: inverse, center, middle .center[# ¡Hora de escribir código!] .center[##Centralidad de grado] --- class: left, top # Centralidad de grado .center[ <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-32-1.png" width="504" /> ] --- # Puntos de articulación Vértices que, al ser removidos, dividen la red en un mayor número de componentes. .center[ <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-34-1.png" width="504" /> ] --- class: inverse, center, middle .center[# ¡Hora de escribir código!] .center[##Puntos de articulación] --- class: left, top # Puntos de articulación .center[ <img src="Intro_Nets_slides_files/figure-html/unnamed-chunk-35-1.png" width="504" /> ] --- # Recursos + Wasserman, S., & Faust, K. (2013). Análisis de redes sociales: métodos y aplicaciones (Vol. 10): CIS-Centro de Investigaciones Sociológicas. + Kolaczyk, E. D., & Csárdi, G. (2014). Statistical Analysis of Network Data with R (Vol. 65): Springer. + Luke, D. (2015). A User’s Guide to Network Analysis in R. Cham: Springer International Publishing : Imprint: Springer. + [Tutorial](https://kateto.net/network-visualization) sobre visualización de redes - Katya Ognyanova + Paquete [statnet](https://statnet.org/) + Paquete [igraph](https://igraph.org/r/) + Paquete [tidygraph](https://www.data-imaginist.com/2017/introducing-tidygraph/) --- class: center, middle # ¡Gracias! .center[Me encantará saber tu opinión sobre el taller. Sigue este [**link**](https://bit.ly/2ZqbJAh) para dar tu retroalimentación.] .center[<br><br>Las diapositivas fueron creadas mediante el paquete [**xaringan**](https://github.com/yihui/xaringan).] .center[ <br><br>Puedes encontrarme en:<br> [www.mariacramos.com](https://mariacramos.com/) <br><br>.large[@mariacramosf] ]