Instalação de pacotes e extração de dados

Packages

Library

Criando tabela casos

Contagem de nulos na coluna EVOLUCAO, que é a que corresponde a se houve recuperação, óbito ou outro.

cont_na <- sum(is.na(casos_fil$EVOLUCAO))
nulo_porcento <- cont_na*100 / (nrow(casos_fil))
nulo_porcento
## [1] 9.386253

Filtrando somente casos de covid

casos_fil_covid <- filter(casos_fil, CLASSI_FIN == 5)

Criando a coluna menor data

casos_fil_covid$DT_NOTIFIC <- dmy(casos_fil_covid$DT_NOTIFIC)
casos_fil_covid$DT_INTERNA <- dmy(casos_fil_covid$DT_INTERNA)
casos_fil_covid$DT_ENTUTI <- dmy(casos_fil_covid$DT_ENTUTI)
casos_fil_covid$DT_SAIDUTI <- dmy(casos_fil_covid$DT_SAIDUTI) 
casos_fil_covid$DT_EVOLUCA <- dmy(casos_fil_covid$DT_EVOLUCA)

### changing NA(null) values

casos_fil_covid$DT_INTERNA <- with(casos_fil_covid, as_date(ifelse(is.na(DT_INTERNA), DT_NOTIFIC, DT_INTERNA)))

casos_fil_covid$DT_ENTUTI <- with(casos_fil_covid, as_date(ifelse(is.na(DT_ENTUTI), DT_NOTIFIC, DT_ENTUTI)))

casos_fil_covid$DT_SAIDUTI <- with(casos_fil_covid,as_date(ifelse(is.na(DT_SAIDUTI),DT_NOTIFIC,DT_SAIDUTI)))

casos_fil_covid$DT_EVOLUCA <- with(casos_fil_covid, as_date(ifelse(is.na(DT_EVOLUCA), DT_NOTIFIC, DT_EVOLUCA)))

### escolhendo a menor data

casos_fil_covid$DT_MIN <- casos_fil_covid %>%
  transmute(DT_MIN = pmin(DT_NOTIFIC, DT_INTERNA,DT_ENTUTI, DT_SAIDUTI,DT_EVOLUCA))

### retirando dados errados (data anteriores a pandemia), muitos poucos casos para ser algo que impacte a base.

casos_fil_covid <- casos_fil_covid %>% filter(DT_MIN >= "2019-12-29")

retirando colunas obsoletas

casos_fil_covid <- select(casos_fil_covid, -DT_EVOLUCA, -DT_SAIDUTI, -DT_ENTUTI, -DT_INTERNA, -DT_NOTIFIC, -PAC_COCBO,-DT_UT_DOSE, -SEM_NOT )

Criando dummies

casos_fil_covid <- dummy_cols(casos_fil_covid, select_columns = c('CS_SEXO','CS_RACA','CS_ZONA', 'EVOLUCAO'),
           remove_selected_columns = FALSE)

Criando a coluna ano e semana, pois analisaremos a mortalidade dos grupos por semanas. Depois eu altero a coluna semana variando de acordo com o ano para ela virar a semana apidemiologica que se inicia na primeira semana de 2020, assim como é feito no boletim epidemiológico da covid pelo ministériod a saúde.

casos_fil_covid <- casos_fil_covid %>% mutate(ANO_DTMIN = year(casos_fil_covid$DT_MIN))

casos_fil_covid <- casos_fil_covid %>% mutate(SEM_DTMIN = week(casos_fil_covid$DT_MIN))

casos_fil_covid_2021 <- casos_fil_covid %>% filter(ANO_DTMIN == 2021) %>% mutate(SEM_DTMIN = SEM_DTMIN + 53)
casos_fil_covid_2022 <- casos_fil_covid %>% filter(ANO_DTMIN == 2022) %>% mutate(SEM_DTMIN = SEM_DTMIN + 105)
casos_fil_covid_2020 <- casos_fil_covid %>% filter(ANO_DTMIN == 2020)

casos_fil_covid <- rbind(casos_fil_covid_2020,casos_fil_covid_2021,casos_fil_covid_2022)

