COVID-19 Coronavirus Disease Spread Analysis in German Regions and the World

In early 2020 the SARS-CoV-2 virus (colloquially known as the coronavirus) spread across the globe and caused a pandemic of COVID-19 disease. This page presents a collection of daily updated charts and analysis of disease spread in German regions and the world. The focus lies on displaying the data of the past and deriving trends for the near future. In order to compare data of different regions, data is scaled by the regions' population. Charts are updated daily in the morning (UTC). Raw data and plot scripts are available in my GitHub repository. This is a private non-profit spare-time project. All data shown here rely on the quality of the data sources, so I cannot guarantee for the correctness of my data.

Data sources

Feel free to drop me a message if you find a typo, bug or bigger issue. I am happy for inspirations for further analyses as well.

Stay safe, Torben

Table of Contents / Inhaltsverzeichnis

Further good information sources

Germany / Deutschland

Landkreise

Karte: Animation der Ausbreitung in den Landkreisen

Grafik anklicken um zur Animation zu gelangen.

de-districts-Cases_Per_Million-latest.gif de-districts-Cases_Last_Week_Per_100000-latest.gif
de-districts-DIVI_Intensivstationen_Covid_Prozent-latest.gif de-districts-DIVI_Intensivstationen_Betten_belegt_Prozent-latest.gif

Back to top

Anzahl der Landkreise mit Neu-Infektionen in der letzten Woche

In den folgenden Grafiken ist als Zeitverlauf die Anzahl der deutschen Land- und Stadtkreise aufgetragen, die min 1. COVID-19 Neu-Infektionen in der letzten Woche vermeldet haben und darunter die mit einer Inzidenz über 50.

zero_cases_last_week.png
50_cases_last_week.png
generated via Gnuplot plot-de-districts, raw data can be found in de-districts-zero_cases_last_week.tsv

Back to top

Landkreistabelle mit Intensivstationsauslastung

Es gibt nun auch eine konfigurierbare E-Mail Benachrichtigung für Landkreisdaten.

Ein Klick auf eine Zeile fügt diesen Landkreis in die interaktive Landkreis-Grafik hinzu.

06.05.2020: In Deutschland wurde als Richtwert für die Verschärfung von Maßnahmen der Grenzwert von 500 Neuinfektionen pro 1.000.000 Einwohnern in sieben Tagen in einem Stadt-/Landkreis festgelegt. Daher habe ich die Landkreistabelle nun nach diesem Wert in der Spalte "Infizierte pro Millionen Einwohner pro Woche" sortiert.

generated via Tabulator, raw data can be found here

Back to top

Interaktiver Landkreis Vergleich

Landkreise und Städte in obiger Tabelle auswählen. Mit dem Button über der Legende kann in die Daten hinein gezoomt werden. Die Konfiguration der Grafik ist in der URL (Adresszeile des Browsers) hinterlegt und lässt sich so speichern und teilen.

y-Achse:
x-Achse:
generated via eCharts, raw data can be found here

Back to top

Konfigurierbare Landkreis E-Mail Benachrichtigung

(Screenshot anklicken um zur Anmeldung zu gelangen)

newsletter-screenshot-2-mail.png

Back to top

Bundesländer

Interaktiver Bundesland Vergeich

y-Achse:
x-Achse:  
generated via eCharts, raw data can be found in de-states

Back to top

Infizierte, Tote und Intensivstationsauslastung durch COVID-19 pro Bundesland

Back to top

Verdopplungszeit der Neu-Infektionen

22.08.2020 Bis heute hatte ich gedacht und gehofft, dass das Thema "exponentielles Wachstum der Fallzahlen" vom Tisch ist. Leider sprechen die jüngsten Zahlen eine andere Sprache. Daher habe ich heute eine neue Auswertung erstellt, die den Trend (Zunahme und Abfall) quantifiziert. Ich habe dazu die Verdopplungszeit bzw. Halbwertszeit der Neu-Infektionen berechnet. Verdopplungszeit ist die Zeit in der sich ein Wert verdoppelt hat, Halbwertszeit analog halbiert.

