SIR модел


Еден од најлесните начини да се моделира ваква болест (вирус) што доста често се користи во епидемолошки анализи е compartmental модел; минималниот SIR-модел [1]. Ваквиот модел ја дели популацијата на неколку оддели, на пример:

  • Suseptible - подлежени на вирусот (што сеуште може да се инфицираат, „здрави“)

  • Infected - заразени

  • Recovered - оздравени (што се имаат инфицирано, не можат да се инфцираат потворно)

Пример Сценарио
Доколку имаме популација од \(N=1000\) (1000 жители) и со сигурност знаеме дека 400 од нив се инфирицрани во време \(t\) (пр. \(t=7\) дена откатко е започната епидемијата на болеста). Ова се обележува со \(S(7)=400\). Овој SIR-модел ни дозволува, само со внесување на неколку иницијални параметри, да ги добиеме сите вредности за функциите:

  • \(S(t)\) - здрави во време \(t\) од започнување на епидемијата

  • \(I(t)\) - инфицирани во време \(t\) од започнување на епидемијата

  • \(R(t)\) - оздравени во време \(t\) од започнување на епидемијата

Објаснување на дополнителните параметри

Имаме нова заразна болест, болест X. За оваа болест, веројатнста заразена личност да ја пренесе болеста на здрава личност е 20%. Просечниот број луѓе со кои оваа личност контактира е 5 личности на ден. Односно, заразена личност се среќава со 5 личности и ја пренесува болеста на секој еден од нив со веројатност од 20%. Очекуваме оваа личност да заразува 1 личност на ден (20% \(\cdot\) 5 = 1). Ова е параметарот:

\(\beta\) : очекуваниот број на луѓе на кои заразена личност ја пренесува болеста

Сега можеме да заклучиме дека секоја личност во различен период се заразува, меѓутоа колку денови ја чува болеста и ја шири е параметар од нужно значење за моделирање на оваа болест. Ова е параметарот:

\(D\) : бројот на денови што личноста ја чува во себе и може да ја шири болеста

Доколку овој параметар \(D=7\), заразена личност шета наоколу во период од 7 дена ширејќи ја заразната болест, и инфицира 1 друга личност на ден (бидејќи \(\beta =1\)). Значи окечуваме заразена личност да ја пренесе болеста на \(1\cdot7\) (1 личност на ден во период од 7 дена) \(=7\) други луѓе. Ова е основниот репродусибилен број (basic reproduction number) претставен со интиутивна формула:

\(R_{0}=\beta \cdot D\) : вкупниот број на луѓе кои една личност заразува

Последниот параметар кој ќе го користеме во моделирање на заразна болест е \(\gamma\), кој е реципрочната вредност на \(D\). Ако \(D\) е бројот на заразени личности во ден, ова е бројот на заразени што оздравуваат во ден и се преставува со формулата:

\(\gamma= \frac{1}{D}\) : рата на заздравување, број на заразени личности што заздравуваат на ден

Сите параметри со своите соодветни дефиниции

  • \(N\): вкупна популација

  • \(S(t)\): здрави во време \(t\) од започнување на епидемијата

  • \(I(t)\): инфицирани во време \(t\) од започнување на епидемијата

  • \(R(t)\): оздравени во време \(t\) од започнување на епидемијата

  • \(\beta\): очекуваниот број на луѓе на кои заразена личност ја пренесува болеста

  • \(D\): бројот на денови што личноста ја чува во себе и може да ја шири болеста

  • \(\gamma\): бројот на заразени личности што заздравуваат на ден (\(\gamma= \frac{1}{D}\))

  • \(R_{0}\): вкупниот број на луѓе кој една личност заразува (\(R_{0}=\beta \cdot D\))

Сега сакаме бројот на инфицирани, подлежени и оздравени за сите денови, само од параметрите \(\beta\), \(\gamma\) и \(N\). Сега, тешко е да се добие директна формула за \(S(t)\), \(I(t)\) и \(R(t)\). Меѓутоа, далеку поедноставно е да се опише дневната промена од \(S\), \(I\) и \(R\), што е бројот на подлежни/инфицирани/оздравени промени од конкретните податоци.

Повторно, ќе ги образложиме формулите преку пример:

Пример Сценарио
Моментално сме на ден t по започнување на епидемијата на болест X. Повторно нека, очекуваниот број на луѓе што една инфицирана личност може да ги зарази е 1 (\(\beta=1\)) и бројот на денови што една инфицирана личност може да го шири вирусот е 7 (\(\gamma=1/7\) и \(D=7\)).

