SlideShare una empresa de Scribd logo
Una introducción al universo de
paquetes para Ciencia de Redes en R
Carlos E. López Natarén, Instituto de Física, UNAM
natorro@fisica.unam.mx
https://sg.com.mx/dataday
#DataDayMx
Estructura de la plática
• ¿Qué es la ciencia de redes?
• Datos.
• El universo de paquetes para redes en R:
• network
• igraph
• tidygraph
• ggraph
• visNetwork
• networkD3
• qgraph
¿Qué es la ciencia de redes?
• La ciencia de redes es un campo del conocimiento que se
encarga de estudiar redes complejas tales como las redes de
telecomunicación, eléctrica, de computadoras, biológicas,
cognitivas y semánticas, redes sociales, etc.
• Hoy en día muchos campos se
consideran padres de la
disciplina. Las matemáticas le
atribuyen el desarrollo teórico a
través de la teoría de gráficas,
la sociología se atribuye el
estudio de las redes sociales.
¿Qué es la ciencia de redes?
¿Qué es la ciencia de redes?
• La física le atribuye el concepto de universalidad y el desarrollo
de herramientas como la mecánica estadística para estudiarlas,
la biología ha proporcionado el mapeo de redes celulares, las
ciencias de la computación ha ofrecido la perspectiva
algorítmica.
• Todas estas aportaciones han
dado lugar a esta “nueva”
disciplina que nos ayuda a
entender y tratar de explicar
fenómenos que pueden ser
modelados con el tipo de
modelos que emanan de ahí.
¿Qué es la ciencia de redes?
• La teoría de gráficas o grafos nos da una abstracción matemática para
poder modelar cualquier relaciones entre pares de objetos.
• En este contexto, una gráfica (o una red en el contexto de ciencia de
redes) está hecho de vértices (a veces llamados nodos o puntos) que
están conectados por aristas. Si en la relación importa la dirección, se dice
que el grafo o red es dirigida. El problema de los siete puentes de
Köninsberg es el primer artículo que habla de redes.
¿Qué es la ciencia de redes?
• Propiedades de las redes:
• Tamaño
• Densidad y densidad planar
• Grado y grado promedio
• Camino más corto promedio
• Diámetro
• Coeficiente de cumulación
• Conectividad
• Centralidad
• Influencia
¿Libros?
Datos
En el instituto de física, contamos con un sistema de información
curricular, SALVA, desarrollado desde hace al menos 10 años, es
un sistema donde los investigadores del instituto capturan su
información nueva cada año. Esta sirve para realizar los reportes
de la institución ante los organismos que la financían y apoyan,
CTIC, Conacyt, UNAM, etc.
Datos
Uno de los campos de información que los investigadores y
demás personal académico tienen que proporcionar es el de la
producción académica, en particular la producción de artículos
arbitrados en publicaciones científicas sobre los diversos temas
que se investigan en el instituto.
Podemos acceder a estos datos, en particular en forma de un
stream de datos en formato JSON.
Este stream de JSON podemos entonces tenerlo en forma de
dataframe en R.
Datos
Datos
El universo de paquetes para redes en R
Este es un trabajo en proceso, en este proceso me he dedicado a
explorar los diversos paquetes de R que me puedan ayudar a
darle sentido a toda la información con la que contamos.
El universo de paquetes para redes en R
La primera razón que me motivó a querer explorar estos datos en
forma de redes fue se pueden visualizar cosas de este tipo:
Red de colaboraciones internas:
Red de colaboraciones internas:
Red de colaboraciones internas:
El universo de paquetes para redes en R
Aunque no está específicamente diseñado para esto, R tiene capacidades
poderosas para el análisis de redes. Las ventajas sobre el software
especializado (Gephi o Cytoscape) son:
• Reproducibilidad de análisis y resultados
• La alta capacidad de R para poder hacer la trasnsformación de datos para el
análisis de redes
• La gran cantidad de paquetes para el análisis de redes y este número sigue
creciendo: statnet, igraph, tidygraph, ggraph, visNetwork, qgraph, etc…
El universo de paquetes para redes en R
En la jerga de la ciencia de redes tenemos nodos o vértices,
mientras que las conexiones entre ellos son ligas o aristas. En
general trato de usar la nomenclatura de nodos y ligas.
Para poder usar nuestros datos necesitamos transformar la
información que tenemos en una forma particular para tener el
tipo particular de objeto usado por cada paquete.
El universo de paquetes para redes en R
El objeto principal de network, igraph y tidygraph se basa en
matrices de adjacencia.
Matriz de adjacencia:
Es una matriz cuadrada en la cuál la columna y el renglón son los
nodos de la gráfica, si dentro de la matriz hay un 1, entonces eso
significa que hay una liga entre ellos, en caso contrario, hay un
cero. Algunas matrices de adjacencia pueden tener valores
mayores a uno cuando eso es importante (en nuestro caso lo es) y
cuando la red es dirigida, la matriz no es simétrica, sino asimétrica.
Datos
Matriz de adyacencia
El universo de paquetes para redes en R
El otro tipo de objecto que es importante crear en R es un
dataframe de vértices.
Dataframe de vértices:
Un data frame que contiene al menos dos columnas, una
columna de nodos que son la fuente de la conexión y otra
columna de nodos que son el otro lado de la conexión. Se
pueden identificar de manera única por medio de un ID y si el
orden es importante, estamos ante una red dirigida.
El universo de paquetes para redes en R
Un dataframe de vértices tiene toda la información necesaria,
pero muchas veces es preferible también una lista de nodos,
esto nos puede dar la ventaja de que podemos agregar atributos,
como el nombre de los nodos, o algún tipo de agrupación
(colores por ejemplo).
Datos
NodesLinks
network
1 library(network)
2 my_network <- network(edges,
vertex.attr = nodes,
matrix.type = “edgelist",
ignore.eval = FALSE)
3 class(my_network)
network
1 library(network)
2 my_network <- network(edges,
vertex.attr = nodes,
matrix.type = “edgelist",
ignore.eval = FALSE)
3 class(my_network)
network
1 plot(routes_network, vertex.cex = 3, mode = "circle")
igraph
1 detach(package:network)
2 rm(my_network)
3 library(igraph)
4 igraph_network <- graph_from_data_frame(d = ligas,
5 vertices = nodes,
6 directed = TRUE)
7 class(igraph_network)
igraph 1 > igraph_network
2 IGRAPH 499a818 DNW- 125 264 --
3 + attr: name (v/c), title (v/c), color
4 | (v/c), weight (e/n)
5 + edges from 499a818 (vertex names):
6 [1] 1->7 1->11 1->25 1->32 1->76
7 [6] 2->34 2->37 2->55 2->96 3->71
8 [11] 3->75 3->92 4->7 4->76 4->92
9 [16] 5->13 5->47 5->53 5->57 5->62
10 [21] 5->63 5->105 6->16 6->57 6->62
11 [26] 6->98 7->11 7->13 7->25 7->26
12 [31] 7->32 7->55 7->62 7->65 7->73
13 + ... omitted several edges
14
igraph
1 plot(routes_igraph, edge.arrow.size = 0.2)
tidygraph y ggraph
Ambos paquetes tratan de traer redes a la manera de trabajar
del tidyverse. Esto representa una gran ventaja porque la forma
de trabajo usando tidyverse es mucho más limpia y consistente.
tidygraph nos permite crear objetos que parece un tibble o
dataframe
ggraph nos permite graficar los objetos de tidygraph usando las
convenciones de ggplot2
tidygraph y ggraph
1 library(tidygraph)
2 library(ggraph)
3 tidynetwork <- tbl_graph(nodes = nodes,
edges = ligas,
directed = TRUE)
4 class(tidynetwork)
tidygraph y ggraph
1 > tidynetwork
2 # A tbl_graph: 125 nodes and 264 edges
3 #
4 # A directed simple graph with 8 components
5 #
6 # Node Data: 125 x 3 (active)
7 id title color
8 <int> <fct> <fct>
9 1 1 Dwight Roberto Acosta Najarro #DBC8…
10 2 2 Luis Armando Acosta S√ánchez#DF70…
11 3 3 Esbaide Adem Chahin #DF70…
12 4 4 Fernando Alba Andrade #84AC…
13 5 5 José Rubén Alfaro Molina #84AC…
14 6 6 Héctor Alva Sánchez #84AC…
15 # … with 119 more rows
16 #
17 # Edge Data: 264 x 3
18 from to weight
19 <int> <int> <int>
20 1 1 7 4
21 2 1 11 1
22 3 1 25 3
23 #…with 261 more rows
tidygraph y ggraph
1 ggraph(tidynetwork) +
2 geom_edge_link() +
3 geom_node_point() +
4 theme_graph()
tidygraph y ggraph
1 ggraph(tidynetwork, layout = "graphopt") +
2 geom_node_point() +
3 geom_edge_link(aes(width = weight), alpha = 0.8) +
4 scale_edge_width(range = c(0.2, 2)) +
5 theme_graph()
tidygraph y ggraph
1 ggraph(tidynetwork, layout = "linear") +
2 geom_edge_arc(aes(width = weight), alpha = 0.8) +
3 scale_edge_width(range = c(0.2, 2)) +
4 geom_node_text(aes(label = title)) +
5 labs(edge_width = "weight") +
6 theme_graph()
visNetwork y networkD3
Ambos paquetes nos dejan tener interacción con las gráficas,
además de que también nos permiten empotrarlos en
aplicaciones Shiny, lo cuál puede ser muy conveniente para
cuando se están presentando datos.
visNetwork
1 library(visNetwork)
2 visNetwork(nodes, ligas)
visNetwork
1 visNetwork(nodes, ligas) %>%
2 visIgraphLayout(layout = "layout_with_fr") %>%
3 visEdges(arrows = "middle")
networkD3
1 library(networkD3)
2 nodes_d3 <- mutate(nodes, id = id - 1)
3 ligas_d3 <- mutate(ligas, from = from - 1, to = to - 1)
4 forceNetwork(Links = ligas_d3, Nodes = nodes_d3,
5 Source = "from", Target = "to",
6 NodeID = "title", Group = "color",
7 Value = "weight",
8 opacity = 1, fontSize = 16, zoom = TRUE)
qgraph y ggnet
qgraph nos permite visualizar y observar los cambios que se
tienen en una red que cambia con el tiempo
ggnet también permite usar la filosofía del tidyverse
No olvidar
Conclusión
El universo de paquetes es bastante amplio, de hecho hay una task
view de CRAN que sigue todos los paquetes asociados a redes:
https://cran.r-project.org/web/views/gR.html
Prácticamente todos los algoritmos para medir están
implementados y se pueden comenzar a trabajar desde ahí sin
ningún problema, la gran ventaja de la nueva ola de paquetes
relacionados con redes es que ahora se puede utilizar el tidyverse y
esto hace mucho más limpio el proceso y el pipeline entre equipos.
@natorro
@massivetrend
carlos.lopez@massiventrend.com
Contacto
¡GRACIAS!

