Skip to content

Latest commit

 

History

History
104 lines (61 loc) · 25.4 KB

generalExplanation.md

File metadata and controls

104 lines (61 loc) · 25.4 KB

Négy fontos megjegyzés elöljáróban

  1. Ezt a projektet hobbiként, kizárólag nyilvánosan elérhető információforrásokra támaszkodva végzem. Ebből adódóan az eredmények nem tekinthetőek semmilyen szerv hivatalos álláspontjának, valamint -- bár természetesen igyekeztem a lehető legjobb tudásom szerint eljárni -- a helyességére sincs hivatalos pecsét.

  2. Ennek közvetlen folyományaként: minden észrevételt, megjegyzést, dicséretet, kritikát, javaslatot a lehető legnagyobb örömmel veszek! (És, amennyiben lehet, igyekszem felhasználni a továbbfejlesztéshez.) Email-címem: ferenci.tamas@nik.uni-obuda.hu. Ha valaki jártas ebben, akkor bátran nyisson a Github-on issue-t. A felhasznált adatbázist, valamint az elemzést végző szkripteket teljes terjedelmükben nyilvánosságra hoztam (lásd a fejlécben lévő linket).

  3. A projekt elsődleges célközönségét a szakmában dolgozók jelentik, de minden tőlem telhetőt megtettem, hogy itt, illetve az egyes pontok Magyarázat nevű füleiben -- ha a statisztikai részleteket nem is -- de az eredmények jelentését, értelmét, és mindenekelőtt a belőle levonható következtetéseket minden érdeklődő laikus számára érthetően megmagyarázzam. Ettől elválasztva, tömören igyekeztem az adott módszer matematikai hátterét és számítástechnikai megvalósítást is összefoglalni a Magyarázat füleken.

  4. Nagyon fontos, hogy egy eredmény csak akkor használható, ha értjük annak a limitációit, hibaforrásait is! (Például a reprodukciós szám az esetszámból van kiszámolva, ami függ a tesztelési aktivitástól, az aluldetektálás egy elméleti halálozási rátát használ, ami függhet attól, hogy melyik korosztályban terjed elsősorban a járvány stb.) Ezekre a Magyarázat pontokban szintén igyekeztem felhívni a figyelmet.

Mi ez az egész projekt?

Az utóbbi évtizedekben egyre többet és többet megértettünk azokból a tényezőkből, melyek a járványok kitörését és lefutását meghatározzák. Kialakult egy új tudományterület, a biostatisztika, az epidemiológia, a biomatematika elemeiből építkezve, mely arra a felismerésre épül, hogy az e tényezők -- biológiaitól egészen a szociológiaiakig -- összhatásaként kialakuló járványlefutás matematikai eszközökkel leírható. Ennek a pontossága elért arra a szintre, hogy ez az eszköztár többé már nem csak az elméleti alapkutatóknak érdekes, hanem a létező legkonkrétabb gyakorlati kérdések eldöntésében is létfontosságú segítséget tud adni a szakembereknek.

Mekkora egy járvány kitörésnek a veszélye? Ha kitört, milyen lefutásra számíthatunk, tehát hány betegre és milyen időbeli eloszlásban? Az egyes beavatkozások hogyan módosítják ezt? Ennek alapján: mi az optimális eszköz a járvány megfékezésére, vagy legalábbis lelassítására? Ilyen és ehhez hasonló kérdésekben mind segítik a választ a megfelelő módszerek; talán már ennyi is mutatja, hogy miért nagyon is lényeges a gyakorlati alkalmazásuk.

Az immár Magyarországot is elért koronavírus-járvány sajnálatosan jó alkalmat ad ezen módszerek gyakorlatba átültetésére. Itt a feladat egy már kitört járványra történő válaszadás (angol szóval: outbreak response). Ezen a weboldalon ennek az eszközeit igyekszem felhasználni

  • jól kezelhető formában (weboldal, melyen teljesen testreszabhatóak a számítások, de közben semmilyen programozási ismeret nem igényel),
  • átfogóan (lehetőleg teljeskörűen megvalósítva az outbreak response-hoz fontos számításokat),
  • teljesen transzparensen, a 'nyílt tudomány' jegyében.