rm(casos_fil_covid_2020,casos_fil_covid_2021,casos_fil_covid_2022)
gc()
##             used   (Mb) gc trigger   (Mb)  max used (Mb)
## Ncells   1147129   61.3    2297997  122.8   2002192  107
## Vcells 142461445 1086.9  438862773 3348.3 516420974 3940

Demografia da base SRAG, análise por diagnóstico

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(CS_RACA)
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 1,"Branca")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 2,"Preta")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 3,"Amarela")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 4,"Parda")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 5,"Indigena")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 9,"Ignorado")

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = CS_RACA, )) + geom_line()

Demografia da base ao longo das semanas epidemiológicas, casos de SRAG diagnóstico de covid, a partir de agora todos os gráficos contém o filtro de casos de covid.

Por sexo, o ano de 2020 termina na semana 53 e 2021 na semana 105. A vacinação se iniciou em 17 de janeiro 2021 para os grupos prioritários. O vale que se cria no inicio de 2021 deve ser mais por uma não notificação do que por algum outro motivo, pois a tendencia era de subida dos casos. Podemos notar que homens foram mais afetados do que mulheres pela covid em termos gerais. isso fica explicito por ter mais casos com homens mesmo no Brasil tendo mais mulheres do que homens. Aqui posso levantar a hipótese de que mulheres trabalham menos com profissões que se expõem mais ao vírus.

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(CS_SEXO)

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = CS_SEXO, )) + geom_line()

Por raça. Aqui podemos mais notar a demografia em relação a identificação por raças do que de fato alguma observação mais criteriosa, posteriormente veremos que a mortalidade é maior à grupos correlacionados a mais pobreza, como pretos e indigenas. Portanto deve ter um fator de renda que impacta a quantidade de casos.

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(CS_RACA)
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 1,"Branca")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 2,"Preta")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 3,"Amarela")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 4,"Parda")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 5,"Indigena")
a$CS_RACA <- replace(a$CS_RACA,a$CS_RACA == 9,"Ignorado")

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = CS_RACA, )) + geom_line()

Por localidade

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(CS_ZONA)
a$CS_ZONA <- replace(a$CS_ZONA,a$CS_ZONA == 1,"Urbana")
a$CS_ZONA <- replace(a$CS_ZONA,a$CS_ZONA == 2,"Rural")
a$CS_ZONA <- replace(a$CS_ZONA,a$CS_ZONA == 3,"Periurbana")
a$CS_ZONA <- replace(a$CS_ZONA,a$CS_ZONA == 9,"Ignorado")

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = CS_ZONA, )) + geom_line()

Por Evolução. Aqui é interessante observar se a distância entre recuperados e óbitos aumentou depois das vacinas.

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(EVOLUCAO)
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 1,"Recuperado")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 2,"Óbito")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 3,"Óbito por outras causas")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 9,"Ignorado")

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = EVOLUCAO, )) + geom_line()

Por Unidade da federação

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(SG_UF_NOT)

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = SG_UF_NOT, )) + geom_line()

Por entrada em hospital, se houve internação. Este é muito importante, pois mostra que as notificações estão correlacionadas coma hospitalização, ou seja, casos de não hospitalização, não devem ter sido notificados. Ou talvez o teste de covid só foi realizado em caso de hospitalização, uma vez que há um filtro de covid feito.

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(HOSPITAL)
a$HOSPITAL <- replace(a$HOSPITAL,a$HOSPITAL == 1,"SIM")
a$HOSPITAL <- replace(a$HOSPITAL,a$HOSPITAL == 2,"NÃO")
a$HOSPITAL <- replace(a$HOSPITAL,a$HOSPITAL == 9,"Ignorado")

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = HOSPITAL, )) + geom_line()

Se foi para UTI. Aqui podemos notar que essa é uma variável mais interessante de se medir, diferente das internações. principalmente a mortalidade após ir para a UTI.

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(UTI)
a$UTI <- replace(a$UTI,a$UTI == 1,"SIM")
a$UTI <- replace(a$UTI,a$UTI == 2,"NÃO")
a$UTI <- replace(a$UTI,a$UTI == 9,"Ignorado")

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = UTI, )) + geom_line()

Se recebeu a vacina contra a gripe na ultima vacinação, o número de ignorados e nulos é muito grande para podermos afirmar qualquer coisa.

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(VACINA)