Más contenido relacionado

Similar a Ciencia de redes con R: Una introducción al universo de paquetes para ciencia de redes

Fundamentos de Data Mining con R
Fundamentos de Data Mining con RFundamentos de Data Mining con R
Fundamentos de Data Mining con R
Software Guru
 
Arquitecturas y modelos de programación en computación grid (1)
Arquitecturas y modelos de programación en computación grid (1)Arquitecturas y modelos de programación en computación grid (1)
Arquitecturas y modelos de programación en computación grid (1)
Tensor
 
Manual fundamentos de redes
Manual fundamentos de redesManual fundamentos de redes
Manual fundamentos de redes
Carlos M. Sandoval
 
presentation GRID
presentation GRIDpresentation GRID
presentation GRID
chabal
 
Jasson modelo osi
Jasson modelo osiJasson modelo osi
Jasson modelo osi
Jasson Linarez
 
Dialnet redes neuronalesy-predicciondetrafico-3802210
Dialnet redes neuronalesy-predicciondetrafico-3802210Dialnet redes neuronalesy-predicciondetrafico-3802210
Dialnet redes neuronalesy-predicciondetrafico-3802210
S.C. Uriel Rodriguez Ramirez
 
AMERICAN SYSTEM monografia de exposicion año 2023
AMERICAN SYSTEM monografia de exposicion año 2023AMERICAN SYSTEM monografia de exposicion año 2023
AMERICAN SYSTEM monografia de exposicion año 2023
Jhony1q1111Delaguila
 
