Das SIR-Modell mit Covid

Was ist ein SIR Modell?

Bei mathematischer Modellierung geht es darum, eine schematische, häufig grob vereinfachte, Abstraktion eines Sachverhalts vorzunehmen. Im Beispiel von Epidemien, um die es heute gehen soll, muss eine Gruppe von Menschen in unterschiedliche Klassen aufgeteilt werden. Eine einfache Aufteilung geht beispielsweise so, dass man die Bevölkerung in Infizierte , Gesunde , und Genesene einteilt. Jedes Individuum gehört genau zu einer Gruppe. Im Englischen spricht man von Susceptibles, Infected und Recovered; kurz eben SIR. Im einfachsten Fall geht man davon aus, dass die Gesamtheit konstant bleibt und dass einmal Infected, die genesen, immun werden.

Vermutlich neu für die meisten von euch ist nun, dass es hier nicht um eine Momentaufnahme geht, sondern dass wir Funktionen als Lösungen eines dynamischen Systems suchen. Wir möchten zum Beispiel voraussagen können, wie viele zu einem Zeitpunkt tt infiziert sein werden, oder vielleicht wie lange es dauert, bis alle infizierten immun sind. Mathematisch heisst das, dass wir Funktionen SS, II und RR in Abhängigkeit der Zeit tt suchen, die uns solche Fragen beantworten können.

Wie finden wir diese Funktionen?

Man sieht rasch, dass es schwierig ist, die Funktionen zu erraten. Jedoch: Wir können etwas über die zeitliche Änderung dieser Funktionen sagen.

R˙(t)=βI(t)\dot{R}(t) = \beta\cdot I(t)

Wenn es im Schnitt kk Tage dauert, bis man wieder fit ist, so hat β\beta die Grössenordnung 1k\frac{1}{k}.

S˙(t)=αS(t)I(t)\dot{S}(t) = -\alpha\cdot S(t)\cdot I(t)

Den Proportionalitätsfaktor α\alpha kann man nicht so leicht abschätzen wie β\beta. α\alpha hängt unter anderem sicherlich von der Art der Krankheit und von der Anzahl der Kontakte zwischen den Individuen ab.

I˙(t)=αS(t)I(t)βI(t)\dot{I}(t) = \alpha\cdot S(t)\cdot I(t) - \beta\cdot I(t)

Vom Diskreten zum Kontinuierlichen

Methode

Wir haben es mit einem diskreten Modell zu tun, dass wir mit kontinuierlichen Methoden angehen werden. Damit wird es "geschmeidiger", kann aber auch nicht plausible Werte liefern wie Fliesskommazahlen. Oft ist es in der Praxis so, dass man die Lösungen numerisch bestimmen muss, dass man also sowieso kleine Zeitschritte einbaut und nicht analytisch die Lösung findet. Uns ist aber ohnehin klar, dass es beispielsweise 14.285714.2857 Gesunde nicht geben kann. Aber die Methode des Grenzwertübergangs liefert uns präzisere Daten.

Schliesslich wird jetzt noch einmal dieses Differentialgleichungssystem schlank im Überblick projeziert:

S˙=αSII˙=αSIβIR˙=βI\begin{align} \dot{S} &= -\alpha S I\\ \dot{I} &= \alpha S I - \beta I\\ \dot{R} &= \beta I \end{align}

Plausibilität unseres SIR Modells

Einheitencheck

Stehe tt wie üblich für die Zeit. Betrachten wir das Differentialgleichungssystem

S˙=αSII˙=αSIβIR˙=βI\begin{align} \dot{S} &= -\alpha S I\\ \dot{I} &= \alpha S I - \beta I\\ \dot{R} &= \beta I \end{align}

so sehen wir, dass β\beta die Einheit [1t][\frac{1}{t}] haben muss, da ja die linken Seiten die Einheit [Individuent][\frac{\mathrm{Individuen}}{t}] haben. Etwas Ähnliches haben wir uns vorher schon überlegt. Analog findet man, dass α\alpha die Einheit [1Individuent][\frac{1}{\mathrm{Individuen}\cdot t}] hat.

Addieren der Gleichungen des Systems

