O objetivo é estimar quando teremos o pico de infectados em um mesmo dia na cidade de Campinas, usando os dados por cidades da iniciativa Brasil.io, via pacote no R datacovidbr
de Victor Freguglia.
A predição é realizada ajustando um modelo simultâneo para os casos acumulados, confirmados e a diferença de casos confirmados. Matematicamente, se considerarmos os casos acumulados como nossa função principal, os casos confirmados e a diferença de casos são sua primeira e segunda derivadas, respectivamente. Para mais detalhes, veja aqui.
A situação atual da cidade de Campinas é a seguinte:
dd_ori = brasilio(silent=TRUE)
dd = dd_ori %>%
arrange(date) %>%
filter(city=="Campinas") %>%
mutate(casosAcumulados = confirmed,
d1 = c(0, diff(confirmed)),
d2 = c(0, diff(d1))
) %>%
# filter(date != "2020-05-07") %>%
select(data = date, casosAcumulados, d1, d2)
visu(prep_data(
data = dd,
num_cases = "d1",
date_var = "data"
), TRUE)
Usando o modelo de predição mencionado vamos estimar o dia e o número de máximo infectados em Campinas.
O gráfico a seguir mostra a situação atual em vermelho e os previstos em azul. Em seguida, uma tabela indicando a data prevista de pico e o número estimado.
chute_campinas = c(3000, # 10% da pop
65,
3)
optCampinas = covid19peakfit(
data = dd,
n_cases = "d1",
date_var = "data",
init_pars = chute_campinas,
lim_inf = c(dd$casosAcumulados[nrow(dd)], 45, 0),
weights = c(.5, 2, 5)
)
# optCampinas = opt(dd,
# chute = chute_campinas,
# pesos = c(.01,1,.01),
# lim_inf = c(0,26,0))
future(optCampinas, n_fut = 40)
Este gráfico mostra o ajuste do modelo nos dados atuais. É importante que todas as curvas estejam bem ajustadas em cada painel.
optCampinas$plot
O número de óbitos é estudado da mesma maneira que o número de casos e temos o cenário atual a seguir:
dd = dd_ori %>%
arrange(date) %>%
filter(city=="Campinas") %>%
mutate(casosAcumulados = deaths,
d1 = c(0,diff(deaths)),
d2 = c(0, diff(d1))
) %>%
filter(date != "2020-05-07") %>%
select(data = date, casosAcumulados, d1, d2)
visu(prep_data(
data = dd,
num_cases = "d1",
date_var = "data"
), FALSE)
O gráfico a seguir mostra a situação atual em vermelho e os previstos em azul. Em seguida, uma tabela indicando a data prevista de pico e o número estimado.
chute_campinas = c(100,
55,
5)
optCampinas = covid19peakfit(
data = dd,
n_cases = "d1",
date_var = "data",
init_pars = chute_campinas,
lim_inf = c(40, 45, 0)
)
# optCampinas = opt(dd,
# chute = chute_campinas,
# pesos = c(.01,1,.01),
# lim_inf = c(0,26,0))
future(optCampinas, n_fut = 40)
Este gráfico mostra o ajuste do modelo nos dados atuais. É importante que todas as curvas estejam bem ajustadas em cada painel.
optCampinas$plot