Cvičení 13: Modely šíření

Z přednášky

Komplexní sítě můžeme zkoumat i z pohledu různých procesů, které na nich probíhají, speciálně nás budou zajímat procesy šíření. V síti se můžou šířit viry (ať už biologické, nebo počítačové) anebo třeba informace. Dynamika šíření v sítích je velmi zajímavá z praktického pohledu. Dále se budeme zabývat modelem šíření epidemie.

Rozlišujeme následující stavy osob:

SI model

Klasický epidemiologický přístup, který předpokládá pouze stavy S a I. Předpokládá plně homogenní mísení společnosti, neboli každá dvojice jedinců má stejnou šanci se potkat.

Máme populaci velikosti $n$. Nechť $S(t)$ značí počet zranitelných jedinců (susceptible person, SP) a $I(t)$ značí počet nakažených jedinců (infected person, IP) v čase $t$.

Počáteční podmínky:

Co když $I(0) = 1$, jak se bude infekce šířit?

Označíme $\beta$ pravděpodobnost přenosu infekce $\text{IP} \rightarrow \text{SP}$ a $\langle k \rangle$ počet kontaktů typického jedince.

Pozorování:

Zavedeme $$s(t) = \frac{S(t)}{n}$$ a $$i(t) = \frac{I(t)}{n}.$$ Vynecháním časové závislosti získáváme standardní formu SI modelu $$\frac{\textrm{d}i}{\textrm{d}t} = \beta\langle k \rangle si = \beta\langle k \rangle i(1 - i).$$ Jelikož $s + i = 1$, nepotřebujeme rovnici pro $s$.

Úpravami získáváme řešení $$i = \frac{i_0 e^{\beta\langle k \rangle t}}{1 - i_0 + i_0e^{\beta\langle k \rangle t}}.$$

Charakteristický čas je čas kdy počet SP dosáhne $1/e ~ 40\%$ populace. Značíme $\tau = \frac{1}\beta\langle k \rangle$.

Tento model je nerealistický kvůli nezohledňování přírozené imunity získané poražením nemoci.

SIR model

Přidává stav uzdravený (recovered) (R): $$\text{SP} \rightarrow \text{IP} \rightarrow \text{RP}$$ Dalším novým parametrem je $\gamma$, neboli časový interval $\tau$ po který IP zůstává nakažený. $$\text{P}[\text{uzdravení v časovém intervalu $\delta\tau$}] = \gamma \delta\tau$$ což implikuje $$\text{P}[\text{jedinec není uzdraven po uplynutí $\delta\tau$}] = 1- \gamma \delta\tau.$$ Dále $$\text{P}[\text{IP je stále nakažený po celkovém čase $\tau$}] = \lim_{\delta\tau\rightarrow 0} (1- \gamma \delta\tau)^{\frac{\tau}{\delta\tau}} = e^{-\gamma\tau}.$$

$$\text{P}[\text{IP zůstává nakažený po čas $\tau$ a uzdraví se v čase $\tau +\mathrm{d}\tau$}] = \gamma e^{-\gamma\tau}\mathrm{d}\tau,$$

což je nerealistické, protože u nemocí bývá doba potřebná k uzdravení téměř konstantní pouze s několika vybočujícími hodnotami.

SIR model můžeme popsat následující soustavou diferenciálních rovnic: $$\frac{\textrm{d}s}{\textrm{d}t} = -\beta si$$ $$\frac{\textrm{d}i}{\textrm{d}t} = \beta si - \gamma i$$ $$\frac{\textrm{d}r}{\textrm{d}t} = \gamma i$$

Dá se odvodit, že celkový počet nakažených je $$r = 1 - s_0 e^{\beta \frac{r}{\gamma}},$$ kde $s_0$ je počet nakažených na začátku. Pro konstantní počet nakažených a $n$ jdoucí k nekonečnu dostáváme $$r = 1 - e^{\beta \frac{r}{\gamma}}.$$ Zajímavostí je, že to odpovídá velikosti velké komponenty v Erdös-Rényi náhodném grafu s pravděpodobností hrany $\frac{\beta}{\gamma}$. Přechod mezi exponenciálním šířením viru a jeho postupným vymřením je okolo $\beta = \gamma$.

Reprodukční číslo $R_0$ udává, kolik lidí v průměru nakazí jeden nemocný. Za čas $\tau$ jeden nakažený (IP) v průměru potká $\beta \tau$ dalších osob a v modelu předpokládáme, že jsou tyto osoby zranitelné (SP) (nerealistické). $$\text{P}[\text{IP zůstává nakažlivý po čas $\tau$ a uzdraví se v čase $\tau +\mathrm{d}\tau$}] = \gamma e^{-\gamma\tau}\mathrm{d}\tau$$ Průměr přes distribuci všech $\tau$ dává $$R_0 = \beta\gamma \int_0^{\infty} \tau e^{-\gamma\tau}\mathrm{d}\tau.$$

SIS model