Да речеме дека на ден t, вкупната популација е 100 (\(N=100\)), 60 луѓе се заразени (\(I(t)=60\)) и 30 луѓе се сеуште подлежни (односно \(S(t)=30\) и \(R(t)=100-60-30=10\)). Имајќи се во предвид како се менуваат \(S(t)\), \(I(t)\) и \(R(t)\) наредниот ден?

Имаме 60 заразени луѓе. Секој еден од нив заразува 1 личност на ден (тоа е параметарот \(\beta\)). Но, само 30%=30/100 од луѓето што тие заразени личности ги среќаваат се сеуште подлежни и може да бидат инфицирани (тоа е вредноста добиена од \(\frac{S(t)}{N}\)). Тие инфицираат 60\(\cdot\)1\(\cdot\)30/100=18 луѓе (60 заразени што на просек заразуваат 1 друг човек на ден, меѓутоа само 30 од вкупно 100 луѓе сеуште се подлежни на вирусот, така што тие не заразуваат 60\(\cdot\)1 луѓе, туку само тие 30%, односно 60\(\cdot\)1\(\cdot\)30/100=18 луѓе). Заклучно, 18 луѓе од тие што се подлежни на вирусот се заразуваат, од каде \(S(t)\) се менува минус 18. Вклучувајќи ги сите параметри, доаѓаме до првата формула:

Промената на \(S(t)\) до наредниот ден = \(-\beta\cdot I(t)\cdot \frac{S(t)}{N}\)

Од калкулус сме запознаени дека терминот временска промена на функцијата е всушноост извод од функција (derivative), \(S(t)\) = изводот \(S'(t) = \frac{dS}{dt}\). Откако ги изведуваме и добиваме сите изводи \(S'(t), I'(t)\) и \(R'(t)\), можеме да ги пресметаме вредностите за \(S(t), I(t), R(t)\) за секој ден.

\(S'(t)=-\beta\cdot I(t) \cdot \frac{S(t)}{N}\)

Сега, како оваа бројка на заразени се менува? Тоа е едноставно: Има некои нови заразени, бројка која сега видовме како се менува, т.е. точниот број што заминуваат од \(S(t)\) и се додаваат во \(I(t)\). Повторно во сценариото, имаме 18 заразени и знаеме со сигурност дека формулата ќе биде слична на: \(I'(t)=+\beta\cdot I(t)\cdot \frac{S(t)}{N}\) (можеме да го отфрлиме плусот “+”, го користиме за да се покаже дека имаме онолкава добивка колку што \(S(t)\) има загуба, затоа само го менуваме знакот).

Останува: бројот на луѓе кои оздравуваат. За ова го имаме параметарот \(\gamma\), т.е. делот од инфицирани што заздравува дневно, токму она што ни треба.

Имаме 60 заразени и \(\gamma = 1/3\), односно една третина од 60 заздравува. Тоа е \(1/3 \cdot 60 = 20\). Конечно ја добиваме и следниот извод:

\(I'(t)=\beta\cdot I(t) \cdot \frac{S(t)}{N} - \gamma \cdot I(t)\)

Првиот дел од изводот е бројот на ново-заразени од подлежни, вториот дел е бројот на луѓе кои оздравуваат.

Конечно доаѓаме до последната формула: промената на заздравени луѓе. Што повторно брзо се пресметува, точно оние 20 кои ги пресметавме, нема луѓе кои заминуваат од групата на заздравени луѓе. Откако ќе заздрават, остануваат имуни на болеста:

\(R'(t)=\gamma \cdot I(t)\)

Диференцијална равенка

Ги изведовме и објаснивме сите формули кои ни се потребни за да едноставно да моделираме една заразна болест. Нивниот најчест запис:

\[\begin{align*} \frac{dS}{dt} &= -\beta \cdot I \cdot \frac{S}{N} \\ \frac{dI}{dt} &= \beta \cdot I \cdot \frac{S}{N} - \gamma \cdot I \\ \frac{dR}{dt} &= \gamma \cdot I \end{align*}\]

Ваквите равенки се нарекуваат едноставни диференцијални равенки (Ordinary Differential Equations - ODEs). Со користење на истите можеме да ја опишеме промената во бројот на подлежни, заразени како и оздравени. За среќа, директно од овие равенки можеме да ги добиеме: \(S(t), I(t), R(t)\). Дополнително ни олеснува тоа што со минимално познавање на изводи и Python можеме да ги решаваме равенките/моделираме податоците многу брзо.