Anda di halaman 1dari 61

Minicurso: Introducción a los Grafos Aleatorios

Adrian Hinojosa1
Departamento de Estadística, Universidade Federal de Minas Gerais

1Gracias a la colaboración del Grupo de Modelado de Sistemas Complejos y de la Facultad


de Ciencias Físicas y Matemática-UCE
Índice general

Capítulo 1. Introducción 5
Capítulo 2. Introducción a los Grafos: tipos de grafos y propiedades 7
1. Introducción 7
2. Tipos de grafos 8
3. Análisis Descriptiva de los Grafos 16
4. Usando R 22
Capítulo 3. Grafos Aleatorios: Modelos e Inferencia 27
1. Modelos de Grafos Aleatorios 27
2. Estimadores de Máxima Verosimilitud (ERGM) 36
3. Estimadores Bayesianos (ERGM) 39
4. Usando R 42
Capítulo 4. Modelos de Regresión para Grafos, Modelos Dinámicos 45
1. Modelos de Regresión o Previsión para Grafos 45
2. Otros Tópicos 54
3. Usando R 56

Referencias 61

3
Capítulo 1

Introducción

Estas notas tienen por objetivo discutir los conceptos básicos de red o grafo
aleatorio y de las aplicaciones al estudio de las redes sociales. Modelos Probabi-
lísticos de redes aleatorias. Estadísticas descriptivas de las redes aleatorias: grado,
subgrafos, conectividad, etc . Estimadores de máxima verosimilitud y Bayesianos
así como su implementación en el software R. Usaremos algunos algoritmos de los
programas igraph, network, ergm y bergm. para trabajar los ejemplos.
Los contenidos presentados incluyen:
1. Aula 1
Introducción a los Grafos, tipos de grafos, propiedades.
Análisis Descriptiva de los grafos.
2. Aula 2
Modelos de grafos Aleatorios, Grafos Aleatorios Exponenciales.
Estimadores de Máxima Verosimilitud para grafos aleatorios.
Estimadores Bayesianos para grafos aleatorios.
3. Aula 3
Tópicos de regresión linear y previsión. Otros Tópicos.

5
Capítulo 2

Introducción a los Grafos: tipos de grafos y


propiedades

1. Introducción
Un famoso problema histórico de la matemática, que se volvió una leyenda po-
pular conocida como los siete puentes de Königsberg. Cortada por el río Prególia,
la ciudad de Königsberg (territorio de Prusia) poseía dos grandes islas que, jun-
tas, formaban un complejo que en esa época contenía siete puentes. Se discutía la
posibilidad de atravesar todos los puentes sin repetir ningún puente. En 1736, el
matemático Leonhard Euler probó de forma simple que no existía un camino que
permitiese tales condiciones. Creando el primer grafo de la historia, Euler transfor-
mó los caminos en rectas y sus intersecciones en puntos.

Figura 1. los siete puentes de Königsberg

Algumas aplicaciones de grafos:


Redes sociales: Facebook, Twitter, etc.
Epidemiología, salud pública.
Comunicaciones: celulares, redes de computadores
Biología molecular, genética.
Inteligencia Artificial y nuevos paradigmas de la teoría de la información.
Et cetera
Para resolver problemas prácticos, como el supra citado, el grafo es la mejor
solución para representar la relación entre los objetos de un determinado conjunto,
donde algunos pares de objetos (vértice, también llamado de nodo o punto) están
conectados por aristas (también conocidos por lineas o arcos).
Así como en equipos de fútbol, estilos musicales y géneros de películas, los
grafos también poseen características que los separan en diversas categorías, como
serán presentados enseguida.
7
8 2. INTRODUCCIÓN A LOS GRAFOS: TIPOS DE GRAFOS Y PROPIEDADES

1.1. Definición de grafos. Considere o conjunto de vértices V , que es finito


con n elementos, V = {1, . . . , n}. Para este conjunto vamos a definir el conjunto de
aristas E ⊆ V × V .

Definición 1.1. Un grafo G es un par ordenado de conjuntos: G = (V, E). El


conjunto de todos los posibles grafos con n vértices será denotado por Gn , esto es:

Gn = {G : G = (V, E), |V | = n, E ⊆V ×V}

Vamos a ver un ejemplo. Considere el conjunto de vértices V = {1, . . . , 7} y


las aristas E = {(1, 4), (1, 5), (2, 3), (2, 7), (3, 6)(4, 1), (4, 7), (5, 6), (5, 3, )(7, 7)}, en-
tonces podemos representar el grafo G = (V, E) por medio de punto y flechas:

Figura 2. El grafo G con n = 7 vértices

El tamaño de un grafo es el número de aristas y el orden de un grafo es el


numero de vértices, así en el ejemplo anterior el tamaño es |E| = 10 y el orden es
|V | = 7. Usualmente los grafos se clasifican por el tamaño en dispersos (sparce
graph) si |E| ≈ |V | o densos si |E| ≈ |V |2 .

2. Tipos de grafos
Un grafo no dirigido es aquel en que los vértices no son ordenados, o sea, las
aristas no poseen dirección. Así por ejemplo, si suprimimos en el grafo anterior las
direcciones, entonces obtenemos:
2. TIPOS DE GRAFOS 9

Figura 3. El grafo G no dirigido con n = 7 vértices

Este grafo es un ejemplo de un múltigrafo con loops, esto es vértices con


múltiples aristas y aristas que conectan el mismo vértice. En lo que sigue del texto
vamos a considerar solo grafos que no tienen estas características. Para eso vamos a
definir un grafo simple como aquel grafo que no tiene loops ni aristas múltiples, en
particular vamos también a considerar en este curso solamente grafos no dirigidos.

Figura 4. El grafo simple G (no dirigido) con n = 7 vértices

n
En este caso vale que |Gn | = 2( 2 ) , pues el número de posibles pares de vértices
n
es n2 y el número de subconjuntos de este conjunto de pares es 2( 2 ) ; recuerde que

10 2. INTRODUCCIÓN A LOS GRAFOS: TIPOS DE GRAFOS Y PROPIEDADES

un grafo es un subconjunto de pares. Vamos a definir el grado d(i) de un vértice


i ∈ V como el número de vértices conectados con este vértice por medio de una
arista que pertenezca al grafo.

X
d(i) = 1
j:(i,j)∈E

Así en el grafo de la figura (4) tenemos que d(1) = 2, d(2) = 2, etc. Podemos
representar esta función por medio de un gráfico:

Figura 5. El grado del grafo de G

La distribución del grado de un grafo es la frecuencia relativa de los grados del


grafo. En el ejemplo anterior solo hay vértices con grados 2 (con frecuencia relativa
de 0,7) y 3 (con frecuencia relativa de 0,3); en un gráfico lo representamos como en
la siguiente figura.
2. TIPOS DE GRAFOS 11

Figura 6. La distribución del grafo G

Definimos la media del grado como:


1 X
d(G) = d(v)
|V |
v∈V

Entonces vale que:


1
|E| = d(G)|V | (2.1)
2
Decimos que dos vértices son adyacentes si una arista del grafo conecta a ambos.
Otra manera de representar un grafo es usar esta noción de adyacencia para definir
lamatriz de adyacencia A = (ai,j ), en la cual las lineas y las columnas representan
los vértices del grafo, y que tiene coeficientes ai,j = 1 o 0 de acuerdo a si las
correspondientes linea i y columna j son adyacentes, esto es forman una arista
del grafo: (i, j) ∈ E. En el grafo del ejemplo anterior la matriz de adyacencia A
correspondiente sería:

> A
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 0 1 1 0 0 0 0
[2,] 1 0 0 0 0 1 0
[3,] 1 0 0 0 1 0 1
[4,] 0 0 0 0 1 1 0
[5,] 0 0 1 1 0 0 1
[6,] 0 1 0 1 0 0 0
[7,] 0 0 1 0 1 0 0

Figura 7. Matriz de adyacencia A


12 2. INTRODUCCIÓN A LOS GRAFOS: TIPOS DE GRAFOS Y PROPIEDADES

Observe que esta matriz A es simétrica pues el grafo G es simple, luego no es


dirigido.
Otra matriz importante es la matriz Laplaciana, del grafo: L = D − A, con
D la matriz diagonal con el grado de cada vértice en la diagonal: D =diag(d(i)).

> L
1 4 5 2 3 7 6
1 2 -1 -1 0 0 0 0
4 -1 2 0 0 0 -1 0
5 -1 0 3 0 -1 0 -1
2 0 0 0 2 -1 -1 0
3 0 0 -1 -1 3 0 -1
7 0 -1 0 -1 0 2 0
6 0 0 -1 0 -1 0 2

Figura 8. Laplaciano no normalizado L

Decimos que L esta normalizado si


