13 déc. 2009
Contagion, vaccins, graphes et seuils
Par Zozoped le dimanche, décembre 13 2009, 13:33 - Lien permanent
Allez, aujourd’hui encore je commente l’actualité. Cette fois-ci, je vais donner quelques notions mathématiques qui peuvent expliquer des phénomènes qu’on voit tous les jours.
J’ai bien rigolé en lisant dans les journaux la transition entre les centres de vaccinations déserts et la foire d’empoigne pour se faire vacciner. Ca s’est passé très vite : avant qu’on ne s’en rende compte, tout le monde s’est convaincu du fait qu’il fallait se faire vacciner, et se faire vacciner aujourd’hui.
Je ne parlerai pas ici de la validité du vaccin, des polémiques sur la campagne de communication, ni du syndrome de Guillain Barré. Je sais beaucoup de choses sur tout mais ai des compétences médicinales très limitées. Par contre, une chose est certaine : cet effet du "tout au rien" était tout à fait prévisible.
Certains peuvent prétendre que la "montée en puissance" était prévue, que tout le monde y passera, etc. Certainement. Mais on ne parle pas ici d’un phénomène transitoire doux, d’un afflux constant aux centres de vaccination. On n’est, au contraire, pas loin d’un effet de panique (il faut se faire vacciner - est-ce qu’on en aura assez - si j’attends mon tour je risque de mourir), assez proche de ce qu’on peut voir aux abords des trains les jours de grève.
J’illustre ceci dans les courbes suivantes. La première (gauche) montre quelle serait la situation idéale : les gens se présentent aux centres de vaccination en flux constant, remplissant exactement la capacité de traitement et de livraison de vaccins des centres. La seconde (droite) montre ce qui s’est réellement déroulé : une saturation brutale des moyens déployés.