a$VACINA <- replace(a$VACINA,a$VACINA == 1,"SIM")
a$VACINA <- replace(a$VACINA,a$VACINA == 2,"NÃO")
a$VACINA <- replace(a$VACINA,a$VACINA == 9,"Ignorado")

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = VACINA, )) + geom_line()

Por escolaridade, número de nulos e ignorados é grande.

a <- casos_fil_covid %>% group_by(SEM_DTMIN) %>% count(CS_ESCOL_N)

a$CS_ESCOL_N <- replace(a$CS_ESCOL_N,a$CS_ESCOL_N == 0,"Sem escolaridade")
a$CS_ESCOL_N <- replace(a$CS_ESCOL_N,a$CS_ESCOL_N == 1,"Fundamental")
a$CS_ESCOL_N <- replace(a$CS_ESCOL_N,a$CS_ESCOL_N == 2,"Fundamental 2")
a$CS_ESCOL_N <- replace(a$CS_ESCOL_N,a$CS_ESCOL_N == 3,"Ensino médio")
a$CS_ESCOL_N <- replace(a$CS_ESCOL_N,a$CS_ESCOL_N == 4,"Superior")
a$CS_ESCOL_N <- replace(a$CS_ESCOL_N,a$CS_ESCOL_N == 5,"Não se aplica")
a$CS_ESCOL_N <- replace(a$CS_ESCOL_N,a$CS_ESCOL_N == 9,"Ignorado")

ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = CS_ESCOL_N, )) + geom_line()

Colocando DT_NASC no formato de data

casos_fil_covid$DT_NASC <- as_date(casos_fil_covid$DT_NASC, format= "%d%m%Y")

Criando bases por idade

casos_fil_covid_older80 <- filter(casos_fil_covid, DT_NASC < "1943-01-01")
casos_fil_covid_between70and80 <- filter(casos_fil_covid, DT_NASC < "1953-01-01")
casos_fil_covid_between70and80 <- filter(casos_fil_covid_between70and80, DT_NASC >= "1943-01-01")
casos_fil_covid_between60and70 <- filter(casos_fil_covid, DT_NASC < "1963-01-01")
casos_fil_covid_between60and70 <- filter(casos_fil_covid_between60and70, DT_NASC >= "1953-01-01")
casos_fil_covid_younger60 <- filter(casos_fil_covid, DT_NASC >= "1963-01-01")

Plots por idade

a <- casos_fil_covid_older80 %>% group_by(SEM_DTMIN) %>% count(EVOLUCAO)
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 1,"Recuperado")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 2,"Óbito")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 3,"Óbito por outras causas")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 9,"Ignorado")


ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = EVOLUCAO, )) + geom_line() + ggtitle("Pessoas acima de 80 anos")

a <- casos_fil_covid_between70and80 %>% group_by(SEM_DTMIN) %>% count(EVOLUCAO)
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 1,"Recuperado")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 2,"Óbito")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 3,"Óbito por outras causas")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 9,"Ignorado")


ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = EVOLUCAO, )) + geom_line() + ggtitle("Pessoas entre 70 e 80 anos")

a <- casos_fil_covid_between60and70 %>% group_by(SEM_DTMIN) %>% count(EVOLUCAO)
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 1,"Recuperado")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 2,"Óbito")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 3,"Óbito por outras causas")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 9,"Ignorado")


ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = EVOLUCAO, )) + geom_line() + ggtitle("Pessoas entre 60 e 70 anos")

a <- casos_fil_covid_younger60 %>% group_by(SEM_DTMIN) %>% count(EVOLUCAO)
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 1,"Recuperado")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 2,"Óbito")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 3,"Óbito por outras causas")
a$EVOLUCAO <- replace(a$EVOLUCAO,a$EVOLUCAO == 9,"Ignorado")


ggplot(data = a, aes(x = SEM_DTMIN, y = n , colour = EVOLUCAO, )) + geom_line() + ggtitle("Pessoas com menos de 60 anos")

O efeito da vacina parece se apresentar para os acima de 70 anos, pois a curva recuperados supera a de óbitos próximo a semana 80, temos de testar as comorbidades tambem, pois pode ser que a pandemia levou a óbitos os idoso com comorbidades e depois os dados se baseiam em idosos sem comorbidades.