Die Falldaten vom RKI
Achtung, ich bin Armchair-Epidemiologe und überhaupt nicht qualifiziert.
Heute morgen wurde ich darauf aufmerksam gemacht, dass man die Falldaten des RKI herunterladen kann!
Als CSV!
Hab ich natürlich sofort gemacht und heute dann den größten Teil des Tages damit verbracht zu versuchen mit Python und pandas
das irgendwie zu verarbeiten.
Daten
Die Datei, die ich hier habe, heißt RKI_COVID19.csv
, wurde am 1. Mai 2020 um 11:58 Uhr heruntergeladen, wiegt 19 MB und hat 124 986 Zeilen.
Spalten
Thematisch sortiert gibt es folgende Spalten in der Tabelle:
Thema | Spalten | ||
---|---|---|---|
Fall-ID | FID |
||
Anzahl | Anzahl Fälle |
AnzahlFall , AnzahlTodesfall , AnzahlGenesen
|
|
Änderung Fälle |
NeuerFall , NeuerTodesfall , NeuGenesen
|
||
Datum | Erkrankungsdatum |
Refdatum , IstErkrankungsbeginn
|
|
Meldedatum |
Meldedatum
|
||
Zuletzt aktualisiert |
Datenstand
|
||
Ort | Bundesland | IdBundesland , Bundesland |
|
Landkreis | IdLandkreis , Landkreis |
||
Patienten | Altersgruppe | Altersgruppe , Altersgruppe2 |
|
Geschlecht | Geschlecht |
Einmal einen Auszug als Beispiel zum besseren sich vorstellen können:
FID | Meldedatum | Datenstand | Refdatum | AnzahlFall | AnzahlTodesfall | AnzahlGenesen | NeuerFall | NeuerTodesfall | NeuGenesen | Bundesland | Landkreis | Altersgruppe | Geschlecht | IstErkrankungsbeginn | Altersgruppe2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
4404752 | 2020-03-14 | 2020-05-01 | 2020-03-16 | 1 | 0 | 1 | 0 | -9 | 0 | Schleswig-Holstein | SK Flensburg | A15-A34 | M | 1 | Nicht übermittelt |
4404753 | 2020-03-19 | 2020-05-01 | 2020-03-13 | 1 | 0 | 1 | 0 | -9 | 0 | Schleswig-Holstein | SK Flensburg | A15-A34 | M | 1 | Nicht übermittelt |
4404754 | 2020-03-19 | 2020-05-01 | 2020-03-16 | 1 | 0 | 1 | 0 | -9 | 0 | Schleswig-Holstein | SK Flensburg | A15-A34 | M | 1 | Nicht übermittelt |
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
Quelle: Robert Koch-Institut (RKI), dl-de/by-2-0
Die meisten Spalten sind selbsterklärend, die anderen werden vom RKI erklärt. Ich paraphrasiere:
Datumsinformationen:
Meldedatum
ist das Datum, an dem “der Fall dem Gesundheitsamt bekannt geworden ist”.Refdatum
(Referenzdatum), ist das Erkrankungsdatum oder das Meldedatum. Was von beiden es ist, zeigtIstErkrankungsbeginn
an.
Änderungen:
Die Spalten NeuerFall
, NeuGenesen
und NeuerTodesfall
zeigen an, ob sich der jeweilige Eintrag vom gestrigen auf den heutigen Tag verändert hat.
Dabei hat sich das RKI ein (wie ich finde) etwas umständliches Schema ausgedacht, ich verdeutliche das anhand folgender Wahrheitstabelle:
Vortag | aktueller Tag | Wert |
---|---|---|
ja | ja | 0 |
nein | ja | 1 |
ja | nein | -1 |
nein | nein | -9 |
Ein paar Beispiele:
Ein Eintrag, der also am Vortag noch nicht bekannt war (nein) und es heute wird (ja), bekommt einen NeuerFall
-Wert von 1
.
Ein Eintrag für Patienten, die weder am Vortag noch heute gestorben waren (nein und nein), bekommt in der Spalte NeuerTodesfall
eine -9
.
Ein Eintrag für jemanden, der gestern genesen war (ja) und auch heute genesen ist (ja), erhält in der Spalte NeuGenesen
eine 0
.
Ich würde mal vermuten, die haben mit den Werten 0
, 1
und vielleicht -1
für Fallzahlen angefangen und dann ist ihnen hinterher aufgefallen, dass sie für die Genesenen und Todesfälle auch noch was viertes brauchen.
Altersgruppen:
Altersgruppe
sind die sechs Gruppen0-4
,5-14
,15-34
,35-59
,60-79
, und80+
. Da steht noch jeweils einA
vor den Zahlen, also bspw.A35-A59
.Altersgruppe2
sind Gruppen in 5-Jahres-Abständen (also0-5
,…,75-79
,80+
) oderNicht übermittelt
.
Tatsächlich steht in meiner Datei in der Spalte Altersgruppe2
bei jedem Eintrag Nicht übermittelt
– wenn man den Kommentaren auf der Seite glauben darf, scheint das aber erst seit heute so zu sein.
Plausibilitätsprüfung
Bei David Kriesel hab ich gelernt: Wenn du einen Datensatz geschenkt bekommst, dann guck erstmal ob die Daten auch halbwegs Sinn machen.
Anzahl Fälle
Heute ist der 1. Mai 2020. Im gestrigen Situationsbericht vom 30. April 2020 hat das RKI folgende Werte angegeben:
30. April | Differenz zum 29. April | |
---|---|---|
Bestätigte Fälle | 159.119 | +1.478 |
Verstorbene | 6.288 | +173 |
Anteil Verstorbene | 4,0% | |
Genesene | ca. 123.500* |
Quelle: Robert Koch-Institut (RKI), dl-de/by-2-0
Ich hab mir ein kleines Python/pandas
Progrämmchen geschrieben und mit meinem Datensatz komme ich dann auf die folgenden Werte:
$ python sanitycheck.py
Loading csv... Done.
Täglicher Situationsbericht (yesterday):
Bestätigte Fälle: 159119
Genesene: ca. 123545
Verstorbene: 6288
Täglicher Situationsbericht (today):
Bestätigte Fälle: 160758
Genesene: ca. 126865
Verstorbene: 6481
Da heute ja der 1. Mai ist, sind die Zahlen unter “yesterday” die entsprechenden vom 30. April, und die stimmen toll überein mit denen aus dem Situationsbericht. Hervorragend!
Ob die Angaben für heute auch schon stimmen, wird sich dann heute Abend zeigen. Da das CSV aber nur um Mitternacht aktualisiert wird und die Situationsberichte immer abends veröffentlicht werden, würde ich mal davon ausgehen, dass die Werte im Situationsbericht heute Abend aktueller sind und damit auch anders.
Zeitlicher Verlauf
Als weitere Plausibilitätsprüfung versuchen wir, ein paar der bekannten Diagramme nachzustellen, zuerst die Fälle nach Meldedatum:
Dann die Fälle nach “Referenzdatum” (also Erkrankungsdatum, bzw. Meldedatum für Fälle ohne Erkrankungsdatum):
Sieht auch gut aus, sehr ähnlich den Plots im RKI Dashboard.
Damit bin ich für heute hinreichend abgefuckt von pandas
und chartjs
, das nächste interessante Projekt für einen anderen Tag wäre es, die Imputation der fehlenden Werte zum Erkrankungsbeginn, das Nowcasting und dann die R-Schätzung vom RKI nachzurechnen.