COVID-19 Coronavirus Disease Spread Time Series in German Regions and Selected Countries

This page displays a collection of daily updated charts of the COVID-19 coronavirus disease spread in German regions as well as in selected countries. The focus is on displaying the data of the past and deriving trends for the near future. Charts are updated daily in the morning (UTC). Raw data and plot scripts are available at my GitHub repository.

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

Stay save, Torben

Table of Contents / Inhaltsverzeichnis

Futher good information sources

Germany / Deutschland

Aktueller Stand der Infektionen in den Landkreisen, skaliert auf deren Einwohnerzahl. Eingebettet von Wikipedia

COVID-19 outbreak Germany per capita cases map
Eingebettet von Wikipedia, Erstell-Skript dazu wurde hier publiziert: github.com/ythlev/covid-19

Zeitverlauf der Ausbreitung in den Bundesländern

Die erste Grafik die ich erstellt habe, zeigt den Zeitverlauf der offiziell gemeldeten positiv getesteten Infektionsfälle in den Bundesländern. Dazu habe ich die Daten zunächst normal (mit einer linearen Y-Achse) aufgetragen, wie man dies überall findet. Als nächstes habe ich die y-Achse logarithmisch skaliert, was bedeuted jede Hilfslinie entspricht einem Faktor 10. Der Vorteil diese Darstellung ist, dass man große Wertebereiche darstellen kann. Ferner hat diese Darstellung die Eigenschaft, das exponentielle Zusammenhänge zu einer Geraden werden, deren Steigung die Wachstumsrate beschreibt, was hier sehr gut zu erkennen ist.


generated via Gnuplot plot-de-states-timeseries-joined, raw data can be found in de-state-XX.tsv Back to top

Zeitverlauf der Ausbreitung in den Bundesländern, skaliert auf deren Einwohnerzahlen

Ich halte es für irreführend die Absolutzahlen der Infektionen der unterschiedlich stark bevölkerten Bundesländer miteinander zu vergleichen. Stattdessen bevorzuge ich eine Skalierung pro Einwohner der Bundesländer. Die Daten im Folgenden sind auf "pro 1 Millionen Einwohner" skaliert, abermals zuerst mit linearer und anschließend mit logarithmischer Y-Achse.


generated via Gnuplot plot-de-states-timeseries-joined, raw data can be found in de-state-XX.tsv

Ist-Stand der Infektionen in den Bundesländern, skaliert auf deren Einwohnerzahlen


generated via Gnuplot plot-de.gp, raw data can be found in de-states-latest.tsv

Erkenntnisse

Back to top

Untersuchung der exponentiellen Zunahme der Infektionen in Deutschland

Achtung: nun wird es etwas mathematisch...
Zur Untersuchung der Zunahme der Infektionen habe ich die Daten mit einer exponentiellen Wachstumsfunktion "gefittet" (angenähert). Dabei werden 2 Parameter so ermittelt, dass die Wachstumsfunktion zu einer optimalen Übereinstimmung mit den Daten kommt. Aus den so ermittelten Werten der Parameter lassen sich dann Aussagen zum Wachstum treffen. Dabei verwende ich für den Fit nur die Daten der letzten 7 Tage um die ergriffenen Maßnahmen besser zu berücksichtigen.

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

Daraus lässt sich nun die "Verdopplungszeit" t berechnet über:
f(t) = 2 · f(x=0)
-> a · exp (b · t) = 2 · a
-> t = ln (2) ÷ b
Anmerkung: Die Verdopplungszeit t ist unabhängig vom Skalierungsfaktor a. Daher ist es für die Bestimmung der Verdopplungszeit nicht notwendig die Daten auf die Bevölkerung zu skalieren.

So, genug der Theorie, nun zu den Ergebnissen. Zunächst für die Infektionsfälle in Deutschland, weiter unten pro Bundesland.


generated via Gnuplot plot-de.gp, raw data can be found in de-state-DE-total.tsv

Erkenntnisse

Back to top

Vergleich der Bundesländer

