Corona Zahlen KW47 und Vorhersage mittels Gompertz Modellierung, wie es weitergehen könnte

EinSportfreund, München, Mittwoch, 25.11.2020, 21:03 (vor 1241 Tagen)6008 Views

Liebe Forumskollegen,

erst mal ein update der aktuellen Zahlen:
[image]

Allerdings wollte ich in diesem Thread hauptsächlich über die Modellierung der Infektionszahlen diskutieren.
Angeregt durch eine Diskussion in einem telepolis-Forum, dass die Infektionszahlen nicht exponentiell ansteigen, sondern eher einer Logistischen oder noch besser einer Gompertz-Funktion folgen, habe ich selber eine Modellierung durchgeführt.

Ich erhoffe mir dadurch herauszufinden, ob man Vorhersagen treffen kann, wie die Zahlen in der Zukunft weiterlaufen. Und ob man an der Modellierung erkennen kann, ob und wann Maßnahmen getroffen worden sind und ob man damit den optimalen Zeitpunkt dafür herausfinden kann.

Es gibt mehrere paper zu dem Thema covid Modellierung über Gompertz Gleichung, z.B. hier:
https://www.medrxiv.org/content/10.1101/2020.06.18.20135210v1.full.pdf

Meine Vorgehensweise ist folgende:
Um an Daten der Infektionszahlen kommen, verwende ich das Python Modul COVID19Py:
https://pypi.org/project/COVID19Py/
Mit diesem Modul lassen sich Daten von 191 Ländern herunterladen. Diese beinhalten confirmed, deaths, recovered als Zeitreihe ab 22.1.2020 bis heute.

Diese Daten für Deutschland schauen folgendermassen aus:
[image]
Wegen den Wochenenden schwanken die Zahlen teilweise sehr stark. Deswegen verwende ich zusätzlich einen sma über 7 Tage.

Die Gompertz Funktion, mit der modelliert wird, bildet die summierten Fälle ab:
y = a*exp(-b*exp(-c*x))
Ich arbeite im folgenden aber mit den täglichen Neuinfektionen (daily cases) und entsprechend verwende ich die 1. Ableitung der Gompertz Funktion:
y' = a*b*c*exp(-c*x)*exp(-b*exp(-c*x))

habe zuerst mit Excel angefangen, ist aber zu aufwändig, wenn man mit mehreren Wellen gleichzeitig rechnen möchte.
Deswegen verwende ich hierfür curve_fit aus dem python Modul scipy. Damit kann ich auch automatisch alle Länder nacheinander durchrechnen. Hat jemand Erfahrung mit curve_fit oder allgmein mit least squares Methoden? Ich muss öfters die Anfangswerte anpassen und suche dafür einen Automatismus.

Damit lässt sich z.B. die erste Welle im Frühjahr folgendermassen modellieren:
[image]
Die Zahlen in der Legende entsprechen den Parametern (a, b und c) der Gompertzgleichung. Die x-Achse habe ich wegen der für mich einfacheren Programmierung auf Zahlen umgestellt
(0 entspricht dem 22.1.2020). Wochenenden sind mit dabei.

Um festzustellen, ob die Modellierung gut war, berechne ich das Bestimmtheitsmass R². Dieses liegt bei allen Berechnungen (egal wie viele Wellen simuliert werden) für mich erstaunlicherweise hoch. Wenn ich die tatsächlichen Werte verwende, liegt dieser bei 0.85...0.95, wenn ich den 7-Tage sma verwende, komme ich auf ca. 0.98...0.99.


Da es mehrere Wellen gibt und auch innerhalb einer Welle evtl. mehrere Wellen auftreten, rechne ich mit bis zu 3 Wellen, die aufsummiert werden zu einer gesamten Infektionskurve:
[image]
Die rote Kurve ist somit die Summe dieser 3 Wellen:
[image]

Wenn man einmal die Funktion bestimmt hat, lässt sich das ganze auch in die Zukunft projizieren. Damit werden nur die aktuell berechneten Wellen verlängert, es lässt sich damit natürlich nicht vorhersagen, wann eine weitere Welle startet.


Und jetzt noch ein paar Beispiele für andere Länder:
[image]
[image]
bei manchen Länder sind nur 2 Wellen für die Modellierung besser:
[image]

Mit den Todeszahlen lassen sich damit natürlich die gleichen Berechnungen durchführen.
Wie gut diese Vorhersage ist, muss ich noch überprüfen. Es gibt aber jede Menge abgeschlossene Wellen, mit denen das möglich ist. Ich versuche aktuell die 1. Welle zu extrahieren und zu prüfen, wie weit die Welle schon gelaufen sein muss, damit ich den weiteren Verlauf einigermassen sicher vorhersagen kann.

Würde in diesem Thread gerne diskutieren, was man mit diesen Berechnungen machen kann und welche Infos man daraus ableiten könnte.
Ausserdem hätte ich gerne Input, ob ich weitere Daten oder Infos für die Berechnung verwenden könnte.

mfg
Sportfreund


gesamter Thread:

RSS-Feed dieser Diskussion

Werbung