1 Organização dos dados

1.1 carregar bibliotecas

library(dplyr)
library(kableExtra)
library(tidyverse)

1.2 Importar dados

dados <- list.files(path = getwd(),
                    pattern = 'temp_20230610_VIGITEL_MicroDado')

df_sudeste <- data.frame()

for (i in dados) {
  df <-  read.csv2(paste0(getwd(),'/' ,i))
  df_sudeste <- bind_rows(df_sudeste,df)
}

2 Análise exploratótia dos dados.

Analisar a variável estado conjugal(civil) e elaborar uma tabela de frequência.

2.1 Tabela de frequência

tabela <- df_sudeste %>%  filter(civil <888) %>% 
    mutate(civil= case_match(civil,
                      1~"solteiro",
                      2~"casado",
                      3~"estavel",
                      4~'viuvo',
                      5~'separado',
                      6~'nao info')) %>% 
  summarise( fi = n(), .by = civil) %>% 
  mutate(Fi=cumsum(fi),
         fr = paste0(round(prop.table(fi)*100,1),'%'),
         Fri = paste0(round( cumsum(prop.table(fi)*100) ,1),'%')) 

tabela %>% knitr::kable() %>% 
  kable_classic_2( html_font = "Cambria")
civil fi Fi fr Fri
solteiro 2140 2140 26.8% 26.8%
casado 3399 5539 42.5% 69.3%
viuvo 1127 6666 14.1% 83.4%
separado 710 7376 8.9% 92.2%
estavel 621 7997 7.8% 100%

2.2 Gráfico de barra.

tabela %>% 
  ggplot(aes( x=civil,y=fi, fill = civil )) +
  geom_col(show.legend = c( TRUE )  )+
  geom_text(aes(label = fi),position = position_stack(vjust = 0.5))

casos_diabetes <- df_sudeste %>% select(civil, diabetes = q76) %>% 
  filter(civil < 6, diabetes <3) %>% 
  mutate(civil = case_when(
    civil == "1" ~ "solteiro",
    civil == "2" ~ "casado ",
    civil == "3" ~ "estavel",
    civil == "4" ~ "viuvo",
    civil == "5" ~ "separado"),
  diabetes = case_when(
      diabetes == "1" ~ "negativo",
      diabetes == "2" ~ "positivo") ) %>% 
  summarise( total = n() , .by = c(civil , diabetes) )

casos_diabetes %>% arrange(desc(civil))
##       civil diabetes total
## 1     viuvo negativo   250
## 2     viuvo positivo   876
## 3  solteiro positivo  2013
## 4  solteiro negativo   127
## 5  separado positivo   622
## 6  separado negativo    88
## 7   estavel positivo   559
## 8   estavel negativo    61
## 9   casado  positivo  2903
## 10  casado  negativo   493
casos_diabetes  |>  ggplot(aes(x=civil, y=total, fill = diabetes ))+
  geom_col(position = 'dodge') +
  scale_fill_manual( values = c("tan3","steelblue1"))

3 Manipulação, organização e limpeza dos dados.

Organizar e transformar os dados procurando por outliers e valores não registrados.

Os valores ausentes nesse conjuto de dados é representado pelo valor 777.

tabela_transformada <- df_sudeste  |> 
  #Seleção das principais variáveis
  select(civil, peso =q9, diabetes = q76)  |>  
  #remover os valores ausentes
  filter(peso < 777, diabetes < 777) |> 
  mutate(civil = case_when(
    civil == "1" ~ "solteiro",
    civil == "2" ~ "casado ",
    civil == "3" ~ "estavel",
    civil == "4" ~ "viuvo",
    civil == "5" ~ "separado"),
  diabetes = case_when(
      diabetes == "1" ~ "negativo",
      diabetes == "2" ~ "positivo") )

tabela_transformada |> head()
##      civil peso diabetes
## 1 solteiro   54 positivo
## 2 solteiro   96 positivo
## 3  casado    73 positivo
## 4    viuvo   76 negativo
## 5 separado   98 positivo
## 6  casado    75 positivo
tabela_transformada %>%
  summary()
##     civil                peso          diabetes        
##  Length:7723        Min.   : 32.00   Length:7723       
##  Class :character   1st Qu.: 61.00   Class :character  
##  Mode  :character   Median : 70.00   Mode  :character  
##                     Mean   : 71.84                     
##                     3rd Qu.: 80.00                     
##                     Max.   :210.00
df_sudeste %>% summarise( desvio_padrão = sd(q9))
##   desvio_padrão
## 1      150.8586
plot(density( pull(select(df_sudeste, peso = q9) %>%
                     filter(peso <300))), 
     main = "Gráfico de Densidade") 

qqnorm( scale(tabela_transformada$peso))
qqline(tabela_transformada$peso)