# Pacotes
#devtools::install_github("renkun-ken/formattable")

library(tidyverse)
# library(formattable)


porcent <- function(x){
  y = paste(round(x*100,2), '%')
  return(y)
}

Introdução:

A Covid-19 é uma infecão respiratória aguda causada pelo coronavírus SARS-CoV-2, potencialmente grave, de elevada transmissibilidade e de distribuição global.

Os dados são referentes a casos notificados de covid-19 em Mato Grosso, no ano de 2021.

Fonte: Secretaria de Estado de Saúde de Mato Grosso

Conjunto de dados:

dados_corona_total <- readxl::read_excel("C:/Users/USER/Laboratorio/Corona/dados_corona.xlsx")

glimpse(dados_corona_total)
## Rows: 579,663
## Columns: 25
## $ CodigoIBGERegiao      <chr> "5101", "5101", "5101", "5101", "5101", "5101", ~
## $ RegiaoSaude           <chr> "Médio Araguaia", "Médio Araguaia", "Médio Aragu~
## $ CodigoIBGE            <chr> "510706", "510706", "510706", "510706", "510706"~
## $ Municipio             <chr> "Querência", "Querência", "Querência", "Querênci~
## $ DataNotificacao       <chr> "08/07/2020 00:00:00", "07/06/2020 00:00:00", "0~
## $ idade                 <chr> "68", "42", "67", "38", "7", "40", "7", "26", "3~
## $ Sexo                  <chr> "Masculino", "Masculino", "Masculino", "Feminino~
## $ RacaCor               <chr> "Branca", NA, NA, "Parda", "Parda", "Parda", "Br~
## $ ProfissionalSaude     <chr> "Não", NA, NA, "Não", "Não", "Não", "Não", NA, N~
## $ ProfissionalSeguranca <chr> "Não", NA, NA, "Não", "Não", "Não", "Não", NA, N~
## $ DataInicioSintomas    <chr> "29/06/2020 00:00:00", "02/06/2020 00:00:00", "0~
## $ Comorbidade           <chr> "Sim", "Não", "Sim", "Não", "Sim", "Não", "Não",~
## $ Cardiovascular        <chr> NA, "Não", "Sim", "Não", "Sim", "Não", "Não", "N~
## $ Diabetes              <chr> "Sim", "Não", "Não", "Não", "Não", "Não", "Não",~
## $ Hipertensao           <chr> "Sim", "Não", "Não", "Não", "Não", "Não", "Não",~
## $ Neoplasia             <chr> NA, "Não", "Não", "Não", "Não", "Não", "Não", "N~
## $ Obesidade             <chr> NA, "Não", "Não", "Não", "Não", "Não", "Não", "N~
## $ Pulmonar              <chr> NA, "Não", "Não", "Não", "Não", "Não", "Não", "N~
## $ Situacao              <chr> "Óbito", "Recuperado", "Recuperado", "Recuperado~
## $ Hospitalizado         <chr> "Não", "Não", "Não", "Não", "Não", "Não", "Não",~
## $ FechamentoCaso        <chr> "Confirmado Clínico", "Confirmado Laboratorial",~
## $ DataModificacaoObito  <chr> "25/07/2020 10:19:41", NA, NA, NA, NA, NA, NA, N~
## $ DataEncerramentoCaso  <chr> "21/07/2020 00:00:00", "19/06/2020 00:00:00", "2~
## $ Gestante              <chr> "Não", NA, NA, "Não", "Não", "Não", "Não", NA, N~
## $ Seq_Row_Number        <chr> "1", "2", "3", "4", "5", "6", "7", "8", "9", "10~
dados_corona <- dados_corona_total %>% drop_na(-DataModificacaoObito)
# Ajuste dos dados
dados_corona_total <- dados_corona_total %>% 
  mutate(idade = as.numeric(idade),
         ProfissionalSeguranca = ifelse(ProfissionalSeguranca == 'N?o', 'Não',ProfissionalSeguranca),
         ProfissionalSaude = ifelse(ProfissionalSaude == 'N?o', 'Não',ProfissionalSaude))

Situação:

No ano de 2021 foram registrados 579.663 casos de covid-19 em Mato Grosso. Desses casos, 94,5% dos infectados foram recuperados, 2,4% morreram por causa da doença.

# Situação, total de obitos

total <- nrow(dados_corona_total)

a <- dados_corona_total %>%
  group_by(Situacao) %>%
  summarise(n = n(), '%' = porcent(n/total)) 

DT::datatable(a, options = list(dom = 't'), filter = "none")

Analise por Idade:

Tabela 1: Numero de casos e óbitos por Faixa Etária

######## Analise por idade  ########

morte <- dados_corona_total %>% filter(Situacao == "Óbito", !is.null(idade))


morte_idade <- 
  morte %>% 
  filter(!is.null(idade)) %>% 
  select(idade) %>% 
  mutate(FaixaEtaria = ifelse(idade >= 0 & idade <= 20, "0 a 20",
                       ifelse(idade > 20 & idade <= 40, "21 a 40",
                       ifelse(idade > 40 & idade <= 60, "41 a 60",
                       ifelse(idade > 60 & idade <= 80, "61 a 80", 
                             "mais de 80"))))) %>% 
            group_by(FaixaEtaria) %>% 
            summarise(n_obitos = n(), '%' = porcent(n()/nrow(morte)))