Pour expliquer ceci, je vous propose la modélisation suivante. On va représenter l’ensemble de la population par un graphe. Pour être formel, un graphe est en ensemble fini
- l’ensemble des nœuds - auquel on rajoute un ensemble
inclus dans
- c’est à dire un ensemble de couples de nœuds. On dira que deux nœuds sont reliés si il existe une arête entre les deux. De manière informelle, un graphe, c’est un ensemble de points qui ne sont pas nécessairement reliés deux à deux.
Chaque individu sera représenté par un nœud du graphe; lorsque deux personnes ont des interactions suffisantes, on dessine une arête entre leurs nœuds respectifs. Ce graphe est assez dense, en fait. On peut définir plein de propriétés rigolotes dessus. Exemple : la connexité. A partir d’un nœud donné, existe-t-il un chemin vers tous les du graphe? ’’(en fait, ça signifie que le graphe est étoilé; mais c’est équivalent dans notre cas)
’’ Si non, combien de composantes connexes peut-on extraire de ce graphe? Les habitants d’une île isolée du reste du monde feraient une composante connexe, s’il en restait. Les ermites forment eux aussi des îlots. On peut aussi se poser d’autres questions, comme "combien de personne dois-je corrompre pour atteindre une personne donnée?" - et poser ainsi la question du diamètre du graphe, c’est à dire le plus longs des plus courts chemins entre deux points donnés. Mais je m’éloigne du sujet initial.
Si on rajoute maintenant à notre graphe une propriété
, on peut colorier tous les nœuds du graphe en utilisant
. Par exemple,
peut être le sexe (disons, pour éviter toute polémique oisive et argument foireux,
est vrai si la personne dénotée par
est née avec un chromosome Y dans une majorité de ses cellules). Je vais faire plus subtil, et indexer une propriété
par une variable réelle
(élément de 0,1). Par exemple,
peut être : la personne dénotée par
accepterait de donner au moins une proportion
de sa richesse pour résoudre le problème de la faim dans le monde. On voit que
couvre l’ensemble du graphe, alors que
ne contient qu’une proportion assez faible des nœuds.
L’étape supplémentaire est de rendre la propriété
contaminante, avec un facteur de contamination qui dépend de
. Ce modèle couvre bien la diffusion d’épidémies. Deux nœuds reliés par une arête ont la probabilité
de se transmettre un virus, et la propriété
peut alors être vraie si un jour, la personne dénotée par
a été contaminée.
Ce que les mathématiques ont montré, c’est que dans ce modèle là, quelle que soit la propriété, quel que soit le graphe (connexe), partant d’une source (un nœud du graphe qui a la propriété à vrai), deux comportements existent:
- Soit le nombre de nœuds vérifiant la propriété est très faible,
- Soit le nombre de nœuds ne vérifiant pas la propriété est très faible.
(très faible s’entend en proportion)
Le comportement dépendra en fait essentiellement de la probabilité
, et du nombre moyen des voisins de nœuds du graphe. Cela se comprend bien : si (par exemple) un lien est contaminant avec une chance sur deux, et que chaque nœud est connecté à plus de deux éléments, chaque personne en contaminera assez probablement une autre. Ceci n’explique par contre pas l’effet de seuil. Pour ceux que ça intéresse, je propose les quelques éléments mathématiques suivants pour comprendre.
L’événement
qui nous intéresse est un booléen associé à chaque nœud, et qui répond à la question "Est-ce que ce nœud souhaite se faire vacciner?". Il est associé à la probabilité
, et nait uniquement de la contagion d’un nœud adjacent. L’événement
est croissant, c’est à dire qu’un nœud contaminé a nécessairement un voisin qui l’a contaminé, à moins que ce nœud ne soit la source même. On note
le nombre de nœuds contaminés; il apparait, par l’identité de Russo, que
. Explicitons un peu cette formule en expliquant les différents termes.
est, pour un nœud
appartenant à l’ensemble (ou évènement, c’est la même chose) $E$, le nombre de manières de sortir de
. En pratique, sur un graphe, pour
un nœud du graphe vérifiant la propriété
,
est le nombre de voisins de
n’ayant pas la propriété
(par exemple, le nombre de mes connaissances ne souhaitant pas se faire vacciner).
L’écriture sous forme d’intégrale
est une manière un peu savante et pompeuse d’écrire que ce qui se passe à l’intérieur de l’événement
(la variation du nombre de nœuds composant l’événement en fonction du paramètre
) ne dépend que de ce qui se passe "au bord" de l’événement. Normal, me direz vous, puisque la propriété est croissante [1], et donc, ce qui se passe "à l’intérieur" de la propriété ne change rien à sa mesure.
Pour faire un analogue peut être plus simple d’accès, pensez à une baignoire[2] dont le volume d’eau dépend uniquement de ce qui se passe à sa frontière : l’arrivée d’eau du robinet, l’écoulement d’eau de l’évacuation, l’évaporation de l’eau à la surface. Si vous y tenez, on peut ajouter les fuites de la baignore. Par contre, je n’inclurai pas la variation de température de l’eau qui modifie instantanément son volume, tout simplement parce que le déséquilibre thermodynamique dészintègre la propriété de monotonie du volume de l’eau! Mais je m’égare.
Cette identité de Margulis Russo est particulièrement intéressante lorsqu’on est capable de borner de manière raisonnable et intéressante le nombre de points sensibles
. Si celui-ci est toujours plus grand qu’une certaine valeur, dans ce cas, on a borné inférieurement la croissance de la propriété par quelque chose qui ne dépend plus que de la surface de celle-ci. Sur un ensemble réel, disons en trois dimensions, la surface est proportionnelle au rayon au carré, c’est à dire au volume à la puissance deux-tiers. Dire que la variation du volume est proportionnelle au volume à la puissance deux-tiers signifie (simple intégration d’une équation différentielle) que le volume croit de manière exponentielle en base deux-tiers, c’est à dire de manière exponentielle.
Le même phénomène se produit sur un ensemble fini. La croissance n’est pas exponentielle, puisque la nombre de nœuds affectés par la propriété est borné; par contre, la croissance se passe très rapidement, passé un certain seuil.
Ceci explique les courbes présentées plus tôt.
Avant de conclure cet article déjà trop long, j’aimerais signaler qu’une propriété comme "est infecté par le virus de la grippe" n’est pas monotone. En effet, on en guérit - aux dernières nouvelles. On ne peut donc pas dériver une telle identité, et l’intégrer, pour dégager le seuil de contagion de la maladie qui fera que tout le monde est malade. Ce n’est pas le cas d’autres maladies qu’on ne peut pas encore guérir - par exemple, la séropositivité. Pour ce dernier cas, la seule solution au problème, dans ce modèle, est de rompre la propriété connexe du graphe. Comprenne qui pourra.
Pour revenir sur la grippe, on peut par contre travailler sur une propriété qui s’appellerait "a été infecté par le virus de la grippe depuis sa création". Cette courbe suivra inévitablement l’effet de seuil décrit plus haut, si la contagion est croissante - c’est à dire si l’effet du vaccin n’est pas suffisant. On peut par contre étudier une autre courbe qui a pour valeur
. Celle-ci décrit l’ensemble des personnes pouvant être touchées par le virus avec le temps. Elle atteindra indubitablement un maximum avant de retomher vers zéro. C’est cette courbe qui est étudiée par les spécialistes comme les scientifiques de l’OMS ou de l’INVS (Institut National de Veille Sanitaire). Enfin, j’espère.
Je trouve ça ironique de constater que l’effet d’affluence aux centres de vaccination aurait pu être prédit par un modèle bien plus simple que celui qui prédit le nombre de personnes infectées à un moment donné...
Les sources des figures obtenues par gnuplot sont disponibles en pièce jointe. La seconde courbe est en fait une courbe de seuil qui apparait naturellement dans l’intégration des équations présentées, avec une connectivité de 10 éléments par nœud dans le graphe.
