-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathreport.Rmd
84 lines (65 loc) · 3.31 KB
/
report.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
---
title: "A COVID-19 magyarországi járványügyi helyzete"
date: '`r format(Sys.time(), "%Y\\. %m\\. %d\\. %H:%M")`'
author: "Ferenci Tamás, https://research.physcon.uni-obuda.hu/COVID19MagyarEpi/"
output: pdf_document
classoption: landscape
params:
reportConf: 95
reportSImu: 3.96
reportSIsd: 4.75
---
```{r, include=FALSE}
library(data.table)
library(ggplot2)
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, dev = "cairo_pdf", fig.width = 20)
options(digits = 3, knitr.kable.NA = "")
RawData <- readRDS("RawData.rds")
source("EpiHelpers.R", encoding = "UTF-8")
resReprRt <- merge(reprRtData(RawData$CaseNumber, params$reportSImu, params$reportSIsd),
RawData)[`Módszer`%in%c("Cori", "Wallinga-Teunis")]
options(scipen=999)
```
# Járványgörbe
Az esetek számának alakulása rá illesztett simítógörbével:
```{r}
epicurvePlot(predData(RawData))
```
A halottak számának alakulása rá illesztett simítógörbével:
```{r}
epicurvePlot(predData(RawData, "DeathNumber"), "DeathNumber")
```
# A reprodukciós szám valós idejű becslése
A reprodukciós szám valós idejű becslése Cori et al és Wallinga-Teunis módszere szerint:
```{r, message = FALSE}
pal <- scales::hue_pal()(3)
scalval <- c("Cori" = pal[1], "Wallinga-Lipsitch Exp/Poi" = pal[2], "Wallinga-Teunis" = pal[3])
ggplot(resReprRt, aes(x = Date, y = R, ymin = lwr, ymax = upr, color = `Módszer`, fill = `Módszer`)) + geom_line() +
geom_hline(yintercept = 1, color = "red") + expand_limits(y = 1) +
labs(y = "Reprodukciós szám", x = "Dátum", color = "", fill = "") + theme(legend.position = "bottom") +
scale_color_manual(values = scalval) + scale_fill_manual(values = scalval) + geom_ribbon(alpha = 0.2) +
coord_cartesian(ylim = c(NA, max(resReprRt$R)))
```
Az utolsó hét adatai Cori et al módszere szerint számszerűen:
```{r}
res <- resReprRt[`Módszer`=="Cori", c("Módszer", "Date", "R", "lwr", "upr")][order(Date, decreasing = TRUE)][1:7]
res$R <- paste0(round(res$R, 2), " (", round(res$lwr, 2), "-", round(res$upr, 2), ")")
knitr::kable(res[, c("Date", "R")], col.names = c("Dátum", "R"))
```
# Előrejelzések
## Empirikus (rövid távú)
Grafikus előrejelzés a következő hétre a megelőző két hét adataira illesztett exponenciális görbe alapján:
```{r}
epicurvePlot(predData(RawData, wind = c(max(RawData$Date)-14, max(RawData$Date)), projper = 7,
level = params$reportConf), funfit = TRUE, conf = params$reportConf)
```
Az utolsó hét adatai és számszerű előrejelzések:
```{r}
res <- predData(RawData, wind = c(max(RawData$Date)-14, max(RawData$Date)), projper = 7, level = params$reportConf)$pred
res$Pred <- paste0(round(res$fit, 2), " (", round(res$lwr, 2), "-", round(res$upr, 2), ")")
res <- res[!duplicated(Date)][Date>=RawData$Date[nrow(RawData)-7]]
knitr::kable(res[, .(`Dátum` = Date, `Napi esetszám [fő/nap]` = CaseNumber,
`Becsült napi esetszám (95%-os CI) [fő/nap]` = Pred)])
```
# Számításhoz használt feltevések
A következő számításokhoz a modell feltételezi, hogy a serial interval (tehát az egy beteg tüneteinek jelentkezésétől az általa megbetegített emberek -- másodlagos fertőzések -- tüneteinek jelentkezéséig eltelő idő) gamma eloszlású `r params$reportSImu` várható értékkel és `r params$reportSIsd` szórással.