[PYTHON] Mathematisches Modell von Infektionskrankheiten

Einführung

Das neue Koronavirus ist weltweit ausgebrochen, und die Weltgesundheitsorganisation (WHO) hat am 30. Januar einen Notfall ausgerufen. Es wurde lange versucht, Ausbrüche durch Simulation von Infektionskrankheiten wie Coronavirus mithilfe mathematischer Modelle vorherzusagen. In diesem Artikel werden wir das grundlegendste SIR-Modell unter den mathematischen Modellen von Epidemien mit Infektionskrankheiten vorstellen und numerische Simulationen mit Python durchführen.

Was ist ein SIR-Modell?

Das SIR-Modell ist eine klassische Modellgleichung, die den kurzfristigen epidemischen Prozess von Infektionskrankheiten deterministisch beschreibt [1]. Der Name des Modells stammt von "Anfällig", "Infiziert", "Wiederhergestellt" oder "Nach einer Infektion entfernt". Dieses Modell wurde 1927 von W. O. Kermack und A. G. McKendrick vorgeschlagen. [2] Dieses Modell kann durch die folgende gewöhnliche Differentialgleichung dargestellt werden.

\begin{align}
\frac{dS(t)}{dt}&=-\beta S(t)I(t) \\
\frac{dI(t)}{dt}&=\beta S(t)I(t)-\gamma I(t) \\
\frac{dR(t)}{dt}&=-\gamma I(t)
\end{align}

Hier ist die Bedeutung jeder Variablen wie folgt.

Da das SIR-Modell eine simultane normale Differentialgleichung ist, ist es schwierig, eine allgemeine Lösung zu finden. Daher verwenden wir in diesem Artikel die Rungecutta-Methode, die häufig in numerischen Berechnungen verwendet wird. Die Anfangsbedingungen der Simulation sind wie folgt (* Die hier verwendeten Werte werden angemessen bestimmt, und es gibt keine besondere Grundlage dafür).

Quellcode

main.py


# coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint

def main():
  #Einstellung jedes Parameters
  N = 1000000
  alpha=0.5/N
  beta=0.07
  dt=0.1

  init_SIR_value=[N-100, 100, 0] #Anfangsbedingungen einstellen
  times = np.arange(0.0, 100, dt) #Periodeneinstellung
  results = odeint(SIR, init_SIR_value, times, args=(alpha,beta)) #Berechnet mit Odeint
  #Visualisierung
  plt.title("SIR Model")
  plt.plot(times[::10],results[::10,0]/N, color=(0.0,1,0.0), linewidth=1.0, label='S')
  plt.plot(times[::10],results[::10,1]/N, color=(1.0,0,0.0), linewidth=1.0, label='I')
  plt.plot(times[::10],results[::10,2]/N, color=(0.0,0,1.0), linewidth=1.0, label='R')
  plt.xlim(0,100)
  plt.legend()
  plt.xlabel('day')
  plt.ylabel('value')
  plt.grid(True)
  plt.show()


def SIR(v,t,alpha,beta):
  return [-alpha*v[0]*v[1], alpha*v[0]*v[1]-beta*v[1], beta*v[1]]

if __name__ == '__main__':
  main()

Simulationsergebnisse

Wenn Sie das obige Programm ausführen, erhalten Sie die folgenden Ergebnisse.

figure_1.png

Aus der Grafik ist ersichtlich, dass die Anzahl der Infizierten nach Erreichen eines bestimmten Höchstwerts abnimmt.

abschließend

In diesem Artikel haben wir das SIR-Modell vorgestellt, das eines der mathematischen Modelle für Infektionskrankheitsepidemien ist, und den Übergang von Infektionskrankheitsepidemien durch Simulation durchgeführt. Im Gegensatz zu Infektionskrankheiten wie Influenza hat das neue Coronavirus eine lange Latenzzeit, so dass es angeblich nicht geeignet ist, dieses Modell anzuwenden. Daher wurde für dieses Modell auch ein mathematisches Modell namens SEIR-Modell vorgeschlagen, das die Latenzzeit berücksichtigt. Ich werde dieses Modell dieses Mal nicht vorstellen, aber ich werde es in einem anderen Artikel vorstellen, wenn ich eine Chance habe.

Verweise

[1] SIR-Modell -Wikipedia- [2] A Contribution to the Mathematical Theory of Epidemics

Recommended Posts

Mathematisches Modell von Infektionskrankheiten
Lösung mathematischer Modelle von Epidemien von Infektionskrankheiten in Python
Vorhersage von Epidemien von Infektionskrankheiten mit dem SIR-Modell
Einführung eines mathematischen Vorhersagemodells für Infektionskrankheiten (SIR-Modell)
Implementieren Sie mit Open Modelica das mathematische Modell "SIR-Modell" von Infektionskrankheiten
[Einführung in das Modell der Infektionskrankheiten] Alle Teile Japans enden ... ♬
Mathematischer Test 2 (Mathematisches Modell der Item-Reaktionstheorie)
Implementieren Sie mit OpenModelica das mathematische Modell "SIR-Modell" von Infektionskrankheiten (siehe Wirkung des Impfstoffs)
Mathematisches Vorhersagemodell für Infektionskrankheiten (SIR-Modell): Fallstudie (1)
Implementieren Sie mit OpenModelica das mathematische Modell "SIR-Modell" von Infektionskrankheiten (Beispiel für wiederholte Regulierung und Entspannung)
Implementieren Sie das mathematische Modell "SIR-Modell" von Infektionskrankheiten in OpenModelica (das die Sterblichkeitsrate und die Reinfektionsrate widerspiegelt).
[Einführung in das Modell der Infektionskrankheiten] Ich habe versucht, zu passen und zu spielen ♬
Vorteile der Verfeinerung des Django-Modells