Wir erhalten (S+I+R)˙=0(S+I+R)\dot{}=0. Das heisst, die Population ist konstant, wie wir angenommen haben.

Abschätzung der Startwerte und qualitative Verläufe

Ganz zu Beginn des Ausbruchs der Epidemie lässt sich unser System grob so formulieren:

S˙=αSII˙=αSI\begin{align} \dot{S} &= -\alpha S I\\ \dot{I} &= \alpha S I \end{align}

Es kann ja noch gar niemand genesen sein, wenn die Krankheit beispielsweise "neu" ist. Das heisst wir haben R=0R = 0 und damit R˙=0\dot{R} = 0. Ist zudem - und dies ist in der Praxis eigentlich immer gegeben - SS zu Beginn viel grösser als II, so kann SS für kleine tt als konstant betrachtet werden. Ist nun SS annähernd konstant, dann ist S˙0\dot{S} \approx 0 und daher haben wir:

I˙=γI\begin{align} \dot{I} &= \gamma I \end{align}

wobei, αS=:γ\alpha S =: \gamma.

Was für eine Funktion erfüllt diese Gleichung? Genau, das ist

I(t)=I0eγt.I(t)=I_0\cdot e^{\gamma t}.

Deshalb haben wir zu Beginn exponentielles Wachstum.

Ignoriert man RR, wenn zum Beispiel der Genesungsprozess verhältnismässig lange dauert oder man nicht immun wird, dann haben wir

S˙=αSII˙=αSI\begin{align} \dot{S} &= -\alpha S I\\ \dot{I} &= \alpha S I \end{align}

Da wir annehmen, dass die Gesamtpopulation konstant bleibt, gilt S+I=1S+I=1 für alle Zeiten tt, also S=(1I)S=(1-I). Somit ergibt sich, da wir eigentlich in diesem Fall nur eine Gleichung brauchen,

I˙=α(1I)I\begin{align} \dot{I} &= \alpha (1-I) I \end{align}

was logistisches Wachstum bedeutet.

Übrigens ist diese Gleichung analytisch lösbar, indem man die Variablen trennt und anschliessend mit Hilfe einer Partialbruchzerlegung einfache Integrale bereit stellt. Wir werden das im AM erledigen. Die Neugierigen können ja bereits Stift und Papier zur Hand nehmen und selber rechnen.

Ein Geogebra-File zum Ausprobieren:

Open in GeoGebra

Das SIR Modell - jetzt quantitativ

Ich habe die Gleichungen im nächsten Kapitel in Geogebra bereit gestellt. Dort wird durch das Programm dynamisch der Verlauf berechnet und geplotet. Bei den Schiebereglern kann man die Parameter α\alpha und β\beta ändern. Es sei noch vermerkt, dass wir eigentlich nur die ersten beiden Gleichungen brauchen, die dritte Grösse (z.B. RR) ergibt sich jeweils aus der konstanten Populationsgrösse. Nun folgen diverse statische Plots mit Python, die interessante Details zeigen.

Es ist also möglich, durch Ändern des Parameters α\alpha, den zeitlichen Verlauf der Krankheit innerhalb einer Population zu beeinflussen. Im ersten Beispiel ist der Peak der Infected markant und zwischenzeitlich sind mehr als 8080% infiziert. Das muss man vermeiden! Im zweiten Beispiel wurde α\alpha reduziert auf einen Zentel, was zum Beispiel mit Massnahmen wie Social Distancing , regelmässig Händewaschen etc. erreicht werden kann. Bemerkenswert ist auch, dass im letzten Beispiel nicht alle Susceptibles krank werden und die Krankheit ausstirbt. Beachte auch, dass man für den zeitlichen Verlauf aber viel mehr Geduld braucht.

Daten aus der Schweiz (Wikipedia)

Auf dieser Site sind einige Zahlen/Daten aus der Schweiz zum COVID-19 unter anderem auch graphisch präsentiert. Insbesondere kann hier zum Beispiel der exponentielle und logistische Verlauf gefunden werden.

Parameterschätzung --- für den Kanton Bern anhand der März-Zahlen