Capa fisica del modelo osi
Capa fisica del modelo osiCapa fisica del modelo osi
Capa fisica del modelo osiMaatva Rg
 
Capa de enlace de datos y capa física del modelo osi.
Capa de enlace de datos y capa física del modelo osi.Capa de enlace de datos y capa física del modelo osi.
Capa de enlace de datos y capa física del modelo osi.Deysi Sanchez Vazquez
 
Capa fisica del modelo osi
Capa fisica del modelo osiCapa fisica del modelo osi
Capa fisica del modelo osiMaatva Rg
 
Tutorial network analyst
Tutorial network analystTutorial network analyst
Tutorial network analystCivil Serrano
 
Tutorial neo4j en español
Tutorial neo4j en españolTutorial neo4j en español
Tutorial neo4j en español
Banco Central de Reserva
 
R Services con SQL Server
R Services con SQL ServerR Services con SQL Server
R Services con SQL Server
dbLearner
 
Modelo osi wikipedia, la enciclopedia libre
Modelo osi   wikipedia, la enciclopedia libreModelo osi   wikipedia, la enciclopedia libre
Modelo osi wikipedia, la enciclopedia libre
jose zumaya
 
2 arquitecturas de red 2
2 arquitecturas de red 22 arquitecturas de red 2
2 arquitecturas de red 2
Kathia Chiquita
 