E módszerek kapcsán egyre fontosabb kérdést jelent a számítási háttér is. Szerencsére a technika fejlődése lehetővé teszi, hogy a szükséges számításokat gyakorlatilag folyamatosan, valós időben futtassuk.

Bár a konkrét cél a koronavírus-járványra adott válasz támogatása, valójában a kifejlesztett kódom bármilyen más járványnál is felhasználható, csak az esetszámokat kell kicserélni. Éppen ezért azt remélem, hogy az itt leírt ismeretek, illetve ez keretrendszer később is fogja tudni támogatni a magyar járványügyiseket.

Cikkeim, interjúim, írásaim a témában

Adatok forrása

Az adatokat egyelőre kézzel gépelem be az NNK adatközlései alapján, naponta.

(Személyes megjegyzés zárójelben: a magyar adatszolgáltatás elégtelenségéről már sokszor, sok helyen beszéltem. A kérdés az elemi járványügyi adatoknál kezdődik, amik lényegében egy eset- és halott-számra redukálódnak, most nem beszélve arról, hogy ezeket is úgy közlik, hogy minden nap lecserélik az előző számot, tehát csak az tudja követni az időbeli helyzetet, aki minden reggel leírja egy kockás füzetbe a számot. A területi adatokat egy PNG formátumú kép (!) fájlban közlik, erre mondani is nehéz mit. Életkori lebontás, nemi lebontás sehol. Ráadásul ezeket meg is indokolták: nem adják meg, mert az "leköthetővé tenné a betegeket". Tehát az, hogy "tegnap 1234 betegünk volt 60 és 65 év között" az lekövethetővé tesz szerintük valakit. Mindeközben viszont a halottak adatait olyan pontossággal adják meg, hogy csak én 4 embert tudtam név szerint beazonosítani a listáról. Szóval a "tegnap 1234 60 és 65 év közötti betegünk volt" kitételre azt mondják, hogy sajnos beazonosíthatóvá tesz valakit, de ez meg teljesen oké, hogy névvel-címmel megtudja az egész ország valakiről, hogy alkoholista volt. Most az nyilván sportszerűtlen, ha megmutatom, hogy egy nyugati országban milyen adatközlést működtetnek a népegészségügyi hatóság (ez itt például Washington államé), de az igazán szomorú az, hogy az észak-macedón (észak-macedón!) egészségügy ilyet működtet, már a járvány harmadik hetétől kezdve. És hangsúlyozom, hogy ezek, amikről itt szó van, kivétel nélkül olyan adatok, ami készen rendelkezésre áll, semmiféle érdemi munkát vagy erőfeszítést nem igényelne a közlése, ez tisztán elhatározás kérdése. El kellene határozni, hogy felnőttnek tekintjük a magyar embereket, hogy megismerhetik ezeket az adatokat. Talán hadd mondjak két példát a részletesebb adatokra is. Anglia, intenzív osztályos adatok: betegjellemzők, kezelés adatai, kimenet adatai, életkori, nemi és sok egyéb lebontásban. Mindez hetente frissítve (100 oldalas jelentés), bárki számára nyilvánosan letölthetően. Egyesült Államok, kórházi terheltségi és kapacitási adatok: minden amerikai kórház adatai, ágyszám, foglaltság, betegforgalom, különféle lebontásokban, összesen több mint 90 változó. Mindez hetente frissítve (150 ezer soros Excel-tábla), bárki számára nyilvánosan letölthetően. Ez részben filozófiai kérdés, hogy le kellene tenni ezt a paternalizmust, hogy a felkent szakértők jobban tudják a dolgokat, mint a pórnép, úgyhogy nekik minek is adatokat adni, de csak részben. Van ugyanis egy még drámaibb szempont: a bizalom. Azért kell ezeket az adatokat közölni, hogy az emberek bízzanak bennünk. Mert látják, hogy mi történik. Lehet, hogy rossz, de legalább látják. Ha nem látják, akkor nem azt gondolják, hogy minden tökéletes, és azért nem láthatnak bele, hanem azt, hogy valami nem tökéletes és azért nem. Szóval nem csak arról van szó, hogy nem tekintik felnőttnek a magyarokat, hanem, hogy ezzel saját maguk alatt vágják a fát, mert a teljes homályban tartás a legjobb táptalaja minden spekulációnak és összeesküvés-elméletnek.)