Die im vorherigen Abschnitt beschriebene Methode habe ich auf die Infektionsdaten der einzelnen Bundesländer angewandt und möchte zunächst das Ergebnis der Fits vorwegnehmen.


generated via Gnuplot plot-de.gp, raw data can be found in cases-de-gnuplot-fit.tsv

Detailauswertung pro Bundesland

Im Folgenden habe ich aus Platzgründen auf die lineare Darstellung der Daten verzichten und zeige nur die logarithmisch skalierten Daten und Fit pro Bundesland.


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung


zu BW , BY , BE , BB , HB , HH , HE , MV , NI , NW , RP , SL , SN , ST , SH , TH , DE ges , Zusammenfassung

generated via Gnuplot plot-de.gp, raw data can be found in de-state-XX.tsv

Back to top

Comparing Countries

COVID-19 Outbreak World Map Total Deaths per Capita
Map Deaths per Capita, borrowed from Wikipedia.

My Data Source: the .json file provided by github.com/pomber/covid19, based on data provided by Johns Hopkins University Center for Systems Science and Engineering (JHU CSSE)

As the number of infections strongly depend upon the test coverage, this number seems not to be compareabel between countries. The number of deaths due to COVID-19 however is, so I used that to comare the virues spread in different countries.

Deaths per Country

The first set of plots shows the current death toll of different counties. I think that the number of deaths are a more reliably measure for comparison of countries, since the number of reported infections strongly depends upon the testing and hence are not comparable.


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

Let us now scale the absolute numbers by the population of the countries, to make them comparable.


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

Back to top

How did the death toll develop in different countries?

Let us now take a look into the recent past. In the following set of plots, I moved the time (x) axis the time when a given country reported 2 death cases. This allows for comparing the spreading in the countries. First using absolute values.


generated via Gnuplot plot-countries-timeshifted.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.


generated via Gnuplot plot-countries-timeshifted.gp, raw data can be found in countries-timeseries-XX.tsv

Back to top

Death toll increase for selected countries

Before diving into the math of exponential growth functions, let's start by showing the results.


generated via Gnuplot plot-countries.gp, raw data can be found in countries-gnuplot-fit.tsv

Back to top

Time series and forecast for selected countries

Now comes the math part...
As we saw above, the death toll growths exponentially with time for most countries. This can be "fitted" by scaling a model function for exponential groth to fit the data. From this fitting/scaling we can obtain information about the growth rate. I restricted the fit to data of the last 14 days to take recent actions into account and to obtain a more relyable forecast.

Model used for fitting of data:
f(x) = a · exp(b · x)
where a is the value at x=0 (here I chose 0 to be the date of the latest reported data)
and b defines the rate of increase.

From b we can derive the time it take to reach a duplication of the value as x=0, the so called the doubling time t:
f(t) = 2 · f(x=0)
-> a · exp (b · t) = 2 · a
-> t = ln (2) ÷ b
Note: the doublication time t is independant of the scaling factor a. Therefore, it is save to use data of absolute numbers in the fitting without the need to re-scale by the polulation.

Jump to AT , BE , CA , CZ , DK , FI , FR , DE , GR , HU , IR , IT , JP , KR , NL , PT , ES , SE , CH , TR , UK , US












Findings











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

Back to top

Duplications until hitting Italy's deaths per capita

As Italy is very badly hit, I decided to calculate how many duplications of deaths tool other countries are "away" from their situation. The result is a kind of time scale, showing if you have much or little time to prepare.


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

Findings

Back to top

Estimated days until hitting Italy's deaths per capita

This last plot combines the fitted time per deaths duplication and the number of duplications until hitting Italy's deaths per capita. It therefore is a rough estimation. Nevertheless in my opinion other country's inhabitants should check how Italy is doing today and via social distancing buy their hospitals as much time as possible for preparation.


generated via Gnuplot plot-countries.gp, raw data can be found in countries-joined_selected_and_gnuplot_fit.tsv

Findings


Home - Impressum