• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • Excel
  • Matlab

Introducción a igraph en R (Parte 4): Centralidad de cercanía (Closeness) en Grafos

abril 2, 2025 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 6 minutos

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

  • 1 ¿Qué mide y por qué es importante la centralidad de cercanía (Closeness)?
  • 2 Uso en grafos de rutas o información
    • 2.1 Redes de transporte
    • 2.2 Redes de comunicación
    • 2.3 Redes sociales
    • 2.4 Infraestructura y redes energéticas
  • 3 Obtención de la centralidad de cercanía con closeness() en igraph
  • 4 Normalización de la Centralidad de Cercanía en igraph
  • 5 Ejemplo práctico: Red de transporte urbano
  • 6 Conclusiones

¿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.

Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo
En Analytics Lane
Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo

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.

Publicidad


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.

Publicidad


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.

Redes sociales

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.

Publicidad


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:

Figura en la que se muestra el grafo con el tamaño de los nodos proporcionales a la centralidad de cercanía
Grafo en el que el tamaño de los nodos el proporcional al valor de la centralidad de cercanía

Publicidad


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:

Figura en la que se muestra el grafo que representa una red de transporte urbano con el tamaño de los nodos proporcionales a la centralidad de cercanía
Representación de la red de transporte urbano en el que el tamaño de los nodos el proporcional al valor de la centralidad de cercanía

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.

Publicidad


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.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo
  • ¿Está concentrado el MSCI World? Un análisis con Gini, Lorenz y leyes de potencia
  • Curiosidad: ¿Por qué usamos p < 0.05? Un umbral que cambió la historia de la ciencia
  • Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)
  • La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento
  • Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows
  • Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte
  • Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)
  • Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

Publicado en: R Etiquetado como: Análisis de redes, igraph

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

octubre 23, 2025 Por Daniel Rodríguez

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

octubre 21, 2025 Por Daniel Rodríguez

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

octubre 16, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Procesadores cuánticos en Machine Learning e Inteligencia Artificial Procesadores cuánticos en Machine Learning e Inteligencia Artificial: Transformando el futuro de la tecnología publicado el febrero 12, 2025 | en Ciencia de datos, Criptografía, Opinión
  • Gráficos de barras en Matplotlib publicado el julio 5, 2022 | en Python
  • Método del codo (Elbow method) para seleccionar el número óptimo de clústeres en K-means publicado el junio 9, 2023 | en Ciencia de datos
  • Hoja de cálculo para repartir los escaños en base al método D’Hont Aplicar el método D’Hondt en Excel publicado el abril 14, 2021 | en Herramientas
  • El método de Muller e implementación en Python publicado el marzo 24, 2023 | en Ciencia de datos

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto