[PYTHON] SIR-Modell, das auch Schüler der Mittelstufe verstehen können

In letzter Zeit höre ich oft den Begriff SIR-Modell im Zusammenhang mit dem Koronavirus. Es ist bekannt, dass das SIR-Modell gut in die Grafik infizierter Personen wie Influenza passt, und es ist auch nützlich für die Gegenmaßnahmen gegen dieses Koronavirus.

Ich nehme zufällig an verwandten Kursen teil, es können also ungefähr 100 Biere sein, aber ich möchte es leicht zusammenfassen, damit auch Schüler der Mittelstufe es verstehen können. Lassen Sie uns abschließend mit Python-Code simulieren.

Was ist ein SIR-Modell?

Das SIR-Modell ist ein mathematisches Modell, das die Ausbreitung von Infektionskrankheiten ausdrückt. S steht für nicht infizierte Person, I steht für infizierte Person (derzeit infizierte Person, nicht die Gesamtzahl der infizierten Personen) und R steht für wiederhergestellte Person. Im SIR-Modell ist der Wiederhersteller immun und wird nicht mehr infiziert. Es wird durch die folgenden drei Formeln vorsichtig ausgedrückt, ohne ein kleines Produkt zu verwenden.

\Delta S = - \beta S I
\Delta I = \beta S I - \nu I
\Delta R = \nu I

Wenn Sie sich mit Chemie auskennen, stellen Sie sich diese als Reaktionsgeschwindigkeitsgleichung vor (das Gesetz der Massenwirkung). $ \ Delta S $, $ \ Delta I $ und $ \ Delta R $ repräsentieren Änderungen in $ S $, $ I $ bzw. $ R $. Insbesondere, wie viel $ S $, $ I $ und $ R $ morgen zunehmen oder abnehmen werden. Zum Beispiel wird $ S $ von morgen $ S + \ Delta S $ sein. $ \ Beta $ ist die Infektionsrate und $ \ nu $ ist die Genesungsrate, die von der Art Ihrer Krankheit abhängt. $ 1 / \ nu $ ist ungefähr die Anzahl der Tage, die für die Wiederherstellung benötigt werden.

Fügen wir nun beide Seiten dieser drei Formeln hinzu.

\Delta S + \Delta I + \Delta R = 0

Sie können sehen, dass es ist. $ \ Delta S + \ Delta I + \ Delta R $ repräsentiert die Summe von $ S $, $ I $ und $ R $, die morgen zunehmen oder abnehmen wird. Das ist $ 0 $, was bedeutet, dass dieses Modell kein seltsames Modell ist, das die Gesamtbevölkerung erhöht oder verringert. Sagen wir diesmal $ S + I + R = 1 $. Wenn beispielsweise $ I = 0,1 $ ist, bedeutet dies, dass 10% der Einwohner des Landes $ I $ (infizierte Person) sind.

Bedeutung des SIR-Modells

Als nächstes betrachten wir die Bedeutung der Formel. Die erste Formel war wie folgt.

\Delta S = - \beta S I

Diese Formel zeigt, dass morgen S (nicht infiziert) um $ \ beta S I $ reduziert wird. Abnehmen bedeutet, sich in eine infizierte Person zu verwandeln. Der Grund, warum der Betrag der Reduzierung durch das Produkt von $ S $ und $ I $ bestimmt wird, kann leicht durch Ersetzen eines bestimmten Werts vorgestellt werden.

In einem Land, in dem jeder infiziert ist und keine nicht infizierten Personen vorhanden sind, ist $ S = 0 $, also $ SI = 0 . In einem Land, in dem keine infizierten Personen vorhanden sind ( I = 0 $), ist $ SI = 0. Es ist $. In Ländern, in denen die Anzahl der nicht infizierten Personen und die Anzahl der infizierten Personen 50% beträgt, ist sie mit $ SI = 0,5 \ mal 0,5 = 0,25 $ am größten. Mit anderen Worten, $ SI $ repräsentiert so etwas wie die Begegnungsrate zwischen infizierten und nicht infizierten Personen.

Zusammenfassend können wir sehen, dass diese Formel ausdrückt, dass das Produkt aus der Begegnungsrate und der Infektionsrate $ \ beta $ neu infiziert ist. Als nächstes schauen wir uns die dritte Formel an.

\Delta R = \nu I

Diese Formel bedeutet, dass sich so viele Menschen wie die Anzahl der Infizierten multipliziert mit der Wiederherstellungsrate erholen. Es scheint ein wenig seltsam, dass die Anzahl der Wiederherstellungen vom Prozentsatz der infizierten Personen abhängt, aber das SIR-Modell geht davon aus. Schauen wir uns zum Schluss die zweite Formel an.

\Delta I = \beta S I - \nu I

Wenn man die Bedeutung der ersten und dritten Formel betrachtet, kann man sehen, dass die Anzahl der infizierten Personen um die Anzahl der (neu infizierten Personen) - (neu wiederhergestellten Personen) zunimmt. Wenn (neu infizierte Person) <(neu erholte Person), wird dies negativ, sodass wir sehen können, dass die Anzahl der infizierten Personen abnimmt.

Grundreproduktionsnummer

Ich werde es in meiner Freizeit schreiben

Simulation in Python

Ich werde die Erklärung in meiner Freizeit schreiben

sir.py


import matplotlib.pyplot as plt
import numpy as np

beta = 0.5
nu = 0.3
period = 100

def next_state(s, i, r):
    delta_s = - beta*s*i
    delta_i = beta*s*i - nu*i
    s = s + delta_s
    i = i + delta_i
    if s < 0:
        s = 0
    if i > 1:
        i = 1
    r = 1 - s - i
    return s, i, r

def main():
    results = []
    i = 0.01
    r = 0
    s = 1 - i - r

    l_s = [s]
    l_i = [i]
    l_r = [r]
    results.append([s,i,r])
    r0 = beta*s/nu
    
    print(s, i, r)
    for t in range(period):
        s, i, r = next_state(s, i, r)
        results.append([s,i,r])
        l_s.append(s)
        l_i.append(i)
        l_r.append(r)
    print("R0:{}".format(r0))
    plt.figure()
    plt.title("R0:{}".format(format(r0,".3f")))
    plt.xlabel('Time')
    plt.ylabel('Rate')

    x = np.linspace(0, 100, period+1)
    plt.plot(x, l_s, label="S")
    plt.plot(x, l_i, label="I")
    plt.plot(x, l_r, label="R")
    plt.legend()
    plt.show()
    
main()

Ausführungsergebnis sir.png

Recommended Posts

SIR-Modell, das auch Schüler der Mittelstufe verstehen können
Maschinelles Lernen, das Schüler der Mittelstufe mit genau diesem Verständnis verstehen [täglich aktualisiert]
Junior High School Komitee
Einführung in Word2Vec, die auch Katzen verstehen können
Einführung in Python, die auch Affen verstehen können (Teil 3)
Einführung in Python, die auch Affen verstehen können (Teil 1)
Einführung in Python, die auch Affen verstehen können (Teil 2)
Kalman Filter, den Sie verstehen können
Junior High School Committee (Network X Version)
Nicht lokal (Entschuldigung, dass ich es nicht erklären konnte), von dem Python-Anfänger (Schüler der Mittelstufe) abhängig waren
Zusammenfassung der AtCoder C-Probleme, die in der Mathematik der High School gelöst werden können
[Für Anfänger] Super Einführung in neuronale Netze, die selbst Katzen verstehen können
Skript von "Programmierbuch ab Grund- und Mittelschülern"