
En las entradas anteriores, exploramos diversas medidas de centralidad, como la centralidad de grado, la centralidad de intermediación y la centralidad de cercanía. Esta semana nos enfocaremos en una métrica fundamental dentro del análisis de redes: la centralidad de autovector (eigenvector centrality).
Esta medida extiende la idea de la centralidad de grado, teniendo en cuenta no sólo el número de conexiones de un nodo, sino también la importancia de los nodos a los que está conectado. Esto la convierte en una métrica fundamental para identificar los nodos más influyentes dentro de una red y es especialmente útil en aplicaciones donde la influencia o la reputación de un nodo dependen de su contexto en la red. Además, esta métrica es ampliamente utilizada en disciplinas como las ciencias sociales, la biología, la informática y la economía, donde la estructura de la red puede influir en los resultados y las interacciones entre los nodos.
Concepto y relación con la importancia de un nodo
La centralidad de autovector asigna un puntaje a cada nodo basado en la importancia de sus vecinos. Matemáticamente, se define como la solución al siguiente sistema de ecuaciones: C_a(i) = \frac{1}{\lambda} \sum_{j \in N(i)} A_{ij} x_j, donde:
- x_i es la centralidad del nodo i.
- A_{ij} es el valor de la matriz de adyacencia en la posición (i, j), indicando si hay una conexión entre los nodos i y j.
- \lambda es el mayor autovalor de la matriz de adyacencia.
La idea clave es que un nodo es importante si está conectado a otros nodos importantes. Esta propiedad hace que la centralidad de autovector sea útil en aplicaciones como:
- Redes sociales: Para identificar usuarios influyentes y líderes de opinión.
- Redes de transporte: Para detectar las estaciones críticas dentro de la red de infraestructuras y evaluar su impacto en la eficiencia del sistema.
- Ciencias biomédicas: Para analizar interacciones de proteínas en redes biológicas y su impacto en enfermedades complejas.
- Finanzas: Para evaluar la importancia de instituciones en sistemas financieros interconectados y detectar nodos clave en la propagación de crisis financieras.
- Redes eléctricas y de telecomunicaciones: Para determinar nodos estratégicos en la distribución de recursos y mejorar la eficiencia de la red.
Conexión con el algoritmo PageRank
Una de las aplicaciones más famosas de la centralidad de autovector es el algoritmo PageRank, desarrollado por Google para clasificar las páginas web. El PageRank es una variante de la centralidad de autovector, con la diferencia de que introduce un factor de amortiguamiento para evitar problemas en grafos desconectados.
La idea detrás de PageRank es similar: una página web es importante si es enlazada por otras páginas importantes. Este concepto se extiende a redes sociales, donde los usuarios con más conexiones a otros usuarios influyentes tienen mayor autoridad en la comunidad. También se aplica en sistemas de recomendación y en análisis de influencia política en redes de comunicación.
Matemáticamente, PageRank se calcula iterativamente de la siguiente manera: PR(i) = (1-d) + d \sum_{j \in N(i)} \frac{PR(j)}{L(j)}, donde:
- PR(i) es el PageRank del nodo i.
- d es el factor de amortiguamiento (por defecto 0.85).
- N(i) representa los nodos que enlazan a i.
- L(j) es el número de enlaces salientes del nodo j.
Este método ha sido clave en el éxito de Google y en muchos otros motores de búsqueda y redes sociales, permitiendo una clasificación más efectiva de la relevancia de los nodos dentro de la red.
Cálculo con eigen_centrality()
en igraph
La centralidad de autovector se puede calcular fácilmente en igraph
utilizando la función eigen_centrality()
. Para el PageRank se puede usar la función page_rank()
.Veamos un ejemplo práctico en R:
library(igraph) # Crear un grafo simple g <- graph(edges = c(1,2, 1,3, 2,4, 2,5, 3,6, 5,6, 4,5, 3,4), directed = FALSE) # Calcular la centralidad de autovector centralidad_eigen <- eigen_centrality(g) # Mostrar los valores de centralidad centralidad_eigen$vector # Calcular PageRank centralidad_page_rank <- page_rank(g) # Mostrar los valores del PageRank centralidad_page_rank$vector
Este código devuelve un vector con los valores de centralidad de autovector de cada nodo y otro con el PageRank. En concreto, la centralidad de autovector es:
0.6535266 0.9497121 0.8416578 1.0000000 0.9497121 0.6535266
Mientras que el PageRank es:
0.1304151 0.1844428 0.1876104 0.1826739 0.1844428 0.1304151
Ahora, podemos visualizar el grafo escalando el tamaño de los nodos según su importancia en base a la centralidad de autovector:
# Ajustar tamaño de los nodos según su centralidad V(g)$size <- centralidad_eigen$vector * 20 # Graficar el grafo plot(g, vertex.label.cex=1.2, edge.width=2, main="Centralidad de Autovector")

Caso práctico: Red de colaboración académica
Imaginemos una red de colaboración académica donde los nodos representan investigadores y las aristas indican coautorías en publicaciones científicas. Queremos identificar a los investigadores más influyentes en función de su red de colaboraciones.
# Crear un grafo de colaboración colaboracion <- graph(edges = c("Alice","Bob", "Alice","Charlie", "Bob","David", "Bob","Eve", "Charlie","Fay", "Eve","Fay", "David","Eve", "Charlie","David"), directed = FALSE) # Calcular la centralidad de autovector centralidad_eigen_colab <- eigen_centrality(colaboracion) # Visualizar el grafo V(colaboracion)$size <- centralidad_eigen_colab$vector * 50 plot(colaboracion, vertex.label.cex=1.2, edge.width=2, main="Red de Colaboración Académica")

Conclusiónes
La centralidad de autovector es una medida avanzada que permite identificar nodos influyentes en redes sociales, académicas y de información. Su conexión con el algoritmo PageRank la hace fundamental en aplicaciones como la clasificación de páginas web y la detección de líderes en redes sociales.
En esta entrega, hemos explorado su definición, su relación con otras medidas de centralidad, su implementación en igraph
y un caso práctico de aplicación. Además, hemos visto cómo se vincula con el PageRank y su importancia en distintos dominios.
En la próxima publicación, abordaremos otra métrica clave: el centralidad de Katz, que expande la centralidad de autovector considerando el impacto de conexiones indirectas.
Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.
Deja una respuesta