Dit najaar organiseerden IBM en Tweakers een workshop over het verkennen en modelleren van corona-data. Het verslag hiervan stond enige tijd op Tweakers, maar vanwege de snel veranderende situatie rond het coronavirus in Nederland kozen we ervoor om het offline te halen. Omdat we de kennis niet verloren willen laten gaan (het modelleren van de genoemde gegevens kan de Nederlandse gezondheidszorg immers veel opleveren) en hem graag willen delen met onze community zetten we het verslag weer online. Dit is de eerste keer dat we dit doen. Mocht je hierover ideeën met ons willen delen dan horen wij dat graag. Hierover kun je met ons in gesprek gaan via [Discussie] Reclame algemeen. Hieronder kun je het artikel lezen:
Voor datascientists zijn de grote hoeveelheden data over het coronavirus zeer bruikbaar voor het verkrijgen van belangrijke inzichten. Tijdens een online workshop van IBM en Tweakers leerden deelnemers hoe zij deze gegevens kunnen verkennen en modelleren, en wat dit kan opleveren voor Nederlandse ziekenhuizen.
Meld je aan voor het Tweakers & IBM Choirless webinar
Op dinsdag 8 december organiseren Tweakers & IBM een webinar over de toepassing Choirless. In een live codingsessie laat het core-devteam zien hoe dit is mogelijk gemaakt.
Tijdens het door Tweakers en IBM georganiseerde event over machinelearning en modelleren op 22 september kon de Tweakers-community aan de slag met de modellen van IBM’s developer advocate Damiaan Zwietering. Die modellen zijn nog volop in ontwikkeling, maar ze zijn nu al zeer leerzaam. Het grote verschil met andere modellen en statistische analyses is dat Zwietering op basis van voortschrijdend inzicht het verloop van afzonderlijke besmettingsgolven kan analyseren. Dit geeft antwoord op een belangrijke vraag: zijn nieuwe cijfers het gevolg van een nieuwe megagolf, of zijn ze het resultaat van een optelsom van verschillende kleinere golven?
De workshop begon met een interactieve discussie onder leiding van Justin Halsall, hacker en oprichter van Record Once. Het panel werd gevormd door Zwietering, Frank Everaardt (techjournalist van Tweakers) en intensivist dr. Piet Melief. Als landelijk coördinator van de intensivecare-capaciteit stond Melief enkele maanden geleden voor een grote uitdaging omdat het aantal coronabesmettingen in Nederland weer snel toenam. Het verplaatsen van patiënten kan ervoor zorgen dat in alle ziekenhuizen voldoende ic-bedden beschikbaar blijven. Maar hiervoor is natuurlijk wel inzicht nodig in hoe uitbraken zich ontwikkelen. Melief toonde zich geïnteresseerd in de (door)ontwikkeling van de modellen van Zwietering, die hiervoor cijfers van het EU Center for Disease Control (CDC) en data van het RIVM gebruikt.
Het verschil tussen rapportages en werkelijkheid
Data rond ziekenhuisopnames lenen zich niet zomaar voor modelleren, daar is een kritisch oog voor nodig. Dit heeft bijvoorbeeld te maken met de manier waarop deze gegevens worden verzameld. In veel gevallen gebeurt dit niet aan de hand van ‘real-time’ reporting in moderne databases. Doorgaans vullen ziekenhuizen Excel-bestanden in en worden ze nagebeld door de GGD en het RIVM, zo legde Melief tijdens het event uit. Daarmee kwam naar voren dat er een verschil is tussen de ‘rapportage-werkelijkheid’ en de ‘werkelijke werkelijkheid’. In de praktijk worden nieuwe opnames die plaatsvinden in het weekend vaak bijvoorbeeld pas op dinsdag geregistreerd. Zonder correctie leidt dit tot opvallende pieken in modellen.
Zwietering heeft dit meegenomen in zijn werk. Met datasets van in totaal 180 landen moest hij tal van keuzes maken om bias in zijn modellen te voorkomen. De datascientist gaf als tip mee om altijd met een minimale dataset te beginnen. “In mijn geval telde hij drie kolommen: datum, aantallen besmettingen en locatie. Vervolgens praat je met experts over de afwijkingen die je ziet, bijvoorbeeld het zojuist genoemde rapportage-effect.”
In de modellen van Zwietering is duidelijk zichtbaar dat er verschillende ‘onderstromen’ zijn die samen een grotere golf kunnen vormen. In de discussie kwam de vraag naar voren aan welke informatie de meeste behoefte is bij het plannen van ic-capaciteit. Dat bleken gegevens te zijn waarmee stijgingen en dalingen in nieuwe besmettingsaantallen vroegtijdig worden gezien.
Cijfers zijn gevolg van menselijk gedrag
Zwietering maakte onder meer gebruik van de Gumbel-distributie en modellen uit predictive maintenance en het verzekeringswezen. Het resultaat is overigens geen predictie, zo legde Zwietering duidelijk uit: “De cijfers zijn een gevolg van menselijk gedrag op basis van de omstandigheden waarin zij zich bevinden. Daarbij heb je te maken met een enorme hoeveelheid variabelen, waardoor giswerk nodig zou zijn om te kunnen voorspellen. Wél kan ik zien hoe we tot de huidige situatie zijn gekomen en waar we in de curve zitten, en ik kan dit vervolgens projecteren naar de toekomst.”
Een datascientist is vaak bezig met het tegenwerken van zijn eigen interpretatie. Een bepaald inzicht kan immers leiden tot nieuwe (overheids)maatregelen die er op hun beurt voor zorgen dat zo’n mogelijke curve er niet komt. Zwietering nam een Amerikaanse staat als voorbeeld, waar een plotselinge lockdown zorgde voor de helft minder nieuwe besmettingen dan de 30.000 die Zwietering in zijn modellen zag ontstaan. Zulke scenario’s zouden in Nederland tot vragen kunnen leiden over de genomen maatregelen, denkt Melief. “Als we het straks met z’n allen goed hebben gedaan, kan het zijn dat er kritische vragen komen. Maar met die manier van denken kun je ook wel alle vaccinatieprogramma’s stopzetten.”
Twaalfde golf
In de online workshop gebruikten deelnemers Jupyter Notebooks die ze in de IBM Cloud of lokaal konden draaien. Modellen en datasets waren in te laden vanaf een git repository. Vervolgens was het mogelijk zelf nieuwe data van onder meer de EU CDC in te laden en output te genereren. Zo werd zichtbaar dat we in Nederland niet in de tweede golf zitten, zoals in de media vaak wordt gesteld, maar er inmiddels al sprake is van twaalf duidelijk van elkaar te onderscheiden golven.
Middels een clustering-algoritme maken de modellen onderscheid tussen golven. Zwietering: “Elke uitbraak vertoont in statistisch opzicht dezelfde verdeling, dat is de Gumbel-distributie. Deze groepeer ik zodat ze een goede representatie geven.” Over het algemeen leken de deelnemers de materie goed bij te benen en in de chat kwamen enthousiaste reacties binnen. Na enkele opstartproblemen (vooral adblockers bleken een boosdoener) kon vrijwel iedereen verder met de default Python-runtime in de IBM Cloud. Er werden interessante vragen behandeld, bijvoorbeeld over waarom Zwietering absolute aantallen in zijn modellen verkiest boven percentages (hier bleek hij voor te kiezen omdat kleine landen, zoals het Vaticaan, percentueel grote uitschieters kunnen vertonen). Hier en daar kwamen bizarre uitschieters in modellen aan de orde, zoals een piek in Chinese cijfers die het gevolg was van het plotseling registreren van grote aantallen niet eerder geregistreerde gevallen. Wie hierover meer wil weten, kan kijken naar de replay. Developers en/of datascientists zijn welkom om op basis van de curves hun eigen analyses verder uit te werken.
Geen waardeoordelen
Tot slot kwamen privacy en ethiek tijdens de workshop en het rondetafelgesprek veelvuldig aan de orde. Achter elk cijfertje schuilt immers een mens. “Ethiek en bias zijn geen ticks in the box”, gaf Zwietering mee. Zelf blijft hij daarom het liefst ver uit de buurt van waardeoordelen. “Dat is niet aan mij. Wel hoop ik straks met de kerst te zien dat de golf kleiner is dan die tijdens het voorjaar, omdat we dan geleerd hebben hoe we ermee om moeten gaan.”
Dit artikel is geen redactioneel artikel, maar een advertorial en tot stand gekomen dankzij IBM en Tweakers Partners. Dit is de afdeling binnen Tweakers die verantwoordelijk is voor commerciële samenwerkingen, winacties en Tweakers-events zoals Meet-ups, Developers Summit, Testfest en meer. Kijk hier voor een overzicht van alle acties en events. Mocht je ideeën met ons willen delen over deze vorm van adverteren, dan horen wij dat graag. Hierover kun je met ons in gesprek via [Discussie] Reclame algemeen].