Jdi na navigaci předmětu

3. Domácí úkol: Covid-19

Úvod

Nevěřím žádné statistice, kterou jsem sám nezfalšoval.

údajně Winston Churchill (fáma Josefa Goebbelse)

Pravděpodobně jste zaznamenali, že poslední dobou se svět potýká s pandemií Covid-19. Ve veřejném prostoru se lze setkat s obrovským množstvím statistik a analýz různých důvěryhodností a úrovní.

V tomto úkolu se podíváme na tři aspekty epidemie:

  • zpoždění ve vlnách v testování, hospitalizacích a úmrtích,
  • vývoj poměru očkovaných a neočkovaných hospitalizovaných pacientů,
  • nadúmrtí.

Cílem úkolu je procvičit si práci zejména s DataFrames.jl, snažte se je proto využít co nejvíce.

V adresáři data jsou připraveny soubory s daty. V informačních systémech ministerstev a úřadů nemusí být zcela jednoduché je najít. Používáme čtyři soubory od MZČR:

Případně si můžete stáhnout čerstvé verze. Zde v repozitáři budou pár dní až týdnů staré.

Dále používáme data o úmrtí z ČSÚ (soubor umrti_cr.csv).

Zadání

Zpoždění vln (první tři vlny 2020/2021)

V souboru data/testy-pcr-antigenni.csv jsou ve sloupcích PCR_pozit_sympt a PCR_pozit_asymp počty PCR pozitivních testů v dané dny.

  1. Vytvořte graf ukazující vývoj celkového počtu pozitivních PCR testů v čase (na horizontální ose budou uvedena data dnů). Za poslední přibližně rok uvidíte tři hlavní vlny. Dále uvidíte značný vliv týdenní periody (o víkendech se méně testuje).
  2. Počty PCR testů vyhlaďte jednoduchým průměrováním. K tomu dokončete implementaci metody average v souboru helpers.jl (viz popis tamtéž). Zkonstruujte stejný graf jako v předchozím bodě jen s těmito zprůměrovanými daty. Tři vlny by nyní měly být velmi patrné. Pro vyhlazení použijte hodnotu offset rovnou 3 (tj. prakticky počítá se průměr ze sedmi dní, týdnu).
  3. Dokončete implementaci metody find_peaks v souboru helpers.jl, která v datech nalezne zásadnější lokální maxima (viz popis tamtéž). Pomocí této metody určete data odpovídající maximům počtu provedených PCR testů (ve vyhlazených datech). Stačí nalézt kandidáty a ty zajímavé případně ručně extrahovat.

Zopakujte body 1. až 3. na datech s počtem hospitalizovaných pacientů a počtem úmrtí (soubor data/hospitalizace.csv a sloupce pocet_hosp a umrti).

Vypočtěte zpoždění (ve dnech) mezi peaky v počtu PCR testů a peaky v počtu hospitalizací/úmrtí. Jaký z těchto údajů učiníte závěr?

Hospitalizace očkovaných a neočkovaných pacientů

Vytvořte DataFrame se sloupci:

  • datum: den, začněte od 1. července,
  • proc_ockovani: procentuální vyjádření počtu očkovaných hospitalizovaných pacientů z celkového počtu očkovaných obyvatel ČR (v daný den),
  • proc_neockovani: procentuální vyjádření počtu neočkovaných hospitalizovaných pacientů z celkového počtu neočkovaných obyvatel ČR (v daný den).

Použijte data ze souborů ockovani-hospitalizace.csv a zakladni-prehled.csv (pokud chcete dopočítat i přesný vývoj počtu očkovaných, můžete k tomu použít soubor ockovani.csv, vyžaduje to ovšem netriviální přepočet). Celkový počet obyvatel ČR berte roven 10701777.

Vytvořte graf vizualizující časový vývoj těchto ukazatelů.

Nadúmrtí

V poslední části úkolu se zaměříme na jednoduchý výpočet nadúmrtí. K tomu použijeme data ze souboru umrti_cr.csv, kde jsou uvedeny počty úmrtí v ČR podle jednotlivých týdnů v roce od roku 2011.

  1. Vypočtěte průměr xˉ=15j=20152019xj\bar x = \frac{1}{5}\sum_{j=2015}^{2019} x_j a rozptyl sˉ=14j=20152019(xjxˉ)2\bar s = \sqrt{\frac{1}{4} \sum_{j=2015}^{2019} (x_j - \bar x)^2} počtu úmrtí xjx_j v jednotlivých týdnech od roku 2015 do roku 2019 (oboje včetně; pro výpočet uvedených ukazatelů tedy vždy budete mít pět hodnot). Ideálně si vytvořte například nový DataFrame.
  2. Určete 95% interval spolehlivosti (konfidenční interval) průměrného počtu úmrtí v daném týdnu podle vzorce (xˉt0.025,4sˉ4,xˉ+t0.025,4sˉ4)\Big( \bar x - t_{0.025,4} \frac{\bar s}{\sqrt{4}}, \bar x + t_{0.025,4} \frac{\bar s}{\sqrt{4}} \Big). Zde t0.025,4=2.776t_{0.025, 4} = 2.776 je kritická hodnota Studentova tt-rozdělení s 51=45 - 1 = 4 stupni volnosti.
  3. Graficky znázorněte počty úmrtí v jednotlivých týdnech roku v letech 2015 až 2021 (dokud jsou data) a znázorněte i dolní a horní hranice výše spočtených intervalů spolehlivosti. Na horizontální ose tedy budete mít týdny v roce.
  4. Určete počet nadúmrtí z důvodů epidemie (ať už přímých nebo nepřímých)) jakožto sumu rozdílů počtu úmrtí v daný týden od horní hranice intervalu spolehlivosti pro tento týden od začátku epidemie (samozřejmě jen pokud je tento rozdíl kladný!).

Poznámky

Svou implementaci vložte do připravených souborů helpers.jl a 03-covid.ipynb. Úkol je opět doplněn jednoduchými testy metod find_peaks a average, které opět spustíte příkazem $ julia test/runtests.jl.