A magyarországi koronavírus járvány valós idejű epidemiológiája

A weboldal és az elemzések teljes forráskódja itt érhető el. Írta: Ferenci Tamás. Az adatok utolsó frissítésének időpontja: 2023. 03. 07.

Tweet

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.

-

Alapgondolat

A járványok alakulásának legalapvetőbb leírója a járványgörbe, ami megadja a betegek számának időbeli alakulását. Itt most azzal foglalkozunk, amikor a jelentett esetszámot vizsgáljuk, ez a legkézenfekvőbb lehetőség, ez a járvány alakulásának leginkább közvetlen, áttételek nélküli leírója. Kézenfekvősége ellenére is számos csapda van ebben elrejtve, amiket értenünk kell ahhoz, hogy megfelelően tudjuk értelmezni a járványgörbét. Nagyon fontos, hogy ezek a limitációk természetesen minden olyan elemzésre is ugyanúgy érvényesek, melyek az esetszámok görbéjén alapulnak (pl. reprodukciós szám becslése)!

Az első és a legfontosabb, hogy a koronavírus esetén a jelentett esetszám drasztikusan, akár nagyságrendileg is eltérhet a tényleges esetszámtól. Ennek az oka a betegség biológiája: sok ember van, ráadásul most még a pontos arányukat sem ismerjük, akiknél tünetszegényen, más betegséggel könnyen összetéveszthetően, vagy akár teljesen tünetmentesen zajlik a megbetegedés. Ez nem olyan, mint a kanyaró, hogy minden betegnek tünetei vannak, és szinte minden esetben ordítóan egyértelmű tünetei.

Ennek a folyománya, hogy a jelentett esetszámokat nagyon veszélyes önmagukban, az elvégzett tesztek száma nélkül értelmezni. Hiszen a tünetmentes, vagy nem egyértelmű tüneteket mutató eseteket csak a teszt fogja megtalálni! Ennek következtében, ha egy ország sokat tesztel, több ilyet is meg fog találni és jelent, míg aki keveset, azoknál ezek nem kerülnek bele a jelentésbe. Egyfelől tehát az országok közti összehasonlításnál erre mindig tekintettel kell lenni (simán lehet, hogy ha egy országban magasabb a jelentett esetszám az , mert azt jelenti, hogy sokat megtalálnak, míg ha valahol alacsony, az baj!), másrészt egy országon belül, időben is változhat a tesztelési aktivitás. Ha felfut a tesztek száma, megnőhet az esetszám, miközben a járványügyi helyzet nem lett rosszabb (ellenkezőleg, végre jobb képet kapunk), vagy fordítva, ha nem nő eléggé a tesztek száma, azt hisszük, hogy nincs is nagy baj (miközben nagyon is van).

Az utóbbi miatt felmerülhet az a kérdés, hogy akkor egyáltalán mi értelme az esetszámokra alapozott járványgörbét nézni, vagy abból bármit is számolni? Van, pontosabban szólva lehet értelme, ugyanis bár elképzelhető, hogy az abszolút számok rosszak, de a relatív viszonyok egy országon belül rendben lesznek, mindaddig persze, amíg a tesztelési aktivitás maga nem változik meg lényegesen az országban. Lehet, hogy tízszer annyi eset van a valóságban, de ha a jelentett számok nőnek/nem nőnek/csökkennek, akkor a valós számok is nőnek/nem nőnek/csökkennek, mindaddig, amíg a 10-es szorzó állandó. Természetesen, ha hirtelen elkezdünk sokkal többet tesztelni, akkor megugrik az esetszám anélkül, hogy a hátterében valódi változás lenne a járványügyi helyzetben, vagy fordítva, ha a tesztelési aktivitás nem tud lépést tartani a járvánnyal, akkor az esetszám növekedése látszólag lelassul vagy megáll, miközben a valódi helyzetre ez nem igaz; ez talán a legfontosabb dolog, ami miatt az esetszámokkal, és minden belőlük számolt adattal – még egy országon belül is! – óvatosnak kell lenni. A Tesztpozitivitás pont további segítséget ad ehhez a kérdéshez (hiszen az utóbbi helyzet egyik jó indikátora, hogy megnő a pozitívak aránya az elvégzett teszteken belül).

Bár korábban az szerepelt, hogy ez a “leginkább közvetlen” mutató, valójában ez sem teljesen igaz: elvileg a megfertőződés dátuma szerinti járványgörbe lenne az ideális. A jelentési időpont szerinti járványgörbe ugyanis késleltetve van: egyfelől a megfertőződéstől a tünetek jelentkezéséig eltelő idő, tehát a lappangási idő, másfelül a tünetek jelentkezésétől a regisztrálásig eltelő idő – orvoshoz fordulásig eltelő idő, mintavételig eltelő idő, teszt kiértékeléséig eltelő idő stb. – késlelteti.

Sajnos a megfertőződés időpontja a legtöbb esetben egyáltalán nem, vagy – egy éppen zajló járvány körülményei között – gyakorlatilag nem deríthető fel. Egy lehetőség azonban van, hogy közelebb kerüljünk az optimálishoz: ha nem a betegség jelentésének dátuma, hanem a a tünetek fellépésének dátuma szerint képezünk járványgörbét – ez persze csak utólag tehető meg, de ezzel legalább a tünetek jelentkezésétől a regisztrálásig eltelő idő okozta késleltetés kiküszöbölhető, ha visszatekintve akarunk tisztább képet kapni.

A kettő közti különbséget látványosan mutatja a következő ábra, ami a német helyzetről készült:

Német helyzet

A kék oszlopok a tünetek fellépése szerinti, a sárgák a jelentés dátuma szerinti görbét adják ki. Szépen látszik, hogy az új betegségkezdetek már március közepe óta csökkentek, miközben a jelentett esetszám még két hétig nem változik.

(Az e pontban látható járványgörbe – mivel szemben Németországgal, Magyarországon nem érhető el másra vonatkozó adat – a jelentés dátuma szerinti görbe.)

Mindezek végiggondolása egyébként egy rendkívül fontos járványügyi kérdésre is felhívja a figyelmet: azt, hogy bármilyen intézkedést is hozunk, annak a hatása kb. 2-3 hét múlva fog érvényesülni, hiszen ott van a lappangási idő, és a jelentésig eltelő idő. Ha például bevezetünk egy korlátozást, akkor lehet, hogy az új fertőzések száma azonnal lecsökken, de a lappangási idő alatt lévő, vagy épp a tesztre váró betegeket ez nem érinti, ezért a jelentett betegek száma – mint a rendszer egyfajta tehetetlensége – egy ideig még nem fog lemenni! Ugyanez persze azt is jelenti egyúttal, hogy amit a görbén látunk, az valójában a két héttel ezelőtti fertőződési helyzetet tükrözi.

A hivatalos adatközlések gyarkan azt adják meg, hogy adott időpontig összesen hány beteg volt – ennek a szép neve: kumulált esetszám – az epidemiológiai vizsgálatokhoz általában a napi esetszámra kell áttérni.

Elvileg a függőleges tengelyen az incidenciát, tehát a lakosság lélekszámával leosztott (pl. százezer főre jutó) esetszámot illene ábrázolni. Ha azonban a járvány gyors (hogy a születések és az egyéb okból bekövetkező halálozások ne változtassanak sokat) és nem extrém nagy halálozású (hogy magában a betegségben meghaltak ne változtassanak sokat), akkor nem követünk el nagy hibát, ha egyszerűen az esetszámot tüntetjük fel.

Az itt szereplő görbén a fekete pontok a tényadatokat jelentik, a kiválasztható kék görbe pedig a rájuk illesztett ún. simítógörbét. Ez egy olyan görbe, ami a véletlen ingadozásokat kisimítva, a görbe alaptrendjét igyekszik követni, de a nélkül, hogy bármit fel kellene tennünk arról, hogy mi a valódi alakja.

Más feladatokhoz viszont fontos lehet az is, hogy találjunk valamilyen, matematikailag ismert alakú függvényt, ami jól leírja a görbe alakulását. Ez két szempontból fontos. Egyrészt, ha a pontokra illeszkedik valamilyen görbe, akkor azt – szemben a simítógörbével! – meg tudjuk “hosszabbítani”. (Hiszen ismerjük a függvényt, egyszerűen beleírunk egy jövőbeli dátumot.) Magyarul: előre tudunk vele jelezni! Fontos, hogy az ilyen előrejelzések inkább csak rövid távra alkalmasak; ennek részletei az Előrejelzés pontnál szerepelnek.