Zahlenbeispiel zur Verdeutlichung
Angenommen es sind heute 10 Neu-Infektionen und die Verdopplungszeit von 20 Tagen bleibt konstant, so ergibt sich in
20 Tagen → 20 Neu-Infektionen
40 Tagen → 40 Neu-Infektionen
60 Tagen → 80 Neu-Infektionen
80 Tagen → 160 Neu-Infektionen
...
Aus diesem Grund ist eine kurze Verdopplungszeit gefährlich und eine kurze Halbwertszeit gut.

In den folgenden Grafiken ist basierend auf den Neu-Infektionen pro Woche die dazugehörige Verdopplungszeit (rot) beziehungsweise Halbwertszeit (grün) dargestellt. Diese wurden ermittelt durch Regression über jeweils einen Zeitraum von 14 Tagen in die Vergangenheit, Details dazu siehe unten. Die Auswertung ist inspiriert von Konstantin Tavan's Darstellung.

Ergebnis: Im März betrug die Verdopplungszeit in Deutschland meist weniger als 5 Tage. Der Abschwung ab Anfang April war mit 10-15 Tagen Halbwertszeit deutlich langsamer als der Anstieg zuvor. Seit Ende Juli sind wir im Bereich einer Verdopplungszeit von 20 Tagen.

Nun der Vollständig halber eine kurze Erklärung zum mathematischen Hintergrund

Zur Ermittlung der Verdopplungszeit bzw. Halbwertszeit habe ich die Daten eines Intervalls mit einer exponentiellen Wachstumsfunktion "gefittet" (angenähert über eine Regressionsanalyse). Dabei werden vom Algorithmus 2 Parameter der Wachstumsfunktion so ermittelt, dass die Wachstumsfunktion zu einer optimalen Übereinstimmung mit den Daten skaliert wird. Aus den so ermittelten Werten der Parameter lassen sich dann Aussagen zum Wachstum treffen.

Exponentielle Wachstumsfunktion:
f(x) = N0 · exp(b · x)
mit N0: Skalierungsfaktor/Wert zum Zeitpunkt (x = 0 = heute)
und b: allgemeiner Parameter der das Wachstum beschreibt.

Um den Parameter b in eine besser verständlichere Verdopplungszeit T umzurechnen, trifft man einfach folgenden Festlegung:
f(T) = 2 · f(x=0)
→ N0 · exp (b · T) = 2 · N0
→ b = ln (2) ÷ T
Analog lässt sich dies für eine Halbierung durchführen. Da aber ln(0,5) = -ln(2) ist, ist das Ergebnis fast identisch, nur das Vorzeichen der Halbwertszeit T ist negativ.
Anmerkung: Die Verdopplungszeit/Halbwertszeit T ist unabhängig vom Skalierungsfaktor N0. Daher ist es für die Bestimmung der Verdopplungszeit nicht notwendig die Daten auf die Bevölkerung zu skalieren.

Obige Routine habe ich nun für jeder Tag auf der x-Achse wiederholt um einen Zeitverlauf der Verdopplungszeit bzw. Halbwertszeit (bei Abnahme) zu bestimmen. Dabei verwende ich pro Tag das Intervall der y-Werte der Daten dieses Tages und der jeweils 13 vorangegangenen Tage. Als x-Werte verwende ich für jedes dieser Intervalle die Werte -13..0 (Tage). Der N0 Skalierungsfaktor wird mit dem y-Wert des aktuellen Tages initiiert (aber auch durch den Algorithmus optimiert).

Back to top

Bundesländer - Infektionen

Neu-Infizierte pro 7 Tage

Darstellungen des Zeitverlaufs an COVID-19 Erkrankungen in den deutschen Bundesländern. Die Zahlen habe ich skaliert auf die Bevölkerung der Bundesländer, damit man diese miteinander vergleichen kann. Da die täglichen Zahlen stark schwanken und Wochenenden einen deutlichen Effekt auf diese Schwankungen haben, habe ich in den Darstellungen 7-Tagesdifferenzen verwendet.

cases-de-last_week-per-million.png cases-de-last_week-per-million-log.png
generated via Gnuplot plot-de-states-timeseries-joined, raw data can be found in de-state-XX.tsv
Gesamtzahl der Infizierten
cases-de-per-million.png cases-de-per-million.png
generated via Gnuplot plot-de-states-timeseries-joined, raw data can be found in de-state-XX.tsv
Ranking nach Infektionen

