Coronagrafieken

De afgelopen weken domineert het Coronavirus, terecht, het nieuws. Er is nog erg veel onbekend over dit virus en dat is iets waar we, zeker in de huidige tijd van big data en instant information, moeilijk mee om kunnen gaan. Het echte fake news - zoals die berichten dat er allemaal Vindicaters stiekem toch in quarantaine zitten - kunnen we nog wel herkennen en negeren, maar er zijn ook allerlei halve waarheden en te snel getrokken conclusies die viral gaan op social media.

Een beeld zegt meer dan duizend woorden, dus tweets met grafieken en voorspellingen over de ontwikkeling van het coronavirus worden veelvuldig gedeeld. Deze grafieken worden gemaakt door economen, filosofen, natuurkundigen en andere wetenschappers die wel handig zijn met computers maar nadrukkelijk geen gecertificeerd verstand van virussen hebben. Ik heb dat ook niet. Toch worden er niet zelden conclusies getrokken die je niet mag trekken en die nodeloos tot paniek, of juist gebrek aan daadkracht, kunnen leiden. Uitspraken als “Het aantal besmettingen verdubbelt elke vier dagen” zijn gevaarlijk: ze suggereren een ongelimiteerde exponentiële groei die zal leiden tot meer dan 20 miljoen besmettingen in Nederland binnen een maand. Dat is evident onmogelijk. Ook het fitten van bijvoorbeeld een kwadratische curve op de data is gevaarlijk: wiskundig kan je het wel doen, inhoudelijk is er geen enkel argument te bedenken waarom de ontwikkeling van het aantal ziektegevallen een kwadratisch patroon zou volgen.

Ook worden in die tweets parallellen getrokken met Italië: omdat onze eerste paar dagen van ontwikkeling lijken op die van de Italianen, moeten de komende dagen zich wel op dezelfde manier ontwikkelen als de desastreuse ontwikkeling die we in Italië zagen. Was causale inferentie maar zo simpel!

De data zelf

Om te laten zien hoe erg grafieken die allemaal best redelijk lijken kunnen verschillen, ga ik er nu een paar maken. Laten we eerst de actuele data van het RIVM m.b.t. het aantal gedetecteerde gevallen erbij pakken. De data wordt dagelijks bijgewerkt, in deze blog post heb ik de data gebruikt zoals die op 11 maart om 14:00 op de site stond; d.w.z. updates t/m 10 maart.

Dag Aantal gevallen
1 1
2 2
3 7
4 10
5 18
6 24
7 38
8 82
9 128
10 188
11 265
12 321
13 382
14 503

Die data kunnen we in een grafiek zetten: en het is duidelijk dat het aantal (gevonden) besmettingen steeds sneller lijkt te groeien. Daarom worden dit soort data vaak op een logaritmische schaal geplot: Aan de linkerkant zie je een knik, maar daar gaat het om 1 of 2 besmettingen, wat in absolute aantallen nauwelijks scheelt. Aan de rechterkant zie je dat de groei de afgelopen ca. 4 dagen wat minder snel lijkt te gaan dan de dagen ervoor.

Meten is weten

Wat zeggen de data eigenlijk? Niet hoeveel besmettingen er zijn! Wel hoeveel besmettingen er zijn gedetecteerd. Het RIVM detecteert niet iedereen (want anders was het allemaal veel makkelijker in te dammen). Als het detectieprotocol hetzelfde is, maakt het niet veel uit: stel dat het RIVM een derde van de gevallen meet; dan weet je dat je alle cijfers keer drie moet doen om de besmettingen te vinden.

Als het RIVM gedurende de meetperiode van protocol verandert, wordt het lastiger. En dit is precies wat gebeurd is: om kostbare en te weinig beschikbare testsets te besparen worden partners van gedetecteerden sinds dit weekend niet meer getest. De kans is groot dat deze partners ook besmet zijn, dus dit kan de afvlakking (deels) verklaren. De modellen hieronder werken met de gemeten aantallen detecties, niet met de daadwerkelijke aantallen; om de simpele reden dat we die daadwerkelijke aantallen niet kennen en als je iets niet kent kan je er niet goed mee rekenen. (Kan wel, dat is juist de kern van statistiek, maar is te lastig voor een blog post.)

Exponentieel model

Wat ik nu al tientallen keren heb langs zien komen, zijn mensen die een exponentiële groeifunctie op de data fitten. Bij exponentiële groei zie je elke dag een vast percentage aan groei, wat neerkomt op een steeds groter wordende toename in absolute getallen. In de grafieken hieronder laat ik die exponentiële groei zien: zowel met de meest actuele data (dag 14, doorgetrokken lijn) als met de data zoals we die eergisteren hadden (dag 12, stippellijn). Voor de volledigheid toon ik de grafiek zowel op logaritmische (links) als normale schaal (rechts). Beide lijnen fitten niet ideaal maar gaan toch vrij accuraat door de puntenwolk. Zou ik de 95%-onzekerheidsmarges erbij geplot hebben, dan was duidelijk dat alle punten binnen die marges vallen. Op het oog (zeker bij de linkergrafiek) verschillen de grafieken ook niet zo veel. Maar dat doen ze wel!

Het model dat met 14 dagen aan data werkt, voorspelt voor 15 maart maarliefst 5938 besmettingen. Het model dat met 12 dagen aan data werkt (oftewel het beste exponentiële model dat we eergisteren konden maken), voorspelt voor 15 maart maarliefst 1.91 keer zoveel besmettingen. Een of twee extra metingen kunnen dus een enorm effect hebben op de voorspellingen. Onze voorspelling overmorgen kan dus gemakkelijk weer een factor twee lager, of een factor twee hoger, liggen.

