Python?

  • code

Hij was zijn COVID project begonnen met NetLogo als werkbank omdat hij te maken heeft met iets dat alleen als complex dynamisch netwerk valt te begrijpen. Dat mag zo zijn, maar om zoiets zinvol te kunnen naspelen moet je er al veel van weten. En daarvoor zijn plaatjes van simpele tijdlijnen genoeg. Die kan NetLogo wel aan, maar er zijn een paar drempels, vooral als het COVID-monster zich tijdens de rit over de hele wereld verspreidt en zich blijft doorontwikkelen.

Dan kan het voor de hand liggen om iets te willen hebben dat dergelijke tijdslijnen kan produceren, naar willekeur. Voor combinaties van landen, periodes en databronnen naar keuze. Hiervoor is Python (ingebed in Anaconda’s Jupyter) veel geschikter.

Hij maakte zich voldoende eigen van Python’s eco-systeem om ermee uit de voeten te kunnen. Hij bouwde tenslotte al sinds 1969 computerprogramma’s, en het wonderlijke van Python is dat die taal nog steeds naadloos aansluit op de beginselen die Donals Knuth in de eerste drie delen van zijn The art of computer programming uit de jaren 1970 propageerde.

Voor Pythongebruikers is het handig belangstelling te hebben voor hoe elementaire processen en datastructuren worden verwerkt. Op die basis is een verpletterende verzameling van bouwstenen ontstaan. Die is vooral bestemd voor onderzoekers en ontwerpers die ad hoc rekenkracht nodig hebben. Veel glossy applicaties en games zijn ermee ontwikkeld. Om vergelijkingen te kunnen maken tussen COVID-19 tijdlijnen gebruikte hij Python.

Een voorbeeld is in Fig. 1, waarin drie tijdlijnen per jurisdictie zijn gegeven, voor zes jurisdicties (NLD, BEL, USA, IND, KOR en NZL). De lijnen zelf zijn geharmoniseerd, ze geven aantallen per miljoen inwoners. Omdat de getallen moeilijk leesbaar zijn zonder de grafiekjes te vergroten geeft hij in de tabel een paar getallen:

Code population Td.TdpM. DcpM. DdpM.
NLD 17,134,873 9,453 552 268 1.58
BEL 11,589,616 16,645 1436 64 8.46
USA 331,002,647 268,045 809 477 3.54
IND 1,380,004,385 137,621 100 23 0.35
KOR 5,126,918 526 10 9 0.00
NZL 4,822,233 25 5 1 0.00
Tabel met een paar getallen om zes jurisdicties te vergelijken

Hij had al eerder naar verschillen per land gekeken. In de tabel zijn steeds twee jurisdicties gekozen uit de eerder herkende beleidstypen. België en Nederland representeren de anti-cyclische aanpak, de VS en India de gefragmenteerde aanpak en Zuid-Korea en Nieuw-Zeeland de controlerende. (Td. = het totale aantal COVID-doden in een land, TdpM. = dat getal nu per miljoen, DcpM is het aantal geregistreerde besmettingen van gisteren per miljoen en DdpM is het aantal COVID-doden van gisteren per miljoen.) Om de data vergelijkbaar te maken naar omvang van de populatie is in de laatste drie kolommen teruggerekend naar aantallen per miljoen (van een volk).

Wat de tabel bijvoorbeeld laat raden is dat België het qua totaal aantal COVID-doden per miljoen aanmerkelijk minder goed doet dan de USA, maar dat het aantal besmettingen van vandaag (per miljoen) weer veel beter is. Dat zou een signaal kunnen zijn dat anticyclisch beleid is alle hevigheid is aangezet. Om dat te kunnen zien zijn plotjes dienstig.

Fig. 1 Harmonized (per million) time-tines for six jurisdictions

Tijdlijnen als in Fig. 1 zijn dienstig om structuur in de dynamiek en de aanpak van jurisdicties te kunnen herkennen, de tabel is bruikbaar om de medische doeltreffendheid van de verschillende politieke werkelijkheden te vergelijken. Tijdlijn data zijn ook geschikt om inzichten te toetsen over de medische eigenschappen van het virus, bijvoorbeeld door na te gaan of de ratio van het aantal COVID-doden tegen het aantal positief getesten (als alleen mensen met symptomen zijn getest) bij enige vaste tussenperiode een constante zou opleveren. Daarnaar kijkt hij later.