A másik fontos ok a függvényillesztésre az, hogy ha a pontok tényleg az adott függvényt követik, csak épp a véletlen miatt szóródva körülötte, akkor az illesztett függvény paraméterei bizonyos értelemben tisztán, az esetszámokban lévő ingadozás jelentette zajtól megtisztítva mutatják, hogy mi a helyzet, sőt, sok esetben ezeknek a paramétereknek valamilyen értelmes jelentése is van. (Például, ha a betegek száma exponenciálisan nő, akkor annak a növekedési rátája meghatározza a duplázódási időt: hogy hány naponként emelkedik kétszeresére a napi esetszám. Exponenciális növekedésnél ez ugyanis egy adott, állandó érték.)

Ebben a pontban illeszthető exponenciális függvény (ez tipikusan a betegségek kezdeti szakaszában megfelelő), hatványfüggvény, mely az exponenciálishoz hasonlóan folyamatosan nő, de lassabb ütemben, és logisztikus, mely egy platót leíró görbe, tehát a növekedés ütemében van egy csúcspont, ami után már egyre kevesebb az új beteg. (Tehát az összes eset száma továbbra is nő, de lassulva nő.)

Ami nagyon fontos lehet, hogy pontosan mely pontokra illesztjük a függvényt: szinte mindig igaz, hogy a járványgörbét nem egy nagyon függvényt írja le, hanem különböző szakaszai vannak. Például a járvány legeleje még máshogy viselkedik, ezért azt le kell választani a becslésből. Az is elképzelhető, hogy több szakasza van a járványnak, melyeknél külön-külön egy exponenciális görbére illeszkednek a pontok, de a különböző szakaszoknak más és más meredeksége. Az ilyen és ehhez hasonló helyzetekre használható az ablakozás: ekkor továbbra is valamennyi pontot látunk, de a görbe illesztése csak az ablakon belül lévő pontok alapján történik. (Így például lehagyható az első néhány pont, vagy kiválasztható egy adott szakasz.)

A simítógörbe azért is jól jön, mert lehetőséget ad a függvényillesztés jóságának a megítélésére: ha az illesztett függvény (mely adott függvényformához kötött) követi a simítógörbét (mely nem kötött függvényformához, szabadon követi a pontokat) az annak a jele, hogy jó függvényformát választottünk. Hogy ez jobban látszódjon, az ablakozás bekapcsolásakor halvány háttér jelzi, hogy mely területre illesztünk.

Beállítható, hogy a függőleges tengely logaritmikus beosztású legyen, ez azt jelenti, hogy ha felfelé lépdelünk a tengely mentén, akkor minden lépés ugyanannyiszoros (és nem ugyanannyival) történő növekedést jelent; ez azért fontos, mert az exponenciálisnak megvan az a tulajdonsága, hogy ilyen skálázás mellett egy egyenes vonal lesz. (És emberi szemmel sokkal könnyebb egy egyenesre való illeszkedést megítélni.)

Minden esetben megjeleníthető az ún. konfidenciaintervallum, ez arról szolgáltat információt, hogy mennyire bizonytalan a görbe becslése. Hiszen ezeket a görbéket véges sok pont alapján határozzuk meg, amik helyzetében véletlen ingadozás is van, így a belőlük számolt görbékben is. Ezt szemlélteti a konfidenciaintervallum: minél szélesebb, annál bizonytalanabb ott a görbe értéke. (Precízen: a konfidenciaintervallum pontjai azok az értékek, amikre igaz, hogy ha az lett volna a valódi érték, akkor még kényelmesen kijöhetett – a véletlen ingadozásra tekintettel – az, ami a valóságban ténylegesen ki is jött. A konfidenciaintervallum megbízhatósági szintje szabályozza, hogy mit értünk “kényelmesen” alatt.)

Matematikai részletek

Függvényforma

Három függvényforma választható görbeillesztésre.

Exponenciális függvény

Jelölje a megbetegedések számát \(t\) időben \(X\left(t\right)\), ekkor a “növekedési ütem” magyarul a derivált, tehát az a kijelentés, hogy “a növekedési ütem a betegek számával arányos”, így írható le matematikai formában: [ \frac{\mathrm{d}X\left(t\right)}{\mathrm{d}t}=rX\left(t\right). ] Ez egy egyszerű differenciálegyenlet, melynek megoldása: [ X\left(t\right)=ae^{rt}, ] ahol az \(r\) paraméter a növekedési ráta. Azaz valóban exponenciális függvényt kaptunk.

Hatványfüggvény

Az exponenciálistól elmaradó (szubexponenciális) növekedések egyik népszerű választása a hatványfüggvény: [ X\left(t\right)=a t^b, ] ahol \(b\) a hatványkitevő.

Itt kicsit nehezebb mechanikai magyarázatot adni arra, hogy hogyan jöhet ez ki a járvány kezdeti szakaszában is, TODO

Logisztikus

TODO

Becslés

Alapvetően két út között választhatunk. Az egyik lehetőség, hogy eltekintünk az adatok diszkrétségétől, és úgy vesszük mintha az esetszám folytonos változó lenne, és így egyszerű lineáris regressziót használunk. Ehhez persze – hogy tényleg lineáris legyen – az esetszámot logaritmálni kell. Ezt lognormális modellnek fogjuk hívni, utalva a hibatag eloszlására (ha a lineárizált modellben normális, akkor az exponenciálás után, tehát az eredeti esetszámok szintjében lognormális lesz a hibatag eloszlása).

A másik lehetőség, hogy figyelembe vesszük, hogy az esetszámok értékei a \(\left\{0,1,\ldots\right\}\) halmazból kerülnek ki (“count data”), és ténylegesen ezt a diszkrétséget figyelembe vevő modellt illesztünk. Ez már nem kezelhető lineáris modellként, de szerencsére az általánosított lineáris modell (GLM) keretrendszerébe egyszerűen és kényelmesen illeszkedik. Az exponenciális görbe illesztése az által fog megvalósulni, hogy link függvényként a logaritmust választjuk. Egyedül az eredményváltozó eloszlásáról kell mondani még valamit; ez ilyen adatoknál legtipikusabban Poisson, vagy – hogy meg tudjuk engedni, hogy a variancia eltérjen a várható értéktől – negatív binomiális.

Lognormális modell

Az illesztés hagyományos legkisebbek négyzetek (OLS) elven történik, a logaritmált adatokon. Elvileg lehetne az eredeti adatokra is exponenciálisat illeszteni nemlineáris legkisebb négyzetek (NLS) módszerével; a kettő csak látszólag ugyanaz, valójában véges mintából becslés esetén nem teljesen, hiszen a más skálán lévő eredményváltozó miatt a reziduumok más súlyt kapnak. A gyakorlatban azonban – ha lehet algebrailag linearizálni, márpedig itt lehet – mindenképp preferált az OLS, hiszen összehasonlíthatatlanul stabilabb.

Poisson és negatív binomiális modell

A GLM modellek maximum likelihood (ML) elven becsülhetőek, tipikusan iteratívan újrasúlyozott legkisebb négyzetek (IWLS, IRLS) módszerével. Negatív binomiális eloszlás esetén a plusz paraméter becslése miatt kicsit bonyolultabb a helyzet, de lényegében ott is ML becslés történik.

Simítás

E módszer lényege, hogy nem tételezünk fel semmilyen függvényformát, hanem “követjük az adatokat” (nem-paraméteres regresszió). A simítás spline-regresszióval történik, thin plate spline-t használva, negatív binomiális eredményváltozót feltételezve.

Számítástechnikai részletek

Az ábrázoláshoz a ggplot2 csomagot használtam. A lognormális modell becslése lm-mel, a Poisson-regresszió glm-mel, a negatív binomális modell becslése MASS::glm.nb-vel történik. A simítás mgcv::gam-mal történt (amit a geom_smooth hív meg).


-

Alapgondolat

Láttuk az esetszámokból képezett járványgörbénél, hogy a legnagyobb problémát a tesztelési aktivitástól való függése jelenti. Ennek a problémának az egyik kézenfekvő feloldási lehetősége, ha az esetek száma helyett a halálozások számát ábrázoljuk.