Maar dat exponentiële model is niet realistisch: niks kan ongelimiteerd door blijven groeien, uiteindelijk is of iedereen besmet of het virus ‘verslagen’. In de begindagen is de ontwikkeling goed met een exponentieel model weer te geven, maar later niet. Het figuur hierboven laat al zien dat de fit niet zo goed meer is. Een exponentieel model is per definitie ongeschikt om uit te vinden vanaf wanneer het model ongeschikt is.

Logistisch model

Een realistischer model maakt gebruik van logistische groei: dat begint met een soort exponentiële groei, maar na een tijdje komt er een afremming, wanneer het systeem ‘verzadigd’ is. Op Youtube zijn meerdere uitlegfilmpjes hierover te vinden. Ik vind deze wel mooi, er zitten leuke konijntjes in.

(Update 11 maart, 17:00: collega’s uit Eindhoven hebben dit model ook gebruikt om het coronaverloop in een aantal landen te voorspellen, met daarbij een uitgebreide en toegankelijke uitleg van het logistische model. Omdat bv. van China veel meer dagen met metingen zijn, is beter te zien in hoeverre dit model geschikt is en het lijkt aardig goed te fitten. Resultaten uit andere landen bieden, vanzelfsprekend, geen garantie voor de Nederlandse curve.)

Ik begin met het logistisch model met de meest actuele data, en laat hierbij de 95% voorspellingsintervallen zien. Wederom geldt dat alle punten mooi binnen de stippellijnen passen en dat het model “dus” lijkt te kloppen. Maar de modelvoorspelling is totaal anders dan die van het exponentiële model. Volgens dit model zitten we op de 15e met 653 besmettingen (95% predictieinterval [525, 781]). Dat klinkt haast too good to be true. Hadden we het model toegepast op de data van eergisteren, dan waren we op een totaal van 434 voor 15 maart uitgekomen (met interval [389, 479]): we zitten nu boven die bovengrens dus dat model is aantoonbaar inaccuraat.

All models are wrong, but some models are useful

Ik heb nu vier modellen laten zien: logistisch en exponentieel, voor twee datasets. Had ik meer tijd gehad voor deze blogpost, had ik met gemak nog 10 modellen kunnen verzinnen die ook goede eye candy opleveren voor een tweet, maar die desondanks weer totaal andere voorspellingen geven. Ik had bijvoorbeeld die trendbreuk in het meetprotocol van RIVM kunnen meemodelleren, of met Weibullverdelingen kunnen spelen

Deels komen die gigantische verschillen doordat we maar heel weinig data hebben: met de laatste update zitten we op 14 metingen. Het logistische model gebruikt vier parameters om de curve te fitten. Dan heb je maar een paar metingen per parameter en krijg je nooit stabiele schatters. De academische superheld John von Neumann zei ooit “With four parameters I can fit an elephant, and with five I can make him wiggle his trunk”. Als je je model maar ingewikkeld genoeg maakt, kan je elke uitspraak er wel uit laten rollen.

Daarnaast is een model per definitie een versimpelde versie van de werkelijkheid en ontbreken er belangrijke nuances. Om die goed te begrijpen en mee te modelleren moet je niet alleen verstand hebben van het bouwen van statistische modellen (wat ik wel heb) maar ook van de biologische, medische en sociologische contexten (heb ik geen verstand van). Een echt goed model maken is vakwerk en dat moet je niet aan een willekeurige academicus overlaten, maar moet je aan de experts overlaten.

Conclusie

Er zijn enkele conclusies en adviezen uit bovenstaande te halen:

  • Ga niet blind af op grafieken die op Twitter langskomen, ongeacht of deze nu onheilsspellend of juist geruststellend zijn.
  • Met zo weinig data heb je niks aan de data alleen. Ook niet aan de data van omringende landen erbij: je moet ook echt de inhoudelijke context (bv. wat is het meetprotocol van RIVM, hoe oud en in welke regio wonen de zieken, etc.) in je model stoppen.
  • Dat modelleren vereist echt vergaande inhoudelijke kennis. Al die academici die nu grafieken tweeten - en daar hoor ik dan ook bij - hebben die kennis niet. Ga niet af op hun oordeel.
  • Ga wel af op het oordeel van de experts. De medewerkers van het RIVM zijn dat. De medewerkers van de buitenlandse versies van het RIVM zijn dat. De virologen, epidemiologen en andere experts die bij de talkshows aanschuiven zijn dat. Natuurkundigen, data scientists en economen zijn dat niet. Ik ben het ook niet.
  • Gebruik je gezond verstand. Voorzorgsmaatregelen die nauwelijks inspanning kosten (geen handen schudden, wel handen wassen) moet je gewoon nemen: in het ergste geval heb je voor niks schone handen. Als je je niet zo fit voelt, blijf dan vooral thuis werken.
  • Flatten the curve.
  • Luister naar experts.
  • Knoop je jas dicht doe een das om, was eerst je handen, kam je haren recht je schouders, denk aan je tanden. En was je handen.
Avatar
Casper Albers
Statisticus • Onderzoeker • Columnist
Hoogleraar Toegepaste Statistiek en Datavisualisatie

Mijn onderzoeksinteresses omvatten alle vormen van toegepaste statistiek, met bijzondere nadruk op het modelleren en visualiseren van psychologische longitudinale data matter.

comments powered by Disqus