Similar a Ciencia de redes con R: Una introducción al universo de paquetes para ciencia de redes (20)

Fundamentos de Data Mining con R
Fundamentos de Data Mining con RFundamentos de Data Mining con R
Fundamentos de Data Mining con R
 
Arquitecturas y modelos de programación en computación grid (1)
Arquitecturas y modelos de programación en computación grid (1)Arquitecturas y modelos de programación en computación grid (1)
Arquitecturas y modelos de programación en computación grid (1)
 
Manual fundamentos de redes
Manual fundamentos de redesManual fundamentos de redes
Manual fundamentos de redes
 
Mantenimeinto
MantenimeintoMantenimeinto
Mantenimeinto
 
Grupo4
Grupo4Grupo4
Grupo4
 
Trabajo final
Trabajo finalTrabajo final
Trabajo final
 
presentation GRID
presentation GRIDpresentation GRID
presentation GRID
 
Jasson modelo osi
Jasson modelo osiJasson modelo osi
Jasson modelo osi
 
Dialnet redes neuronalesy-predicciondetrafico-3802210
Dialnet redes neuronalesy-predicciondetrafico-3802210Dialnet redes neuronalesy-predicciondetrafico-3802210
Dialnet redes neuronalesy-predicciondetrafico-3802210
 
AMERICAN SYSTEM monografia de exposicion año 2023
AMERICAN SYSTEM monografia de exposicion año 2023AMERICAN SYSTEM monografia de exposicion año 2023
AMERICAN SYSTEM monografia de exposicion año 2023
 
Capa fisica del modelo osi
Capa fisica del modelo osiCapa fisica del modelo osi
Capa fisica del modelo osi
 
Capa de enlace de datos y capa física del modelo osi.
Capa de enlace de datos y capa física del modelo osi.Capa de enlace de datos y capa física del modelo osi.
Capa de enlace de datos y capa física del modelo osi.
 