Frissítés (2020. július 29.): Hosszas gondolkodás után végülis átállítottam az oldal adatforrását a Johns Hopkins adatbázisra, így az oldal innentől teljesen automatikusan és naponta frissül. Jobban örültem volna az ECDC vagy WHO használatának (egy fokkal mégis csak "hivatalosabbak"), de mindkettőben vannak hibák - ami amúgy szintén megérne egy misét... - míg a Johns Hopkins hónapokra visszamenően helyes számokat tartalmaz.

Frissítés (2021. július 27.): A hivatalos magyar adatközlés június közepétől nem ad meg hétvégi adatokat, hanem hétfőn egyben közli őket. (A "hétvégi adatokat közöljük" címke alatt, de mivel két napon át nincs adatközlés, ez valójában három nap - péntek, szombat, vasárnap - együttes adata, hiszen a hétfő előtti utolsó adatközlés a megelőző hét péntek reggeli, ami a csütörtöki adatokat adja meg.) Mivel ez hosszabb időre így maradt, így mindenképpen kezdeni kellett valamit. A múltbeli adatok szerint a pénteki és a szombati számok meglehetősen stabil hányadát adták a három nap együttes adatának, így úgy döntöttem, hogy ezen arányok használatával szétosztom a hétfő reggel közölt (össz)adatot a három nap között. A szétosztási arányok: esetszámban 0,4 és 0,35, halálozások számában 0,4 és 0,3, teszt-számban 0,35 és 0,35 (rendre a péntek és a szombat). Az így kapott számokat kerekítettem, majd kivontam a hétfőn közöltből (hogy mindegyik szám egész legyen és az összeg se változzon).

Az elvégzett tesztek számának adatforrása az Our World in Data (OWID).

A többlethalálozási számításokhoz a heti halálozási adatok forrása a Központi Statisztikai Hivatal (STADAT 22.2.1.2).

Az adatok felhasználása

A számítási eredményeim, adatok, ábrák, táblázatok a forrás megjelölésével szabadon felhasználhatóak, ezt nem tiltom meg, sőt, kimondottan bátorítom, és igyekszem segíteni is azzal, hogy mindent kényelmesen kezelhető formátumban (táblázatokat CSV-ben, ábrákat PDF-ben és PNG-ben) egy kattintással letölthetővé teszek.

Mik a fontos eredmények?

Alapvetően két célunk van outbreak response során. Az egyik, hogy leírjuk a járvány aktuális helyzetét, megfelelően választott mutatószámokkal, mely jelzi a jelenlegi helyzetet. Másrészt, és talán ez a még fontosabb, hogy ez alapján előrejelzéseket tegyünk a jövőre nézve. Ezen előrejelzések egy része empirikus: nincs ismeret mögötte arról, hogy a háttérben lévő folyamatok hogyan működnek, mik az ok-okozati kapcsolatok, egyszerűen csak "meghosszabbítjuk" a múltbeli viselkedést. Az előrejelzések más része mechanisztikus, modell-alapú: feltételez valamit a valóságos jelenség viselkedéséről, esetleg úgy, hogy annak néhány paramétere még ismeretlen, és azokat megpróbálja a múltbeli tényadatokból megbecsülni.

Ez azért borzasztóan fontos, mert ha van egy modellünk, mégpedig egy jól validált modellünk (így szokták hívni, ha a modell tényleg jól működik, olyan értelemben, hogy amit mond arra nézve, hogy mi fog történni, az történik a valóságban is), akkor a számítógép előtt ülve le tudjuk játszatni a jövőbeli történéseket. Meg tudjuk mondani, hogy milyen lesz a járvány lefutása, de ami még sokkal fontosabb: ki tudjuk próbálni (még egyszer: a számítógép előtt ülve, teát szürcsölgetve), hogy mi történik akkor, ha egy bizony beavatkozást érvénybe léptetünk. Hogyan hat a lefutásra, ha bezárjuk az egyetemeket? És ha a közoktatást is? És ha mindkettőt? És ha a mozikat is? És ha 30% távmunkában kezd el dolgozni? És ha 20? És ha 40? Valóságból csak egy van, nem tudjuk mint egy videójátékban elmenteni a helyzetet, és kipróbálni ezeket a lehetőségeket mindig visszatérve a mai mentéshez -- de a modellek lehetővé teszik, hogy valamilyen értelemben mégis csak ezt csináljuk! Lehetővé teszik, hogy kockázat nélkül kipróbáljuk a különféle intézkedések hatását, ami, mondani sem kell, azért nagyon fontos, mert lehetővé teszi a járványügyi intézkedések racionális alapon történő megválasztását.

