library(dplyr)
library(rstatix)
library(ggplot2)
library(geobr)
library(knitr)
library(kableExtra)
library(htmltools)
library(scales)
library(readr)
library(rio)
library(sf)
library(readxl)
cores <- rcartocolor::carto_pal(12, "Bold")
cores2 <- rcartocolor::carto_pal(6, "SunsetDark")
dados_covid_sp <- read.csv('D:/Mestrado/1Sem_23/Ferramentas computacionais/projeto_final/Estudo/dados/dados_covid_sp.csv', sep = ";")
base_sp <- read.csv('D:/Mestrado/1Sem_23/Ferramentas computacionais/projeto_final/Estudo/dados/sp.csv', sep = ";")
dados_covid_sp$datahora <- as.Date(dados_covid_sp$datahora,
format = '%Y-%m-%d') #convertendo datahora para data
glimpse(dados_covid_sp)
## Rows: 779,722
## Columns: 11
## $ nome_munic <chr> "Adamantina", "Adolfo", "Aguaí", "Águas da Prata", "Água…
## $ codigo_ibge <int> 3500105, 3500204, 3500303, 3500402, 3500501, 3500550, 35…
## $ datahora <date> 2020-02-25, 2020-02-25, 2020-02-25, 2020-02-25, 2020-02…
## $ casos <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ casos_novos <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ casos_mm7d <chr> "0,000000000000000", "0,000000000000000", "0,00000000000…
## $ obitos <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ obitos_novos <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ obitos_mm7d <chr> "0,000000000000000", "0,000000000000000", "0,00000000000…
## $ pop <int> 33894, 3447, 35608, 7797, 18374, 5931, 3122, 36134, 5779…
## $ semana_epidem <int> 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,…
# excluindo colunas que não iremos usar
dados_covid_sp_tratado <- select(dados_covid_sp, -c(2,6,9))
# verificando valores vazios
dados_covid_sp_tratado %>%
sapply(function(x) sum(is.na(x))) # valores NA
## nome_munic datahora casos casos_novos obitos
## 0 0 0 0 0
## obitos_novos pop semana_epidem
## 0 0 0
dados_covid_sp_tratado %>%
sapply(function(x) sum(is.nan(x))) # valores NAN
## nome_munic datahora casos casos_novos obitos
## 0 0 0 0 0
## obitos_novos pop semana_epidem
## 0 0 0
dados_covid_sp_tratado %>%
head(10) %>%
knitr::kable() %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover","condesed","responsive"))
nome_munic | datahora | casos | casos_novos | obitos | obitos_novos | pop | semana_epidem |
---|---|---|---|---|---|---|---|
Adamantina | 2020-02-25 | 0 | 0 | 0 | 0 | 33894 | 9 |
Adolfo | 2020-02-25 | 0 | 0 | 0 | 0 | 3447 | 9 |
Aguaí | 2020-02-25 | 0 | 0 | 0 | 0 | 35608 | 9 |
Águas da Prata | 2020-02-25 | 0 | 0 | 0 | 0 | 7797 | 9 |
Águas de Lindóia | 2020-02-25 | 0 | 0 | 0 | 0 | 18374 | 9 |
Águas de Santa Bárbara | 2020-02-25 | 0 | 0 | 0 | 0 | 5931 | 9 |
Águas de São Pedro | 2020-02-25 | 0 | 0 | 0 | 0 | 3122 | 9 |
Agudos | 2020-02-25 | 0 | 0 | 0 | 0 | 36134 | 9 |
Alambari | 2020-02-25 | 0 | 0 | 0 | 0 | 5779 | 9 |
Alfredo Marcondes | 2020-02-25 | 0 | 0 | 0 | 0 | 3927 | 9 |
# Total de casos por ano/mes acumulado
dados_covid_sp_tratado$ano_mes <- format(dados_covid_sp_tratado$datahora, "%Y-%m")
casos_mes_ano <- dados_covid_sp_tratado %>%
group_by(datahora) %>%
summarise(total_casos = sum(casos))
casos_mes_ano %>%
head(10) %>%
knitr::kable() %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover","condesed","responsive"))
datahora | total_casos |
---|---|
2020-02-25 | 0 |
2020-02-26 | 1 |
2020-02-27 | 1 |
2020-02-28 | 1 |
2020-02-29 | 2 |
2020-03-01 | 2 |
2020-03-02 | 2 |
2020-03-03 | 2 |
2020-03-04 | 3 |
2020-03-05 | 6 |
# plot do gráfico: total de casos acumulados
casos_mes_ano %>%
ggplot(aes(x = datahora, y = total_casos * 1e-6)) +
geom_density(fill = cores[8], stat = "identity", alpha = 0.3) +
scale_color_manual(values = cores) +
theme(panel.grid = element_blank(),
panel.background = element_rect(fill = "white"),
plot.title = element_text(hjust = 0.5)) +
labs(x = "Ano",
y = expression(paste("Total de Casos (", 10^6, ")")),
title = "Evolução dos Casos no Estado de São Paulo") +
scale_y_continuous(labels = scales::comma, breaks = scales::pretty_breaks(5))
novos_casos_mes_ano <- dados_covid_sp_tratado %>%
group_by(datahora) %>%
summarise(novos_casos = sum(casos_novos))
novos_casos_mes_ano %>%
head(10) %>%
knitr::kable() %>%
kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover","condesed","responsive"))
datahora | novos_casos |
---|---|
2020-02-25 | 0 |
2020-02-26 | 1 |
2020-02-27 | 0 |
2020-02-28 | 0 |
2020-02-29 | 1 |
2020-03-01 | 0 |
2020-03-02 | 0 |
2020-03-03 | 0 |
2020-03-04 | 1 |
2020-03-05 | 3 |
novos_casos_mes_ano %>%
mutate(datahora = as.POSIXct(datahora)) %>%
ggplot(aes(x = datahora, y = novos_casos *1e-3)) +
geom_line(aes(color = "Média móvel"), show.legend = TRUE) +
geom_smooth(method = "loess", se = FALSE, color = "red", aes(color = "Curva de Suavização"), show.legend = TRUE) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5)) +
labs(x = "Ano/Mês", y = "Novos Casos (x 10³)", title = "Novos Casos por Dia no Estado de São Paulo",
color = "Legenda") +
scale_x_datetime(date_labels = "%Y-%m", date_breaks = "6 month") +
scale_color_manual(values = c("blue", "red"))
# importação e instalação, caso seja a primeira vez no pc
remotes::install_github("rpradosiqueira/brazilmaps")
library(dplyr)
library(rstatix)
library(ggplot2)
library(geobr)
library(sf)
library(dplyr)
library(rio)
library(readr)
library(scales)
library(data.table)
#base online, atualizada
# 2020
BR20 <- fread("https://s3.sa-east-1.amazonaws.com/ckan.saude.gov.br/SRAG/2020/INFLUD20-29-08-2022.csv")
# 2021
BR21 <- fread("https://s3.sa-east-1.amazonaws.com/ckan.saude.gov.br/SRAG/2021/INFLUD21-29-08-2022.csv")
# 2022
BR22 <- fread("https://s3.sa-east-1.amazonaws.com/ckan.saude.gov.br/SRAG/2022/INFLUD22-29-08-2022.csv")
## 2020
# filtro para as variáveis de interesse da pesquisa
var.20 <- BR20[,c("DT_NOTIFIC", "SEM_NOT", "ID_MUNICIP", "CO_MUN_NOT", "SG_UF_NOT",
"ID_REGIONA", "ID_UNIDADE", "NU_IDADE_N", "CS_SEXO", "CS_RACA",
"ID_MN_RESI", "CO_MUN_RES", "CS_ZONA", "HOSPITAL", "EVOLUCAO",
"FATOR_RISC", "UTI", "SUPORT_VEN", "CLASSI_FIN")]
# filtro para as notificações do estado de São Paulo
SP20 <- filter(var.20, SG_UF_NOT == 'SP')
## 2021
# filtro para variáveis de interesse da pesquisa
var.21 <- BR21[,c("DT_NOTIFIC", "SEM_NOT", "ID_MUNICIP", "CO_MUN_NOT", "SG_UF_NOT",
"ID_REGIONA", "ID_UNIDADE", "NU_IDADE_N", "CS_SEXO", "CS_RACA",
"ID_MN_RESI", "CO_MUN_RES", "CS_ZONA", "HOSPITAL", "EVOLUCAO",
"FATOR_RISC", "UTI", "SUPORT_VEN", "CLASSI_FIN")]
# filtro para as notificações do estado de São Paulo
SP21 <- filter(var.21, SG_UF_NOT == 'SP')
## 2022
# filtro para variáveis de interesse da pesquisa
var.22 <- BR22[,c("DT_NOTIFIC", "SEM_NOT", "ID_MUNICIP", "CO_MUN_NOT", "SG_UF_NOT",
"ID_REGIONA", "ID_UNIDADE", "NU_IDADE_N", "CS_SEXO", "CS_RACA",
"ID_MN_RESI", "CO_MUN_RES", "CS_ZONA", "HOSPITAL", "EVOLUCAO",
"FATOR_RISC", "UTI", "SUPORT_VEN", "CLASSI_FIN")]
# filtro para as notificações do estado de São Paulo
SP22 <- filter(var.22, SG_UF_NOT == 'SP')
## arquivo excel com os dados da covid-19 para o SP
write.table(SP22, file= "siveSP22.csv", sep=";", dec=",")
write.table(SP21, file= "siveSP21.csv", sep=";", dec=",")
write.table(SP20, file= "siveSP20.csv", sep=";", dec=",")
# dados gerais para sivesp/gripe
siveSP20 <- read.csv("siveSP20.csv", header = TRUE, sep = ";", dec = ",")
siveSP21 <- read.csv("siveSP21.csv", header = TRUE, sep = ";", dec = ",")
siveSP22 <- read.csv("siveSP22.csv", header = TRUE, sep = ";", dec = ",")
table(siveSP20$CS_SEXO)
##
## F I M
## 164953 20 194308
table(siveSP21$CS_SEXO)
##
## F I M
## 221656 19 272020
table(siveSP22$CS_SEXO)
##
## F I M
## 59840 5 61885
mean(siveSP20$NU_IDADE_N)
## [1] 56.41053
mean(siveSP21$NU_IDADE_N)
## [1] 52.74389
mean(siveSP22$NU_IDADE_N)
## [1] 50.46575
median(siveSP20$NU_IDADE_N)
## [1] 59
median(siveSP21$NU_IDADE_N)
## [1] 55
median(siveSP22$NU_IDADE_N)
## [1] 61
boxplot(siveSP20$NU_IDADE_N)
### 9.3.8 Boxplot 2021
boxplot(siveSP21$NU_IDADE_N)
### 9.3.9 Boxplot 2022
boxplot(siveSP22$NU_IDADE_N)
siveSP20 %>%
identify_outliers(NU_IDADE_N)
## DT_NOTIFIC SEM_NOT ID_MUNICIP CO_MUN_NOT SG_UF_NOT
## 19143 29/03/2020 14 SAO JOSE DOS CAMPOS 354990 SP
## 350778 30/09/2020 40 GUARULHOS 351880 SP
## ID_REGIONA
## 19143 GVE XXVII SAO JOSE DOS CAMPOS
## 350778 GVE VIII MOGI DAS CRUZES
## ID_UNIDADE NU_IDADE_N CS_SEXO
## 19143 HOSPITAL POLICLIN 136 M
## 350778 HOSPITAL MUNICIPAL DA CRIANCA E DO ADOLESCENTE HMCA -3 M
## CS_RACA ID_MN_RESI CO_MUN_RES CS_ZONA HOSPITAL EVOLUCAO FATOR_RISC UTI
## 19143 1 TAUBATE 355410 1 1 1 N NA
## 350778 4 GUARULHOS 351880 1 1 1 N 2
## SUPORT_VEN CLASSI_FIN is.outlier is.extreme
## 19143 NA 5 TRUE FALSE
## 350778 3 4 TRUE FALSE
siveSP21 %>%
identify_outliers(NU_IDADE_N)
## DT_NOTIFIC SEM_NOT ID_MUNICIP CO_MUN_NOT SG_UF_NOT
## 71839 15/04/2021 15 SAO VICENTE 355100 SP
## 81622 15/01/2021 2 UBATUBA 355540 SP
## 175637 27/03/2021 12 GUARULHOS 351880 SP
## 408014 04/01/2022 1 TAUBATE 355410 SP
## 416403 26/03/2021 12 CRAVINHOS 351310 SP
## 463500 16/03/2021 11 GUARULHOS 351880 SP
## ID_REGIONA
## 71839 GVE XXV SANTOS
## 81622 GVE XXVIII CARAGUATATUBA
## 175637 GVE VIII MOGI DAS CRUZES
## 408014 GVE XXXIII TAUBATE
## 416403 GVE XXIV RIBEIRAO PRETO
## 463500 GVE VIII MOGI DAS CRUZES
## ID_UNIDADE NU_IDADE_N CS_SEXO
## 71839 HOSPITAL DO VICENTINO 114 F
## 81622 SANTA CASA DE MISERICORDIA DE UBATUBA 114 F
## 175637 HOSPITAL MUNICIPAL DA CRIANCA E DO ADOLESCENTE HMCA -5 F
## 408014 HOSPITAL MUNICIPAL UNIVERSITARIO DE TAUBATE -6 F
## 416403 SANTA CASA DE CRAVINHOS 136 F
## 463500 HOSPITAL MUNICIPAL DA CRIANCA E DO ADOLESCENTE HMCA -9 M
## CS_RACA ID_MN_RESI CO_MUN_RES CS_ZONA HOSPITAL EVOLUCAO FATOR_RISC UTI
## 71839 1 SAO VICENTE 355100 NA 1 2 1 NA
## 81622 4 UBATUBA 355540 NA 1 2 2 NA
## 175637 4 GUARULHOS 351880 1 1 1 1 2
## 408014 1 TAUBATE 355410 1 1 1 1 1
## 416403 1 CRAVINHOS 351310 1 1 1 2 2
## 463500 4 GUARULHOS 351880 1 1 1 2 2
## SUPORT_VEN CLASSI_FIN is.outlier is.extreme
## 71839 NA 5 TRUE FALSE
## 81622 2 5 TRUE FALSE
## 175637 2 5 TRUE FALSE
## 408014 2 4 TRUE FALSE
## 416403 NA 5 TRUE FALSE
## 463500 3 2 TRUE FALSE
siveSP22 %>%
identify_outliers(NU_IDADE_N)
## [1] DT_NOTIFIC SEM_NOT ID_MUNICIP CO_MUN_NOT SG_UF_NOT ID_REGIONA
## [7] ID_UNIDADE NU_IDADE_N CS_SEXO CS_RACA ID_MN_RESI CO_MUN_RES
## [13] CS_ZONA HOSPITAL EVOLUCAO FATOR_RISC UTI SUPORT_VEN
## [19] CLASSI_FIN is.outlier is.extreme
## <0 linhas> (ou row.names de comprimento 0)
## tratando outliers
outliers20 <- c(boxplot.stats(siveSP20$NU_IDADE_N)$out)
outliers21 <- c(boxplot.stats(siveSP21$NU_IDADE_N)$out)
## atualizando as tabelas sem os outliers
siveSP20 <- siveSP20[-c(which(siveSP20$NU_IDADE_N %in% outliers20)),]
siveSP21 <- siveSP21[-c(which(siveSP21$NU_IDADE_N %in% outliers21)),]
siveSP20$NU_IDADE_N %>% boxplot()
siveSP21$NU_IDADE_N %>% boxplot()
## filtro para notificaÇões para covid-19
covidSP20 <- filter(siveSP20, CLASSI_FIN =='5')
covidSP21 <- filter(siveSP21, CLASSI_FIN =='5')
covidSP22 <- filter(siveSP22, CLASSI_FIN =='5')
## filtro para obitos totais de covid, evolucao = 2
obitoSP20 <- filter(covidSP20, EVOLUCAO == '2')
obitoSP21 <- filter(covidSP21, EVOLUCAO == '2')
obitoSP22 <- filter(covidSP22, EVOLUCAO == '2')
## filto para internação de covid, hospital = 1
hospSP20 <- filter(covidSP20, HOSPITAL == '1')
hospSP21 <- filter(covidSP21, HOSPITAL == '1')
hospSP22 <- filter(covidSP22, HOSPITAL == '1')
## filtro para letalidade, óbitos em hospitalizaçao, evolucao = 2
obitosSP20 <- filter(hospSP20, EVOLUCAO == '2')
obitosSP21 <- filter(hospSP21, EVOLUCAO == '2')
obitosSP22 <- filter(hospSP22, EVOLUCAO == '2')
t1 <- as.data.frame(table(obitosSP20$CO_MUN_NOT)) # 2020
t2 <- as.data.frame(table(obitosSP21$CO_MUN_NOT)) # 2021
t3 <- as.data.frame(table(obitosSP22$CO_MUN_NOT)) # 2022
codigos <- read_excel("D:/Mestrado/1Sem_23/Ferramentas computacionais/projeto_final/SRAG/RELATORIO_DTB_BRASIL_MUNICIPIO.xls")
## uniao das bases de acordo com as chaves do municipio
j1 <- merge(codigos, t1, by.x = "ibge6", by.y = "Var1", all.x = TRUE) # 2020
j2 <- merge(codigos, t2, by.x = "ibge6", by.y = "Var1", all.x = TRUE) # 2021
j3 <- merge(codigos, t3, by.x = "ibge6", by.y = "Var1", all.x = TRUE) # 2022
## colocar zero nas frequencias vazias
j1$Freq[is.na(j1$Freq)] <- 0
j2$Freq[is.na(j2$Freq)] <- 0
j3$Freq[is.na(j3$Freq)] <- 0
mapa20 <- j1
mapa21 <- j2
mapa22 <- j3
total_hosp_20 <- nrow(hospSP20)
mapa20$tx_mor_local20 <- (mapa20$Freq/total_hosp_20)*100
total_hosp_21 <- nrow(hospSP21)
mapa21$tx_mor_local21 <- (mapa21$Freq/total_hosp_21)*100
total_hosp_22 <- nrow(hospSP22)
mapa22$tx_mor_local22 <- (mapa22$Freq/total_hosp_22)*100
mapa_muni <- read_municipality(code_muni = "all", year=2010) %>%
filter(code_state == 35)
mapa20$code_muni <- as.double(mapa20$code_muni)
mapa21$code_muni <- as.double(mapa21$code_muni)
mapa22$code_muni <- as.double(mapa22$code_muni)
juntos2020 <- full_join(mapa_muni, mapa20, by="code_muni") #função join, união de variáveis
juntos2021 <- full_join(mapa_muni, mapa21, by="code_muni") #função join, união de variáveis
juntos2022 <- full_join(mapa_muni, mapa22, by="code_muni") #função join, união de variáveis
#retirando os NA, para municípios sem registros
juntos2020[is.na(juntos2020)] <- 0
juntos2021[is.na(juntos2021)] <- 0
juntos2022[is.na(juntos2022)] <- 0
# 2020
ggplot()+ ## plotagem
geom_sf(data = juntos2020, aes(fill = tx_mor_local20), color = NA, size = 0.15)+ ## geometria dos municípios
geom_sf(data = juntos2020, color = "gray", fill = NA, size = 0.1) + ## adição da linha cinza
labs(title = "Taxa de mortalidade hospitalar por SRAG por COVID-19 em 2020",
caption = "Fonte: Elaboração própria")+ ## titulo e legenda
scale_fill_gradientn(colours = cores2, limits = c(0.00, 15.00),
name="Taxa mortalidade", labels = label_number(big.mark="."))+ ## cores
theme(plot.title = element_text(hjust = 0.5),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(fill = "white")) ## configuração do tema
# 2021
ggplot()+ ## plotagem
geom_sf(data = juntos2021, aes(fill = tx_mor_local21), color = NA, size = 0.15)+ ## geometria dos municípios
geom_sf(data = juntos2021, color = "gray", fill = NA, size = 0.1) + ## adição da linha cinza
labs(title = "Taxa de mortalidade hospitalar por SRAG por COVID-19 em 2021",
caption = "Fonte: Elaboração própria")+ ## titulo e legenda
scale_fill_gradientn(colours = cores2, limits = c(0.00, 15.00),
name="Taxa mortalidade", labels = label_number(big.mark="."))+ ## cores
theme(plot.title = element_text(hjust = 0.5),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(fill = "white")) ## configuração do tema
# 2022
ggplot()+ ## plotagem
geom_sf(data = juntos2022, aes(fill = tx_mor_local22), color = NA, size = 0.15)+ ## geometria dos municípios
geom_sf(data = juntos2022, color = "gray", fill = NA, size = 0.1) + ## adição da linha cinza
labs(title = "Taxa de mortalidade hospitalar por SRAG por COVID-19 em 2022",
caption = "Fonte: Elaboração própria")+ ## titulo e legenda
scale_fill_gradientn(colours = cores2, limits = c(0.00, 15.00),
name="Taxa mortalidade", labels = label_number(big.mark="."))+ ## cores
theme(plot.title = element_text(hjust = 0.5),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(fill = "white")) ## configuração do tema