Az okoskodás e mögött az, hogy ez már nem függ a tesztelési aktivitástól, hiszen az, hogy valakiről észrevesszük-e, hogy beteg, függ attól, hogy mennyit tesztelünk, de az, hogy észrevesszük, hogy halott-e, már nem. Valójában ez sem igaz tökéletesen, hiszen itt persze nem azt kell észrevennünk, hogy halott-e, hanem azt, hogy a vizsgált betegség miatt halott-e, és ez igenis függhet a tesztelési aktivitástól (rosszabb esetben ha egy gyanús tüneteket mutató elhunytat sem tesztelnek, még halál után sem, jobb esetben, ha egy más okból elhunyt betegnél nem törik magukat, hogy kiderítsék, hogy fertőzött volt-e), de tény, hogy ez a mutató sokkal-sokkal kevésbé függ a tesztelési aktivitástól. Ez adja használatának legfontosabb létjogosultságát.

Az előbb említett, némi tesztelési aktivitástól való függésen túl a legnagyobb baj, hogy ez a mutató azt igényli, hogy egyértelműen eldöntsük, hogy ki halt bele a betegségbe. Ezt viszont lehetetlen jól megtenni, ugyanis a valóságban nagyon ritkák a tiszta helyzetek: az is, hogy valaki tökéletesen makkegészséges, semmi más baja nincs, és meghal fertőzéstől (teljes egészében a fertőzésnek tudható be a halálozás) és az is, hogy abba hal bele, hogy miközben fertőzötten elmegy sétálni, elüti egy autó (semmi köze nincs a fertőzésnek a halálozáshoz). A valódi esetek szinte mindig a kettő között vannak: cukorbeteg, szívelégtelen alany, aki még a fertőzést is elkapja, és ez már sok a szervezetének. Akkor ő most mibe halt bele? A cukorbetegségbe? A szívelégtelenségbe? A fertőzésbe?

Azt értsük meg, hogy ez nem olyan jellegű probléma, hogy most még nem vagyunk elég okosak, de jövőre majd rájövünk, hogy mi a jó válasz: ez egy megoldhatatlan probléma, mindaddig, amíg a végső elszámolásban valaki vagy a fertőzésbe halt bele vagy nem. Elvileg valami olyasmit kellene mondanunk, hogy 34%-ban a cukorbetegségbe halt bele, 18%-ban a szívelégtelenségbe és 48%-ban a fertőzésbe – bármilyen abszurdan is hangozhat első hallásra, ez felel meg a realitásnak! Sajnos azonban a mai haláloki kimutatási rendszerben ezt nem lehet kezelni: valaki vagy 0%-ban a fertőzéstől halt meg, vagy 100%-ban. És ez annyiban érthető is, hogy bármennyire is tetszős az előbbi elméleti szinten, gyakorlatilag reménytelen lenne pontosan megmondani ezeket a százalékokat.

Mindez nem csak azért fontos, hogy értsük, hogy itt van némi bizonytalanság, hanem azért is, mert emiatt elképzelhető, hogy ez az adat nem vethető országok között egybe (ha a különböző országok más definíciókat használnak a haláloki besorolásra), sőt, akár országon belül sem (ha megváltozik időben az alkalmazott definíció). Szerencsére ez a függés vélhetően még mindig jóval kisebb, mint a tesztelési aktivitástól való függés.

A halálozások használatának másik nagy baja, hogy még nagyobb a késleltetése: itt már nem csak a tünetek fellépéséig eltelő idő és a jelentésig eltelő idő késleltet, hanem a jelentéstől a halálozásig eltelő idő is bejön pluszban, márpedig ez utóbbi akár néhány hét is lehet. Itt tehát hatványozottan igazak a korábban mondottak: a halálozások görbéjén látottak a több héttel ezelőtti fertőződési helyzetet tükrözik.

A görbe ábrázolása terén az összes további kérdés egyezik a Járványgörbe (esetszám) pontban mondottakkal.

Matematikai részletek

Egyezik a Járványgörbe (esetszám) pontban mondottakkal.

Számítástechnikai részletek

Egyezik a Járványgörbe (esetszám) pontban mondottakkal.




Alapgondolat

A többlethalálozás gondolatához legegyszerűbb úgy eljutni, hogy a halálozási szám azon problémájából indulunk ki, hogy érzékeny arra, hogy mi a haláloki besorolások definíciója. Amint láttuk, ez a haláloki adatgyűjtések szükségszerű problémája, nem egy kiküszöbölhető hiba. Akkor mi lenne, ha egyáltalán nem törődnénk a halálokkal, egyszerűen csak azt számolnánk, hogy hányan halnak meg (bármi miatt is)…? Ez az össz-halálozás (angolosan szólva minden okból bekövetkező – all cause – halálozás), elérhető napi, de legrosszabb esetben heti felbontással, nem és életkor szerint bontva.

A kérdés, ami azonnal felvetődik, hogy rendben, de akkor honnan tudjuk, hogy mi a járvány hatása? Ha 100-an belehalnak egy nap a vizsgált betegségbe, az tudjuk, hogy rossz, de ha 100-an halnak meg összesen egy nap? Akkor az mit jelent? Ha egyébként 200-an halnának meg, akkor az kimondottan jó, ha 50-en, akkor egyáltalán nem. A válasz a kérdésre: hasonlítsuk a dolgot a múltbeli adatokhoz! Ez a legjobb kapaszkodónk arra, hogy “egyébként hányan halnának meg”! Természetesen egy sor dologra oda kell figyelnünk, például, hogy a halálozásoknak van egy jellegzetes éven belüli mintázata – mindig télen van a legtöbb, nyáron a legkevesebb – ezt szokás szezonális mintázatnak nevezni, ezért nem hasonlíthatunk akármilyen időponthoz a múltból, a halálozásoknak van hosszú távú trendje is, amire figyelni kell, ha előrevítünk, hogy idén hány lett volna, ha nincs járvány és így tovább. A lényeg, hogy az így előrevetített “várt” halálozások számát kivonva a ténylegesen megfigyelt számból kapjuk meg a többlethalálozást.

Ez a megoldás azonnal és komplettül megoldja a haláloki besorolás problémáját, hiszen ilyen besorolásra nincs is szükség. A másik nagy előnye, hogy azonnal és ez már tényleg komplettül megoldja a tesztelési aktivitástól való függés problémáját.

Cserében viszont van egy nagyon nagy ára is, ami a fentiekből már érzékelhető: az, hogy nettó mutató, ami a járvány összes, direkt és indirekt hatását egybeméri. Hiszen a járványnak nem csak a direkt hatása van (azaz, hogy van aki belehal), hanem indirekt hatásai is. Ráadásul ezek lehetnek pozitívak és negatívak is. Például pozitív indirekt hatása, hogy a bevezett intézkedések, távolságtartás, kézmosás stb. segítenek megelőzni az összes többi légúti betegség terjedését is. De akár extrémebb dolgokra is gondolhatunk, például, hogy az otthonmaradásra való buzdítás miatt a közúti balesetben meghaltak száma is csökken. Igen ám, de vannak indirekt negatív hatások is: az egészségügyi rendszer átállítása, részben leállítás miatt más betegségben szenvedők ellátása nehezedik meg, szenved halasztást, szűrőprogramok lehetetlenednek el stb., de itt is gondolhatunk még áttételesebb – de sajnos nem irreális – dolgokra, például, hogy nő az öngyilkosságok száma, vagy, hogy a munkanélküliség növekedése is jól ismerten rontja az egészségi állapotot.

A többlethalálozás mindezek elkülönítését nem teszi lehetővé, csak a “végeredményt” látjuk. Éppen ezért használata is inkább arra korlátozódik, hogy megítéljük, hogy “nagyon nagy baj nincs-e”. (Értsd: nem szökik-e fel nagyon a többlethalálozás. Persze kis baj lehet, hiszen azt az indirekt hatások kompenzálhatják. A fordított eset is elképzelhető, tehát, hogy az indirekt hatások adnak sok halottat, de ez kevésbé valószínű.) Mindemellett persze az a limitáció is ott van, hogy az egész egy becsült előrejelzésen nyugszik – azt valójában senki nem tudhatja biztosan, hogy mennyi halálozás lett volna, ha nem lett volna járvány! – ebből is látszik, hogy az eredmények miért kezelendőek óvatosan.