A reprodukciós szám

Térjünk vissza egy pillanatra az aktuális helyzet jellemzéséhez. Itt ugyanis van egy fogalom, amivel mindenképp meg kell ismerkedni: a reprodukciós szám. Ez azt jelenti, hogy egy ember átlagosan hány másiknak adja át a fertőzést. Egy nagyon ragályos betegségnél ez lehet $R=10$, egy jóval kevésbé ragályosnál lehet $R=2$. (Ez természetesen egy átlag: lehet, hogy valaki egynek sem adja át, más meg 100-nak.) Egy dolgot kell világosan látni: egy járvány addig terjed önfenntartó módon, amíg $R>1$. Hiszen 1 beteg 2-t "hoz létre", a 2 mindegyike 2-2-t, így a következő -- ahogy az epidemiológusok mondják -- generációban már 4 betegünk lesz, aztán 8, aztán 16, és így tovább. A járvány önfenntartó módon felfut. Ezzel szemben ha $R=0,!5$, akkor 16 beteg már csak 8-at fog létrehozni, azután már csak 4 lesz a következő generációban -- a járvány kialszik. (Hogy lehet az $R$ értéke nem egész szám? Minden további nélkül, az $R=1,!1$-et fogjuk fel úgy, hogy 10 beteg 11 másodlagos fertőzést kelt.)

A különböző intézkedések tehát az $R$ értékét igyekeznek csökkenteni. Hogy honnan indulunk, az alapvetően a kórokozó biológiájától (hogy mennyire ragályos) és a társadalom éppen aktuális szociális viszonyaitól függ (például a lakásviszonyok zsúfoltsága, tehát, hogy milyen gyakran nyílnak fertőzés átadására alkalmas utak). Ezt szokták néha elemi reprodukciós számnak ($R_0$) is nevezni, ami a reprodukciós szám akkor, ha a fertőzöttet csupa fogékony veszi körül, és semmilyen korlátozó intézkedést nem hozunk. Ezt csökkentheti a védőoltás, ha elérhető, a már meglevő természetes immunitás a betegség ellen, például kiállt korábbi megbetegedés révén, ha van ilyen, és a különféle egyéb intézkedések, iskolák bezárása, éttermek és szórakozóhelyek bezárása és így tovább. (Néha szokás az így kialakuló értéket megkülönböztetésül effektív reprodukciós számnak nevezni, én most nem bonyolítom a szóhasználatot, hanem egyszerűen reprodukciós számnak hívom. Az outbreak response során ez lesz a fontos.)

Az $R$ azért ilyen alapvető mutató, mert egyszerre mutatja a jelenlegi helyzetet -- amiben persze a múltbeli intézkedések hatása tükröződik -- és ad előrejelzést arra nézve, hogy mi várható a jövőben. Hogy a járvány milyen gyorsan fog felfutni (túlterheli-e az egészségügyi rendszert?), hogy hány betegre kell összesen számolnunk (bármikor is betegszenek meg), tehát a lakosság mekkora részét fogja érinteni a járvány végeredményben, és a fentiek fényében azt is, hogy van-e lehetőség a kitörés elfojtására.

A közösségi immunitási küszöb

Egy pillanatra még érdemes visszatérni az $R_0$ értékére, tehát a reprodukcióra akkor, ha mindenki fogékony és nem hozunk semmilyen intézkedést, ugyanis ez is meghatároz egy nagyon fontos dolgot. Ha semmilyen intézkedés nincs, akkor a járványok terjedése eleinte nagyon gyors, és egyre csak gyorsul: a terjedést egyedül az korlátozza, hogy mennyi fertőző forrás van. Ez eddig nem meglepő, az érdekesebb rész akkor jön, ha egy kicsit továbbmegyünk. Egy ponton túl ugyanis bejön egy korlát: ha már nagyon sok betegségen átesett ember van (tételezzük most fel, hogy ez védettséget ad a betegség ellen), akkor az le fogja lassítani a terjedést, mert a fertőzöttek környékén, akiknek ők átadnák a betegséget, egyre sűrűbben lesznek védettek, akik irányába mégsem történik átvitel, és nem jön létre új megbetegedés. Ez -- minden intézkedés nélkül is -- csökkenti az $R$ értékét.