Ranking der Bundesländer nach Gesamtzahl der Infektionen (Reihe "Cases per Million Population") und farbkodiert die Inzidenz (Reihe "Cases Last Week per 100.000 Population").

Ranking der Bundesländer nach Inzidenz (Reihe "Cases Last Week per 100.000 Population") und farbkodiert die Gesamtzahl der Infektionen (Reihe "Cases per Million Population").

Back to top

Bundesländer - Opfer

In den Darstellungen der Opferzahlen habe ich auf der rechten Seite Referenzwerte zu anderen Todesursachen angegeben, Quellen dazu siehe diese Tabelle unten. Hinweis: die Todeszahlen laufen den Infektionszahlen um ca. 3 Wochen hinterher. Im Median sterben Patienten 14 Tage nach den ersten Symptomen, die wiederrum etwa 3-5 Tage nach der Infektion auftreten.

Neu-Verstorbene pro 7 Tage
deaths-de-last_week-per-million.png deaths-de-last_week-per-million-log.png
Gesamtzahl der Opfer
deaths-de-per-million.png deaths-de-per-million-log.png
generated via Gnuplot plot-de-states-timeseries-joined, raw data can be found in de-state-XX.tsv

Back to top

Vergleich der Sterbefälle 2016-2020

Basierend auf den Daten des Deutschen Statistischen Bundesamts habe ich die Sterbefälle von 2020 mit den Vorjahren verglichen. Alle Datenreihen wurden mit einem gleitenden Durchschnitt von 7 Tagen geglättet und der 29.2. wurde entfernt.

de-mortality.png

Für den Vergleich mit den Opferzahlen von COVID-19 habe ich den zunächst für 2016-2019 die Sterbefälle pro Kalendertag gemittelt und zusammen mit den Daten von 2020 aufgetragen. Im unteren Bereich ist die Differenz dieser zwei Datenreihen neben den COVID-19 Opferzahlen zu sehen.

de-mortality-covid.png
generated via Gnuplot plot-de-mortality.gp, raw data can be found in de-mortality.tsv

23.10.2020: In den Daten zu Deutschland kann ich keine Übersterblichkeit durch COVID-19 erkennen. Bei einigen unserer Nachbarn sieht es leider anders aus, siehe z.B. Belgien, Großbritannien, Frankreich, Schweiz, Spanien. Daher ist mein Fazit, dass die Maßnahmen in Deutschland bisher erfolgreich waren.

Back to top

Weitere Auswertungen

Wie hoch ist die Wahrscheinlichkeit dass beim Treffen mit Personen ein Infizierter dabei ist?

Hier eine kleine Exkursion in die Stochastik/Wahrscheinlichkeitsrechnung mit dem Ziel das Risiko einer Infektion beim Treffen von Personen abzuschätzen.
Annahme zur Abschätzung: die Zahl der Neu-Infektionen pro Woche entspricht der Zahl der aktuell infektiösen Personen. Wichtig ist die Dunkelziffer der unbemerkt infizierten Personen nicht außer Acht zu lassen, ein Faktor 4 auf die offiziellen Fallzahlen erscheint mir realistisch. Sind also in einer Region 25 Neu-Infektionen pro 100000 Einwohner gemeldet, so nehme ich an, dass 100 Personen pro 100000 Einwohner derzeit ansteckend sind. Aus der Tabelle unten kann man nun für verschiedene Gruppengrößen ablesen wie wahrscheinlich es ist, dass eine ansteckende Person dabei ist. Die Excel-Berechnung dazu, die auch einen "Taschenrechner" für die freie Eingabe von Werten enthält, ist unter der Tabelle verlinkt.

DE_wahrscheinlichkeit-infizierten-treffen
generated via Excel wahrscheinlichkeit-infizierten-treffen.xlsx

Veranstaltungsrisikoabschätzung

Basierend auf den Annahmen des letzten Abschnitts, hier ein "Taschenrechner" für die Risikoabschätzung von Veranstaltungen/Menschenansammlungen. Der Anspruch dieser groben Abschätzung ist nicht eine exakte Zahl sondern die Größenordnung der Wahrscheinlichkeit in Abhängigkeit von Infektionslage und Teilnehmerzahl zu liefern.

