Geschreven door Bas Bakkenes

Corona-virus: een data analyse met Splunk

Data4 minuten leestijd

Sinds gisteravond (27 februari 2020) is het eerste Coronavirus geval in Nederland bekend. Het was een kwestie van tijd tot het virus ook in Nederland zou opdoemen. Vandaag (28 februari 2020) is ook meteen het tweede geval bekend gemaakt. Daarom dacht ik, tijd om eens in de data achter de outbreak van dit virus te gaan duiken om te zien waarom er zoveel ophef is over het Corona virus.

Het verzamelen van de data

De eerste horde was het verkrijgen van de data. Het startpunt hier was de World Health Organisation, want deze hebben een hele nette website en publiceren elke dag een mooi rapport met daarin op zich goede data[1]. Echter wanneer je deze data moet gaan kopiëren en plakken, dan moet er een hoop in formatting aangepast worden. En 1 keer is dat prima maar ik wil een update-baar dashboard maken dus dat hield op.

Gelukkig ben ik niet de enige die denkt dat het handig is om deze data beschikbaar te hebben in een open format en zo kwam ik bij Isaac Lin van de University of HongKong terecht. Hij post updates van de data op Github[2] en daar kan ik met Splunk heel makkelijk en dankbaar gebruik van maken. Helaas gaat het hier over alleen Chinese data. Superhandig als ik zou willen zien hoe het zich in China verhoudt maar ik mis de rest van de wereld. Dus de zoektocht gaat door…

Uiteindelijk kwam ik uit bij HDX, zij stellen allerlei verschillende data ter beschikking en hebben iedere dag een update van de dataset voor het Coronavirus. In CSV, de hele wereld en met time series data waardoor ook heel goed te analyseren is wat er over tijd gebeurd met het virus. Eindelijk heb ik dus de data. En die kun jij ook gebruiken als je zelf aan de slag wilt [3]. Er zijn 3 databronnen: Confirmed, Deaths en Recovered.

Analyse in Splunk

Daarna het analyseren van de data in Splunk. Als eerste de data toegevoegd als lookup tables in Splunk. Het grote voordeel nu is dat wanneer ik nieuwe data toevoeg (en de data is te vinden op Github dus dat kan geautomatiseerd) dit automatisch ook in Splunk beschikbaar is. Daarna ben ik begonnen aan het maken van het overzicht.

Data per region was heel simpel, ik heb de 3 datasets allemaal in de search geladen en gefilterd op alleen data van de laatste dag (2/27/20). Daarna met het geostats commando de inzichten verspreid over de kaart (lat en long data velden waren beschikbaar in de data).

Corona outbreak over time was wat minder makkelijk. In de data is per column weergegeven op welke dag dit gebeurd is. Dit is niet hoe Splunk werkt, want die gaat er van uit dat de datum in de rijen zit en daarom moest dit worden getransformeerd. Gelukkig is hier het commando | transpose voor. Verder nog wat databewerkingen gedaan om te zorgen dat alles er netjes bij staat en met timechart het netjes uitgesmeerd over tijd.

Als laatste heb ik de single values die boven aan staan in het dashboard gemaakt. Het totaal aantal geregistreerde gevallen, de hoeveelheid doden en de recovered waren makkelijke panels om te maken, de death ratio was iets lastiger maar met 2 datasets bij elkaar en dan het percentage berekenen was dat ook prima te doen. De laatste panel geeft netjes inzicht in wanneer de data voor het laatst is geüpdate om dat voor iedereen helder te hebben.

De toekomst

In de glazen bol kijken kan natuurlijk maar gestaafd door de data wordt het natuurlijk pas echt interessant. Hieronder in basis dezelfde grafiek als de Corona outbreak over time in het dashboard, alleen word hier gekeken naar de totalen en niet de landen zelf. Als er dan gekeken word naar de groei in deze grafiek en dit doorgetrokken word dan is goed zichtbaar dat we de komende tijd waarschijnlijk nog niet van Corona af zijn. Volgens dit model passeren we op 5 maart de 100.000 infecties.

Conclusie

De outbreak van Corona gaat hard en loopt naar mate meer mensen geïnfecteerd raken alleen maar sneller op. Dit is natuurlijk een logisch gevolg want hoe meer mensen er besmet zijn hoe meer mensen ermee in aanraking kunnen komen. Het effect lijkt nog behoorlijk mee te vallen, een stijgende lijn is er zeker maar het is geen exponentiële stijging. In de data hebben we gezien dat de death rate van Corona op 3,4% ligt en dit is dan ook waarom er zoveel over Corona gezegd en geschreven wordt. Gewone griep ligt ongeveer op 0,5%[4] en dat maakt Corona een stuk gevaarlijker.

Het RIVM geeft een aantal tips om het Corona virus te voorkomen op de website [5]:

  • Was je handen regelmatig (en grondig)
  • Hoest en nies in de binnenkant van je elleboog
  • Gebruik papieren zakdoekjes en gooi deze meteen na gebruik weg

Bronnen
[1] https://www.who.int/emergencies/diseases/novel-coronavirus-2019
[2] https://github.com/BlankerL/DXY-COVID-19-Data
[3] https://data.humdata.org/dataset/novel-coronavirus-2019-ncov-cases
[4] https://www.livescience.com/new-coronavirus-compare-with-flu.html
[5] https://www.rivm.nl/coronavirus/covid-19