La conexión selectiva entre vértices de acuerdo con sus características se denomina mezcla asortativa (assortative mixing).
La homofilia se refiere a que nodos similares tienen a relacionarse entre sí.
Los coeficientes de asortatividad miden el nivel de homofilia (homophily) del grafo, basándose en las etiquetas o valores asignados a los vértices.
Los coeficientes de asortatividad son positivos si vértices similares tienden a conectarse entre ellos, y negativo en caso contrario.
Si el coeficiente es alto, significa que los vértices conectados tienden a tener las mismas etiquetas o valores asignados similares.
Cada vértice de un grafo \(G=(V,E)\) se puede etiquetar de acuerdo con una de \(M\) categorías. En este caso, el coeficiente de asortividad (assortativity coefficient) se define como \[ r_a = \frac{\sum_{i=1}^n f_{i,i} - \sum_{i=1}^n f_{i\bullet}f_{\bullet i}}{1 - \sum_{i=1}^n f_{i\bullet}f_{\bullet i}} \] donde:
Propiedades:
Ver assortativity_nominal
en igraph
.
Cuando la característica de interés es continua, se denota con \((x_e, y_e)\) los valores de esa característica para los vértices unidos por la arista \(e \in E\). En este caso, el coeficiente de assortividad se define como \[ r_a = \frac{\sum_{e\in E} xy(f_{x,y} - f_{x\bullet}f_{\bullet y})}{\sigma_x \sigma_y} \] donde:
Comúnmente la característica continua se toma como el grado.
Ver assortativity
y assortativity_degree
en
igraph
.
Red de interacción de proteínas de levadura.
Las interacciones proteína-proteína prometen revelar aspectos del sistema regulatorio que subyace a la función celular.
Los nodos corresponden a proteínas y solo se consideran aquellas interacciones que tienen una confianza “moderada” y “alta”.
Una descripción completa de los datos se puede encontrar aquí.
Disponible en el paquete igraphdata
de R.
Von Mering, C., Krause, R., Snel, B., Cornell, M., Oliver, S. G., Fields, S., & Bork, P. (2002). Comparative assessment of large-scale data sets of protein–protein interactions. Nature, 417(6887), 399-403.
# librerías
suppressMessages(suppressWarnings(library(igraph)))
suppressMessages(suppressWarnings(library(igraphdata)))
# datos
data(yeast)
yeast <- upgrade_graph(yeast)
# la representación de datos internos a veces cambia entre versiones
# orden
vcount(yeast)
## [1] 2617
# tamaño
ecount(yeast)
## [1] 11855
# dirigida?
is_directed(yeast)
## [1] FALSE
# ponderada?
is_weighted(yeast)
## [1] FALSE
# clases
table(V(yeast)$Class)
##
## A B C D E F G M O P R T U
## 60 109 148 261 99 200 101 295 193 256 48 249 558
sum(table(V(yeast)$Class))
## [1] 2577
# hay NAs?
table(is.na(V(yeast)$Class))
##
## FALSE TRUE
## 2577 40
# clase P: desempeñan un papel en la síntesis de proteínas
v.types <- (V(yeast)$Class == "P") + 1
v.types[is.na(v.types)] <- 1
table(v.types)
## v.types
## 1 2
## 2361 256
# asortatividad nominal
assortativity_nominal(graph = yeast, types = v.types, directed = F)
## [1] 0.5232879
# asortatividad grado
assortativity_degree(yeast)
## [1] 0.4610798
Red de relaciones de trabajo colaborativo entre los miembros de una firma de abogados (SG&R).
Estos datos fueron recolectados para estudiar la cooperación entre los actores de una organización.
\(y_{i,j} = 1\) si los miembros \(i\) y \(j\) trabajaron juntos en al menos un caso y \(y_{i,j} = 0\) en otro caso.
Una descripción completa de los datos se puede encontrar aquí.
Disponible en el paquete sand
de R.
Lazega, E. (2001). The collegial phenomenon: The social mechanisms of cooperation among peers in a corporate law partnership. Oxford University Press on Demand.
# install.packages("sand")
suppressMessages(suppressWarnings(library(sand)))
# datos
lazega <- graph_from_data_frame(d = elist.lazega, directed = "F", vertices = v.attr.lazega)
V(lazega)$label <- sub("V", "", V(lazega)$name)
# simple?
is_simple(lazega)
## [1] TRUE
# ponderado?
is_weighted(lazega)
## [1] FALSE
# orden
vcount(lazega)
## [1] 36
# tamaño
ecount(lazega)
## [1] 115
# asortatividad nominal
assortativity(graph = lazega, types1 = V(lazega)$Office)
## [1] 0.2823909
assortativity(graph = lazega, types1 = V(lazega)$Practice)
## [1] 0.2409241
assortativity(graph = lazega, types1 = V(lazega)$School)
## [1] -0.06008441
# asortatividad continua
assortativity(graph = lazega, types1 = V(lazega)$Years)
## [1] -0.07569942
# asortatividad grado
assortativity(graph = lazega, types1 = degree(lazega))
## [1] -0.1681201
assortativity_degree(graph = lazega, directed = F)
## [1] -0.1681201