Capa fisica del modelo osi
Capa fisica del modelo osiCapa fisica del modelo osi
Capa fisica del modelo osi
 
Exposicion 4
Exposicion 4Exposicion 4
Exposicion 4
 
Tutorial network analyst
Tutorial network analystTutorial network analyst
Tutorial network analyst
 
Tutorial neo4j en español
Tutorial neo4j en españolTutorial neo4j en español
Tutorial neo4j en español
 
R Services con SQL Server
R Services con SQL ServerR Services con SQL Server
R Services con SQL Server
 
Modelo osi wikipedia, la enciclopedia libre
Modelo osi   wikipedia, la enciclopedia libreModelo osi   wikipedia, la enciclopedia libre
Modelo osi wikipedia, la enciclopedia libre
 
2 arquitecturas de red 2
2 arquitecturas de red 22 arquitecturas de red 2
2 arquitecturas de red 2
 
Trabajo de sena ultimate
Trabajo de sena  ultimateTrabajo de sena  ultimate
Trabajo de sena ultimate
 

Más de Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
Software Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
Software Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
Software Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
Software Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
Software Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
Software Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
Software Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
Software Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
Software Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
Software Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Software Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
Software Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
Software Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
Software Guru
 

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
yuki22434
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
alejandromanuelve
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 

Último (20)

Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 

Ciencia de redes con R: Una introducción al universo de paquetes para ciencia de redes

  • 1. Una introducción al universo de paquetes para Ciencia de Redes en R Carlos E. López Natarén, Instituto de Física, UNAM natorro@fisica.unam.mx https://sg.com.mx/dataday #DataDayMx
  • 2. Estructura de la plática • ¿Qué es la ciencia de redes? • Datos. • El universo de paquetes para redes en R: • network • igraph • tidygraph • ggraph • visNetwork • networkD3 • qgraph
  • 3. ¿Qué es la ciencia de redes? • La ciencia de redes es un campo del conocimiento que se encarga de estudiar redes complejas tales como las redes de telecomunicación, eléctrica, de computadoras, biológicas, cognitivas y semánticas, redes sociales, etc. • Hoy en día muchos campos se consideran padres de la disciplina. Las matemáticas le atribuyen el desarrollo teórico a través de la teoría de gráficas, la sociología se atribuye el estudio de las redes sociales.
  • 4. ¿Qué es la ciencia de redes?
  • 5. ¿Qué es la ciencia de redes? • La física le atribuye el concepto de universalidad y el desarrollo de herramientas como la mecánica estadística para estudiarlas, la biología ha proporcionado el mapeo de redes celulares, las ciencias de la computación ha ofrecido la perspectiva algorítmica. • Todas estas aportaciones han dado lugar a esta “nueva” disciplina que nos ayuda a entender y tratar de explicar fenómenos que pueden ser modelados con el tipo de modelos que emanan de ahí.
  • 6. ¿Qué es la ciencia de redes? • La teoría de gráficas o grafos nos da una abstracción matemática para poder modelar cualquier relaciones entre pares de objetos. • En este contexto, una gráfica (o una red en el contexto de ciencia de redes) está hecho de vértices (a veces llamados nodos o puntos) que están conectados por aristas. Si en la relación importa la dirección, se dice que el grafo o red es dirigida. El problema de los siete puentes de Köninsberg es el primer artículo que habla de redes.
  • 7. ¿Qué es la ciencia de redes? • Propiedades de las redes: • Tamaño • Densidad y densidad planar • Grado y grado promedio • Camino más corto promedio • Diámetro • Coeficiente de cumulación • Conectividad • Centralidad • Influencia
  • 9. Datos En el instituto de física, contamos con un sistema de información curricular, SALVA, desarrollado desde hace al menos 10 años, es un sistema donde los investigadores del instituto capturan su información nueva cada año. Esta sirve para realizar los reportes de la institución ante los organismos que la financían y apoyan, CTIC, Conacyt, UNAM, etc.
  • 10. Datos Uno de los campos de información que los investigadores y demás personal académico tienen que proporcionar es el de la producción académica, en particular la producción de artículos arbitrados en publicaciones científicas sobre los diversos temas que se investigan en el instituto. Podemos acceder a estos datos, en particular en forma de un stream de datos en formato JSON. Este stream de JSON podemos entonces tenerlo en forma de dataframe en R.
  • 11. Datos
  • 12. Datos
  • 13. El universo de paquetes para redes en R Este es un trabajo en proceso, en este proceso me he dedicado a explorar los diversos paquetes de R que me puedan ayudar a darle sentido a toda la información con la que contamos.
  • 14. El universo de paquetes para redes en R La primera razón que me motivó a querer explorar estos datos en forma de redes fue se pueden visualizar cosas de este tipo:
  • 18. El universo de paquetes para redes en R Aunque no está específicamente diseñado para esto, R tiene capacidades poderosas para el análisis de redes. Las ventajas sobre el software especializado (Gephi o Cytoscape) son: • Reproducibilidad de análisis y resultados • La alta capacidad de R para poder hacer la trasnsformación de datos para el análisis de redes • La gran cantidad de paquetes para el análisis de redes y este número sigue creciendo: statnet, igraph, tidygraph, ggraph, visNetwork, qgraph, etc…
  • 19. El universo de paquetes para redes en R En la jerga de la ciencia de redes tenemos nodos o vértices, mientras que las conexiones entre ellos son ligas o aristas. En general trato de usar la nomenclatura de nodos y ligas. Para poder usar nuestros datos necesitamos transformar la información que tenemos en una forma particular para tener el tipo particular de objeto usado por cada paquete.
  • 20. El universo de paquetes para redes en R El objeto principal de network, igraph y tidygraph se basa en matrices de adjacencia. Matriz de adjacencia: Es una matriz cuadrada en la cuál la columna y el renglón son los nodos de la gráfica, si dentro de la matriz hay un 1, entonces eso significa que hay una liga entre ellos, en caso contrario, hay un cero. Algunas matrices de adjacencia pueden tener valores mayores a uno cuando eso es importante (en nuestro caso lo es) y cuando la red es dirigida, la matriz no es simétrica, sino asimétrica.
  • 22. El universo de paquetes para redes en R El otro tipo de objecto que es importante crear en R es un dataframe de vértices. Dataframe de vértices: Un data frame que contiene al menos dos columnas, una columna de nodos que son la fuente de la conexión y otra columna de nodos que son el otro lado de la conexión. Se pueden identificar de manera única por medio de un ID y si el orden es importante, estamos ante una red dirigida.
  • 23. El universo de paquetes para redes en R Un dataframe de vértices tiene toda la información necesaria, pero muchas veces es preferible también una lista de nodos, esto nos puede dar la ventaja de que podemos agregar atributos, como el nombre de los nodos, o algún tipo de agrupación (colores por ejemplo).
  • 25. network 1 library(network) 2 my_network <- network(edges, vertex.attr = nodes, matrix.type = “edgelist", ignore.eval = FALSE) 3 class(my_network)
  • 26. network 1 library(network) 2 my_network <- network(edges, vertex.attr = nodes, matrix.type = “edgelist", ignore.eval = FALSE) 3 class(my_network)
  • 28. igraph 1 detach(package:network) 2 rm(my_network) 3 library(igraph) 4 igraph_network <- graph_from_data_frame(d = ligas, 5 vertices = nodes, 6 directed = TRUE) 7 class(igraph_network)
  • 29. igraph 1 > igraph_network 2 IGRAPH 499a818 DNW- 125 264 -- 3 + attr: name (v/c), title (v/c), color 4 | (v/c), weight (e/n) 5 + edges from 499a818 (vertex names): 6 [1] 1->7 1->11 1->25 1->32 1->76 7 [6] 2->34 2->37 2->55 2->96 3->71 8 [11] 3->75 3->92 4->7 4->76 4->92 9 [16] 5->13 5->47 5->53 5->57 5->62 10 [21] 5->63 5->105 6->16 6->57 6->62 11 [26] 6->98 7->11 7->13 7->25 7->26 12 [31] 7->32 7->55 7->62 7->65 7->73 13 + ... omitted several edges 14
  • 31. tidygraph y ggraph Ambos paquetes tratan de traer redes a la manera de trabajar del tidyverse. Esto representa una gran ventaja porque la forma de trabajo usando tidyverse es mucho más limpia y consistente. tidygraph nos permite crear objetos que parece un tibble o dataframe ggraph nos permite graficar los objetos de tidygraph usando las convenciones de ggplot2
  • 32. tidygraph y ggraph 1 library(tidygraph) 2 library(ggraph) 3 tidynetwork <- tbl_graph(nodes = nodes, edges = ligas, directed = TRUE) 4 class(tidynetwork)
  • 33. tidygraph y ggraph 1 > tidynetwork 2 # A tbl_graph: 125 nodes and 264 edges 3 # 4 # A directed simple graph with 8 components 5 # 6 # Node Data: 125 x 3 (active) 7 id title color 8 <int> <fct> <fct> 9 1 1 Dwight Roberto Acosta Najarro #DBC8… 10 2 2 Luis Armando Acosta S√ánchez#DF70… 11 3 3 Esbaide Adem Chahin #DF70… 12 4 4 Fernando Alba Andrade #84AC… 13 5 5 José Rubén Alfaro Molina #84AC… 14 6 6 Héctor Alva Sánchez #84AC… 15 # … with 119 more rows 16 # 17 # Edge Data: 264 x 3 18 from to weight 19 <int> <int> <int> 20 1 1 7 4 21 2 1 11 1 22 3 1 25 3 23 #…with 261 more rows
  • 34. tidygraph y ggraph 1 ggraph(tidynetwork) + 2 geom_edge_link() + 3 geom_node_point() + 4 theme_graph()
  • 35. tidygraph y ggraph 1 ggraph(tidynetwork, layout = "graphopt") + 2 geom_node_point() + 3 geom_edge_link(aes(width = weight), alpha = 0.8) + 4 scale_edge_width(range = c(0.2, 2)) + 5 theme_graph()
  • 36. tidygraph y ggraph 1 ggraph(tidynetwork, layout = "linear") + 2 geom_edge_arc(aes(width = weight), alpha = 0.8) + 3 scale_edge_width(range = c(0.2, 2)) + 4 geom_node_text(aes(label = title)) + 5 labs(edge_width = "weight") + 6 theme_graph()
  • 37. visNetwork y networkD3 Ambos paquetes nos dejan tener interacción con las gráficas, además de que también nos permiten empotrarlos en aplicaciones Shiny, lo cuál puede ser muy conveniente para cuando se están presentando datos.
  • 39. visNetwork 1 visNetwork(nodes, ligas) %>% 2 visIgraphLayout(layout = "layout_with_fr") %>% 3 visEdges(arrows = "middle")
  • 40. networkD3 1 library(networkD3) 2 nodes_d3 <- mutate(nodes, id = id - 1) 3 ligas_d3 <- mutate(ligas, from = from - 1, to = to - 1) 4 forceNetwork(Links = ligas_d3, Nodes = nodes_d3, 5 Source = "from", Target = "to", 6 NodeID = "title", Group = "color", 7 Value = "weight", 8 opacity = 1, fontSize = 16, zoom = TRUE)
  • 41. qgraph y ggnet qgraph nos permite visualizar y observar los cambios que se tienen en una red que cambia con el tiempo ggnet también permite usar la filosofía del tidyverse
  • 43. Conclusión El universo de paquetes es bastante amplio, de hecho hay una task view de CRAN que sigue todos los paquetes asociados a redes: https://cran.r-project.org/web/views/gR.html Prácticamente todos los algoritmos para medir están implementados y se pueden comenzar a trabajar desde ahí sin ningún problema, la gran ventaja de la nueva ola de paquetes relacionados con redes es que ahora se puede utilizar el tidyverse y esto hace mucho más limpio el proceso y el pipeline entre equipos.