A többlethalálozás adatnak még egy baja van: az, hogy lassú, a leglassabb az összes mutatónk között. És itt most nem csak a biológiai késleltetésekről beszélünk. Értelemszerűen minden olyan biológiai késleltetés (lappangási idő, kórházba kerülésig eltelő idő, kórházban a halálig eltelő idő), ami a halál késleltetését adja, az megjelenik itt is, csakhogy itt még megjelenik egy nagyon komoly adminisztratív késleltetés is: amíg a betegségbe belehaltak száma relatíve gyorsan elérhetővé válik a halál bekövetkezése után (hiszen a betegség miatt kórházban levőkről van közel valós idejű adat), addig az összes elhunytról csak a halottvizsgálati bizonyítványok összesítéséből vagy az elektronikus anyakönyvi rendszer adataiból fogunk értesülni. Ennek késleltetése tetemes (több hét, akár hónap), ami még hozzájön pluszban a többi késleltetéshez.

Matematikai részletek

Többlethalálozás modellezése

A valószínűségi modellünk: [ Y_t \mid \varepsilon_t \sim \text{Poi}\left(\mu_t\left[1+f\left(t\right)\right]\varepsilon_t\right), ] ahol \(\varepsilon_t\) nem feltétlenül fehérzaj, lehet autokorrelált, az adatok autokorreláltságának elszámolására (a napi adat erősen az, a heti nem feltétlenül); legyen többváltozós normális AR($p$) szerinti kovarianciamátrixszal. Ezen felül [ \mu_t = N_t \exp\left[\alpha\left(t\right)+s\left(t\right)+w\left(t\right)\right], ] ahol \(\alpha\left(t\right)\) a hosszú távú – lassan változó – trend, \(s\left(t\right)\) az éven belüli mintázat (szezonalitás), \(w\left(t\right)\) pedig a hét napja hatás (ha napi adatunk van), és \(N_t\) a háttérpopuláció. \(f\left(t\right)\) lesz a keresett többlet (szorzóként, hiszen log link mellett multiplikatív az egész modell). A modell becslése cseles, ML, de óvatosan kell eljárni ($\varepsilon_t$ is elég általános, és \(f\left(t\right)\) is nézhet ki furcsán, pl. szakadása van).

Hét számozása

A “hét sorszáma” az ISO 8601 szerinti sorszám.

Számítástechnikai részletek

Az ábrázoláshoz a ggplot2 csomagot használtam, a többlethalálozás modellezése az excessmort csomaggal történt.

Irodalmi hivatkozások


Alapgondolat

A tesztpozitivitás azt mutatja meg, hogy adott napon az elvégzett tesztek mekkora hányada lett pozitív.

Első ránézésre (“pozitívak aránya”) ez valamiféle súlyosság mérőszáma, de erről nincs szó, hiszen függ a teszteléstől is, ami viszont – bizonyos korlátokon belül – döntés kérdése, megnövelésével tetszőlegesen lecsökkentő az arány, ugyanazon járványügyi helyzetben is.

Ez azonban épp azt mutatja meg, hogy akkor mire jó a mutató: a tesztelés elégségességének mérésére. Így nézve pont szerencsés, hogy egyszerre határozza meg az esetek és a tesztek száma, hiszen azt mondja, hogy ha nagyon el is szabadul a járvány, akkor is megjavítható a mutató, ha többet tesztelünk – ami épp az, amit tenni kell, ha elszabadul a járvány. A tesztpozitivitás tehát lényegében azt méri, hogy a tesztelési aktivitás arányban áll-e a járványügyi helyzet súlyosságával.

Ha azt tapasztaljuk, hogy a tesztpozitivitás megnő, az arra utal: a rendszer nem képes még arra sem, hogy a detektált esetek növekedésével arányban emelje a tesztek számát. Minél magasabb a tesztpozitivitás, annál nagyobb részét nem találjuk meg vélhetően az eseteknek (és ezért annál kevésbé megbízható a detektált esetek járványgörbéje és minden abból számolt mutató!). Az Egészségügyi Világszervezet ajánlása 5%-os tesztpozitivitást irányoz elő; az ábrán ezt jelöli a vízszintes piros vonal. Természetesen fontos újra hangsúlyozni, hogy nem csak a tesztpozitivitás aktuális értéke, hanem a trendje is fontos.

(Valójában persze ez sem igaz tökéletesen, hiszen a tesztelések számán túl az is fontos kérdés, hogy milyen mintázat szerint tesztelünk, például mennyire megszorítóan értelmezzük a kontaktus-személyek tesztelését, és ez akár időben is változhat még ugyanazon országon esetében is, de ezeket a kérdéseket már csak finomabb és több adatot igénylő elemzéssel lehetne vizsgálni.)

Fontos, hogy a tesztpozitivitást ne keverjük össze a népesség átfertőzöttségével (tehát, hogy az emberek mekkora hányada fertőzött). A tesztpozitivitás csak akkor mérné az átfertőzöttséget, ha a teszteket a lakosság egy véletlenszerűen kiválasztott részén végeznék, és bár néha ilyenre is van példa, mint Magyarországon a H-UNCOVER vizsgálat esetében, de a tesztek túlnyomó részét egy nagyon nem véletlenszerű csoporton végzik (tünetei vannak, ismert fertőzött kontaktus-személye stb.). Az ő körükben természetesen sokkal magasabb a fertőzöttek aránya, mint általában a lakosságban.

Matematikai részletek

A tesztpozitivitás egyszerűen a napi esetszám és a napi teszt-szám hányadosa. A simítógörbét spline-regresszióval határoztam meg, binomiális eredményváltozót feltételezve (ahol az \(n\) a tesztek, a \(k\) a pozitívak, tehát az esetek száma volt).

Számítástechnikai részletek

Az ábrázoláshoz a ggplot2 csomagot használtam, a simítógörbe becslése mgcv::gam-mal történt (amit a geom_smooth hív meg).