Man kann nun zum Beispiel II anpassen, indem man die ersten bekannten Messwerte von II nimmt und ein Curve Fitting durchführt. In den ersten paar Tagen der Epidemie gilt wie oben gesehen näherungsweise I(t)=I0eγtI(t)=I_0\cdot e^{\gamma\cdot t}. So erhält man eine Schätzung für γ\gamma und kann daraus eine Schätzung für α\alpha ermitteln, da zu Beginn γ=αS0\gamma=\alpha\cdot S_0.

Hier die Daten für den Kanton Bern im März (nachgewiesene Infektionen):

Datum im März Zahl der nachgewiesenen Infektionen
14. 78
16. 123
18. 193
19. 282
20. 377
21. 418
23. 470
24. 532
25. 624

Leider hat der Kanton nicht für jeden Tag Daten, so dass ab und zu ein Tag ausgelassen wird. Ich habe ohne Rücksicht auf Verluste einfach diejenigen Werte kumuliert, die ich zur Verfügung hatte. Natürlich "fehlen" dann jeweils nach einem datenlosen Tag diese in der nächsten Aufsummierung. Für das erhobene fitting bedeutet das, dass der erhaltene Wert von γ\gamma konservativ ausfällt; also eine milde Schätzung ist.

WolframAlpha beispielsweise kann so ein Fitting für uns tun:

FindFit[{{0,78},{2,201},{4,394},{5,676},{6,1013},{7,1431},{9,1901},{10,2433},{11,3067}}, 78*Exp[c t], {c}, t],

wobei ich wie erwähnt die nachgewiesenen Infektionen kumuliert habe.

Es findet für den Ansatz f(t)=78ectf(t)=78\cdot e^{ct} den Wert c=0.341643c=0.341643, mit unserer Notation

γ=0.341643.\gamma = 0.341643.

Die Daten habe ich aus der Zeit der Schulschliessung. Man kann heute, 31.Mai 2020, eine Reproduktionszahl von R0=1.22R_0=1.22 für Mitte März nachschlagen, als die Massnahmen bereits in Kraft waren. Vorher war diese Zahl bei etwa 33 anzusetzen und aufgrund des Fittings noch höher. Beachte auch, dass das Fitting vermutlich anders ausgefallen wäre, wenn ich die beiden letzen Datenpunkte ausgelassen hätte. Was würde dies für unser Modell für α\alpha heissen?

Es ist γ=αS0\gamma=\alpha\cdot S_0, also kriegen wir etwas pingelig α=γS(0)I(0)=\alpha=\frac{\gamma}{S(0)-I(0)}=. Die Reproduktionszahl betrüge demnach R0=αβS0=6.833R_0=\frac{\alpha}{\beta}\cdot S_0=6.833\dots. Wollen wir wissen, welchem Wert α\alpha in etwa eine Rerpoduktionszahl von R0=3R_0=3 entspricht, so stellen wir nach α\alpha um und erhalten 0.15 gerundet. Der Wert α=0.15\alpha=0.15 entspräche also ungefähr einem Wert der Reproduktionszahl von R0=3R_0=3 für unser Modell.

Man will natürlich die Reproduktionszahl unter 11 bringen. Dies hiesse für α\alpha etwa 0.05. Der Verlauf wäre nun für ein R0R_0 knapp grösser 11.

Natürlich kann man jetzt mit schickeren Modellen arbeiten. Wenn ihr Lust habt, so hoffe ich gezeigt zu haben, wie man von diesem Punkt aus hier die Modelle auch verfeinern kann. Stichworte zum Vertiefen sind SEIR , SIRV , recursiv SIR , zellurläre Automaten ...

Die "echten" Daten kann man zum Beispiel auf der offiziellen Site COVID 19 Informationen Kanton Bern einsehen und mit den Modellen vergleichen. Aber auch bei offiziellen Seiten immer gut selber gucken, welche Daten wie verwendet wurden.

Abschliessend noch einige mathematische Bemerkungen zu unserem SIR Modell.

Mathematische Analyse des SIR Modells

Es folgen noch einige Rechnungen, welche auch die Begriffe Basisreproduktionszahl und Herdenimmunität mathematisch greifbar werden lassen.

Lambert'sche W-Funktion