rozšiřuje SI model o možnost reinfekce, tj. možné přechody mezi stavy jsou $\text{SP} \rightarrow \text{IP} \rightarrow \text{SP}$ a přechod $\text{IP} \rightarrow \text{SP}$ reprezentuje uzdravení. Nepředpokládáme získání imunity.

SIRS model

rozšiřuje SIR model o možnost reinfekce po nějaké době, což odpovídá stavu, kdy imunita je pouze omezená či dočasná. Zavádí nový parametr $\delta$ odpovídající průměrné rychlosti ztráty imunity. Přechody mezi stavy jsou $\text{SP} \rightarrow \text{IP} \rightarrow \text{RP} \rightarrow \text{SP}$. SIRS model je určený následujícími rovnicemi $$\frac{\textrm{d}s}{\textrm{d}t} = \delta r - \beta si$$ $$\frac{\textrm{d}i}{\textrm{d}t} = \beta si - \gamma i$$ $$\frac{\textrm{d}r}{\textrm{d}t} = \gamma i - \delta r$$ Poznámka: Není řešitelné analyticky, používají se numerické metody.

Epidemie na sítích

modely dosud předpokládaly homogenní šíření, které nezachycuje reálný stav, kdy máme kontakty především s lidmi, které známe. Jelikož síť lidských kontaktů má scale-free vlastnost, není odhad pomocí průměrného počtu známých dostatečně přesný. Vrcholy stejného stupně považujeme za ekvivalentní. Značíme $I_k$ počet infikovaných se stupněm $k$ a $N_k$ počet všech vrcholů stupně $k$. Potom $$ i_k = \frac{I_k}{N_k}.$$ Celkový počet nakažených odpovídá $i = \sum_k p_k i_k$.

Funkce hustoty udává zlomek nakažených mezi sousedy zranitelného vrcholu. Záleží na typu sítě:

SI model

Pro $k_{\max}$ vrcholů máme systém rovnic $$\frac{\textrm{d}i_k}{\textrm{d}t} = \beta (1 - i_k) k \Theta_k \quad \forall k \in \{1, \dots, k_{\max}\}.$$ Rovnice jsou podobné jako ve standardním SI modelu, jen $\langle k \rangle$ nahrazujeme za $k$ a místo zlomku nakažených $i$ používáme funkci hustoty $\Theta_k$. Když nepředpokládáme žádnou korelaci mezi hranami a stupni vrcholů, neboli $\text{P}[\text{hrana spojuje vrchol $v$ s vrcholem stupně $k$}]$ je nezávislá na $k$, můžeme odvodit, že $$\Theta(t) = Ce^{t/\tau},$$ kde $$\tau = \frac{\langle k \rangle}{\beta(\langle k^2 \rangle - \langle k \rangle)}.$$ Když uvážíme úvodní podmínku, dostáváme $$\Theta(t) = i_0\frac{\langle k \rangle - 1}{\langle k \rangle} e^{t/\tau}$$ a při substituci do $$\frac{\textrm{d}i_k}{\textrm{d}t} = \beta (1 - i_k) k \Theta_k$$ dostáváme $$\frac{\textrm{d}i_k}{\textrm{d}t} \approx \beta ki_0 \frac{\langle k \rangle - 1}{\langle k \rangle}e^{t/\tau^{\text{SI}}},$$ kde $\tau^{\text{SI}} = \frac{\langle k \rangle}{\beta(\langle k^2 \rangle - \langle k \rangle)}$ je charakteristický čas pro šíření patogenu.

Modelování diferenciálních rovnic

Pro modelování systémů diferenciálních rovnic můžeme použít například knihovnu scipy a její modul integrate. K numerickému řešení soustav diferenciálních rovnic můžeme konkrétně použít funkci solve_ivp, které je potřeba předat tři základní parametry:

Ukážeme si použití funkce na příkladu exponenciálního poklesu. Pro vytvoření časového intervalu s vybraně nahuštěnými mezihodnotami, který se bude hodit pro vykreslení výsledku, využijeme funkci linspace z knihovny numpy: https://numpy.org/doc/stable/reference/generated/numpy.linspace.html

Úlohy

Úloha 1: Simulujte situaci, kdy máme populaci velikosti 2 500 000 lidí, na začátku je 100 nakažených, průměrný nakažený má 40 kontaktů denně a nakažlivost nemoci je 1.5%. Doba, po kterou je nakažený člověk nakažlivý trvá 4 dny. Po prodělání nemoci získá osoba imunitu na týden. Vykreslete křivky počtu zranitelných, nakažlivých (a uzdravených) v modelech SI, SIR a SIRS.

Úloha 2: Na chlapecké internátní škole se rozšířila chřipka. Na internátě bydlelo 763 chlapců a v průběhu dvoutýdenní epidemie byly počty nakažených následující: {3, 7, 25, 72, 222, 282, 256, 233, 189, 123, 70, 25, 11, 4}
Postavte SIR model, který bude co nejpřesněji simulovat průběh této epidemie. Jaké jsou jeho parametry? (Na začátku udělejte nějaký předběžný odhad a postupně jej upravujte, abyste se přiblížili k zadaným datům.)