d’un ensemble \(V=\{1,\dots,n\}\) de
noeuds ou sommets (vertices) qui
représentent les individus ou entités qui interagissent entre eux,
et
d’un ensemble \(E\) d’
arêtes (edges) qui indiquent la présence d’une
interaction ou connexion entre deux noeuds: \(\{i,j\}\in E\) s’il y a une arête entre les
noeuds \(i\) et \(j\) dans \(G\).
Représentations équivalentes d’un graphe
Graphe visualisé
Ensemble de noeuds et d’arêtes
\(G=(V,E)\) avec ensemble de noeuds
\(V=\{1,\dots,5\}\) et ensemble
d’arêtes \(E=\{(1,3), (2,3),
(2,4),(3,4)\}\).
Choisir un nombre de noeuds\(n\) et une probabilité de
connexion\(p\)
Les arêtes du graphes sont tirées au hasard et indépendamment
avec probabilité \(p\):
Les entrées \(A_{i,j}\) de la
matrice d’adjacence sont des variables aléatoires indépendantes
de loi de Bernoulli de paramètre \(p\): \[
A_{i,j}\sim\text{Bernoulli}(p), \quad \text{pour tout }
i>j \] et on pose \(A_{i,j}=A_{j,i}\) pour tout \(i<j\).
rgraphER <- function(n, p){
A <- matrix(0, n, n) # matrice d'adjacence à remplir
N <- n*(n-1)/2 # nb de paires de noeuds
connexions <- rbinom(N, 1, p) # jouer N fois à pile/face avec proba p
A[lower.tri(A)] <- connexions # remplir la matrice d'adjacence
A <- A + t(A) # symétriser la matrice
return(A)
}
rsbm <- function(n, param){
K <- length(param$pi)
Z <- sample(1:K, n, replace=TRUE, prob=param$pi)
# adjacency matrix
A <- matrix(0, n, n)
for (i in 1:(n-1)){
A[i, (i+1):n] <- A[(i+1):n, i] <- rbinom(n-i, 1, param$gamma[Z[i],Z[(i+1):n]])
}
return(list(adj=A, Z=Z))
}
Comment modéliser des réseaux sociaux ?
Tabea Rebafka
Définition d’un graphe
Un graphe \(G=(V,E)\) est composé
d’un ensemble \(V=\{1,\dots,n\}\) de noeuds ou sommets (vertices) qui représentent les individus ou entités qui interagissent entre eux, et
d’un ensemble \(E\) d’ arêtes (edges) qui indiquent la présence d’une interaction ou connexion entre deux noeuds: \(\{i,j\}\in E\) s’il y a une arête entre les noeuds \(i\) et \(j\) dans \(G\).
Représentations équivalentes d’un graphe
Graphe visualisé
Ensemble de noeuds et d’arêtes
\(G=(V,E)\) avec ensemble de noeuds \(V=\{1,\dots,5\}\) et ensemble d’arêtes \(E=\{(1,3), (2,3), (2,4),(3,4)\}\).
Matrice d’adjacence
\[A=\begin{pmatrix} 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 1 & 0\\ 1 & 1 & 0 & 1 & 0\\ 0 & 1 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0\\ \end{pmatrix} \]
Modèle d’Erdös-Rényi ou \(G(n,p)\)
Définition
Choisir un nombre de noeuds \(n\) et une probabilité de connexion \(p\)
Les arêtes du graphes sont tirées au hasard et indépendamment avec probabilité \(p\):
Les entrées \(A_{i,j}\) de la matrice d’adjacence sont des variables aléatoires indépendantes de loi de Bernoulli de paramètre \(p\): \[ A_{i,j}\sim\text{Bernoulli}(p), \quad \text{pour tout } i>j \] et on pose \(A_{i,j}=A_{j,i}\) pour tout \(i<j\).
En pratique
Choisir un nombre de noeuds :
Choisir une probabilité de connexion :
Créer une matrice d’adjacence “vide” :
Nombre de toutes les paires de noeuds :
Tier
N
réalisations d’une loi de Bernoulli de paramètrep
(= jouerN
fois à pile/face avec probabilitép
) :Remplir la matrice d’adjacence :
… et la symétriser :
Exemple d’un réseau social
Charger un jeu de données contenant les connexions d’élèves d’une école primaire durant 2 jours :
La matrice d’adjacence s’appelle
primary
Taille de la matrice d’adjacence :
Visualiser le réseau :
Degrés de noeuds
Le degré du noeud \(i\) est le nombre de ses connexions :
\[ d_i = \sum_{j=1}^n A_{i,j} \]
Densité d’arêtes
La densité d’arêtes d’un graphe est définie par
\(\alpha= \frac{\text{nb d'arêtes}}{\text{nb de paires de noeuds}}= \frac2{n(n-1)}\sum_{i<j}A_{i,j}\)
Densité d’un graphe d’Erdös-Rényi
Simuler un graphe :
Calculer sa densité :
Dans un graphe Erdös-Rényi \(\alpha\approx\)
p
.Plus
n
est grand, plus \(\alpha\) est proche dep
.D’après la loi des grands nombres, on a même :
\[ \alpha_n \stackrel{p.s.}{\longrightarrow} p \quad \text{ lorsque } n\to\infty. \]
Densité du réseau social
Densité du graphe social :
Simuler un graphe d’Erdös-Rényi de même densité :
Calculons les degrés \(d_i\) de noeuds pour ce graphe :
Comparons-les au réseau social :
Conclusion : il est très peu probable que ce réseau social a été généré par un modèle Erdös-Rényi.
Nombre de triangles
Pour chaque noeud, nombre de triangles auxquel appartient le noeud :
Nombre moyen de triangles auxquels appartient un noeud du graphe :
Dans un graphe d’Erdös-Rényi :
Modèle à blocs stochastiques ou SBM
extension du modèle d’Erdös-Rényi
garder la simplicité des variables Bernoulli indépendantes
mais varier les probabilités de connexion
en fonction de la “personnalité” des noeuds qui interagissent
Définition
Introduire pour chaque noeud \(i\) une étiquette \(Z_i\) à valeur dans \(\{1,…,K\}\) :
\(Z_i\), \(i=1,…,n\) i.i.d. avec \(\mathbb P(Z_i=k)=\pi_k\) pour \(k=1,\dots,K\)
\(\pi_1,…,\pi_K\) sont les proportions des blocs
Conditionnellement aux \(Z_1,…,Z_n\), les arêtes \(A_{i,j}, i<j\) sont indépendantes de loi Bernoulli :
Si \(Z_i=k, Z_j=l\) alors \(A_{i,j} \sim\text{Bernoulli}(p_{k,l})\)
Les \(p_{k,l}\) sont les probabilités de connexions entre les différents blocs
En pratique
Fitter un modèle SBM aux données
primary
(pour cela il faut utiliser un algorithme sophisitiqué) :Nombre de blocs \(K\) choisi par l’algorithme :
Répartition des élèves dans les blocs :
Comparer le clustering à la répartition des élèves dans les 10 classes :
Simuler un SBM avec les mêmes paramètres