Ezt úgy érdemes felfogni, hogy az $R_0=4$ azt jelenti, hogy egy beteg átlagosan négy embert "kínál meg" a betegséggel. De ha az emberek fele védett, akkor valójában csak 2 új megbetegedés jön létre, hiszen a "megkínáltak" fele védett volt! Tehát ekkor az $R$ már csak 2. És valami nagyon fontos dolog történik akkor, ha a védettek aránya eléri a háromnegyedet: ekkor az $R$ lemegy 1-re, hiába is volt 4 az $R_0$. Azaz: olyan sűrűn vannak a védettek, hogy már nem tud kialakulni önfenntartó járvány, hiába -- és ez nagyon fontos! -- nincs semmilyen korlátozó intézkedés. Ezt a helyzetet szokás közösségi immunitásnak (régebbi szóval nyájimmunitásnak) nevezni.

Jól látszik, hogy van egy küszöb, amit ha elér a védettek száma, akkor nem csak lelassítjuk a betegséget, hanem egyáltalán nem tud önfenntartó járvány kialakulni, és az is érzékelhető, hogy ez a küszöb annál magasabban van, minél nagyobb az $R_0$. (Pici végiggondolással belátható, hogy ennek az értéke $1-1/R_0$.) A koronavírus esetén jelenlegi tudásunk szerint 2-3 körül van az $R_0$, az elemi reprodukciós szám, tehát más intézkedés hiányában akkor nem tör ki járvány, ha a lakosság 60-70%-a védett. Amíg nincs védőoltás, és senki nem rendelkezik eleve immunitással, ez magyarul azt jelenti, hogy ennyi embernek kell átesnie a betegségen, hogy külön intézkedés nélkül se törjön ki járvány! (És akkor még feltételeztük, hogy a betegség átvészelése tartós immunitást ad, ami igazából még nyitott kérdés.)

Ez gondolatilag is fontos: ha az $R$-et lecsökkentjük (de nem 1 alá), akkor a járvány lelassul ugyan, de amint feloldjuk a csökkentő intézkedéseket, újra el fog indulni, és mindez addig tart, amíg el nem érjük a közösségi immunitási küszöböt. Ezen csak a védőoltás segít, vagy a betegség teljes felszámolása, hiszen ha egyetlen beteg sincs, akkor mindegy mekkora az $R$, nem fog járvány kitörni. (Persze ez egy borzasztó törékeny állapot, hiszen a mai viszonyok mellett egy pillanat alatt megérkezhet a kórokozó külföldről, mint ahogy a koronavírus is megérkezett mindenhová, teljesen mindegy, hogy ki mit csinált. Ennek kizárására tehát nem lehet reálisan építeni, hogy mást ne mondjunk, még Észak-Koreába is megérkezett a vírus, úgyhogy a dolog csak akkor működik, ha nem egy országban, hanem az egész világon kiirtjuk a kórokozót. Erre eddig egy állatgyógyászati példa volt, a fekete marhavész, és egy humán, a feketehimlő.)

Járványok dinamikája, a generációs idő

Fontos látni, hogy az $R$ viszont semmit nem mond a járvány dinamikájáról, tehát időbeli lefutásáról. A példa kedvéért elképzelhetőek olyan körülmények, melyben az influenzának és a HIV-nek egyaránt 2 a reprodukciós száma. Csak míg az előbbi úgy jön ki, hogy a betegek időegység alatt sok embert tesznek ki a fertőzésnek, ám rövid időn keresztül, addig az utóbbi esetében időegység alatt kevesebbet, ám hosszabb időn keresztül. De ha a reprodukciós számuk ugyanaz, akkor ezen a szemüvegen keresztül ugyanúgy viselkednek, például –- védettség hiányában -– mindkettő önfenntartó járványt fog okozni. Ami igaz is, csak hogy egészen más jellegűt: az influenza nagyon gyorsan fel fog futni (majd le is cseng), addig a HIV-nél sokkal-sokkal elnyújtottabb módon gyűlnek a fertőzöttek.