a
− √ i,j
(
si i 6= j
Li,j = d(i)d(j)
1 si i = j
p
en este caso: L = D−1/2 (I −A)D−1/2 con D−1/2 =diag(1/ d(i)) (donde colocamos
cero si d(i) = 0), en el ejemplo tendríamos:

> L
1 4 5 2 3 7 6
1 1.0000000 -0.5 -0.4082483 0.0000000 0.0000000 0.0 0.0000000
4 -0.5000000 1.0 0.0000000 0.0000000 0.0000000 -0.5 0.0000000
5 -0.4082483 0.0 1.0000000 0.0000000 -0.3333333 0.0 -0.4082483
2 0.0000000 0.0 0.0000000 1.0000000 -0.4082483 -0.5 0.0000000
3 0.0000000 0.0 -0.3333333 -0.4082483 1.0000000 0.0 -0.4082483
7 0.0000000 -0.5 0.0000000 -0.5000000 0.0000000 1.0 0.0000000
6 0.0000000 0.0 -0.4082483 0.0000000 -0.4082483 0.0 1.0000000

Figura 9. Laplaciano normalizado L

El espectro del Laplaciano es el conjunto de auto valores del Laplaciano nor-


malizado, en este ejemplo:

> Espectro
[1] 0.00 0.34 0.53 1.20 1.39 1.62 1.91
Figura 10. Espectro de L

Es posible probar que los autovalores están limitados entre 0 y 2, y además el


primer autovalor es siempre 0.
2. TIPOS DE GRAFOS 13

2.1. Clases importantes de grafos. Un grafo regular es un grafo en el


que todos os vértices poseen el mismo número de ligaciones con los otros vértices,
o sea, todos los vértices tienen el mismo grado. Un grafo regular con vértices de
grado k es llamado grafo k-regular o gráfico regular de grado k. Por ejemplo, G
con 5 vértices es 2-regular:

Figura 11. Un grafo 2-regular G

Este grafo es también llamado de 2-ciclo, C2 , y es un camino cerrado en el


que no hay intersecciones. Ahora considere G con 5 vértices y 4-regular:

Figura 12. Un grafo 4-regular G

Este grafo es un grafo completo, K5 , es decir que cada vértice tiene una arista
ligando con todos los otros vértices. Los grafos completos tienen la característica de
14 2. INTRODUCCIÓN A LOS GRAFOS: TIPOS DE GRAFOS Y PROPIEDADES

que cada par de vértices tienen una arista que los une. Finalmente, observe en estos
ejemplos que un grafo con n vértices y k-regular no podemos tener n y k impares,
uno de ellos tiene que ser par (use a relación (2.1)).
Un camino es un conjunto de vértices v1 , . . . , vk ∈ V tal que el conjunto
de aristas (v1 , v2 ), (v2 , v3 ), . . . , (v`−1 , v` ), (v` , v`+1 ), . . . , (vk−1 , vk ) están en E; una
geodésica entre dos vértices es el camino de menor tamaño entre ellos. Un grafo
es llamado de grafo conexo o conectado si todo par de vértices del grafo pueden
unirse por un camino. El grafo de la figura (4) es conexo:
> is.connected(G)
[1] TRUE
pero si removemos las aristas (1, 5) y (2, 3) obtenemos un grafo disconexo:

Figura 13. Un grafo disconexo G

verificamos que es disconexo:


> is.connected(G)
[1] FALSE
También podemos verificar esto usando el espectro de este grafo, es posible
mostrar que en este caso tendrá dos autovalores cero:

> Espectro
[1] 0.0 0.0 0.5 1.5 1.5 1.5 2.0
Figura 14. Espectro de L

Un grafo bipartito es un grafo en el cual los vértices están separados en dos


conjuntos, V1 y V2 y las aristas solo conectan vértices de conjuntos separados. En
el siguiente ejemplo vemos un grafo bipartito:
2. TIPOS DE GRAFOS 15

Figura 15. Un grafo bipartito g

Un árbol es un grafo que no contiene ciclos, es k-árbol si es k-regular. Por


ejemplo:

Figura 16. Un 3-árbol con 13 vértices T3

Los vértices de grado 1 son llamados hojas.


Finalmente una n-estrella, Sn , es un grafo que es un árbol con n vértices y
n − 1 hojas. Por ejemplo:
16 2. INTRODUCCIÓN A LOS GRAFOS: TIPOS DE GRAFOS Y PROPIEDADES

Figura 17. Una 6-estrella S6

Finalmente un triángulo es un grafo completo con 3 vértices, K3 :

Figura 18. Una 6-estrella S6

3. Análisis Descriptiva de los Grafos


Lo que podemos llamar de propiedades estructurales de los grafos son carac-
terísticas que son de interés en dos sentidos. En primer lugar, desde el punto de
vista de las aplicaciones a las redes sociales interesan la conectividad del grafo y el
papel de ciertos vértices centrales. Desde el punto de vista matemático, es posible
mostrar que la cantidad de ciertos subgrafos caracteriza al grafo. Vamos a describir
tres de estas características: centralidad, transitividad y conectividad.
3. ANÁLISIS DESCRIPTIVA DE LOS GRAFOS 17

3.1. Centralidad. La centralidad de un vértice es caracterizada por el papel


central de ese vértice en un grafo. Podemos considerar, en principio, que basta
observar su grado, pues ese es un indicativo de cuantos vértices están conectados
con el. Observe que 0 ≤ d(v) ≤ |V | − 1. Así tendríamos que los vértices con mayor
grado son más centrales. Veamos un ejemplo, considere el grafo G de la figura 19 ,
con |V | = 20 vértices:

Figura 19. El grafo G

El grado de cada vértice es:

> degree(G)
6 7 1 8 9 4 10 5 12 11 13 14 15 17 18 16 2 19 3 20
3 2 2 3 4 2 1 3 2 1 1 3 2 4 2 1 1 1 0 0

y la distribución del grado es:


18 2. INTRODUCCIÓN A LOS GRAFOS: TIPOS DE GRAFOS Y PROPIEDADES

Figura 20. Grado del grafo G

como vemos hay 2 vértices con grado 4, que es el máximo. Estos dos vértices
son los mas conectados.
Otra medida central para vértices es la centralidad por cercanía:

1
cC (v) = P , v∈V (3.2)
u∈V d(v, u)

Donde d(v, u) es la distancia (número de aristas) de la geodésica entre u y v,


aquí suponemos que el grafo es conexo.
Los valores de la cercanía para el mayor subgrafo conexo del ejemplo anterior
(G1 ⊂ G, V (G1) = V (G) − {2, 3, 19, 20}) son:

> closeness(G)
6 7 1 8 9 4 10
0.01923077 0.01612903 0.01851852 0.02325581 0.02380952 0.02000000 0.01515152
5 12 11 13 14 15 17
0.01886792 0.01538462 0.01265823 0.01492537 0.02380952 0.02173913 0.02222222
18 16
0.01351351 0.01136364

o gráficamente:
3. ANÁLISIS DESCRIPTIVA DE LOS GRAFOS 19

Figura 21. Cercanía de los vértices del grafo G1 ⊂ G

Vemos que los vértices 9 y 14 son los que están más próximos a los demás
vértices.
Ahora, podemos considerar que un vértice es central usando la media de todos
los caminos que usan ese vértice, la centralidad por mediación está definida
como:

X σ(s, t|v)
cM (v) = , v∈V (3.3)
σ(s, t)
s6=u6=v∈V

Donde σ(s, t|v) es el número de geodésicas entre s P


y t que pasan por v y σ(s, t)
es una constante normalizadora definida por σ(s, t) = v σ(s, t|v).
Los valores de la mediación para G1 son:

> betweenness(G)
6 7 1 8 9 4 10
47.0000000 26.0000000 0.3333333 23.5000000 31.5000000 0.0000000 0.0000000
5 12 11 13 14 15 17
38.0000000 14.0000000 0.0000000 0.0000000 54.3333333 50.0000000 45.3333333
18 16
14.0000000 0.0000000

o gráficamente:
20 2. INTRODUCCIÓN A LOS GRAFOS: TIPOS DE GRAFOS Y PROPIEDADES

Figura 22. Mediación de los vértices del grafo G1 ⊂ G

Vemos que los vértices 9 y 14 son los que intermedian más que los demás
vértices.
estas dos nociones de centralidad son extendidas para aristas y existe una noción
de centralidad usando el espectro.

3.2. Transitividad. La transitividad está relacionada con una característica


de las redes sociales que podríamos resumir como: “el amigo de mi amigo es mi
amigo”; esta propiedad suele aparecer en redes cohesivas, es decir en redes con
grado alto de agregación.
En un grafo simple la transitividad es también como el coeficiente de agre-
gación y está definida como:

3τK3 (G)
cl(G) = (3.4)
τS2 (G)

Donde τK3 (G) es el número de triángulos, K3 , contenidos en el grafo y τS2 (G)


es el número de 2-estrellas, S2 , contenidas en el grafo. Observe que cada 2-estrellas
es un posible triángulo, bastando que esté la arista que une las dos puntas de la
estrella para formar el triángulo. luego el coeficiente de agregación, cl(G), mide
la proporción de posibles triángulos que son triángulos. Como cada 2-estrella es
contada 3 veces, en cada posible triángulo, tenemos que dividir para 3 el número
de ellas, τS2 (G)/3.
El coeficiente de agregación es uno de los más populares índices para grafos.
Veamos cual es el coeficiente de agregación en los dos grafos, G y G1 de los ejemplos:
3. ANÁLISIS DESCRIPTIVA DE LOS GRAFOS 21

Figura 23. Transitividad de los grafos: cl(G) = 0,27, cl(G1) = 0,1.

Claramente G1 es un grafo menos agregado, en parte porque tiene más vértices


y porque entre estos vértices extras hay más 2-estrellas que no son triángulos.

3.3. Conectividad. Es de interés en las aplicaciones en grafos la localización


de comunidades dentro de un grafo, esto es subgrafos que tengan sus vértices
cohesionados o conexos, en algún sentido. Vamos a ver como se hace esto usando
una técnica de jerarquización. Suponemos que para un grafo G = (V, E) existe una
partición de V en subconjuntos disjuntos V = {V1 , . . . , VK }. A partir de V definimos
fi,j = fi,j (V) como la fracción de aristas de E que tienen un vértice en Vi y otro
vértice en Vj . Usando fi,j definimos la modularidad de V como:

K
X
∗ 2
mód (V) = [fk,k − fk,k ] (3.5)
k=1


PK PK
Donde fi,j = fk,+ f+,k y fk,+ = j=1 fk,j , f+,k = i=1 fi,k . Observe que en
un grafo simples, esto es no dirigido, vale que fk,+ = f+,k . Esta elección de f ∗
corresponde a un grafo con el mismo grado que el grafo original pero con las aristas
colocadas aleatoriamente, sin llevar en consideración la partición V. El problema
consiste ahora en encontrar entre todas las particiones V, con un numero fijo K de
elementos, aquella que minimiza mód (V).
Veamos un ejemplo, considere el grafo G1 del último ejemplo:
22 2. INTRODUCCIÓN A LOS GRAFOS: TIPOS DE GRAFOS Y PROPIEDADES

Figura 24. Grafo G1.

Usando el algoritmo ‘fastgreedy’ de igraph obtenemos:

Figura 25. Partición del grafo G1 en cuatro ‘comunidades’.

4. Usando R
En esta sección describimos los comandos de R que fueron usados para repre-
sentar las figuras de esta sección.
4. USANDO R 23

Observe que necesita cargar la librería del paquete igraph de R para poder
usar los comandos usados abajo.
1. Figura 2:
G <- graph.formula(1-+4, 1-+5, 2-+3, 2-+7, 3-+6, 4-+1,
4-+7, 5-+6, 5-+3, 7-+7,simplify = FALSE)
plot(G,edge.color="black",layout=layout.fruchterman.reingold)
2. Figura 3:
G <- graph.formula(1-4, 1-5, 2-3, 2-7, 3-6, 4-1,
4-7, 5-6, 5-3, 7-7,simplify = FALSE)
plot(G,edge.color="black",layout=layout.fruchterman.reingold)
3. Figura 4:
G <- graph.formula(1-4, 1-5, 2-3, 2-7, 3-6, 4-1,
4-7, 5-6, 5-3)
plot(G,edge.color="black",layout=layout.fruchterman.reingold)
4. Figura 5:
G <- graph.formula(1-4, 1-5, 2-3, 2-7, 3-6, 4-1,
4-7, 5-6, 5-3)
degree(G)
plot(V(G),degree(G))
5. Figura 6:
G <- graph.formula(1-4, 1-5, 2-3, 2-7, 3-6, 4-1,
4-7, 5-6, 5-3)
degree_distribution(G)
max(degree(G))
degree_distribution(G)
plot(0:max(degree(G)),degree_distribution(G),
xlab = "grado(G)",ylab = "frecuencia")
6. Figura 7:
G <- graph.formula(1-4, 1-5, 2-3, 2-7, 3-6, 4-1,
4-7, 5-6, 5-3)
A<-as_adj(G, type = "both", attr = NULL,edges = FALSE,
names = FALSE, sparse =FALSE)
A
7. Figura 8:
G <- graph.formula(1-4, 1-5, 2-3, 2-7, 3-6, 4-1,
4-7, 5-6, 5-3)
L<-laplacian_matrix(G, normalized = FALSE, weights = NULL,
sparse = FALSE)
L
8. Figura 9:
G <- graph.formula(1-4, 1-5, 2-3, 2-7, 3-6, 4-1,
4-7, 5-6, 5-3)
L<-laplacian_matrix(G, normalized = TRUE, weights = NULL,
sparse = FALSE)
L
9. Figura 10:
G <- graph.formula(1-4, 1-5, 2-3, 2-7, 3-6, 4-1, 4-7, 5-6, 5-3)
L<-laplacian_matrix(G, normalized = TRUE, weights = NULL,
sparse = FALSE)
24 2. INTRODUCCIÓN A LOS GRAFOS: TIPOS DE GRAFOS Y PROPIEDADES

Espectro<-sort(round(eigen(L)$values,2))
Espectro
10. Figura 11:
G<-sample_k_regular(5, 2, directed = FALSE, multiple = FALSE)
plot(G)
11. Figura 12:
G<-sample_k_regular(5, 4, directed = FALSE, multiple = FALSE)
plot(G)
12. Figura 13:
G <- graph.formula(1-4, 2-7, 3-6, 4-1, 4-7, 5-6, 5-3)
plot(G,edge.color="black",layout=layout.fruchterman.reingold,
vertex.size=20,edge.arrow.size=20)
13. Figura 15:
g <- sample_bipartite(3,4, type = "gnp", p=0.5, directed = FALSE)

plot(g, layout = layout_as_bipartite,


vertex.color=c("yellow","cyan")[V(g)$type+1],
vertex.size=20)
14. Figura 14:
G <- graph.formula(1-4, 2-7, 3-6, 4-1, 4-7, 5-6, 5-3)
L<-laplacian_matrix(G, normalized = TRUE, weights = NULL,
sparse = FALSE)
Espectro<-sort(round(eigen(L)$values,2))
Espectro
15. Figura 16:
T<-make_tree(13, 3, mode = "undirected")
plot(T,vertex.size=20,layout=layout_as_tree(T, root=c(1)))
16. Figura 17:
S<-make_star(6, mode = "undirected")
plot(S,layout=layout.fruchterman.reingold,vertex.size=20 )
17. Figura 18:
G<-graph.formula(1-- 2,2-- 3,3-- 1)
plot(G,edge.color="black",layout=layout.fruchterman.reingold,
vertex.size=20,edge.arrow.size=20)
18. Figura 19:
G<-graph.formula(6-- 7,1-- 8,1-- 9,4-- 9,6--10,5--12,11--12,
5--13,8--14,9--14,6--15,14--15,4--17,5--17,8--17,9--17,7--18,
16--18, 2--19)
G<-add_vertices(G,2)
V(G)$name[19:20]<-c(3,20)
plot(G,layout=layout.fruchterman.reingold,vertex.size=20 )
19. Figura 20:
grado<-degree(G)
hist(grado,col="cyan",
xlab="grado", ylab="Frecuencia",main = "",
breaks = c(0:(max(grado)+1)-0.5), xlim = c(-1,(max(grado)+1)))
20. Figura 21:
4. USANDO R 25

G1<-graph.formula(6-- 7,1-- 8,1-- 9,4-- 9,6--10,5--12,11--12,5--13,


8--14,9--14, 6--15,14--15,4--17,5--17,8--17,9--17,7--18,16--18)
closeness(G1)
plot(V(G1)$name,closeness(G1),col="blue",
ylab="cercanía(G1)", xlab="vértices",main = "")
21. Figura 22:
G1<-graph.formula(6-- 7,1-- 8,1-- 9,4-- 9,6--10,5--12,11--12,5--13,
8--14,9--14,6--15,14--15,4--17,5--17,8--17,9--17,7--18,16--18)
betweenness(G1)
plot(V(G1)$name,closeness(G),col="blue",
ylab="cercanía(G1)", xlab="vértices",main = "")
22. Figura 23:
G <- graph.formula(1-4, 1-5, 2-3, 2-7, 3-6, 4-1, 4-7, 5-6, 5-3)
transitivity(G)
G1<-graph.formula(6-- 7,1-- 8,1-- 9,4-- 9,6--10,5--12,11--12,5--13,
8--14,9--14, 6--15,14--15,4--17,5--17,8--17,9--17,7--18,16--18)
transitivity(G1)
23. Figura 25:
G1<-graph.formula(6-- 7,1-- 8,1-- 9,4-- 9,6--10,5--12,11--12,5--13,
8--14,9--14,6--15,14--15,4--17,5--17,8--17,9--17,7--18,16--18)
plot(G1)
kc<-fastgreedy.community(G1)
length(kc)
sizes(kc)
membership(kc)
plot(kc, G1)
Capítulo 3

Grafos Aleatorios: Modelos e Inferencia

En este capítulo vamos a discutir algunos modelos clásicos de grafos aleatorios.


Los primeros modelos fueron introducidos por Erdös y Rényi en 1959, eran grafos
simples en que cada arista era incluida en el grafo con igual probabilidad.
Existen básicamente dos tipos de modelos; uno es mas teórico-matemático y
es usado para representar, cualitativamente, fenómenos de grandes redes como por
ejemplo los grafos de ‘escala libre’ o ‘el mundo pequeño’, como en el modelo de
‘conexión preferencial’. Otro tipo de modelos mas usados en las aplicaciones son
modelos paramétricos, como el modelo exponencial, que es el que vamos discutir
aquí.

1. Modelos de Grafos Aleatorios


Vamos a considerar los grafos simples, es posible extender estas definiciones
para otros grafos dirigidos, multigrafos, bipartitos.
Definición 1.1. Un modelo aleatorio para grafos esta definido por la colección:
{Pθ (G), G ∈ Gn , θ ∈ Θ},
Donde Gn = {G = (E, V ), |V | = n, G simples} es una colección de grafos simples
de orden n que es llamada espacio muestral, y para cada θ ∈ Θ:
Pθ : Gn → [0, 1]
es una distribución de probabilidades en Gn . Usualmente el espacio paramétrico
Θ es un conjunto ‘regular’ contenido en algún Rk
La principal dificultad en trabajar con modelos aleatorios para grafos consiste
en que debemos definir el valor de la probabilidad P para cada grafo G = (E, V ),
(con |V | = n), del espacio muestral, Gn , y el número de grafos de este espacio es
n
finito pero muy grande, |Gn | = 2( 2 ) ≈ 2n y el número de vértices n es grande.
2

Otra característica determinante en estos modelos es el tamaño de los grafos


que estamos considerando, grafos dispersos (sparce graph) si |E| ≈ |V | o densos
si |E| ≈ |V |2 .
Esta dificultad y otras consideraciones nos llevan a restringir la definición de P a
un conjunto menor, para eso consideramos ciertas funciones llamadas estadísticas
(u observaciones) η del grafo:
η : Gn → R
Por ejemplo, considerando η(G) = |E| = ‘el número de aristas del grafo’, po-
demos restringir Gn a los grafos G que tengan un tamaño fijo m, esto es, el nuevo
espacio muestral G ∗ sería:
G ∗ = {G = (E, V ), |V | = n, η(G) = m, G simples}

27
28 3. GRAFOS ALEATORIOS: MODELOS E INFERENCIA

Ejemplo 1.2. Considere n = 3 vértices, en este caso G3 = {G1, . . . , G8} está


3
formado por 2(2) = 8 grafos:

Figura 1. Los 8 grafos contenidos en G3

Podemos definir una distribución de probabilidades en G3 haciendo:

θi θi (1 − θ)
Pθ (Gi) = P8 = , i = 1, 7, θ ∈ R+
k=1 θ
k θ(1 − θ7 )

5
Así P(G5) = θθ(1−θ
(1−θ)
7 ) . Observe que si θ < 1 entonces los grafos mas densos (G8

por ejemplo) tienen menos probabilidad. En cambio si θ > 1 ocurre lo opuesto.


Ahora si hacemos η = |E| y fijamos el conjunto de grafos que tienen η = 2
vértices, esto es, estamos interesados en una característica‘estructural’: tener dos
vértices. Así obtenemos G ∗ = {G5, G6, G7}
1. MODELOS DE GRAFOS ALEATORIOS 29

Figura 2. G5, G6, G7

en este caso podríamos calcular las probabilidades de estos grafos, usando la


probabilidad condicional, por ejemplo:
θ 7 (1−θ)
∗ Pθ (G7 ∩ η = 2) θ(1−θ 7 ) θ7
P (G7) = Pθ (G7|η = 2) = = P7 θk (1−θ) = 5
Pθ (η = 2) 7
θ + θ6 + θ7
k=5 θ(1−θ )

Observe que el evento {η = 2} esta formado por los grafos con dos aristas y que
nuestro espacio muestral tiene ahora solo 3 grafos.
Podríamos también escoger otras características η como el número de triángu-
los, el grado, etc. y fijar este número.
1.1. Modelos Clásicos. En esta sección describiremos cuatro modelos: Uni-
forme, Erdös-Rényi, Conexión Preferencial y Exponencial.
1.1.1. Modelo Uniforme. En este modelo todos los grafos tienen igual proba-
bilidad:
1
PU (Gi) =
|Gn |
Para este modelo η es una Variable Aleatoria con función de distribución de
probabilidad:
#{G ∈ Gn , η(G) ≤ t}
Fη,Gn (t) =
|Gn |
Donde #{·} es la cardinalidad de un conjunto y 0 ≤ t ∈ R. Esta Variable Aleatoria
consiste en que vamos a observar esta característica η para cada grafo de Gn y
medimos que tan probable es ella.
Ejemplo 1.3. Considere el espacio muestral G3 de los grafos con tres vértices.
En este caso es fácil ver que:
1
PU (Gi) = , i = 1, . . . , 8
8
Por otra parte observe que η(G) = |E(G)| = 0, 1, 2, 3 es una variable aleatoria
discreta con distribución:
1 3
P(η = 0) = , P(η = 1) =
8 8
30 3. GRAFOS ALEATORIOS: MODELOS E INFERENCIA

3 1
P(η = 2) = P(η = 3) =
8 8
En general, suponga que el número de vértices es fijo, |V | = n y que también
fijamos el número de aristas, |E| = m. Definimos el modelo Uniforme con m aristas,
G(n, m), como la distribución de probabilidades que asigna igual probabilidad a los
grafos pertenecientes a Gn,m = {G = (E, V ) : |V | = n, |E| = m}, esto es:
1
P(G) = N
, G ∈ Gn,m
m

con N = n2 el numero de aristas posibles en un grafo con n vértices.




Para simular grafos del modelo G(n, m) podemos usar el programa R. Un ejem-
plo, simulado, de un grafo aleatorio Uniforme con |V | = 30 y |E| = 100 fijo:

Figura 3. Grafo G Uniforme con |V | = 30 y |E| = 100

1.1.2. Modelo Erdös-Rényi. El modelo de Erdös-Rényi es una generalización


del modelo uniforme y es el modelo más simple de grafo aleatorio. Fue introducido
en 1959 por Paul Erdös en uno de los trabajos más citados sobre combinatoria.
Erdös formuló en este trabajo la idea de usar probabilidad positiva de un evento
para probar un resultado de existencia en la matemática combinatoria, para eso
introduce por primera vez en la matemática la idea de un grafo aleatorio. Este
método de prueba será conocido después como el ‘Método Probabilístico’.
La construcción simplemente consiste en dar una probabilidad p igual, para
todas las aristas, de que cada arista pertenezca al grafo, y esto independientemente
de las otras aristas: P(v ∈ G) = p.
1. MODELOS DE GRAFOS ALEATORIOS 31

La probabilidad para G = (E, V ) ∈ Gn en el modelo de Erdös, G(n, p), es


entonces:
n
Pp (G) = p|E| (1 − p)( 2 )−|E|
Observe que la probabilidad de cada grafo G con m aristas sería P(G) = pm (1 −
n
p)( 2 )−m .
Podemos demostrar una relación entre los modelos Uniforme G(n, m) y Erdös-
Rényi G(n, p). Si la ‘densidad de vértices’ se mantiene igual a p = m entonces
(n2 )
ambos modelos coinciden cuando n es suficientemente grande, esto ocurre por la
ley de los grandes números.
Para simular grafos del modelo G(n, p) podemos usar el programa R. Un ejem-
plo de un grafo simulado para el modelo de Erdös-Rényi, con |V | = 10:

Figura 4. Grafo G Erdös-Rényi con |V | = 10, p = 0,3, p = 0,5 y


p = 0,7

Observe
 que el número de aristas en este modelo es aleatorio, en media es
E|E| = n2 p. Así en la figura (4) el número medio de aristas es:
Ep=0,3 |E| = 13,5, Ep=0,5 |E| = 22,5 y Ep=0,7 |E| = 31,5
1.1.3. Modelo Conexión Preferencial. Esta familia de modelos es una de las
más importantes en la literatura de modelos de redes, pues representa de manera
aproximada el comportamiento de redes como la internet. Este es un modelo diná-
mico, en el sentido de que el número de vértices no es fijo, en este modelo vamos
dinámicamente adicionando aristas y vértices con un mecanismo que describiremos
a seguir.
Una de las propiedades importantes de este modelo es que la distribución del
grado ‘decae’ como una ley de potencias, (recuerde que nuestros grafos son aleatorios
luego el grado de los vértices de cada grafo no es fijo), esto es, si d(vk ) es el grado
del k-esimo vértice, cuando los grados están ordenados en orden creciente, entonces:
1
d(vk ) ≈ α
k
32 3. GRAFOS ALEATORIOS: MODELOS E INFERENCIA

esta aproximación es en probabilidad.


Este fenómeno es llamado de escala libre (scale-free), y significa que con proba-
bilidad pequeña, no nula, existe vértices con un grado muy grande, esto es, vértices
que están conectados con una grande cantidad de otros vértices. A este fenómeno
se le conoce como ‘mundo pequeño’ (small-world), pues significa que a través de
caminos pequeños es posible conectar a todos los vértices. En estudios empíricos,
se ha encontrado que el tamaño de esos caminos es 6, como consecuencia en las
redes sociales nos separan apenas 6 personas para conectarnos con cualquier otra
persona.
Vamos a ver un modelo de grafos que tiene estas características, el llamado
modelo de ‘Barabási–Albert’, o modelo BA. La idea es que vamos a crear vértices
que estén conectados a los vértices con grado mayor:

La red comienza con n0 vértices (|V (Gn )| = n0 .


Un nuevo vértice in es creado en cada paso n. Con probabilidad proporcional
al grado de cada uno de los vértices ya existentes creamos una arista que
une este vértice con los anteriores:

d(j)
P((in , j) ∈ V (Gn+1 )) = P , j ∈ V (Gn )
k∈V (Gn ) d(k)

α es la potencia del decaimiento. Veamos un ejemplo simulado de un


grafo BA con n = 500 vértices y con poderes α = 0,1 y α = 0,001:

Figura 5. Grafo G del modelo BA con |V | = 500, α = 0,1 y α = 0,001


1. MODELOS DE GRAFOS ALEATORIOS 33

Los histogramas de los grados para los grafos anteriores:

Figura 6. Histogramas de Grafos G del modelo BA con |V | =


500, α = 0,1 y α = 0,001

1.1.4. Modelo Exponencial Aleatorio ERGM. El Modelo Exponencial Alea-


torio para Grafos (ERGM) es el modelo paramétrico más usado en los estudios
de redes sociales, su importancia yace en que permite introducir observaciones de
las características estructurales de los grafos en la distribución de probabilidad, esto
es, la probabilidad de un grafo depende de características tales como el número de
aristas, triángulos, estrellas, etc. que están presentes en el grafo.
Este modelo fue introducido por Holland y Reinhardt en 1981, y en su forma
general por Frank y Strauss en 1986. El estudio matemáticamente riguroso de este
modelo fue desenvuelto por Diaconis et. al. en 2013, en ese trabajo se demuestra
se prueba una ley de los grades números para distribuciones de grafos y también
transición de fase para una familia importante de ERGMs.
Para describir este modelo, considere un conjunto de características: η1 , . . . , ηk
de una grafo, estas pueden ser número de aristas, triángulos, estrellas, etc. y suponga
que asociamos parámetros: θ1 , . . . , θk a cada una de ellas. Entonces definimos la
distribución de probabilidades de este modelo como:
Pk
θi ·ηi (G)
e i=1
PΘ (G) = , G ∈ Gn
Z(Θ)
Donde Θ = (θ1 , . . . , θk ) son los parámetros y Z(Θ) es una constante normali-
zadora llamada función de partición:
X Pk
θi ·ηi (G)
Z(Θ) = e i=1

G∈Gn

El grafo de Erdös-Rényi es una caso particular de este modelo, ele corresponde


a usar solamente el número de vértices del grafos en el modelo:

eθ·|E(G)|
PΘ (G) = , G ∈ Gn
Z(θ)
34 3. GRAFOS ALEATORIOS: MODELOS E INFERENCIA

Observe que aquí η(g) = |E(G)|. En este caso es fácil hallar el valor de la constante
normalizadora: Z(θ) = (1 + eθ )n . En este caso tenemos que la probabilidad de tener

una arista es p = 1+e θ.

En general es un problema difícil encontrar el valor de Z(Θ) y se usan algoritmos


aproximados, al menos cuando n es pequeño.
Veamos un ejemplo.

Ejemplo 1.4. Vamos a considerar los grafos con n = 10 vértices, usaremos


dos características: el número de aristas (η1 (G)) y el número de triángulos (η2 (G))
presentes en el grafo.
Veamos que ocurre si fijamos el parámetro que controla el número de triángulos
θ2 = 0,3 y variamos θ1 (θ1 = −1, θ1 = 1 ) que controla el número de aristas.
eθ1
Recuerde que la probabilidad de tener una arista es p = 1+e θ1 (obtenemos p1 = 0,27

y p2 = 0,73)
Usando el programa ‘ergm’ de R obtenemos los grafos G1 (θ1 = −1, θ2 = 0,3)
y G1 (θ1 = −1, θ2 = 0,3):

Figura 7. Grafos G1 y G2 del modelo ERGM con θ1 = −1, 1,


θ2 = 0,3

Observe el numero de aristas y triángulos que se formaron:


> summary(G1 ~ edges + triangle)
edges triangle
13 2
> summary(G2 ~ edges + triangle)
edges triangle
41 90
Esto significa que al aumentar las aristas (edges) se aumento el número de
triángulos, esto es ambas características están correlacionadas en el grafo
Los histogramas de los grados para los grafos anteriores:
1. MODELOS DE GRAFOS ALEATORIOS 35

Figura 8. Distribución del grado de G1 y G2

Como vemos el grafo G2 es mas conectado, su índice de agregación (transitivi-


dad o densidad de triángulos) es cuatro veces mayor que el de G1:

> transitivity(G1)
[1] 0.2
> transitivity(G2)
[1] 0.9060403

1.1.5. Simulación de Grafos Aleatorios. Los algoritmos para simular mode-


los aleatorios de grafos tienen el problema relacionado al número extremadamente
grande de grafos que pertenecen al espacio muestral. Por ejemplo, en el caso del
modelo ERGM, esto ja se percibe en la función de partición Z(Θ):

X Pk
θi ·ηi (G)
Z(Θ) = e i=1

G∈Gn

2
La suma tiene 2n términos, en computación matemática es lo que se conoce
como un problema NP. Por esto existen algoritmos aproximados para encontrar
Z(Θ), vamos a explicar brevemente en que consiste uno de ellos.
Este algoritmo usa la Ley de los grandes números para hallar Z(Θ), usando
que podemos simular con facilidad grafos de Erdös-Rényi, con p = 0,5, estos grafos
corresponden a Θ0 = (0, . . . , 0).
36 3. GRAFOS ALEATORIOS: MODELOS E INFERENCIA

Ahora observe esta relación:


X e ki=1 θi ·ηi (G)
P
Z(Θ)
= ,
Z(Θ0 ) Z(Θ0 )
G∈Gn
Pk Pk
θi ·ηi (G)
X e i=1 e i=1 0·ηi (G)
= ,
Z(Θ0 )
G∈Gn
X Pk
θi ·ηi (G)
= PΘ0 (G)e i=1 ,
G∈Gn
X t
·η(G)
= PΘ0 (G)eΘ ,
G∈Gn
t
·η(G)
= EΘ0 eΘ ,
Ahora observe que para p = 0,5, vale que Z(Θ0 ) = (1 + e0 )n = 2n , luego: Z(Θ) =
t
2n · EΘ0 eΘ ·η(G) .
Suponga que simulamos m de esos grafos: G1 , . . . Gm , pues es fácil simular
de PΘ0 (·) que son grafos de Erdös-Rényi, entonces, usando la ley de los grandes
números, vale que:
t t
·η(G1 )
eΘ + · · · + eΘ ·η(Gm ) t
lı́m = EΘ0 eΘ ·η(G)
m→∞ m
En principio esto funciona, sin embargo ocurren otros problemas cuando n es
grande y deja de funcionar esta idea.
Ejemplo 1.5. Considere el ejemplo anterior con Θ = (−1, 0,3) y con m = 100
grafos de Erdös-Rényi con p = 0,5, usando el siguiente código R para implementar
las simulaciones:
m=100
g.sim <- simulate(network(10,,density=0.1,directed=FALSE)
~ edges + triangle, coef=c(0, 0),nsim=m)
S<-print(g.sim,stats.print=TRUE)
eta<-attr(S,"stats")
theta=c(-1,0.3)
Theta<-matrix(rep(theta, m),nrow = m)
s<-c()
for(i in 1:m){
s[i]<-exp(Theta[i,]%*%eta[i,])
}
Z_Theta<-2^10*(sum(s)/m)
Z_Theta

Obtenemos Z(Θ) = 2462486387

2. Estimadores de Máxima Verosimilitud (ERGM)


Asociado a la construcción de modelos aleatorios para grafos esta el problema
empírico de encontrar el valor de los parámetros a partir de las observaciones,
que en la Estadística se conoce como Inferencia Paramétrica. Primeramente vamos
a describir el paradigma clásico de estimación paramétrica que se conoce como
2. ESTIMADORES DE MÁXIMA VEROSIMILITUD (ERGM) 37

‘Método de la Máxima Verosimilitud’, después discutiremos como aplicamos este


método para el parámetro Θ del modelo ERGM.
2.0.6. Estimadores de Máxima Verosimilitud. Suponga que tenemos m obser-
vaciones independientes: x1 , . . . xm de un modelo aleatorio con distribución Pθ , para
esta ‘muestra’ definimos la Verosimilitud como la función:
m
Y
L(θ, x1 , . . . xm ) = Pθ (xi )
i=1

El Método de la Máxima Verosimilitud consiste en hallar un θ que maximice esta


función. Este θ también seŕia máximo del logaritmo de L, entonces definimos el
estimador de máxima verosimilitud (EMV) del parámetro θ como el valor:
θ̂ = arg máx log L(θ, x1 , . . . xm ) = arg máx `(θ, X )
θ∈Θ θ∈Θ ˜
Para distribuciones (de la familia exponencial) que tienen la forma: Pθ (x) =
ceθ·T (x) vale una propiedad importante:
Eθ̂ T (X) = T (X ) (2.6)
˜
2.0.7. Estimadores de Máxima Verosimilitud para ERGM. Para el modelo
ERGM tenemos una única observación: el grafo Go con verosimilitud
eθ·η(Go )
Pθ (Go ) = ,
Z(θ)
además el EMV de θ es
θ̂ = arg máx `(θ, Go )
θ∈Θ
Como antes, el problema de evaluar `(θ, Go ) es que necesitamos el valor de la
función de partición Z(θ), vamos a usar la misma idea de simulaciones para hallar
una expresión aproximada para `(θ, Go ), y suponga que podemos simular de la
distribución Pθ0 . Definimos r(θ, θ0 ) = `(θ, Go ) − `(θ0 , Go ).
Observe que:
 θ·η(Go )   θ0 ·η(Go ) 
e e
`(θ, Go ) − `(θ0 , Go ) = log − log
Z(θ) Z(θ0 )
 
Z(θ)
= (θ − θ0 ) · η(Go ) − log
Z(θ0 )
Como antes simulamos m grafos G1 , . . . Gm usando Pθ0 y utilizando la ley de los
grades números podemos aproximar el valor de
  m
!
Z(θ) 1 X (θ−θ0 )·η(Gi )
log ≈ log e
Z(θ0 ) m i=1
Finalmente usamos este valor aproximado para definir:
m
!
1 X (θ−θ0 )·η(Gi )
rm (θ, θ0 ) = (θ − θ0 ) · η(Go ) − log e
m i=1
Así el estimador EMV aproximado para este modelo es:
θ̂m = arg máx rm (θ, θ0 )
θ∈Θ
38 3. GRAFOS ALEATORIOS: MODELOS E INFERENCIA

Como este modelo pertenece a la familia exponencial, entonces el estimador EMV


θ̂ satisface la relación (2.6):
Eθ̂ η(X) = η(Go )
El programa ergm de R implementa esta solución. Vamos a ver un ejemplo.
Ejemplo 2.1. Usaremos como ejemplo el grafo G2 simulado a partir de un
ERGM con estadísticas: el número de vértices η1 (G) = |E| y η1 (G) = |triángulos(G)|
con θ = (θ1 , θ2 ) = (1, 0,3):

Figura 9. Grafo G2 del modelo ERGM con θ1 = 1, θ2 = 0,3

Para este grafo la salida del programa es:


theta_est<-ergm(G2 ~ edges+ triangle,control=control.ergm(MCMC.burnin=100))
summary(theta_est)

==========================
Summary of model fit
==========================

Formula: G2 ~ edges + triangle

Iterations: 2 out of 20

Monte Carlo MLE Results:


Estimate Std. Error MCMC % p-value
edges 0.0197 2.4155 0 0.994
triangle 0.3822 0.3916 0 0.334
El valor del estimador EMV fue θ̂ = (0,0197, 0,3822) La estimación no fue
buena (p-valor para θ1 es 0.994, muy alto, y p-valor para θ2 es 0.334, bajo pero
no aceptable pues aceptamos valores menores que 0.025), esto era esperado pues
estamos usando una aproximación bastante regular para la verosimilitud. Vamos a
ver que usando técnicas Bayesianas podemos mejorar esto.
Podemos evaluar la estimación usando la distribución de otras características,
grado, aristas comunes y geodésicas de un conjunto de grafos simulados con los
parámetros estimados.
3. ESTIMADORES BAYESIANOS (ERGM) 39

gofG2 <- gof(theta_est)

par(mfrow=c(1,3))
par(oma=c(0.5,2,1,0.5))
plot(gofG2)
el resultado es:

Figura 10. Bondad del ajuste (goodness of fit: gof) para el valor
estimado θ̂ = (0,0197, 0,3822)

Podemos observar que estas otras características del grafo G2 (la linea más
obscura de los gráficos para grado, aristas comunes y geodésicas) están dentro de
los valores esperados de las simulaciones (las lineas grises de los gráficos).

3. Estimadores Bayesianos (ERGM)


La estadística Bayesiana se basa en el famoso teorema de Bayes:
P(B|A)P(A)
P(A|B) =
P(B)
Suponiendo que el parámetro que será estimado θ es aleatorio y que su dis-
tribución es P(θ), podemos expresar la verosimilitud como L(θ, X ) = P(X |θ) y
˜ ˜
reformular el problema original de hallar θ al problema de hallar la distribución de
θ condicional a la información observada X :
˜
P(X |θ)P(θ)
˜
P(θ|X ) =
˜ P(X )
˜
En esta expresión π(θ) := P(θ) es llamada distribución apriori y el objeti-
vo consiste en encontrar la distribución aposteriori π(θ|X ) := P(θ|X ). Observe
˜ ˜
que P(X ) no depende de θ, luego es constante, así la relación de Bayes puede ser
˜
expresada como:
P(θ|X ) = cL(θ, X )π(θ)
˜ ˜
40 3. GRAFOS ALEATORIOS: MODELOS E INFERENCIA

Donde c es una constante. Existen dos métodos para encontrar una expresión para
la aposteriori. El primero consiste en encontrar una distribución que tenga la misma
expresión que la aposteriori, en este caso decimos que ambas, apriori y aposteriori
son conjugadas, lo que en general no ocurre.
El segundo método, más general, consiste en encontrar un mecanismo que nos
permita simular m observaciones de la aposteriori: θ1 , . . . , θm , θi ∼ π(θ|X ). Depen-
˜
diendo del mecanismo de simulación (usualmente simulamos un proceso estocástico)
vale que:
m
1 X
π(θ|X ) ≈ Fm (θ|X ) := δθ (θ)
˜ ˜ m i=1 i
Donde δa (x) = 1 si a = x y δa (x) = 0 caso contrario. La función Fm () es lla-
mada distribución empírica. Usualmente la relación anterior es consecuencia de la
ergodicidad del proceso (esto es unicidad de la distribución estacionaria).
Un método que nos permite simular los θ’s es el método de Metropolis-Hastings,
que consiste en usar una cadena de Markov que sea fácil de simular y, digamos, que
tenga probabilidad de transición q(θ0 |θ), entonces el objetivo consiste en perturbar
esta cadena de modo tal que la nueva cadena tenga la distribución estacionaria
deseada, esto es la distribución aposteriori. Suponga que la nueva cadena tiene
probabilidad de transición k(θ0 |θ) = q(θ0 |θ)α(θ0 |θ). Si vale que:

k(θ0 |θ)π(θ|X ) = k(θ|θ0 )π(θ0 |X ),


˜ ˜
esto es, que la cadena modificada, con probabilidad de transición k(θ0 |θ), es ‘re-
versible’ para π(θ|X ). Entonces, tenemos necesariamente que π(θ|X ) es la única
˜ ˜
distribución estacionaria para k(θ0 |θ). Esta es una propiedad de las cadenas de
Markov muy usada en simulación de procesos.
Usando las ideas anteriores el algoritmo de Metropolis-Hastings, que nos per-
mite simular los θ’s necesarios para hallar la distribución empírica Fm (·), se resume
a estos pasos:
1. Simulamos θ0 de la distribución apriori π(θ),
2. Suponiendo que tengamos simulado θn , simulamos un candidato θ∗ usando
q(θ, θn ).
3. Evaluamos:
π(θ∗ |X )q(θ∗ , θn ) cL(θ∗ , X )π(θ∗ )q(θ∗ , θn )
   
˜ ˜
α(θ0 |θ) = mı́n  , 1 = mı́n  , 1
π(θn |X )q(θn , θ∗ ) cL(θn , X )π(θn )q(θn , θ∗ )
˜ ˜
Observe que la constante c cancela. Usualmente usamos una cadena tal que
q(u, u0 ) = q(u0 , u) por lo que la expresión anterior se simplifica:
L(θ∗ , X )π(θ∗ )
 
˜
α(θ0 |θ) = mı́n  , 1
L(θn , X )π(θn )
˜
4. Simulamos una observación u de la distribución Uniforme y hacemos:
(
θ∗ si u ≤ α(θ0 |θ)
θn+1 =
θn si u > α(θ0 |θ)
3. ESTIMADORES BAYESIANOS (ERGM) 41

5. Volvemos al paso 2.
Los pasos son iterados hasta que los θ’s estén ‘estacionarios’. Este algoritmo
fue llamado de ‘la revolución computacional’ por Persi Diaconis en un trabajo de
2006.
3.0.8. Estimadores Bayesianos (ERGM). Ahora consideramos un grafo ob-
servado Go que sigue el modelo ERGM con verosimilitud:
eθ·η(Go )
L(θ, Go ) = Pθ (Go ) =
Z(θ)
y distribución apriori π(θ) queremos encontrar la distribución aposteriori π(θ|Go )
usando el algoritmo de Metropolis-Hastings. Suponga que los θ’s serán generados
usando una cadena de Markov simétrica: q(θ, θ0 ) = q(θ0 , θ). Entonces, para evaluar
el α(θ0 |θ) del algoritmo tenemos que evaluar:

L(θ∗ , Go )π(θ∗ ) π(θ∗ )e(θ −θn )·η(Go ) Z(θn )
=
L(θn , Go )π(θn ) π(θn ) Z(θ∗ )
Como podemos ver la dificultad de implementar esto está en evaluar Z(θn )/Z(θ∗ )
y como vimos, eso da origen a un error muy grande. Caimo et. al. en un trabajo
de 2012 modificaron este algoritmo, usando una simulación auxiliar para θ, vamos
a ver en un ejemplo este resultado.
Ejemplo 3.1. Usaremos como ejemplo el grafo G2 simulado a partir de un
ERGM con estadísticas: el número de vértices η1 (G) = |E| y η1 (G) = |triángulos(G)|
con θ = (θ1 , θ2 ) = (1, 0,3); en lugar de procurar θ̂, vamos a suponer que, ‘apriori’,
este valor es representado por una distribución, apriori, π(θ1 , θ2 ) ∼ Uniforme en
[0, 2] × [0, 1] y queremos la distribución empírica de la aposteriori π((θ1 , θ2 )|Go ).
Para eso usaremos el programa bregm de R.
library("ergm")
library("bergm")
g.sim <- simulate(network(10,,density=0.1,directed=FALSE) ~ edges + triangle,
coef=c(0, 0))

G2 <- simulate( ~ edges + triangle, coef=c(1, 0.3),directed=FALSE,nsim=1,


basis=g.sim,seed=786,control=control.simulate(
MCMC.burnin=10000,
MCMC.interval=100))
theta_post <- bergm(G2 ~ edges + triangle,
burn.in=10,
aux.iters=500,
main.iters=500,
gamma=1)
bergm.output(theta_post)

y los resultados son:


Overall posterior density estimate:
theta1 (edges) theta2 (triangle)
Post. mean 3.377747 -0.02407964
Post. sd 5.224419 0.73015466

Overall acceptance rate: 0.31


42 3. GRAFOS ALEATORIOS: MODELOS E INFERENCIA

Como vemos las medias de la distribución empírica Fm (θ1 , θ2 ) son (θ¯1 ,


barθ2 ) = (3,377747, −0,02407964) no muy diferentes de los valores originales, re-
cuerde que ahora los θ’s son aleatorios. Observe que la probabilidad de aceptación
de cada θ fue de 0.31.
Veamos como fue la convergencia de las cadenas para la estacionaridad:

Figura 11. Distribución aposteriori y convergencia del proceso (θ1 (n), θ2 (n))

4. Usando R
Usamos en este capitulo los programas de R: igraph, intergraph, network, ergm
y bergm.
1. Figura 1:
G1 <- graph.formula(1,2,3)
G2 <- graph.formula(1--2,3)
G3 <- graph.formula(1,2--3)
G4 <- graph.formula(1--3,2)
G5 <- graph.formula(1--2--3)
G6 <- graph.formula(1--3--2)
G7 <- graph.formula(2--1--3)
G8 <- graph.formula(1--2--3,3--1)
graphics.off()
par(mfrow=c(3,3))
plot(G1, xlab=’G1’,vertex.size=55,layout=layout_in_circle)
plot(G2, xlab=’G2’,vertex.size=55,layout=layout_in_circle)
plot(G3, xlab=’G3’,vertex.size=55,layout=layout_in_circle)
plot(G4, xlab=’G4’,vertex.size=55,layout=layout_in_circle)
plot(G5, xlab=’G5’,vertex.size=55,layout=layout_in_circle)
plot(G6, xlab=’G6’,vertex.size=55,layout=layout_in_circle)
plot(G7, xlab=’G7’,vertex.size=55,layout=layout_in_circle)
4. USANDO R 43

plot(G8, xlab=’G8’,vertex.size=55,layout=layout_in_circle)
plot(5,5,type="n",axes=FALSE,ann=FALSE,xlim=c(0,10),
ylim =c(0,10))
2. Figura 2:
graphics.off()
par(mfrow=c(1,3))
plot(G5, xlab=’G5’,vertex.size=35,layout=layout_in_circle)
plot(G6, xlab=’G6’,vertex.size=35,layout=layout_in_circle)
plot(G7, xlab=’G7’,vertex.size=35,layout=layout_in_circle)
3. Figura 3:
G<-erdos.renyi.game(30, 100, type ="gnm", directed = FALSE,
loops = FALSE)
plot(G)
4. Figura 4:
G1<-erdos.renyi.game(10, 0.3, type ="gnp", directed = FALSE,
loops = FALSE,)
G2<-erdos.renyi.game(10, 0.5, type ="gnp", directed = FALSE,
loops = FALSE,)
G3<-erdos.renyi.game(10, 0.7, type ="gnp", directed = FALSE,
loops = FALSE)

graphics.off()
par(mfrow=c(1,3))
plot(G1,xlab=’G1’)
plot(G2,xlab=’G2’)
plot(G3,xlab=’G3’)
5. Figuras 5 y 6:
graphics.off()
G1 <- sample_pa(500, power=0.1,directed = FALSE)
G2 <- sample_pa(500, power=0.001,directed = FALSE)
graphics.off()
par(mfrow=c(1,2))
plot(G1,vertex.label=NA,vertex.size=3)
plot(G2,vertex.label=NA,vertex.size=3)
graphics.off()
par(mfrow=c(1,2))
par(mfrow=c(1,2))
hist(degree(G1),main=’’)
hist(degree(G2),main=’’)
6. Figuras 7 y 8:
library("ergm")
g.sim <- simulate(network(10,,density=0.1,directed=FALSE)
~ edges + triangle, coef=c(0, 0))
summary(g.sim ~ edges + triangle)
G1 <- simulate( ~ edges + triangle, coef=c(-1, 0.3),
directed=FALSE,nsim=1,basis=g.sim,seed=234,
control=control.simulate(
MCMC.burnin=10000,
MCMC.interval=100))
summary(G1 ~ edges + triangle)
G2 <- simulate( ~ edges + triangle, coef=c(1, 0.3),
44 3. GRAFOS ALEATORIOS: MODELOS E INFERENCIA

directed=FALSE,nsim=1,basis=g.sim,seed=786,
control=control.simulate(
MCMC.burnin=10000,
MCMC.interval=100))
summary(G2 ~ edges + triangle)
g1<-asIgraph(G1)
g2<-asIgraph(G2)

par(mfrow=c(1,2))
plot(g1,vertex.label=NA,vertex.size=25,xlab=’G1’)
plot(g2,vertex.label=NA,vertex.size=25,xlab=’G2’)
par(mfrow=c(1,2))
hist(degree(g1),main=’’, xlab=’grado(G1)’,
xlim = c(0,10),ylim = c(0,7))
hist(degree(g2),main=’’, xlab=’grado(G2)’,
xlim = c(0,10),ylim = c(0,7))
Capítulo 4

Modelos de Regresión para Grafos, Modelos


Dinámicos

En este capítulo discutiremos modelos de regresión para grafos: vecinos próxi-


mos, campos de Markov, espectrales y por Kernels. Vamos a usar un ejemplo de
genética y parte de los códigos de R del libro [3].
Luego discutimos un modelo dinámico, el modelo de epidemiología SIR, y como
influye cuando se considera la infección propagándose en un grafo.

1. Modelos de Regresión o Previsión para Grafos


Estos modelos son predictivos en el sentido de una variable Y es explicada o
prevista por otra X, usualmente como función de X. Esta función usualmente es
linear, de ahí el nombre ‘regresión linear’. Existen muchas variedades de modelos
para este caso, y para el caso multilinear.
En el caso de aplicaciones de regresión usando grafos, las variables están inde-
xadas con los vértices del grafo, como en un campo de vectores, la variable tiene
un valor en cada vértice. La previsión consiste en que saber el valor de la variable
en un vértice a partir de los valores de los vértices conectados a él.

1.1. Regresión Linear. En el caso más simple, no aleatorio, tenemos un


conjunto de puntos (x1 , y1 ), . . . , (xn , yn ) en el plano y queremos encontrar una recta
Y = α̂ + β̂X cuyos puntos minimizan la distancia al conjunto de puntos observados.
α̂ es llamado el interceptor y β̂ la inclinación.
Encontrar (α̂, β̂) corresponde a resolver el problema de minimización:
mı́n {(Y − α − βX)t (Y − α − βX)},
(α,β)

donde X = (x1 , . . . , xn ) y Y = (y1 , . . . , yn ).


Como (Y − α + βX)t (Y − α − βX) = ||Y − α − βX||22 , se llama a este problema
de minimización cuadrática, este valor es la distancia euclídea entre Y y α + βX.
En el caso aleatorio, los puntos (x1 , y1 ), . . . , (xn , yn ) son observaciones del vec-
tor aleatorio (X, Y ), cuyas marginales X e Y tienen una relación de dependencia:
Y = α + βX + ε, aquí ε es una variable aleatoria con esperanza Eε = 0 y varianza
Vε = 0, luego E(Y |X = x) = α + βx por eso decimos que este modelo es el mejor
predictor lineal para Y .
La solución de este problema consiste en minimizar:
mı́n E{(Y − α − βX)t (Y − α − βX)},
(α,β)

Observe que E{(Y − α − βX)t (Y − α − βX)} = E(Y − α − βX)2 :=ECM, el


‘error cuadrático medio.
45
46 4. MODELOS DE REGRESIÓN PARA GRAFOS, MODELOS DINÁMICOS

1.2. Regresión Vecinos Próximos. La regresión por vecinos próximos,


NN (Nearest Neirghbor), es un tipo de regresión local. Suponga que tenemos como
dato un grafo G = (V, E) y que en cada vértice i ∈ V tenemos una variable Xi con
la misma distribución. Pero desconocemos la relación de dependencia entre estas
variables, sabemos que están ligadas por el grafo G.
Si tenemos observaciones {xi , i ∈ V } nuestro objetivo es predecir el valor de
cada xi a partir de los valores de x en sus vecinos Ni = {j ∈ V : (i, j) ∈ E}, el
predictor NN para xi en este caso este definido por:
P
j∈Ni xj
x̂i =
|Ni |

Veamos un ejemplo;

Ejemplo 1.1. Vamos a usar un ejemplo de la genética, los datos consisten


de una red de 241 interacciones (aristas) entre 134 proteínas (vértices) pertene-
cientes a un organismo, Saccharomyces cerevisiae, cada proteína tiene un atributo
((ICSC)i = 1 o 0) que indica si la ‘cascada de señalización intracelular’ (intracellu-
lar signaling cascade) está presente o no, esta es una característica de comunicación
intracelular. Estos datos fueron colectados por Jiang et.al. (2007). Vamos a llamar
ppi.CC a este grafo:

Figura 1. Grafo ppi.CC de interacciones entre proteínas de Sac-


charomyces cerevisiae: ICSC = 1 (amarillo) y ICSC = 0 (azul)

Si usamos el grafo ppi.CC y la relación de vecinos próximos descrita antes


obtenemos un grafo ppi.CC.nn igual al anterior pero con valores de ICSC previstos
por esta relación NN, podemos comparar los dos graficos:
1. MODELOS DE REGRESIÓN O PREVISIÓN PARA GRAFOS 47

Figura 2. Grafos ppi.CC y ppi.CC.nn

Para verificar que tanto coinciden vamos a contar las coincidencias en cada
vértice:

Figura 3. Coincidencias entre los valores de los vértices ppi.CC y ppi.CC.nn


48 4. MODELOS DE REGRESIÓN PARA GRAFOS, MODELOS DINÁMICOS

Observe que valores cercanos a 1 (amarillo) tienen una frecuencia alta de coin-
cidencia, esto es pocos de los que tiene valor cerca de cero son amarillos en ppi.CC.
(lo mismo ocurre para (ICSC)i = 0 en ppi.CC). Veamos que porcentaje de mal
clasificados existe:
#### %de error: no coincidencias
nn.pred <- as.numeric(nn.ave > 0.5)
mean(as.numeric(nn.pred != V(ppi.CC.gc)$ICSC))
[1] 0.2598425

El error de predicción es 25,9 %, que es bajo.


1.3. Regresión Linear para Campos de Markov. Vamos a definir un
modelo aleatorio par las observaciones xi de los vértices, este modelo es llamado
Campo Aleatorio Markoviano .
Sea G = (E, V ) un grafo con |V | = n y X = (X1 , . . . , Xn ) un conjunto de varia-
bles aleatorias definidas en V , decimos que X es un Campo Aleatorio Markoviano
(MRF) si:
1. P(X = x) > 0 para todo x ∈ Rn .
2. Vale la propiedad de Markov:
P(Xi = xi |X(−i) = x(−i) ) = P(Xi = xi |XNi = xNi )
con X(−i) = (X1 , . . . , Xi−1 , Xi+1 , . . . , Xn ) y XNi es X restricto a los vérti-
ces j ∈ Ni = {j ∈ V : (i, j) ∈ E}
La segunda propiedad dice que la distribución de Xi ,solo depende de los vecinos
del vértice i, es decir es Markov, esta distribución que solo depende de los vecinos
es llamada ‘especificación local’ del modelo.
Los modelos MRF son comunes en la estadística espacial o en el procesamiento
de imágenes, se originaron en el trabajo de Besag (1976). Una propiedad de los MRF
conocida como teorema de Hammersley–Clifford, permite representar Xcomo:
eU (x)
P(X = x) = (1.7)
Z
P U (x)
donde U (x) es una función real, llamada ‘Potencial’, y Z = x e es la función
de partición, podemos ver que este modelo incluye los modelos exponenciales. Esta
propiedad es la que nos permite que podamos hacer regresión lineal con este modelo.
Distribuciones del tipo (1.7) son llamadas medidas de Gibbs en honor al Físico
que las describió en el siglo XIX. P
Es posible demostrar que U (x) = c∈C Uc (x) donde C es el conjunto de cliques
o grafos completos Kn contenidos en G. Por ejemplo: una vértice es K1 (el grafo
completo con 0 aristas y un vértice), una arista es K2 (el grafo completo con 1 aristas
y 2 vértices), un triángulo es K3 (el grafo completo con 3 aristas y 3 vértices), etc.
En consecuencia la ecuación (1.7) dice que la distribución de X depende de los
valores de U (x) en estos ‘cliques’.
1. MODELOS DE REGRESIÓN O PREVISIÓN PARA GRAFOS 49

El modelo de MRF que vamos usar es llamado de Modelo Auto-logístico y


corresponde a un potencial que solo depende de los valores en los vértices (K1 ) y
en las aristas (K2 ), además los valores de xi pueden ser solo 1 o 0, esto es:

X X
U (x) = αxi + βxi xj
i∈V (i,j)∈E

Es posible provar que en ese caso la especificación local, del Modelo Auto-
logístico, es:

P
eα+β j∈Ni xj
Pα,β (Xi = 1|XNi = xNi ) = P
1 + eα+β j∈Ni xj

Entonces vale que:

Pα,β (Xi = 1|XNi = xNi ) X


log =α+β xj
Pα,β (Xi = 0|XNi = xNi )
j∈Ni

Por esta propiedad es posible hacer una regresión lineal para las especificaciones
locales.

Ejemplo 1.2. Continuando con el ejemplo de las interacciones con las pro-
teínas, vamos a usar el modelo auto-logístico para predecir los valores de ICSC
en el grafo ppi.CC y luego comparar los resultados con el grafo realmente observa-
do,primero tenemos que hallar α y β, para eso usamos el programa ngspatial de
estadística espacial de R , usando el comando autologistic obtenemos:

m1.mrf <- autologistic(formula1, A=A,control=list(confint="none"))


m1.mrf$coefficients
(Intercept) eta
0.2004949 1.1351942

Luego los coeficientes son α = 0,2 y β = 1,13 una comparación gráfica de los
grafos:
50 4. MODELOS DE REGRESIÓN PARA GRAFOS, MODELOS DINÁMICOS

Figura 4. Grafos ppi.CC y mrf 1

como antes, vamos a verificar cuantos vértices coinciden:

Figura 5. Coincidencias entre los valores de los vértices ppi.CC y mrf 1

El porcentaje de no coincidencias en este caso es del 20 % que es mas bajo que


el modelo de vecinos próximos.
1. MODELOS DE REGRESIÓN O PREVISIÓN PARA GRAFOS 51

> mean(as.numeric(mrf1.pred != V(ppi.CC.gc)$ICSC))


[1] 0.2047244

Finalmente, como en todos los modelos de regresión lineal podemos averiguar


que tanto es explicado por el modelo:
####explicacion del modelo
> assortativity(ppi.CC.gc, X+1, directed=FALSE)
[1] 0.3739348

Es decir, los parámetros del modelo explican 37,39 % de la información conte-


nida en los datos del grafo ppi.CC.gc
1.4. Regresión por Kernels para Grafos. Los modelos de predicción que
usan Kernels son conocidos en las investigaciones sobre modelos de auto-aprendizaje
o Machine Leraning, son regresiones locales, usualmente se usa una red para estimar
los parámetros locales y luego se hace predicción del comportamiento de nueva
información. Un Kernel K = (ki,j ){i,j∈V } es una matriz simétrica semi-definida
positiva, esto es ki,j = kj,i y xt Kx ≥ 0 para todo x ∈ R|V | ; además satisface que
para todo subconjunto de m vértices V (m) = {vi1 , . . . , vim } la restricción de K a
ese conjunto K (m) = (ki,j ){i,j∈V (m) } también es simétrica y semi-definida positiva.
Una propiedad de las matrices semi-definidas positivas (y un Kernel es semi-
definida positiva) es que ellas definen una distancia entre los vectores:
d(x, y) = (x − y)t K(x − y)
esta distancia es una norma pues K es simétrica.
Esto nos permite considerar el problema de regresión local:

mı́n{(X − K (m) α)t (X − K (m) α) + λαt (K (m) )−1 α} (1.8)


α
Para usar esta regresión en un grafo G, vamos a usar el Laplaciano L = D −
A del grafo que es simétrica y semi-definida positiva , donde A es la matriz de
Adyacencia y D = diag(d(i)). Hacemos K = L−1 (esta es una pseudo inversa pues
existen autovalores cero) que también es es simétrica y semi-definida positiva. Vale
la ‘descomposición espectral’:
K = Φt ∆Φt
donde Φ esta formado por los autovectores de K y ∆ = diag(δi ) son los autovalores
de K = L−1 , esto es γi = δi−1 son los autovalores del L el Laplaciano de G ( si
existen autovalores cero,δi := 0):
X
L−1 = f (γi )φt φ
i∈V

con f (x) = 1/x, x 6= 0 y f (x) = 0, x = 0.


Usando esta descomposición podemos mostrar que:
X
αt K −1 α = ht Lh = (h1 − hj )2
(i,j)∈E

donde h = Φα es una combinación linear de los autovectores. luego en la minimi-


zación serán favorecidos vértices que sean adyacentes.
52 4. MODELOS DE REGRESIÓN PARA GRAFOS, MODELOS DINÁMICOS

Ejemplo 1.3. Vamos a usar esta regresión local para predecir los valores de
ICSC en el grafo ppi.CC . Primero veamos la distribución de los f (γi ):

Figura 6. Distribución de los f (γi )

Podemos ver el efecto de seleccionar los autovectores mayores en cada vértice


del grafo:

Figura 7. Autovectores mayores en el radio de cada vértice del grafo

Finalmente el predictor usando kernels en el grafo ppi.CC :


1. MODELOS DE REGRESIÓN O PREVISIÓN PARA GRAFOS 53

Figura 8. Grafos ppi.CC.gc y knl

la comparación entre los dos:

Figura 9. Coincidencias entre ppi.CC.gc y knl


54 4. MODELOS DE REGRESIÓN PARA GRAFOS, MODELOS DINÁMICOS

el porcentaje de errores fue 11 %


> mean(as.numeric(m1.svm.fitted != V(ppi.CC.gc)$ICSC))
[1] 0.1102362

2. Otros Tópicos
Entre innúmeros otros tópicos sobre aplicaciones en grafos aleatorios podría-
mos mencionar el análisis de fenómenos como los grafos de escala-libre, como es el
comportamiento de los diferentes modelos de previsión, en los ejemplos solo hemos
considerado grafos finitos y relativamente pequeños, sin embargo es sabido que a
medida que los grafos aumentan de tamaño fenómenos como transición de fase o
criticalidad son relevantes, esto es, algunas de las características cambian comple-
tamente.
Uno de los tópicos que discutiremos es el efecto del uso de un grafo aleatorio
en la dispersión de alguna enfermedad. Vamos a continuación a discutir el modelo
de infección SIR. En lo que sigue vamos a usar el ejemplo y los códigos de R del
libro de [3] para este modelo.
2.1. Modelos Dinámicos. Uno de los modelos patrón de la Epidemiología
es el proceso SIR, Susceptibles-Infectados-Recuperados. En este proceso ob-
servamos a lo largo del tiempo la evolución de una enfermedad, primero el número
de infectados en la población crece, para luego ir decreciendo a medida que van
quedando menos personas susceptibles de ser infectadas pues se han inmunizado
después de la recuperación, como esta descrito esquemáticamente en el siguiente
gráfico:

Figura 10. Evolución de una infección (rojo), gráfico tomado de [3]

Para construir el proceso, que describe la evolución descrita en el gráfico, con-


sidere una población de N + 1 individuos, y digamos que en cualquier instante
esa población se descompone en tres tipos: Susceptibles (S), Infectados (I) y Re-
cuperados (R), así tendríamos que: N + 1 = NS (t) + NI (t) + NR (t), donde NS (t)
(resp.NI (t) NR (t)) es el número de Susceptibles (resp. Infectados, Recuperados) en
el instante t.
En el instante inicial NI (0) = 1 y NS (0) = N , la evolución subsiguiente es
gobernada por una cadena de Markov a tiempo contínuo, esto es, por un proceso
2. OTROS TÓPICOS 55

estocástico que tiene cambios solo en ciertos tiempos aleatorios, los cambios están
gobernados por las siguientes probabilidades de transición:

P(NS (t + δt) = s − 1, NI (t + δt) = i + 1|NS (t) = s, NI (t) = i) ≈ βsiδt


P(NS (t + δt) = s, NI (t + δt) = i − 1|NS (t) = s, NI (t) = i) ≈ γiδt
P(NS (t + δt) = s, NI (t + δt) = i|NS (t) = s, NI (t) = i) ≈ 1 − (βs + γ)iδt,
(2.9)

δt significa que esta transición ocurre en un tiempo infinitesimal después de t,


β es la tasa de infección y γ la tasa de recuperación. El comportamiento de este
proceso esta descrito en la figura (10).
El problema del modelo así descrito es que las interacciones espaciales no exis-
ten, lo que significa que un infectado puede contagiar a cualquier susceptible, lo
que no es realista. Una manera de mejora el modelo es introducir efectos espaciales
por medio de un grafo G = (E, V ) que describa las relaciones entre los individuos.
Para eso, considere el proceso Xi (t) = 0, 1, 2, con i ∈ V , donde 0 (resp. 1,2) si el
vértice i esta susceptible (resp. infectado, recuperado). El proceso Xi (t) obedece:


βMi (x)δt
 si xi = 0 y x0i = 1
P(X(t + δt) = x0 |X(t) = x) = γδt si xi = 1 y x0i = 2 (2.10)
1 − [βMi (x) + γ]δt si xi = 2 y x0i = 2

donde Mi (x) es el número de vecinos del vértice i que están infectados xj = 1, j ∈


Ni . Finalmente NS (t), NI (t)y NR (t) son la suma de los vértices con valores 0, 1 o
2.
Simulamos este proceso usando el programa SIR de R, con β = 0,5 y γ = 1
y con grafos simulados de los modelos de Erdös-Rényi, Barabasi-Albert (BA) y
Watts-Strogatz (este es otro modelo de escala-libre), para obtener:
56 4. MODELOS DE REGRESIÓN PARA GRAFOS, MODELOS DINÁMICOS

Figura 11. Evolución de una infección en un grafo aleatorio,


ejemplo tomado de [3]

3. Usando R
Usamos en este capitulo los programas de R: sand, ngspatial, kernlab y sir.
1. Figura 1:
###datos
set.seed(42)
library(sand)
data(ppi.CC)
ppi.CC<-upgrade_graph(ppi.CC)
summary(ppi.CC)
### 10 primeros vertices
V(ppi.CC)$ICSC[1:10]
###visualizacion
3. USANDO R 57

V(ppi.CC)[ICSC == 1]$color <- "yellow"


V(ppi.CC)[ICSC == 0]$color <- "blue"
graphics.off()
plot(ppi.CC, vertex.size=5, vertex.label=NA)
2. Figura 2:
####vecinos proximos
clu <- clusters(ppi.CC)
ppi.CC.gc <- induced.subgraph(ppi.CC,
clu$membership==which.max(clu$csize))
nn.ave <- sapply(V(ppi.CC.gc),
function(x) mean(V(ppi.CC.gc)[nei(x)]$ICSC))
class(nn.ave)
###grafo predecido
nn<-ppi.CC.gc
nn$ICSC<-nn.ave
V(nn)[ICSC == 1]$color <- "yellow"
V(nn)[ICSC == 0]$color <- "blue"
graphics.off()
par(mfrow=c(1,2))
plot(ppi.CC, vertex.size=5, vertex.label=NA,xlab="Grafo ppi.CC ")
plot(nn, vertex.size=5, vertex.label=NA, xlab="Grafo ppi.CC.nn ")

3. Figura 3:
#### porcentage de coincidencias
par(mfrow=c(2,1))
hist(nn.ave[V(ppi.CC.gc)$ICSC == 1], col="yellow",
ylim=c(0, 30), xlab="Proporcion de Vecinos con ICSC",
main="Vertices con ICSC")
hist(nn.ave[V(ppi.CC.gc)$ICSC == 0], col="blue",
ylim=c(0, 30), xlab="Proporcion de Vecinos con ICSC",
main="Vertices sin ICSC")

4. Figura 4:
##### campos markovianos
set.seed(42)
library(sand)
data(ppi.CC)
#### grafo G aqui corresponde a ppi.CC
ppi.CC<-upgrade_graph(ppi.CC)
V(ppi.CC)[ICSC == 1]$color <- "yellow"
V(ppi.CC)[ICSC == 0]$color <- "blue"
library(ngspatial)

clu <- clusters(ppi.CC)


ppi.CC.gc <- induced.subgraph(ppi.CC,
clu$membership==which.max(clu$csize))
X <- V(ppi.CC.gc)$ICSC
A <- get.adjacency(ppi.CC.gc, sparse=FALSE)
formula1 <- X ~ 1
#### Modelo autologistico
m1.mrf <- autologistic(formula1, A=A,control=list(confint="none"))
m1.mrf$coefficients
58 4. MODELOS DE REGRESIÓN PARA GRAFOS, MODELOS DINÁMICOS

#####prediccion
mrf1.pred <- as.numeric((m1.mrf$fitted.values > 0.5))
####comparacion
mrf1<-ppi.CC.gc
mrf1$ICSC<-mrf1.pred
V(mrf1)[ICSC == 1]$color <- "yellow"
V(mrf1)[ICSC == 0]$color <- "blue"
graphics.off()
par(mfrow=c(1,2))
plot(ppi.CC, vertex.size=5, vertex.label=NA,xlab="Grafo ppi.CC ")
plot(mrf1, vertex.size=5, vertex.label=NA, xlab="Grafo mrf1 ")

5. Figura 5:
par(mfrow=c(2,1))
hist(mrf1.pred[V(ppi.CC.gc)$ICSC == 1], col="yellow",
ylim=c(0, 30), xlab="Proporcion de Vecinos con ICSC",
main="Vertices con ICSC")
hist(mrf1.pred[V(ppi.CC.gc)$ICSC == 0], col="blue",
ylim=c(0, 30), xlab="Proporcion de Vecinos con ICSC",
main="Vertices sin ICSC")

6. Figura 6:
###### autovectores mayores
e.vec1 <- e.L$vectors[, (nv-1)]
v1.colors <- character(nv)
v1.colors[e.vec1 >= 0] <- "red"
v1.colors[e.vec1 < 0] <- "blue"
v1.size <- 15 * sqrt(abs(e.vec1))
l1 <- layout.fruchterman.reingold(ppi.CC.gc)
#####
e.vec2 <- e.L$vectors[, (nv-2)]
v2.colors <- character(nv)
v2.colors[e.vec2 >= 0] <- "red"
v2.colors[e.vec2 < 0] <- "blue"
v2.size <- 15 * sqrt(abs(e.vec2))
l2 <- layout.fruchterman.reingold(ppi.CC.gc)
plot(ppi.CC.gc, layout=l2, vertex.color=v2.colors,
vertex.size=v2.size, vertex.label=NA, xlab=c("(n-1) mayor autovector"))
#####
e.vec3 <- e.L$vectors[, (nv-3)]
v3.colors <- character(nv)
v3.colors[e.vec3 >= 0] <- "red"
v3.colors[e.vec3 < 0] <- "blue"
v3.size <- 15 * sqrt(abs(e.vec3))
l3 <- layout.fruchterman.reingold(ppi.CC.gc)
#####
graphics.off()
par(mfrow=c(1,3))
plot(ppi.CC.gc, layout=l1, vertex.color=v1.colors,
vertex.size=v1.size, vertex.label=NA, xlab=c("(n) mayor autovector"))
plot(ppi.CC.gc, layout=l2, vertex.color=v2.colors,
3. USANDO R 59

vertex.size=v2.size, vertex.label=NA, xlab=c("(n-1) mayor autovector"))


plot(ppi.CC.gc, layout=l3, vertex.color=v3.colors,
vertex.size=v3.size, vertex.label=NA, xlab=c("(n-2) mayor autovector"))

7. Figura 7:
library(kernlab)
K1.tmp <- e.L$vectors %*% diag(f.e.vals) %*%
t(e.L$vectors)
K1 <- as.kernelMatrix(K1.tmp)
m1.svm <- ksvm(K1, X, type="C-svc")
m1.svm.fitted <- fitted(m1.svm)
####comparación
knl<-ppi.CC.gc
knl$ICSC<-m1.svm.fitted
V(knl)[ICSC == 1]$color <- "yellow"
V(knl)[ICSC == 0]$color <- "blue"
graphics.off()
par(mfrow=c(1,2))
plot(ppi.CC, vertex.size=5, vertex.label=NA,xlab="Grafo ppi.CC ")
plot(knl, vertex.size=5, vertex.label=NA, xlab="Grafo knl ")

8. Figura 8:
par(mfrow=c(2,1))
hist(m1.svm.fitted[V(ppi.CC.gc)$ICSC == 1], col="yellow",
ylim=c(0, 30), xlab="Proporcion de Vecinos con ICSC",
main="Vertices con ICSC")
hist(m1.svm.fitted[V(ppi.CC.gc)$ICSC == 0], col="blue",
ylim=c(0, 30), xlab="Proporcion de Vecinos con ICSC",
main="Vertices sin ICSC")

9. Figura 11:
#########modelo SIR con grafos
####simulacion de grafos
library(sir)
gl <-list()
gl$ba<- barabasi.game(250, m=5, directed=FALSE)
gl$er<- erdos.renyi.game(250, 1250, type=c("gnm"))
gl$ws<- watts.strogatz.game(1, 100, 12, 0.01)
######tasas de infeccion y recuperacion
beta <- 0.5
gamma <- 1
#### numero de simulaciones
ntrials <- 100
######simulacion de SIR
sim <- lapply(gl, sir, beta=beta, gamma=gamma,
no.sim=ntrials)
#####porcentajes de infectados
graphics.off()
par(mfrow=c(3,1))
plot(sim$er, xlab="tiempo", main="Erdos")
plot(sim$ba, color="palegoldenrod",
median_color="gold", quantile_color="gold",
60 4. MODELOS DE REGRESIÓN PARA GRAFOS, MODELOS DINÁMICOS

xlab="tiempo", main="Barabasi")
plot(sim$ws, color="pink", median_color="red",
quantile_color="red",xlab="tiempo",
main="Watts-Strogatz")
Referencias

[1] S. Chatterjee and P. Diaconis. Estimating and understanding exponential ran-


dom graph models. Ann. Statist., 41(5):2428–2461, 2013.
[2] R. Diestel. Graph theory. Graduate Texts in Mathematics. Springer, 3rd edition,
2006.
[3] E. D. Kolaczyk. Statistical Analysis of Network Data: Methods and Models.
Springer Series in Statistics. Springer, 2009.

61

Anda mungkin juga menyukai