
En las publicaciones anteriores, exploramos la centralidad de grado y la centralidad de intermediación, dos medidas fundamentales en el análisis de redes. Esta semana, nos enfocaremos en otra medida crucial para el análisis de grafos: la centralidad de cercanía (closeness centrality).
La centralidad de cercanía mide cuán cerca está un nodo del resto de nodos de la red. En otras palabras, calcula la inversa de la suma de las distancias desde un nodo a todos los demás. Esta medida es especialmente útil en aquellas redes donde la velocidad en la transmisión de la información o transporte es un factor importante. Su utilidad se extiende a múltiples disciplinas, desde el análisis de redes de telecomunicaciones hasta la optimización de infraestructuras de transporte.
Tabla de contenidos
¿Qué mide y por qué es importante la centralidad de cercanía (Closeness)?
La centralidad de cercanía de un nodo v se define matemáticamente como: C_C(v) = \frac{1}{\sum_{t \neq v} d(v, t)}, donde d(v, t) es la distancia más corta entre el nodo v y el nodo t.
Un valor mayor de centralidad de cercanía indica que el nodo está más próximo, en promedio, al resto de la red.
La importancia de esta medida radica en su capacidad para identificar nodos que pueden acceder rápidamente a otros nodos dentro de una red. Esto tiene aplicaciones en redes de transporte, telecomunicaciones y difusión de información.
Adicionalmente, permite medir la eficiencia de un nodo dentro de una red, ya que aquellos con alta centralidad de cercanía pueden facilitar una mejor comunicación, reducir costos de transmisión y mejorar la resiliencia de una estructura de conexiones interdependientes. En estudios de propagación de información, los nodos con alta centralidad de cercanía suelen ser los primeros en recibir y distribuir información crítica.
Uso en grafos de rutas o información
La centralidad de cercanía es especialmente útil en los siguientes escenarios:
Redes de transporte
En redes de transporte, como redes de carreteras, ferroviarias o aeropuertos, los nodos con alta centralidad de cercanía representan ubicaciones estratégicas desde las que se puede llegar rápidamente a muchas otras partes de la red. Esto es crucial para la optimización del tráfico y la logística. En planificación urbana, esta métrica ayuda a mejorar la accesibilidad de los ciudadanos a diferentes servicios y minimizar el tiempo de desplazamiento entre diferentes puntos de interés.
Redes de comunicación
En redes de telecomunicaciones, los servidores con alta centralidad de cercanía pueden transmitir información de manera más eficiente, reduciendo la latencia y mejorando el rendimiento del sistema. Por ejemplo, en redes distribuidas como el internet, los nodos con alta cercanía pueden actuar como hubs de distribución de paquetes de datos, optimizando la velocidad de conexión.
En redes sociales, los usuarios con alta centralidad de cercanía pueden difundir información de manera más eficiente al estar ”más cerca” del resto de la comunidad. En plataformas como Bluesky, Mastodon o Facebook, identificar estos nodos es clave para diseñar estrategias de marketing digital y campañas virales, asegurando que los mensajes lleguen a una mayor audiencia con rapidez.
Infraestructura y redes energéticas
En redes eléctricas y sistemas de distribución de energía, la centralidad de cercanía permite identificar subestaciones estratégicas que minimizan pérdidas en la transmisión y optimizan la distribución de recursos. En sistemas de abastecimiento de agua, ayuda a determinar la mejor ubicación de estaciones de bombeo para garantizar una distribución equitativa.
Obtención de la centralidad de cercanía con closeness()
en igraph
Podemos calcular la centralidad de cercanía en igraph
con la función closeness()
. Veamos un ejemplo con un grafo simple:
library(igraph) # Crear un grafo simple g <- graph(edges = c(1,2, 1,3, 2,4, 2,5, 3,6, 5,6, 4,5), directed = FALSE) # Calcular centralidad de cercanía closeness(g)
Este código devuelve un vector con la centralidad de cercanía de cada nodo en la red. Los valores que se obtiene son:
0.1250000 0.1428571 0.1111111 0.1111111 0.1428571 0.1250000
Lo que indica que los nodos con mayor centralidad de cercanía son el segundo y el quinto, ambos con aproximadamente 0,14. Resultado que también se puede analizar visualmente, para lo que podemos crear un gráfico en el que se muestra el grafo ajustando el tamaño de los nodos según su centralidad de cercanía:
# Ajustar tamaños según centralidad de cercanía V(g)$size <- closeness(g) * 250 # Graficar el grafo plot(g, vertex.label.cex=1.2, edge.width=2, main="Centralidad de Cercanía")
Los nodos con mayor centralidad aparecerán más grandes, reflejando su proximidad al resto de la red, como se muestra en la siguiente figura:

Normalización de la Centralidad de Cercanía en igraph
En grafos con muchos nodos, la interpretación de la centralidad de cercanía puede ser más intuitiva si se normaliza. En igraph
, esto se logra mediante el argumento normalized = TRUE
en la función closeness()
. La fórmula utilizada para la normalización es: C_C^{norm}(v) = \frac{C_C(v)}{(n - 1)}, donde n es el número total de nodos en la red.
Para calcular la versión normalizada en igraph
:
# Calcular centralidad de cercanía normalizada closeness(g, normalized = TRUE)
Lo que, para el grafo de ejemplo, produce los siguientes resultados:
0.6250000 0.7142857 0.5555556 0.5555556 0.7142857 0.6250000
Esto garantiza que los valores de centralidad se encuentren en un rango entre 0 y 1, facilitando la comparación de los valores entre grafos de diferentes tamaños.
Ejemplo práctico: Red de transporte urbano
Imaginemos que estamos analizando una red de transporte urbano, donde los nodos representan estaciones y las aristas representan conexiones directas. Queremos identificar las estaciones que permiten acceder más rápidamente a otras estaciones.
# Crear un grafo de transporte g_transporte <- graph(edges = c("A","B", "A","C", "B","D", "B","E", "C","F", "E","F", "D","E"), directed = FALSE) # Calcular centralidad de cercanía closeness(g_transporte, normalized = TRUE) # Visualizar el grafo V(g_transporte)$size <- closeness(g_transporte, normalized = TRUE) * 50 plot(g_transporte, vertex.label.cex=1.2, edge.width=2, main="Red de Transporte Urbano")
Lo que produce una gráfica como la que se muestra a continuación:

En este caso, las estaciones con mayor centralidad de cercanía son aquellas desde las cuales es posible llegar más rápidamente a otras estaciones. Aplicando este análisis a un sistema de transporte real, como el metro de una gran ciudad, podríamos identificar estaciones clave que pueden actuar como puntos de transbordo óptimos.
Conclusiones
La centralidad de cercanía es una herramienta importante para el análisis de redes, permitiendo identificar nodos que están bien posicionados para acceder rápidamente al resto de la red. Su aplicación es clave en redes de transporte, telecomunicaciones y difusión de información, además de otros campos como la infraestructura energética y la planificación urbana.
En esta entrega, hemos explorado su definición, su importancia en diferentes tipos de grafos, y su implementación en igraph
con ejemplos prácticos. La próxima semana, abordaremos otra medida relevante en el análisis de redes: la centralidad de autovector (eigenvector centrality), utilizada para evaluar la influencia de un nodo en la red.
Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.
Deja una respuesta