idade_casos <- 
  dados_corona_total %>% 
  filter(!is.null(idade)) %>% 
  select(idade) %>% 
  mutate(FaixaEtaria = ifelse(idade >= 0 & idade <= 20, "0 a 20",
                       ifelse(idade > 20 & idade <= 40, "21 a 40",
                       ifelse(idade > 40 & idade <= 60, "41 a 60",
                       ifelse(idade > 60 & idade <= 80, "61 a 80", 
                        "mais de 80"))))) %>% 
            group_by(FaixaEtaria) %>% 
            summarise(n_casos = n(), '% ' = porcent(n()/total))

idade <- idade_casos %>% left_join(morte_idade, by = "FaixaEtaria")

idade1 <- idade %>% rename('nº de casos' = n_casos,
                           'nº de óbitos' =  n_obitos)

DT::datatable(idade1, options = list(dom = 't'), filter = "none")
# Histograma de idade

par(mfrow=c(1, 2))

hist(dados_corona_total$idade, 
     xlim = c(0,100),
     xlab = "Idade", 
     ylab = "Frequencia",
     main = "Histograma de Casos por Idade")

hist(morte$idade, 
     xlim = c(0,100),
     xlab = "Idade", 
     ylab = "Frequencia",
     main = "Histograma de óbitos por Idade")

Tabela 2: Porcentagem relativa de mortes por quantidade de casos entre as Faixas Etarias

a <- idade %>% mutate(n = porcent(n_obitos/n_casos)) %>%
  select(FaixaEtaria, n) %>% 
  rename("% Obitos" = n)
  

DT::datatable(a, options = list(dom = 't'), filter = "none", width = "50%")

Observa-se um aumento da porcentagem de óbitos causados pelo covid conforme a idade aumenta. A maior porcentagem foi para pessoas com mais de 80 anos, sendo 26,4% dos infectados morreram. Enquanto que para menores de 20 anos a porcentagem foi de 0,08%

Comorbidades

Tabela 3: Número Comorbidades por Sexo

######## Analise por comorbidade #######

# Porcentagem de comorbidade por sexo
# 
# dados_corona %>%
#   group_by(Sexo, Comorbidade) %>% 
#   count() %>% spread(Sexo,n) %>% 
#   arrange(desc(Comorbidade))

# Numero de casos registrados para cada tipo de comorbidade

#names(dados_corona)[13:18] #Comorbidades


comorbidade <- 
  dados_corona_total %>%
  filter(Cardiovascular == 'Sim') %>% 
  group_by(Sexo, Cardiovascular) %>% 
  count() %>% 
  spread(Cardiovascular, n) %>% 
  rename(Cardiovascular = Sim) 


comorbidade <- 
dados_corona_total %>%
  filter(Hipertensao == 'Sim') %>% 
  group_by(Sexo, Hipertensao) %>% 
  count() %>% 
  spread(Hipertensao, n) %>% 
  rename(Hipertensao = Sim) %>% 
  left_join(comorbidade)

comorbidade <- 
dados_corona_total %>%
  filter(Diabetes == 'Sim') %>% 
  group_by(Sexo, Diabetes) %>% 
  count() %>% 
  spread(Diabetes, n) %>% 
  rename(Diabetes = Sim) %>% 
  left_join(comorbidade) 

comorbidade <- 
dados_corona_total %>%
  filter(Neoplasia == 'Sim') %>% 
  group_by(Sexo, Neoplasia) %>%
  count()  %>% 
  spread(Neoplasia, n) %>% 
  rename(Neoplasia = Sim) %>% 
  left_join(comorbidade)

comorbidade <- 
dados_corona_total %>%
  filter(Obesidade == 'Sim') %>% 
  group_by(Sexo,  Obesidade) %>% 
  count() %>% 
  spread(Obesidade, n) %>% 
  rename(Obesidade = Sim) %>% 
  left_join(comorbidade) 

comorbidade <- 
  dados_corona_total %>%
  filter(Pulmonar == 'Sim') %>% 
  group_by(Sexo,  Pulmonar) %>% 
  count() %>% 
  spread(Pulmonar, n) %>% 
  rename(Pulmonar = Sim) %>% 
  left_join(comorbidade) 

DT::datatable(comorbidade, options = list(dom = 't'), filter = "none")

Teste Qui-quadrado Relação Gestante Hospitalização

teste <- dados_corona_total %>%
  filter(!is.na(Hospitalizado) &!is.na(Gestante)) %>% 
  group_by(Gestante, Hospitalizado) %>%
  count() %>% spread(Gestante, n) %>% 
  rename( Gestante = Sim, 
          NaoGestante = Não)
teste
## # A tibble: 2 x 3
## # Groups:   Hospitalizado [2]
##   Hospitalizado NaoGestante Gestante
##   <chr>               <int>    <int>
## 1 Não                569171     3066
## 2 Sim                   501       16
chisq.test(teste[,2:3])
## Warning in chisq.test(teste[, 2:3]): Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  teste[, 2:3]
## X-squared = 58.508, df = 1, p-value = 2.024e-14

Tabelas Cruzadas

Sexo x Situação

# Sexo x Situaçao x Hospitaliza??o
dados_corona_total %>%
  filter(!is.na(Situacao)) %>%
  group_by(Sexo,  Situacao) %>%
  count() %>%  spread(Sexo, n) %>%
  DT::datatable(options = list(dom = 't'), filter = "none") 

Profissional da Segurança x Hospitalização

dados_corona_total %>%
  filter(!is.na(Hospitalizado) & !is.na(ProfissionalSeguranca)) %>% 
  group_by(ProfissionalSeguranca, Hospitalizado) %>%
  count() %>%  spread(ProfissionalSeguranca, n) %>%
  arrange(desc(Hospitalizado)) %>%
  DT::datatable(options = list(dom = 't'), filter = "none")