A lo largo de las entregas anteriores, hemos explorado diversas métricas de centralidad fundamentales para el análisis de redes complejas. Desde métricas básicas como la centralidad de grado hasta algoritmos más sofisticados como PageRank y HITS, cada enfoque ofrece una perspectiva distinta sobre la relevancia y el rol de los nodos dentro de una red.
En esta última entrega de la serie, realizaremos un repaso general y una comparativa entre las principales métricas de centralidad. Analizaremos sus características, ventajas y limitaciones, y discutiremos en qué contextos resulta más apropiado emplear cada una. Además, aplicaremos todo lo aprendido en un ejemplo final utilizando una red compleja en igraph para ilustrar su uso práctico.
Con esta revisión integral de las métricas de centralidad, no solo consolidaremos el conocimiento adquirido a lo largo de la serie, sino que también estaremos mejor preparados para seleccionar y aplicar la métrica adecuada en función del problema y la estructura de la red analizada.
A continuación, resumimos las principales métricas de centralidad junto con sus características más relevantes:
| Métrica | Descripción | Ventajas | Limitaciones |
|---|---|---|---|
| Centralidad de Grado | Número de conexiones directas de un nodo. | Fácil de calcular e interpretar. | No refleja la posición estratégica en la red. |
| Centralidad de Intermediación | Mide cuántos caminos más cortos pasan por un nodo. | Identifica nodos clave para la comunicación. | Alto coste computacional en redes grandes. |
| Centralidad de Cercanía | Distancia media de un nodo a todos los demás. | Detecta nodos con acceso eficiente a otros. | Pierde sentido en redes no conexas. |
| Centralidad de Autovector | Evalúa la importancia de un nodo en función de la importancia de sus vecinos. | Captura efectos de influencia en cascada. | Puede ser dominada por componentes principales. |
| Centralidad de Katz | Variante de la centralidad de autovector que suma una constante para considerar caminos indirectos. | Distingue nodos relevantes en redes dispersas. | Requiere ajustar parámetros adecuadamente. |
| Centralidad de Bonacich | Generaliza Katz introduciendo un parámetro para influencias positivas o negativas. | Modela redes con relaciones cooperativas o competitivas. | Sensible a la elección de los parámetros. |
| PageRank | Evalúa la importancia de un nodo ponderando los enlaces entrantes. | Muy efectiva en redes dirigidas (como la web). | Menos interpretable en redes no dirigidas. |
| HITS (Hubs y Autoridades) | Distingue nodos como “fuentes” o “referencias” de información. | Útil en contextos de roles diferenciados. | Sensible a la estructura de la red y requiere interpretación cuidadosa. |
Cada una de estas métricas capta diferentes aspectos de la centralidad en una red, y su elección depende en gran medida del tipo de red y del objetivo específico del análisis.
La elección de la métrica de centralidad más adecuada varía según la estructura y dinámica de la red:
A continuación, aplicaremos varias métricas de centralidad sobre una red compleja generada aleatoriamente utilizando igraph en R. Esto nos permitirá comparar los resultados y observar cómo cada métrica destaca distintos nodos de acuerdo con su definición.
Para ello se puede usar el siguiente código en R:
library(igraph)
# Crear una red compleja simulada
set.seed(123) # Para reproducibilidad
g <- erdos.renyi.game(15, p = 0.3, directed = TRUE)
# Asignar nombres a los nodos
V(g)$name <- paste0("N", 1:vcount(g))
# Calcular diferentes métricas de centralidad
degree_centrality <- degree(g, mode = "all")
betweenness_centrality <- betweenness(g, directed = TRUE)
closeness_centrality <- closeness(g, mode = "all", normalized = TRUE)
eigenvector_centrality <- eigen_centrality(g, directed = TRUE, scale = TRUE)$vector
katz_centrality <- authority_score(g, scale = TRUE)$vector # Aproximación simple
pagerank_centrality <- page_rank(g, directed = TRUE)$vector
hits_authority <- authority_score(g)$vector
hits_hub <- hub_score(g)$vector
# Bonacich Centrality (aproximación simple)
alpha <- 0.5
adjacency <- as_adjacency_matrix(g, sparse = FALSE)
identity_mat <- diag(nrow(adjacency))
bonacich_centrality <- solve(identity_mat - alpha * adjacency) %*% rep(1, nrow(adjacency))
bonacich_centrality <- as.vector(bonacich_centrality)
# Crear un dataframe de centralidades
centralities <- data.frame(
Nodo = V(g)$name,
Grado = degree_centrality,
Intermediación = round(betweenness_centrality, 2),
Cercanía = round(closeness_centrality, 3),
Autovector = round(eigenvector_centrality, 3),
Katz = round(katz_centrality, 3),
PageRank = round(pagerank_centrality, 3),
HITS_Autoridad = round(hits_authority, 3),
HITS_Hub = round(hits_hub, 3),
Bonacich = round(bonacich_centrality, 3)
)
# Mostrar centralidades
print(centralities)
# Visualizar la red
V(g)$size <- 8 + degree_centrality * 2
V(g)$label.cex <- 1
plot(g, vertex.label.color = "black", vertex.label.family = "sans",
edge.arrow.size = 0.4, main = "Red Compleja con Diferentes Centralidades") Lo que produce como salida:
Nodo Grado Intermediación Cercanía Autovector Katz PageRank HITS_Autoridad HITS_Hub Bonacich
N1 N1 9 10.32 0.667 0.824 0.886 0.077 0.886 0.566 -0.809
N2 N2 4 1.00 0.560 0.133 0.126 0.023 0.126 0.473 0.079
N3 N3 9 12.73 0.667 0.769 0.711 0.081 0.711 0.617 -1.071
N4 N4 9 14.70 0.667 0.632 0.549 0.064 0.549 0.746 -1.276
N5 N5 7 9.94 0.636 0.572 0.452 0.059 0.452 0.697 -0.493
N6 N6 11 27.31 0.737 0.747 0.805 0.078 0.805 0.723 -1.353
N7 N7 10 18.69 0.700 0.675 0.789 0.079 0.789 0.461 -0.662
N8 N8 8 4.45 0.609 0.792 0.856 0.076 0.856 0.458 -0.685
N9 N9 7 4.93 0.667 0.511 0.544 0.047 0.544 0.557 -1.029
N10 N10 9 21.07 0.700 0.570 0.807 0.060 0.807 0.530 -0.108
N11 N11 10 15.15 0.667 1.000 1.000 0.100 1.000 0.585 -0.863
N12 N12 9 11.00 0.667 0.674 0.524 0.075 0.524 0.857 -1.435
N13 N13 9 11.58 0.667 0.784 0.788 0.076 0.788 0.561 -0.826
N14 N14 10 17.93 0.778 0.666 0.634 0.068 0.634 1.000 -1.160
N15 N15 5 3.19 0.538 0.331 0.282 0.038 0.282 0.492 -0.062
Además de la gráfica:
Cada métrica resalta diferentes aspectos de los nodos en la red:
La elección de la métrica adecuada depende del tipo de red y de lo que queramos medir: popularidad local, control del flujo, influencia global o rol específico dentro de la estructura.
El análisis de redes sociales y de información exige seleccionar cuidadosamente la métrica de centralidad adecuada según el objetivo del estudio. Algunas métricas, como la centralidad de grado, destacan la conectividad directa de los nodos, mientras que otras, como la intermediación, la cercanía, PageRank o HITS, capturan formas más complejas de influencia e importancia estructural.
En esta última entrega, hemos resumido, comparado y aplicado las principales métricas de centralidad en un ejemplo práctico, permitiéndonos observar sus diferencias y complementariedades en redes reales.
Con ello, concluimos nuestra serie dedicada a la centralidad en redes utilizando igraph en R. A lo largo de estas semanas, hemos aprendido a calcular diferentes métricas, interpretar sus significados y elegir la más adecuada según el tipo de red y el contexto analítico.
Muchas gracias por acompañarnos en este recorrido. ¡Nos vemos en futuras publicaciones!
Si te ha interesado esta serie, te invitamos a suscribirte a nuestro boletín de noticias o seguirnos en nuestras redes sociales (en el panel lateral). Así no te perderás futuros contenidos.
Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.
En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…
En la serie Creación de una API REST con Express y TypeScript construimos una API…
Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…
En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…
Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…
En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…
This website uses cookies.