Irodalmi hivatkozások

  • World Health Organization. (2020). Public health criteria to adjust public health and social measures in the context of COVID-19: annex to considerations in adjusting public health and social measures in the context of COVID-19, 12 May 2020. World Health Organization. (https://apps.who.int/iris/handle/10665/332073 accessed 04 September 2020).

Görbeillesztés paraméterei

-

Alapgondolat

Az előrejelzések többféle módszeren is alapulhatnak. Egy részük empirikus: nem törődik azzal, hogy mi a háttérben lévő jelenség működése, egyszerűen a tapasztalt múltbeli viselkedést “meghosszabbítja” a jövőre nézve. Ilyen módszerekkel jellemzően rövid távú előrejelzések adhatóak.

A módszerek másik része figyelembe veszi a háttérben lévő folyamatok mechanizmusát (ilyen értelemben szokták ezeket “mechanisztikus” modelleknek nevezni). Számos különböző elven alapuló mechanisztikus modellt próbáltak ki és használtak több-kevesebb sikerrel az epidemiológiában: a legklasszikusabb és máig tartóan legnagyobb hatásúak a kompartment modellek (ezekről részletesebben lesz szó később), újabban népszerűek a mikroszimulációk, melyek minden egyes ember viselkedését szimulálják valamilyen szabályszerűség alapján, és a hálózatelméleten alapuló modellek, melyek az embereket és a köztük lévő, fertőzés átadására alkalmas kapcsolatokat a matematikai gráf fogalmának feleltetik meg, és az ottani ismereteket alkalmazzák a járványok terjedésének leírására.

Amit minden előrejelzésnél meg kell érteni: nincs olyan, hogy ez “a” lefutása a járványnak (amit mi előrejelzünk). Különösen hosszabb távon, meghatározó módon fog számítani, hogy mit teszünk: mik a kormányzati intézkedések, milyen az emberek viselkedése. E nélkül értelme sincs mit mondani, csak a “ha-akkor” típusú kijelentéseknek, tehát a szcenárióelemzéseknek van értelme.

Empirikus előrejelzés

Ez a módszer a talán legkézenfekvőbb: a tényadatokra illesztett görbét (lásd a Járványgörbe pontnál!) egyszerűen meghosszabbítjuk. Statisztikailag precízebben szólva: ha megvan a modellünk – melyet a jelenlegi és múltbeli dátumok adatai alapján becsültünk –, lekérjük a becsléseit jövőbeli dátumokra is.

Jelenleg ez a pont az exponenciális görbe illesztését és előrevetítését támogatja.

Ennek pontosságához természetesen fontos, hogy maga az illesztés jó legyen; ehhez beállíthatjuk, hogy a görbe melyik részére illesztünk (ablakozás). Fontos, hogy az ablakozás helyességét, értelmességét itt nem láthatjuk, azt minden esetben a Járványgörbe pont alapján ellenőrizzük!

Az eredményeket megjeleníthetjük grafikonon vagy táblázaton és beállíthatjuk az előrejelzett napok számát is. A Járványgörbe ponthoz hasonlóan logaritmikussá tehetjük a függőleges tengelyt, és megjeleníthetjük a konfidenciaintervallumot is.

Van mód szcenárióelemzésre is e pont alatt, azaz megtehetjük, hogy megvizsgáljuk, hogy akkor mi történik, ha a jövőbeli növekedés nem annyi, mint ami a meglevő esetszámokból következne, hanem annál több vagy kevesebb. Ezzel különféle – optimistább vagy pesszimistább – forgatókönyvek is felvázolhatóak.

Kompartment modell

A kompartment modellek az epidemiológia legnépszerűbb modellje fertőző betegségek terjedésének leírására, előrejelzése. Az alapgondolat, hogy az embereket (például egy ország lakosságát) csoportokra bontjuk, mégpedig hézag- és átfdedésmentesen: mindenki pontosan egy csoportba tartozik, nincs olyan, akik kettőbe, vagy olyan aki egyikbe se. Ezek a csoportok egymástól különböznek, mindjárt pontosan ki is derül, hogy miben, de magukon belül homogének: a benne lévő embereket mind pontosan ugyanolyannak feltételezzük, amik között nincsenek különbségek (például életkorban, nemben, lakhelyben). Azt is feltételezzük, hogy a csoportok tökéletesen keverednek egymással, tehát nem fordulhat elő, hogy egy csoportba tartozó emberek elvonulnak egy megyébe és csak egymással érintkeznek. Az ilyen csoportokat hívjuk kompartmentnek.

Az epidemiológia legklasszikusabb ilyen modellje a SIR-modell, mely épp a kompertmentek tulajdonságáról kapta a nevét. Ez a modell az embereket három ilyen csoportba osztja: vannak fogékonyak (S, susceptible), fertőzöttek akik egyúttal fertőzőképesek is (I, infectious) és gyógyultak vagy más szóval “eltávolítottak” (R, recovered vagy removed); a modell szempontjából ugyanis mindegy lesz, hogy valaki úgy kerül ki a fertőzött csoportból, hogy meghal vagy meggyógyul, a lényeg, hogy többé nem fertőz és nem is fogékony a fertőzésre. Én a továbbiakban gyógyultat fogok mondani az egyszerűség kedvéért.

És akkor most jöjjön a lényeg: a viselkedés! Mert ugye ez a modell attól mechanizmus-alapú, hogy mond valamit a jelenség működéséről. Íme, amit a SIR-modell mond.

Először is: a fogékony csoportból az emberek csak a fertőzött csoportba tudnak kerül, onnan pedig csak a gyógyult csoportba. Már ez is mond valamit arról, hogy mit feltételezünk a betegség mechanizmusáról: a fogékony előbb mindenképp beteg kell legyen, de ami még sokkal fontosabb, hogy a beteg nem válhat újra fogékonnyá! Magyarra lefordítva: ezzel azt feltételezzük, hogy a betegség élethosszig tartó immunitást ad. Vannak fertőző betegségek, melyek nem ilyenek és többször is el lehet őket kapni, ez esetben a SIR-modell nem lesz helytálló. (Használható helyette például SIS-modell, aminek – a nevével ellentétben – csak két kompartmentje van, ám a I-ből vissza lehet jutni újra az S-be.)

Másodszor: a SIR-modell nyilatkozik a dolog dinamikájáról, tehát időbeli lefutásáról is, arról, hogy az emberek időben tekintve hogyan kerülnek át egyik csoportból a másikba. A SIR-modell lényege ugyanis, hogy nyomon követi az egyes kompartmentekben lévő emberek számát! Ez három szám lesz, hány fogékonyunk van adott pillanatban, hány fertőzöttünk van adott pillanatban, hány gyógyultunk van adott pillanatban; és mindezek időben változnak (szebben szólva: az idő függvényei lesznek).

A SIR-modell kulcsa, hogy megadja, hogy az átmenetek, fogékonyből fertőzött lesz, fertőzöttből gyógyult lesz, milyen ütemben történnek. (Egész pontosan azt adja meg, hogy az egyes csoportok létszáma milyen gyorsan változik.) A másodikra azt feltételezi, hogy ez az ütem egyenesen arányos a fertőzöttek létszámával: az, hogy milyen gyorsan fogynak a fertőzöttek – vagy, ami ezzel egyenértékű, milyen gyorsan gyűlnek a gyógyultak – attól függ, hogy mennyi fertőzött van. Jelölje ezt az arányossági tényezőt \(\gamma\). Ez magyarra lefordítva azt jelenti, hogy a fertőzöttek gyógyulása nem függ semmilyen külső körülménytől, állandó rátájú. Félreértés ne essék, hogy ki mennyi idő alatt gyógyul meg, az nem egy fix érték! Van aki lassabban, van aki gyorsabban, tehát a gyógyulási időnek eloszlása van, de a fenti kikötés belátható, hogy azt jelenti, hogy ez az eloszlás egy nevezetes eloszlás (az exponenciális), és hogy ennek a gyógyulási időnek, ami egyúttal a fertőzőképesség hossza is, a várható értéke épp \(1/\gamma\). Mondjuk, ha \(\gamma=0,\!2\), akkor a betegek átlagosan 5 nap alatt gyógyulnak meg (persze van aki több, van aki kevesebb). Megfordítva: ha a betegek átlagosan 5 nap alatt gyógyulnak meg, akkor megtudtuk, hogy \(\gamma=0,2\).

Érdekesebb a helyzet a megfertőződéssel. Itt ugyanis az ütem (hogy milyen gyorsan fogynak a fogékonyak és – ami ezzel egyenlő – milyen gyorsan szaporodnak a fertőzöttek) már két dologtól is függ: a fogékonyak számától és a fertőzöttek számától. Egész egyszerűen azért, mert a fertőzés létrejöttéhez egy fogékony és egy fertőzött ember érintkezése kell! Ha feltesszük, hogy tényleg tökéletes a keveredés a csoportok között, akkor belátható, hogy a megfertőződés ütem a fogékonyak és a fertőzöttek számának szorzatával lesz arányos. (Ez intuitíve érthető: a szorzat kicsi, ha bármelyik tagja kicsi. Akkor is lassan szaporodnak a fertőzöttek, ha kevés fogékony van, hiszen limitált, hogy hány emberből tud egyáltalán fertőzött lenni, és akkor is, ha kevés a fertőzött, hiszen ekkor korlátozott számú góc kelti csak az újabb fertőzéseket.) Jelöljük az arányossági tényezőt \(\beta\)-val. Ez annak a mérőszáma, hogy egy embernek egy időegység alatt hány fertőzés átadására alkalmas kontaktusa van. De ami talán még érdekesebb, hogy ebben a modellben igaz lesz a következő összefüggés: \(R=\frac{\beta}{\gamma}\), tehát a reprodukciós szám igen egyszerűen kiadódik ebből a két paraméterből! Avagy, megint csak megfordítva, ha ismerjük a reprodukciós szám értékét, akkor ismerjük \(\beta\)-t is (feltéve, hogy \(\gamma\)-t már meghatároztuk).

És kész is, ezzel teljesen specifikáltuk a SIR-modellt!

Az ilyen modelleket tipikusan grafikusan szokták megadni, ami nagyon jól áttekinthetővé tesz őket. A kompartmentek kis dobozok, a köztük lehetséges mozgási irányokat nyilak jelzik, az adott nyíl mentén történő mozgás ütemét pedig a nyílra írva felirat. Ilyen módon valóban minden fenti komponens rajta van az ábrán. Íme a SIR-modell a fenti megadásban:

SIR modell

Íme, ezzel kész is vagyunk: ez a legegyszerűbb kompartmentális epidemiológiai modell. Természetesen milliónyi egyszerűsítése van, kezdve a fent felsoroltakkal, hogy a csoportok tökéletesen keverednek, tehát, hogy nincsen semmilyen (életkori, nemi stb.) strukturáltság, hogy a betegség átvészelése végleges immunitást ad, de idevehetjük azt is, hogy nincs születés, és nincs – betegségen kívüli okokból – halálozás… Ennek ellenére jó kiindulópont, és egyben építőkő a bonyolultabb, de cserében realisztikusabb modellek felé.

Ez a pont egy ún. diszkrét idejű, diszkrét állapotterű, sztochasztikus SE2I3R modellt használ; ebből a sok vicces kifejezésből most egy dolog fontos: hogy sztochasztikus. A fent kifejtett modell alapváltozata determinisztikus: ha megadjuk a kezdőértékeket (hány fogékony van kezdetben, hány beteg, hány gyógyult) az egyértelműen meghatározza a teljes lefutást, tehát minden egyes csoport létszáma minden egyes napon egyetlen, első pillanatban pontosan meghatározott érték. Csakhogy a valóság nem ilyen. Vannak véletlenszerű jelenségek, arra, hogy egy nap hányan betegednek meg, nem jó azt, mondani, hogy “123-an!”. Igen, lehessen a várható értéke 123, de engedjük meg, hogy – véletlentől függően! – éppen 122 vagy 124 legyen a tényleges érték. Ha viszont ezt tesszük, onnantól kezdve a csoportok létszámának alakulása is véletlen: egyszer lefuttatva a modellt kapunk egy alakulást, még egyszer lefuttatva egy másikat, harmadszor futtatva egy harmadik. Éppen ezért az itt látható eredmények úgy készültek, hogy a modell nagyon sokszor (300-szor) lefut, és a közepes értéket – a pontonkénti mediánt – mutatja a vastag görbe, körülötte a halványabb sáv az a tartomány, amiben a futtatások 95%-a esett az adott pillanatban. Hogy a dolog jobban érzékelhető legyen, 100 konkrét futás eredménye is ábrázolva van, vékony vonallal.

Adódik a kérdés, hogy akkor most nemsokára napi 300 ezer betegünk lesz?! (Napi?) Igen, mert a modell nem tételez fel semmit az \(R\) változásáról! Amit itt látunk, az lényegében az az eset, hogy elindítjuk a dolgot, ráadásul egy elég nagy, 2 feletti \(R\)-ről, és utána nem csinálunk semmit, hagyjuk, hogy alakuljon a járvány, ahogy magától alakulna. Egy ilyen, kontroll nélküli kitörésnél tényleg ennyire extrém lenne a helyzet. De pont ezért persze nem is ez az igazán érdekes, hanem a szcenárióelemzés: az ábra jobb oldalán lévő táblázatban összeállíthatjuk az \(R\) alakulását, és a szimuláció ennek megfelelően fog lefutni. (A változtatások dátumát függőleges fekete vonalak fogják jelölni az ábrán.)

Matematikai részletek

Empirikus előrejelzés

Ennek legyártása egyszerű predikció. A konfidenciaintervallumot az általánosított modellek esetében először link skálán határozom meg, \(n-2\) szabadságfokú \(t\)-eloszlással, majd exponenciálom. (Mivel az exponenciálás szigorúan monoton transzformáció, így a konfidenciaintervallum széleit nem kell módosítani, megőrzi a lefedést.)

Kompartment modell

A használt modell egy SE2I3R kompartment modell, ami annyiban módosítja a szokásos SEIR modellt (itt az E a lappangó betegek csoportja, akik már fertőzöttek, de még nem fertőzőek), hogy két E és három I kompartmentet fűz egymás után:

SEIR modell

Ennek nagyon egyszerű az oka: egy kompartment esetében a kompartmentben töltött idő – állandó rátájú kilépés esetén – exponenciális eloszlású, több esetén pedig emiatt exponenciálisok összege (azaz gamma eloszlás, ebben a speciális esetben szokták Erlang eloszlásnak is nevezni), és egész egyszerűen az empirikus adatok azt mutatják, hogy a fertőzőképesség, illetve a betegség hosszának az eloszlása a valóságban tényleg nem exponenciális. Azért választottam \(k=2\)-t a lappangási idő eloszlására, és \(k=3\)-at a betegség időtartamának eloszlására, mert Wearing és mtsai egy 2005-ös cikkükben ezt javasolták a SARS-ra.

A fenti modell szokásos felírása a következő differenciálegyenletekből áll:

$$ \begin{equation*} \frac{\mathrm{d}S}{\mathrm{d}t} &= -\beta S \left(I_1+I_2+I_3) \\ \frac{\mathrm{d}E_1}{\mathrm{d}t} &= \beta S \left(I_1+I_2+I_3) - 2\alpha E_1 \\ \end{equation*} $$

A szokványos SIR/SEIR modellek problémája, hogy folytonos idejűek és folytonos állapotterűek. Az előbbi a kisebb gond, végül is az idő tényleg folytonos – csak az a baj, hogy a járványügyi adatok gyűjtése viszont diszkrét, legjobb esetben is napi. Ezért a folytonos idejű modelleknél már eleve trükközni kell, hogy ehhez igazodni lehessen a becslésnél. Még nagyobb probléma a diszkrét állapottér: persze egymillió betegnél nem nagyon számít, ha a modell szerinte egymillió és fél beteg van, de az 1,5 beteg az probléma lehet. További gond a SIR/SEIR modelleknél, hogy a közvetlen jellemző a fertőzöttek száma egy adott pillanatban, márpedig a járványügyi adatszolgáltatások primer módon általában inkább a napi esetszámról adnak információt.

Az általam használt SEIR modell ezért egy olyan variáns mely diszkrét idejű, és diszkrét állapotterű, tehát az idő a természetes számok halmazán van értelmezve, csakúgy mint az egyes kompartmentek létszáma.

A másik alapvető különbség, hogy a szokványos SIR/SEIR-modellek determinisztikusak. Szerencsére ez könnyen feloldható a fenti diszkrétségi közelítéssel is kombinálva:

A becslés részben megfigyelt Markov-folyamatok elméletén alapszik. Ebben



-

Alapgondolat

Abban a szakaszban, amikor a járványgörbe felfutása exponenciális, az azon a szakaszon kimért növekedési ráta felhasználható a reprodukciós szám becslésére. Ez intuitíve is logikus: minél gyorsabban fut fel egy járvány, annál nagyobb az \(R\). A valóságban az összefüggés ennél kicsit bonyolultabb, számít az is, hogy egy fertőzött milyen gyorsan adja át a betegséget, de Wallinga és Lipitsch 2007-es cikkükben részletesen kidolgozták ennek a matematikáját. Nagyon leegyszerűsítve az alapgondolat: ha az illesztett görbe alapján a duplázódási idő 5 nap, és a betegség serial interval-a szintén 5 nap, akkor \(R=2\). Hiszen 5 nap alatt jönnek létre a másodlagos fertőzések, és az kétszer annyi beteget jelent, akkor mindenki átlagosan két embernek adta át a fertőzést. Ha a duplázódási idő 5 nap, de a serial interval csak 3, akkor az \(R\) kisebb mint kettő, hiszen 5 nap alatt egy átadási generációnál több is történik, mégis csak kétszer annyi beteg van – egy beteg tehát 2-nél kevesebb betegnek adta át a kórt. Fordítva, ha a serial interval hosszabb mint a duplázódási idő, akkor az \(R\) nagyobb mint 2, mert még az első generáció sem jöhetett létre teljesen, mégis már kétszer annyi beteg van – egy beteg tehát 2-nél többnek adta át a kórt átlagban.

Ez a pont ezt a gondolatot használja fel az \(R\) becslésére. Ne feledjük: a kulcskérdés, hogy az \(R\) értéke hogyan viszonyul az 1-hez.

Kiválasztható a teljes görbére illesztett exponenciális, vagy ez ablakozható is. Az ablakozás szerepe itt is ugyanaz: kikereshetjük a releváns időtartományt, ahol tényleg exponenciálisan viselkedik a járványgörbe. Fontos, hogy az ablakozás helyességét, értelmességét itt nem láthatjuk, azt minden esetben a Járványgörbe pont alapján ellenőrizzük!

Amennyiben időben változik az \(R\) (és így a növekedési ráta is), egy kézenfekvő megoldás a folyamatosan változó dinamika követésére a csúszóablak: a 7. naptól kezdve minden egyes napra kiszámoljuk a megelőző 7 nap adataiból számolt növekedési rátát, és abból az \(R\)-et. (Innen kapta a módszer a nevét: mintha egy hét nap szélességű ablakot végigtolnánk a görbén, és mindig az ablakban látott adatokból számolnánk.) Így mindig az aktuális helyzetről kapunk képet, annak árán, hogy bizonytalanabb lesz a becslésünk, hiszen mindig csak 7 napnyi adatot használunk fel, bármilyen hosszú is a járványgörbe. Természetesen az ablak szélessége állítható: a hosszabb ablak stabilabb becslést eredményez, de összemoshat különböző dolgokat, a szűkebb ablakban gyorsabban tudja követni az \(R\) változásait, de a kevesebb adat miatt bizonytalanabb becslés a dolog ára.

Mindenesetre ezzel a módszerrel az időben változó \(R\)-et (például: járványügyi intézkedések hatása) is nyomon tudjuk követni.

Matematikai részletek

Elsőként az Euler–Lotka-egyenletet vezetjük le.

TODO

A csúszóablak szélességének a megválasztása, illetve annak dilemmája a statisztikában jól ismert bias-variance trade-off egy példája.

TODO

A konfidenciaintervallum számításához a regressziós modellből vettünk újra és újra mintákat, felhasználva a növekedési ráta standard hibáját (lényegében poszterior szimulációt végeztünk).

TODO

Számítástechnikai részletek

A növekedési ráta átszámítására Wallinga és Lipitsch cikkének gondolatát közvetlenül felírtam gamma eloszlásra (r2R0gamma és lm2R0gamma_sample függvények). A cikk melléklete a szükséges formulát közvetlenül is tartalmazza. A csúszóablakot a zoo::rollapply valósítja meg.


to


Alapgondolat

Egy betegség “veszélyességének” legalapvetőbb mérőszáma a halálozási arány, különösen, ha az nem elhanyagolhatóan kicsi. Természetesen egy sor egyéb jellemző is fontos a járvány terhe szempontjából, hiszen nem csak a belehalás a probléma, hanem a szenvedés, az esetleges marandó károk, az egészségügyi ellátórendszer terhelése, a munkából kiesés stb. stb. is, de a halálozás a talán legdirektebb mutató, illetve általában jól együttmozog a többi típusú teherrel is.

A halálozási arány számítása egy éppen zajló járvány közben nem nyilvánvaló feladat. A kézenfekvő formula (“összes halálozás osztva az összes esettel”) jól működik a járvány után, ha már minden eset – így vagy úgy – de lezáródott.

Valójában ez sem teljesen igaz, hiszen egyrészt a halálok meghatározása sem nyilvánvaló kérdés – erről részletesebben lásd a ‘Járványgörbe (halálozások száma)’ pont magyarázatát! – másrészt az esetek száma, tehát a nevező sem problémamentes, hiszen mi van azokkal, akik nem mentek orvoshoz a tüneteikkel? Vagy orvoshoz mentek, de nem tesztelték le őket? Vagy egyáltalán nem is voltak tüneteik? Az előbbi kérdéstől most eltekintünk, adottnak vesszük, hogy mi egy ország definíciója erre, de az utóbbi problémára még hangsúlyosan visszatérünk.

Kezdjük a történetet az elején. Ami bizonyos, hogy ez a képlet a járvány közben nem alkalmazható. A probléma, hogy az “összes eset” egy része még zajlik, szép szóval élve: aktív, vagy nem lezárt eset, ott fekszenek a kórházban, és mi sem tudhatjuk mi lesz a kimenetük. A képlet csak akkor lenne helyes, ha kivétel nélkül mindegyikük meggyógyul, de ha bárki meghal közülük, akkor a képlet már torzított lesz, hiszen akkor ennek a halálozásnak a számlálóban is szerepelnie kellett volna, hiszen a neki megfelelő beteg a nevezőben szerepelt… de nem lesz ott, mert most még mi sem tudhatjuk, hogy meg fog halni. Azaz a képlet alá fogja becsülni a halálozási rátát, hiszen a vetítési alapban szereplő betegek egy része sajnos majd még meg fog halni, de a jövőben, így a képlet ezekkel nem tud számolni – pedig kellene.

Szerencsére, ha van információnk a betegség fellépésétől a halálozásig eltelő idő eloszlásáról, azon esetek révén akik végül meghaltak, akkor ez a torzítás statisztikai eszközökkel kiküszöbölhető. Gondoljunk arra, hogy ha minden elhunyt pontosan 10 nappal a diagnózis után hal meg, akkor egyszerűen elég annyit tenni, hogy a halálozások számát a 10 nappal ezelőtti esetszámmal osztjuk. A valóságban bonyolultabb a helyzet, hiszen a diagnózistól a halálig eltelő idő valójában sztochasztikus, lehet kevés is meg lehet sok is, de ha ismerjük ezeknek a valószínűségeit, akkor megfelelő matematikai eszközökkel a korrekció ez esetben is elvégezhető.

Nevezzük a naiv számítás eredményét nyers halálozási aránynak, a fenti korrekcióval kapott értéket pedig korrigált halálozási rátának.

Ez utóbbi biztos jobb, hiszen eltüntetett egy alábecslést, de még mindig van egy, teljesen más problémakör: az, hogy hány esetet találunk meg. Tételezzük fel, hogy a súlyos eseteket (pláne a halálozásokat) mind megtaláljuk, de az enyhébbek, urambocsá’ tünetmentesek kérdésesek, erősen múlnak azon, hogy az ország mennyit tesztel. Könnyen látható, hogy ha valamely ország nagyon kiterjedten tesztel, rengeteg enyhe esetet is megtalál, akkor az ő hányadosában nagy lesz a nevező – de ez nem baj, hiszen ez egy reálisabb érték. Viszont ha egy ország kevésbé intenzíven tesztel, kevesebb enyhe esetet talál meg, akkor a nevezője kisebb lesz, és így a halálozási rátája abnormálisan nagy lesz.

(Néha szokták a korrekciót egyszerűen úgy megoldani, hogy a halottak számát a lezárt esetekkel osztják, tehát a gyógyultak és a halottak összegével. Ez egy roppant egyszerű és szellemes megoldás a fenti problémára, és nem is rossz tulajdonságú becslő, csak az a baja, hogy az adatok egy részét – a még nem lezárt eseteket – egyáltalán nem használja, és ez különösen egy járvány elején érzékeny veszteség lehet: azáltal, hogy kevesebb adatból számolódik, nagyobb lesz a bizonytalansága.)

Megjegyzendő, hogy bárhogy is számolunk, a járvány kezdete óta összesített adatokat használó mutatók kevésbé alkalmasak a menet közbeni változások érzékelésére, mert nem annyira érzékenyek: ha a valódi halálozási arány le- vagy felmegy, akkor ezek a mutatók is követik, de csak lassan, mert a korábbi adatok “felhígítják” a mutató értékét. Márpedig az ilyen változások detektálása egy “valós idejű” mutatóval fontos lehet, hiszen jelezheti például, ha a járvány más kockázatú csoportra terjed rá, ha javul a kezelés hatásossága az orvosi fejlődés miatt, romlik az ellátórendszer túlterhelése miatt, más súlyosságú lefolyást okozó mutáns jelenik meg stb. (Persze ne feledjük, hogy mindezek hatását mi egyben látjuk.) A dolog ára, hogy az ilyen mutató mindig szükségképp bizonytalanabb, hiszen kevesebb adatból számolódik. Természetesen sajnos mindez érzékeny a felderítési arány változására.

A felderítési aránytól való függés gondolatát kicsit tovább is vihetjük, és így egy lehetséges eszközt nyerünk az “aluldetektálás” (tehát az esetek, például nem kellően kiterjedt tesztelés miatti, nem megtalálásának) a mérésére.

Az ötlet a következő. Vegyünk egy országot, ami nagyjából hasonlít a miénkhez, de sokkal többet tesztel. (Pl. Németországot hazánk esetében.) Azt látjuk, hogy ott jóval kisebb a korrigált halálozási arány. Vajon minek tudható ez be?

  • A vírus valamilyen biológiai okból veszélyesebb nálunk (szinte kizárt, vagy legfeljebb valamilyen variáns eltérő földrajzi elterjedtsége miatt lehet)
  • Az egészségügyi ellátásunk ennyivel rosszabb (ebben a tekintetben nem valószínű, különösen, hogy ennek a betegségnek amúgy sincs igazán átütő oki terápiája, inkább csak az ellátórendszer esetleges túlterhelése okozhat ilyet)
  • A betegek ennyivel kockázatosabbak nálunk, például idősebbek vagy több a társbetegségük (szóba jöhet, de azért nagy különbség sem a korfában, sem a társbetegségek arányban nincs, reálisabban az képzelhető el, hogy nem általában mások a betegek, hanem inkább egy bizonyos csoportban – például a fiatalok között – indul be terjedés)

Ha azonban olyan a helyzet, hogy ezek kizárhatóak nagy valószínűséggel, akkor mi marad magyarázatként? Az, hogy a németek –- a több tesztelés hatására –- több beteget találtak meg, pontosabban szólva, jobban megtalálták az összes beteget. Azaz azért jobb náluk a halálozás, mert a nevezőjük (a reálisnak megfelelően) nagyobb!

Most jöjjön a központi feltevés: tételezzük fel, hogy mivel a fenti három okot kilőttük, így valójában a mi halálozási arányunk is ugyanannyi, mint a németeké. (Itt természetesen már korrigált arányról beszélünk.) Nevezzük ezt a valódi értéket, amit, újra ismételjük meg, egy hozzánk – korösszetételében, társbetegségében, fejlettségében – hasonló, de nagyon sokat tesztelő ország adatként fogunk megszerezni, benchmark halálozási aránynak. Legyen mondjuk ez 1% a példa kedvéért. Kiszámoljuk a korrigált halálozási arányunkat, és 10%-ot kapunk. Mi a magyarázat? Innen már világosan látszik az okfejtés vége: az, hogy a mi nevezőnk tizedakkora, mint a valóság! Ezért lett ilyen nagy az arány; ha 10-szer annyi betegre osztanánk rá, akkor máris 1% lenne nálunk is. Elfogadva tehát, hogy a benchmark mortalitás a valódi érték nálunk is, ezzel a logikával tudunk következtetni az aluldetektálásra. Ha pedig ennek az értéke megvan, akkor ezzel beszorozva a jelentett esetszámainkat, arra is kapunk becslést, hogy mi a tényleges – de kellő tesztelés híján sajnos nem detektált – esetszám.

Fontos hangsúlyozni, hogy ez a módszer – a fenti benchmark-kal – az egyes országok közti esetfelderítési hatékonyságot igyekszik megragadni, nem valamennyi fertőzött megtalálását tűzi ki célul. Valójában ugyanis, és itt érkezünk a második kulcsgondolathoz, a halálozási arányt igazából az összes fertőzött számához kellene viszonyítani (angol rövidítéssel ezt szokták IFR-nek nevezni, szemben a fentivel, amit CFR-nek hívnak), hiszen ez jellemzi a betegség súlyosságát igazából: nyilván nem lehet a betegség súlyosságának a mérőszáma olyasvalami, ami attól is függ, hogy mennyit tesztelünk. A CFR egybeméri a két dolgot, az IFR viszont tisztán a betegség súlyosságát jellemzi. Ez lenne tehát a valódi cél, csakhogy ennek meghatározása nem könnyű: honnan tudhatjuk, hogy mennyi az összes fertőzött? Erre is vannak módszerek, de ez már egy másik kérdés. Ráadásul az IFR valójában nem is egyetlen, konstans szám, rendkívül függ például az életkortól. Azaz, ha tehetjük, jobb ezt mint az életkor függvényét kezelni, különben az eredmény az adott ország korfájától is függeni fog.

A fenti benchmark nem ezt ragadja meg: a világ legjobban tesztelő országában sem várható, hogy minden fertőzöttet (nem tünetes esetet!) megtaláljon. Éppen ezért a fenti számítás is azt célozza meg, hogy kimutassuk, a “reálisan” teszteléssel megtalálható fertőzöttek mekkora részét sikerül ténylegesen detektálni. (Ahol a “reálisan” szó alatt azt értjük, ami más országnak sikerült.) És azt nevezi aluldetektálásnak, nem azt, hogy a fertőzöttek mekkora részét sikerült megtalálni.

Természetesen ez utóbbi is érdekes kérdés, hiszen ha megfordítjuk a logikánkat, és az IFR-t vesszük ismertnek, akkor ebből vissza lehetne következtetni a valóban fertőzöttek számára. Ez már egy másik vizsgálat tárgya lehetne.

Matematikai részletek

A számításhoz Nishiura és mtsai módszerét használjuk, mely röviden összefoglalva az alábbi logikát követi.

Jelölje \(c_t\) az esetszámot a \(t\)-edik napon, \(d_t\) pedig a halálozások számát, a megfelelő kumulált értékek legyenek \(C_t = \sum_{i=1}^t c_i\) és \(D_t = \sum_{i=1}^t d_i\). Ekkor a nyers becslő nyilván: [ b_t = \frac{D_t}{C_t}. ]

De hogyan tudjuk ezt korrigálni? Ehhez szükségünk lesz a halálos eseteknél a halálozási idő eloszlására, jelölje ezt \(f_j\) (diszkretizált eloszlás, tehát \(j\) a nap száma). Ekkor a \(t\)-edik napon meghalók száma felírható úgy, mint a \(t\)-edik napon meghaló és \(t-j\)-edik napon megfertőződőek számának összege, \(j=0, 1, \ldots\) (hiszen ezek kizáró események, amikből pontosan egy teljesül). A \(t\)-edik napon meghaló és \(t-j\)-edik napon megfertőződöttek száma binomiális eloszlású \(\left(c_{t-j}, \pi f_j\right)\) paraméterekkel, ahol \(\pi\) a valódi halálozási valószínűség. Ha ezt közelítjük \(\left(c_{t-j} f_j, \pi \right)\)-vel, akkor – feltéve, hogy ezek függetlenek – az összegük is binomális lesz \(\left(\sum_{j=0}^{\infty} c_{t-j} f_j, \pi \right)\) paraméterekkel.

Innen két irányban haladhatunk tovább. Vagy ezt használjuk fel, a halálozási helyzet aktuális mérésére (“valós idejű” mutató), vagy továbbvisszük belőle, hogy ez alapján \(D_t\) eloszlása binomiális \(\left(\sum_{i=1}^t \sum_{j=0}^{\infty} c_{i-j} f_j, \pi \right)\) paraméterekkel, és így a járvány egész lefutása alapján számolunk. Az utóbbi stabilabb, de az előbbivel lehet jobban kimutatni az esetleges menet közbeni változásokat, ahogy szó is volt róla.

Most, hogy az eloszlás megvan, továbbmehetünk akár maximum likelihood elven, akár bayes-i becsléssel.

Számítástechnikai részletek

A modellt nem bayes-i, hanem frekventista (maximum likelihood) elven becsültem meg, ehhez a bbmle csomagot használtam.

Irodalmi hivatkozások

  • Hiroshi Nishiura, Don Klinkenberg, Mick Roberts, Johan A P Heesterbeek. Early epidemiological assessment of the virulence of emerging infectious diseases: a case study of an influenza pandemic. PLoS One. 2009 Aug 31;4(8):e6852. doi: 10.1371/journal.pone.0006852. https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0006852.
  • A C Ghani, C A Donnelly, D R Cox, J T Griffin, C Fraser, T H Lam, L M Ho, W S Chan, R M Anderson, A J Hedley, G M Leung. Methods for estimating the case fatality ratio for a novel, emerging infectious disease. Am J Epidemiol. 2005 Sep 1;162(5):479-86. doi: 10.1093/aje/kwi230. https://academic.oup.com/aje/article/162/5/479/82647
Jelentés letöltése (PDF)

Írta: Ferenci Tamás (Óbudai Egyetem, Élettani Szabályozások Kutatóközpont), v0.60