Az időbeli dinamika egyik fontos mérőszáma a generációs idő: az az idő, ami egy ember megbetegedésétől eltelik addig, amíg ő megbetegít másokat. (Ennek a lemérése a valóságban problémás, hiszen általában nem tudhatjuk, hogy ki mikor betegedett meg. Éppen ezért a generációs idő helyett a fogalmilag eltérő, de a gyakorlatban vele jól egyező -- és ténylegesen lemérhető -- serial interval-t használják, ez az eset tüneteinek jelentkezése és az általa megbetegített emberek tüneteinek jelentkezése között eltelő idő.) Megint csak: ez sem egy konkrét szám, hanem egy eloszlás, néha kevesebb idő telik el, néha több. Gyakran feltételezzük, hogy az eloszlás alakja adott, csak bizonyos paramétereit -- várható értékét, szórását -- adjuk meg az adott konkrét betegségre, járványügyi helyzetre.

Halálozási arány és az aluldetektálás

Egy betegség "veszélyességének" legalapvetőbb mérőszáma a halálozási arány. Egy éppen zajló járvány esetében azonban egyáltalán nem nyilvánvaló, hogy ennek mi a megfelelő számítása; a naiv számítás torzított eredményt ad. Éppen ezért fontos végiggondolni ezt a kérdést, és igyekezni kiküszöbölni ezt a torzítást.

Bár elsőre meglepőnek hangozhat, de ez az eredmény aztán arra is felhasználható, hogy igyekezzünk jellemezni az aluldetektálást, tehát azt, hogy a betegek egy részéről nem tudjuk, hogy betegek, azaz nem jelennek meg a jelentett számban. (Vagy azért, mert vannak tüneteik ugyan, de mégsem tesztelték őket, vagy azért, mert tüneteik sincsenek; persze kellően széleskörű teszteléssel az ilyen esetek egy része is felderíthető lenne.)

Mik a projekt egyes komponensei?

A projekt több pontból épül fel, melyek közül a bal oldali menüben lehet választani.

  • A Járványgörbe mutatja a megbetegedések számának időbeli alakulását, azaz a járvány lefutását. Felhasználható a járvány alakulásának áttekintésére, illetve különféle görbék illeszthetők a tényadatokra (ez utóbbi azért is fontos, mert e görbék adatai később más számítások fontos bemenő paraméterét jelentik).
  • Az Előrejelzés pont összefoglalja a különféle módszerekből nyerhető előrejelzéseket az esetszám jövőbeli alakulására vonatkozóan. Persze ezek nem biztos értékek, úgyhogy az eredmények jellemzik a kapott előrejelzések bizonytalanságát is. Végezhető szcenárióelemzés is: megnézhetjük mi történik, ha a jelenlegi adatokból számolható helyett valamilyen más, általunk beállított érték szerint alakul a jövő.
  • Az reprodukciós szám becslése pont -- különféle statisztikai módszerekkel ad becslést az $R$-re. Választható a valós idejű becslés, mely igyekszik folyamatosan nyomon követni az időben változó reprodukciós számot, illetve a görbe egy szakaszából vagy egészéből számított becslés (egyetlen egy szám) is; ez utóbbinak olyan szakasz esetén van értelme, ahol feltehető, hogy az $R$ állandó. Itt is igaz, hogy az eredményekhez hozzátartozik a kapott becslésben lévő bizonytalanság jellemzése is.
  • A Halálozási arány és aluldetektálás pont a járvány halálozási rátáját követi, elvégzi korrigálását arra tekintettel, hogy egy éppen zajló járványban vagyunk és nem minden eset zárult le, illetve egy ettől külön -- de módszertanában erre építő -- problémakörként lehetővé teszi a betegek aluldetektálására történő következtetést.
  • Az Automatikus jelentésgenerálás a legfontosabb, fenti pontokon keresztül elérhető eredményeket automatikusan összeállítja egy PDF formátumú jelentésben és azt letölthetővé teszi.