Eingangsgrößen  
Anzahl Personen in Veranstaltung
Ort
Neu-Infektionen in Region (letzte 7 Tage pro 100.000 Einwohner), Zahlen können auch der obigen Landkreistabelle entnommen werden
Schätzung Faktor Dunkelziffer
Geschätzte Gesamtzahl infektiöser Personen (inklusive Dunkelziffer) in Region (pro 100.000 Einwohner)
Ergebnis  
Wahrscheinlichkeit dass eine aktuell infektiöse Person unter den Teilnehmern ist (Berechnungslogik siehe wahrscheinlichkeit-infizierten-treffen.xlsx)

Anmerkungen zu den Eingangsgrößen, Annahmen und Vereinfachungen für dieses grobe Modell:

Anmerkung zum Ergebnis:
Die Wahrscheinlichkeit das es zu einer Ansteckung kommt, hängt von vielen weiteren Faktoren wie Dauer, Umgebung, getroffenen Schutzmaßnahmen ab und lässt sich nur sehr schwiering als Wahrscheinlichkeit in % abschätzen. Über Ideen und Hinweise dazu bin ich dankbar, hier können Sie mich kontaktieren.

Back to top

Um wieviele Tage läuft die Opferzahl der Zahl der Infizierten hinterher?

In der folgenden Abbildung habe ich für Deutschland die Neu-Infizierten und die Neu-Verstorbenen (jeweils pro 7 Tage und pro 1 Millionen Einwohner) aufgetragen. Die Kurve der Neu-Verstorbenen habe ich dann zeitlich verschoben und skaliert auf den Frühjahrspeak der Neu-Infektionen.

shift-deaths-to-match-cases_DE_last-week_per_million.png

Ergebnis vom 28.10.2020: Im Frühjahr 2020 war die Verzögerung zwischen Infektion und Tod etwa 14 Tage mit einer Skalierung von 4.3%. Im Sommer 2020 liegt die Kurve der Neu-Infizierten bei dieser Skalierung oberhalb der Kurve der Opferzahlen. Gründe dafür könnten in der Anzahl der durchgeführten Tests und im Altersprofil der Infizierten zu finden sein.

Back to top

Wie hoch ist die Dunkelziffer der Infizierten im Vergleich zu den offiziellen Fallzahlen?

Hier der Versuche einer Abschätzung der Dunkelziffer (=Differenz zwischen der Gesamtzahl der Infizierten und den positiv getesteten Personen). Folgende sehr vereinfachte grobe Annahmen (Inspiriert von diesem Artikel, Abschnitt "Washington State") habe ich getroffen:

Damit lässt sich die Gesamtzahl der Infizierten vor 3 Wochen rückwärts berechnen aus 100x (Kehrwert von 1%) die Zahl der heute Verstorbenen. Diese Rechnung lässt such nun für jeden Tag X durchführen: Zahl der Toten am Tag X mal 100 zugeordnet zum Tag X-14. Daraus lässt sich auf die Gesamtzahl der heute infizierten Personen über eine Regressionsanalyse/Fit der Daten (mehr dazu unten) extrapolieren. Graphisch sieht dies wie folgt aus:

calc-cases-from-deaths-DE-total.png
generated via Gnuplot plot-de-calc-deaths.gp, raw data can be found in de-state-DE-total.tsv

Anmerkung zu den Annahmen: Die Sterblichkeit ist vermutlich geringer als die angenommenen 1%. Es dauert wohl üblicherweise eher 3-4 Wochen von Infektion bis zum Tode, nicht wie von mir gerechnet nur 3 Wochen. Beide Effekte wirken sich vergrößernd auf die Dunkelziffer aus.

Untersuchung der exponentiellen Zunahme der Infektionen in Deutschland

Dieses Kapitel ist nicht mehr relevant, da wir glücklicherweise den Bereich der exponentiellen Zunahme der Neu-Infektionen verlassen haben. Daher habe ich es archiviert.

Countries Worldwide

Map: Country Casualties

COVID-19 Outbreak World Map Total Deaths per Capita

Map deaths per million population, borrowed from Wikipedia. Data source: the json file provided by github.com/pomber/covid19 is based on data of Johns Hopkins University Center for Systems Science and Engineering (JHU CSSE)

Back to top

Country Table

Click on a row to add it to the country comparison chart below.

"Cases Doubling Time" is derived by an exponential fit of the "Cases Last Week" of the last 14 days.

generated via Tabulator, raw data can be found in countries-latest-all.tsv / countries-latest-all.json

Back to top

Country comparison chart

Usage hints

Nomenclature

1. Select countries

Africa Asia Europe North America South America Oceania

2. Select data

y axis:  

3. Chart

generated via eCharts, raw data can be found in country-XX.tsv / .json
Many thanks to Attila Andrási-Nagy for code review, cleanup and implementation of the first version of the select data logic!

Back to top

Doubling Time of New Infections

In the following the exponential growth of the new infections is analyzed. If an increase is found, I fitted the data with an exponential function to drive the new cases doubling time. As data I used the "Cases Last Week" series of the last 14 days. The resulting doubling time is the number of days it takes for a doubling of new cases, shorter is worse, of cause. Color coded is the value of "Cases Last Week Per Million" as additional information, red means high.

Back to top

Event Risk Calculator

Assuming an event/company/school with many people attending. What is the probability of a COVID-19 infectious person being there?

Input  
Number of people attending
New cases in your region (per last 7 days per 100.000 population), numbers can be found at Country Table above.
Estimated factor of unreported cases
Estimated total amount of infectious people in population (last 7 days per 100.000 population)
Output  
Probability for 1 or more infective people are attending

I made the following simplifications for this rough model

Comment on the result: The likelihood that an infection will occur depends additionally on many other factors such as duration, environment and protective measures taken and is very difficult to estimate as a probability in %. I am grateful for ideas and hints, here you can contact me.

Back to top

Country Rankings

Cases

Ranking countries by total cases (series "Cases per Million Population") and color-coding their current new cases (series "Cases Last Week per 100.000 Population").

Ranking countries by current new cases (series "Cases Last Week per 100.000 Population") and color-coding their total cases (series "Cases per Million Population").

Back to top

Deaths

Ranking countries by total deaths (series "Deaths per Million Population") and color-coding their current new deaths (series "Deaths Last Week per Million Population").

Ranking countries by current new deaths (series "Deaths Last Week per Million Population") and color-coding their total deaths (series "Deaths per Million Population").

Back to top

Comparison of selected countries

Current situation

Deaths, absolute values.

countries-latest-selected-deaths.png countries-latest-selected-deaths-log.png
generated via Gnuplot plot-countries.gp, raw data can be found in countries-latest-selected.tsv

Deaths, scaled by of the countries, to make them comparable.

countries-latest-selected-deaths-per-mill.png countries-latest-selected-deaths-per-mill-log.png
generated via Gnuplot plot-countries.gp, raw data can be found in countries-latest-selected.tsv

See table below for reference data: deaths by other causes

Back to top

Timeseries

First using absolute values.

countries-deaths-absolute.png countries-deaths-absolute-log.png
generated via Gnuplot plot-countries-deaths.gp, raw data can be found in countries-timeseries-XX.tsv

Now again re-scaled to the population of the countries, to make them comparable.

countries-deaths-per-million.png countries-deaths-per-million-log.png

Now weekly new deaths per million population. I decided to use this delta of the last 7 days (rolling week) instead of daily new deaths values, since there are strong weekend and other effects present, leading to wrong conclusions.

countries-deaths-last_week-per-million.png countries-deaths-last_week-per-million-log.png
generated via Gnuplot plot-countries-deaths.gp, raw data can be found in countries-timeseries-XX.tsv

See reference table for the numbers used.

Back to top

Reference data: deaths by other causes per year.

Cause Deaths Deaths per Million
DE: HIV deaths 2018 440 5
DE: drug overdose 2019 1398 17
DE: traffic deaths 2018 3265 39
DE: suicides 2017 9235 111
DE: flu 2017/18 (estimated) 25100 302
DE: cancer 2017 227590 2741
DE: total death rate 2018 954874 11502
US: 9/11 2977 9
US: gun deaths 2017 14542 44
US: flu 2018/19 (estimated) 34200 104
US: traffic deaths 2018 36560 111
US: suicides 2018 48344 147
US: drug overdose 2018 67367 205

Back to top

Time series, Doubling time calculation and forecast for selected countries

As in all countries the exponentially increase of the death toll is stopped, this chapter has been archived.


Home - Contact - Impressum