Inicializar

Carregar bibliotecas

Carregar bibliotecas necessárias

pacman::p_load(tidyverse, viridis, plotly, ggridges, gridExtra, geobr, DT, paletteer, ggcorrplot)

Carregar dados

Dados disponíveis na Base de dados Munics-IPs. Consultá-la no repositório github

setwd("C:\\r_files\\my_academic_projects\\ippc_project_r_final")

#### Carregar os dados do IBGE
Munics_IPs <- read_csv2("Munics_IPs.csv")

#### Carregar os dados da Legenda
Munics_IPs.legenda <- read.csv2("Legenda.csv", header=FALSE, stringsAsFactors=FALSE, encoding = "UTF-8")

## Selecionar unicamente o que corresponde a Munic 2013 e 2014
# filtrar linhas pela posição na base

# Legenda
Legenda_Munic_2014 <- slice(Munics_IPs.legenda,c(695:920, 1107:1152)) # O conselho de segurança alimentar aparecia duplicado # Agora excluído o código "A913".

# Base
Munic_2014 <- select(Munics_IPs, c(A1, A545:A740,A879:A912)) 
# O conselho de segurança alimentar aparecia duplicado # Agora excluído o código "A913".

# Bases suas
suas <- read_csv2("censo_suas.csv") %>% 
  select(IBGE, Porte_pop2010, Pop_Total2010)

suas <- descr::toUTF8(suas)

# IDH
idh <- read_csv2("idh_census.csv")

Funções de ajuda

Paridade

Criar função de ajudar para verificar a existência de paridade nos conselhos

##existencia de paridade
paridade <- function(x){
  ifelse(x%in%c("Paritário","Sim", "É paritário", "Tem maior representação da sociedade civil"),1,ifelse(x%in%c("Não", "Não paritário", "Não aplicável","Não informado", "Não soube informar", "Não sabe informar", "Recusa", "Tem maior representação governamental", "Não está em funcionamento"), 0,NA))
}

Caráter

Criar função de ajudar para verificar o caráter dos conselhos

# Função válida para deliberativos, consultivos, fiscalizadores e normativos
carater <- function(x){
  ifelse(x=="Sim",1,ifelse(x%in%c("Não", "Não aplicável","Não informado", "Recusa", "Não soube informar", "Não sabe informar"), 0, NA))
}

Tema histograma

Criar tema para plotar histogramas

theme_hist <- theme(axis.text.x = element_text(size = 20, face = "bold"),
                    axis.text.y = element_text(size = 20,  face = "bold"),  
                    axis.title.x = element_text(size = 20,  face = "bold"),
                    axis.title.y = element_text(size = 20,  face = "bold"),
                    legend.position="bottom",
                    legend.text = element_text(size = 20),
                    legend.title = element_text(size = 20))

Tema boxplot

Criar tema para plotar boxplots

theme_box <- theme(axis.text.x = element_text(size = 20),
                    axis.text.y = element_text(size = 20),  
                    axis.title.x = element_text(size = 20),
                    axis.title.y = element_text(size = 20))

Tema mapa Brasil

Criar tema para plotar mapa

theme_map_br <- theme(panel.background = element_rect(fill = "transparent"), 
        panel.grid.major = element_line(color = "transparent"), 
        axis.text.x = element_blank(), 
        axis.text.y = element_blank(), 
        axis.ticks = element_blank(),
        legend.position = c(0.4, 0.4), 
        legend.justification = c(1, 1),
        legend.background = element_blank(),
        legend.text = element_text(size = 20),
        legend.title = element_text(size=20),
        plot.title=element_text( hjust=0, vjust=-5, face='bold'))

01. Número de conselhos

Verificar número de conselhos por município

Selecionar variáveis

Visualizar nomes e códigos dos conselhos

## Criar índice para selecionar unicamente a pergunta "O municipio possui Conselho Municipal...?"
##Coluna V3
  index_cons <- str_which(Legenda_Munic_2014$V3,"possui Conselho Municipal")   
  
  ### Usar o índice para selecionar as linhas.
  Conselhos_lista <- slice(Legenda_Munic_2014,index_cons) 
  
  ## Usar a coluna V17 que possui os códigos da base de dados
  Conselhos_codigo_nomes <- Conselhos_lista %>% 
    select(V3, V17)#identificamos os códigos de cada conselho
  
  # Usar V3 para extrair o nome do conselho 
   Conselhos_codigo_nomes <- Conselhos_codigo_nomes %>% 
    mutate(nomes = str_remove(V3, "O município possui Conselho Municipal d(e?o?s?) ?"),
           nomes = str_remove(nomes, "\\?"),
           nomes = str_trunc(nomes, 25)) %>% 
     select(nomes, cod = V17) %>% 
     filter(!cod %in% c("A607", "A615", "A724")  )
  
Conselhos_codigo_nomes
##                        nomes  cod
## 1              Meio Ambiente A545
## 2         Direitos da Mulher A553
## 3                   Educação A587
## 4                      Saúde A623
## 5  Direitos Humanos ou si... A633
## 6  Direitos da Criança e ... A641
## 7  Igualdade Racial ou si... A649
## 8  Direitos do Idoso ou s... A657
## 9  Direitos da Pessoa com... A665
## 10 Direitos de Lésbicas, ... A673
## 11 Direitos da Juventude ... A681
## 12         Segurança Pública A715
## 13       Segurança Alimentar A732
## 14        Assistência Social A891

Selecionar variáveis do Banco

##Selecionamos apenas as colunas correspondentes a "possui Conselho?"
  Munic_2014_Conselhos <- select(Munic_2014,A1, Conselhos_codigo_nomes$cod)

  ### Excluir conselhos da alimentacao escolar, transporte escolar e defesa civil
  #Munic_2014_Conselhos <- select(Munic_2014_Conselhos, -c(A607, A615, A724))  

Cacular número de conselhos

  • Plotar:

    Visão geral

    Verificação da aplicação

    Sumário da distribuição do número de conselhos

    Tabela simples da distribuição do número de conselhos

##Transformar os dados em indicadores. 
# Efetuar soma para determinar o número de conselhos de cada municipio
  Numero_conselhos <- Munic_2014_Conselhos %>% 
    mutate_at(vars(2:15), funs(ifelse(.=="Sim",1,0))) %>%
    mutate(Num_conselhos = rowSums(select(., -A1)))

# Visão geral
glimpse(Numero_conselhos)
## Observations: 5,570
## Variables: 16
## $ A1            <dbl> 110001, 110002, 110003, 110004, 110005, 110006, 11000...
## $ A545          <dbl> 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,...
## $ A553          <dbl> 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,...
## $ A587          <dbl> 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0,...
## $ A623          <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
## $ A633          <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,...
## $ A641          <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
## $ A649          <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,...
## $ A657          <dbl> 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0,...
## $ A665          <dbl> 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,...
## $ A673          <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
## $ A681          <dbl> 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
## $ A715          <dbl> 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,...
## $ A732          <dbl> 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0,...
## $ A891          <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
## $ Num_conselhos <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6, 6, 5, 9, ...
# Verificar aplicação (se todas as variaveis contem apenas os números 0 e 1)
apply(Numero_conselhos[2:15], 2, unique)
##      A545 A553 A587 A623 A633 A641 A649 A657 A665 A673 A681 A715 A732 A891
## [1,]    1    0    0    1    0    1    0    1    0    0    0    1    1    1
## [2,]    0    1    1    0    1    0    1    0    1    1    1    0    0    0
# Verificar valores
summary(Numero_conselhos$Num_conselhos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   5.000   6.000   6.163   7.000  14.000
# Tabular valores para verificação
data.frame(table(Numero_conselhos$Num_conselhos))
##    Var1 Freq
## 1     0    1
## 2     1    1
## 3     2    6
## 4     3  180
## 5     4  664
## 6     5 1377
## 7     6 1380
## 8     7  850
## 9     8  529
## 10    9  283
## 11   10  136
## 12   11  106
## 13   12   44
## 14   13   10
## 15   14    3

Distribuição do número de conselhos

Visualização

hist_1 <- ggplot(Numero_conselhos, aes(Num_conselhos)) +
  geom_histogram(binwidth = 1, fill = "white", color = "black") +
  ggtitle("Histogram 1", subtitle = "Number of councils per municipality")+
  xlab("Number of councils") + ylab("Number of municipalities")+
  scale_y_continuous(limits = c(0,1550), breaks = seq(0,1500, 250))+
  #scale_x_continuous(limits = c(0, 18), breaks = seq(0, 20, 5))+
  theme_classic() +
  theme_hist

hist_1

Tabela do número de conselhos

Visualização

table_Num_Conselhos <- Numero_conselhos %>%
  select(-A1) %>% 
  summarise_all(sum) %>% 
  gather() %>% 
  arrange(desc(value)) %>% 
  left_join(Conselhos_codigo_nomes, by = c("key" = "cod")) %>% 
  select(nomes, key, N_conselhos = value)

table_Num_Conselhos
## # A tibble: 15 x 3
##    nomes                     key           N_conselhos
##    <chr>                     <chr>               <dbl>
##  1 <NA>                      Num_conselhos       34329
##  2 Assistência Social        A891                 5562
##  3 Saúde                     A623                 5556
##  4 Direitos da Criança e ... A641                 5481
##  5 Educação                  A587                 4874
##  6 Meio Ambiente             A545                 3785
##  7 Direitos do Idoso ou s... A657                 3450
##  8 Segurança Alimentar       A732                 1629
##  9 Direitos da Pessoa com... A665                 1093
## 10 Direitos da Mulher        A553                  976
## 11 Segurança Pública         A715                  691
## 12 Direitos da Juventude ... A681                  608
## 13 Direitos Humanos ou si... A633                  323
## 14 Igualdade Racial ou si... A649                  280
## 15 Direitos de Lésbicas, ... A673                   21
#write_excel_csv2(table_Num_Cons, "Num. Conselhos.csv")

Juntar dados com auxiliares

Visualização

# IDH
idh <- idh %>% 
  filter(ANO == "2010") %>% 
    select(Codmun6, IDHM) %>% 
    mutate(Codmun6 = as.numeric(Codmun6))

# #seleção das variaveis auxiliares 
# Junção da suas 
# Junção do idh
Conselhos_Munic <- Munics_IPs %>% 
    select(A1:B6) %>% 
    left_join(suas, by = c("A1" = "IBGE")) %>% 
    left_join(idh, by = c("A1" = "Codmun6"))

#Junção das bases
Conselhos_Munic <- Conselhos_Munic %>% 
  left_join(select(Numero_conselhos, A1, Num_conselhos))

glimpse(Conselhos_Munic)
## Observations: 5,570
## Variables: 12
## $ A1            <dbl> 110001, 110002, 110003, 110004, 110005, 110006, 11000...
## $ A1a           <dbl> 1100015, 1100023, 1100031, 1100049, 1100056, 1100064,...
## $ B1            <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIXI", "CACOA...
## $ B2            <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1...
## $ B3            <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO",...
## $ B4            <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 - Norte", "...
## $ B5            <chr> "4 - 20001 até 50000", "6 - 100001 até 500000", "2 - ...
## $ B6            <dbl> 25578, 104401, 6355, 87226, 17986, 18817, 8842, 16651...
## $ Porte_pop2010 <chr> "Pequeno II", "Médio", "Pequeno I", "Médio", "Pequeno...
## $ Pop_Total2010 <dbl> 24392, 90353, 6313, 78574, 17029, 18591, 8783, 13678,...
## $ IDHM          <dbl> 0.641, 0.702, 0.650, 0.718, 0.692, 0.685, 0.613, 0.61...
## $ Num_conselhos <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6, 6, 5, 9, ...

02. Paridade

Calcular a existência de paridade nos conselhos

Verificar os rótulos existentes

#####################################################################
########### 2. Existencia de paridade nesse colegiados ##############
#####################################################################

## Criar índice para selecionar unicamente a pergunta "O conselho e paritario?"
  index_pari <- str_which(Legenda_Munic_2014$V4,"paritário") ##Coluna V4
  
  ## usar a coluna V17 que possui os codigos da base de dados
  Paridade_lista <- slice(Legenda_Munic_2014,index_pari) 
  
  #identificar os codigos de pergunta
  Paridade_codigo <- Paridade_lista %>% 
    select(V17) %>% 
    filter(!V17 %in% c("A609", "A617", "A726")) %>% 
    mutate(cod_nomes = Conselhos_codigo_nomes$cod)

  ## Sel. apenas as colunas correspondentes a "O Conselho e paritario?"
  Munic_2014_Paridade <- select(Munic_2014, A1, Paridade_codigo$V17)

  # Verificar rótulos
  #sapply(Munic_2014_Paridade[2:18], FUN = unique) # Há um erro de digitação Naão sabe 
  
  Munic_2014_Paridade$A547[1] <- "Não sabe informar"

  ### Excluir conselhos da alimentacao escolar, transporte escolar e defesa civil
  #Munic_2014_Paridade <- select(Munic_2014_Paridade, -c(A609, A617, A726))

Calcular paridade

  • Plotar:

    Visão geral

    Verificação da aplicação

    Sumário da distribuição do número de conselhos

    Tabela simples da distribuição do número de conselhos

##Transformar dados em indicadores.
# Efetuamos a soma para determinar o numero de conselhos paritarios de cada municipio
Paridade_pond <- Munic_2014_Paridade %>% 
  mutate_at(vars(2:15), funs(paridade(.))) %>%  
  mutate(Paridade = rowSums(select(., -A1))) 

### Juntar estes valores de paridade com a suas repectivos municipios
# Utilizar a tabela anterior 'Conselhos _Munic' que ja contem o numero de conselhos (deve primerio correr o indicador 1)
Paridade_Munic <- Conselhos_Munic %>%
  left_join(select(Paridade_pond, A1, Paridade))

Paridade_Munic <- Paridade_Munic %>% 
  mutate(A1 = as.character(A1))

#Paridade_Munic <- Paridade_Munic %>% 
 # mutate(A1 = as.character(A1))

# Visão geral
glimpse(Paridade_Munic)
## Observations: 5,570
## Variables: 13
## $ A1            <chr> "110001", "110002", "110003", "110004", "110005", "11...
## $ A1a           <dbl> 1100015, 1100023, 1100031, 1100049, 1100056, 1100064,...
## $ B1            <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIXI", "CACOA...
## $ B2            <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1...
## $ B3            <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO",...
## $ B4            <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 - Norte", "...
## $ B5            <chr> "4 - 20001 até 50000", "6 - 100001 até 500000", "2 - ...
## $ B6            <dbl> 25578, 104401, 6355, 87226, 17986, 18817, 8842, 16651...
## $ Porte_pop2010 <chr> "Pequeno II", "Médio", "Pequeno I", "Médio", "Pequeno...
## $ Pop_Total2010 <dbl> 24392, 90353, 6313, 78574, 17029, 18591, 8783, 13678,...
## $ IDHM          <dbl> 0.641, 0.702, 0.650, 0.718, 0.692, 0.685, 0.613, 0.61...
## $ Num_conselhos <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6, 6, 5, 9, ...
## $ Paridade      <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, 5, 3, 8, 4...
# Verificação da aplicação
apply(Paridade_pond[2:16], 2, FUN = unique)
## $A547
## [1] 0 1
## 
## $A555
## [1] 0 1
## 
## $A589
## [1] 0 1
## 
## $A625
## [1] 1 0
## 
## $A635
## [1] 0 1
## 
## $A643
## [1] 1 0
## 
## $A651
## [1] 0 1
## 
## $A659
## [1] 1 0
## 
## $A667
## [1] 0 1
## 
## $A675
## [1] 0 1
## 
## $A683
## [1] 0 1
## 
## $A717
## [1] 0 1
## 
## $A734
## [1] 1 0
## 
## $A893
## [1] 1 0
## 
## $Paridade
##  [1]  5 11  9  6  3  7  8  4  2 10  0 12 14  1 13
# Sumário
summary(Paridade_Munic$Paridade)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   5.000   6.000   5.834   7.000  14.000
# Tabela de frequencia
data.frame(table(Paridade_Munic$Paridade))
##    Var1 Freq
## 1     0    1
## 2     1    2
## 3     2   30
## 4     3  276
## 5     4  833
## 6     5 1479
## 7     6 1316
## 8     7  774
## 9     8  462
## 10    9  214
## 11   10  106
## 12   11   50
## 13   12   23
## 14   13    2
## 15   14    2

Distribuição da paridade dos conselhos

Visualização

# Histograma
hist_2 <- ggplot(Paridade_Munic, aes(Paridade)) +
  geom_histogram(binwidth = 1, fill = "white", color = "black") +
  ggtitle("Histograma 2", subtitle = "Num. Cons. paritários, qtdd por Município")+
  xlab("Núm. de cons. paritários") + ylab("")+
  scale_y_continuous(limits = c(0,1550), breaks = seq(0,1500, 250))+
  #scale_x_continuous(limits = c(0,18), breaks = seq(0, 20, 5))+
  theme_classic()+
  theme_hist

hist_2

Tabela paritários

Visualização

table_Num_pari <- Paridade_pond %>% 
  select(-A1) %>%
  summarise_all(sum)%>% 
  gather() %>% 
  arrange(desc(value)) %>% 
  left_join(Paridade_codigo, by = c("key" = "V17")) %>%
  left_join(Conselhos_codigo_nomes, by = c("cod_nomes" = "cod")) %>% 
  select(nomes, key, N_Paritários = value)

table_Num_pari 
## # A tibble: 15 x 3
##    nomes                     key      N_Paritários
##    <chr>                     <chr>           <dbl>
##  1 <NA>                      Paridade        32493
##  2 Assistência Social        A893             5515
##  3 Saúde                     A625             5429
##  4 Direitos da Criança e ... A643             5378
##  5 Educação                  A589             4496
##  6 Meio Ambiente             A547             3503
##  7 Direitos do Idoso ou s... A659             3365
##  8 Segurança Alimentar       A734             1199
##  9 Direitos da Pessoa com... A667             1042
## 10 Direitos da Mulher        A555              890
## 11 Segurança Pública         A717              561
## 12 Direitos da Juventude ... A683              534
## 13 Direitos Humanos ou si... A635              304
## 14 Igualdade Racial ou si... A651              257
## 15 Direitos de Lésbicas, ... A675               20

03. Caráter

3.1 Deliberativos

Visualização dos rótulos

#3.1. Criar indice para selecionar unicamente a pergunta "Deliberativo"
  
  ##Coluna V5 inclui o caráter do conselho
  index_deli <- str_which(Legenda_Munic_2014$V5,"Deliberativo") 

  ## Usar a coluna V17 que possui os códigos da base de dados
  Delib_lista <- slice(Legenda_Munic_2014,index_deli) 

  #identificar códigos de pergunta
  Delib_codigo <- Delib_lista$V17 
  
  # Nomes
  Delib_codigo_nomes <- Delib_lista %>% 
    select(V17) %>% 
    filter(!V17 %in% c("A611", "A619", "A728")) %>% 
    mutate(cod_nomes = Conselhos_codigo_nomes$cod)  
  
  ##Selecionamos apenas as colunas correspondentes a "Deliberativo"
  Munic_2014_Delib <- select(Munic_2014, A1, Delib_codigo_nomes$V17)

  ### Excluir conselhos da alimentacao escolar, transporte escolar e defesa civil
  #Munic_2014_Delib <- select(Munic_2014_Delib) # -c(A611, A619, A728)
  
  sapply(Munic_2014_Delib[2:15], 2, FUN = unique)
## $A549
## [1] "Sim"               "Não aplicável"     "Não"              
## [4] "Recusa"            "Não sabe informar"
## 
## $A557
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## 
## $A591
## [1] "Não aplicável" "Sim"           "Não"           "Não informado"
## [5] "Recusa"       
## 
## $A627
## [1] "Sim"           "Não"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A637
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A645
## [1] "Sim"           "Não"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A653
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A661
## [1] "Sim"           "Não aplicável" "Não"           "Não informado"
## [5] "Recusa"       
## 
## $A669
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A677
## [1] "Não aplicável" "Recusa"        "Sim"           "Não"          
## [5] "Não informado"
## 
## $A685
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A719
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A736
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A897
## [1] "Sim"           "Não"           "Não aplicável" "Recusa"

Calcular número de deliberativos

  • Plotar:

    Visão geral

    Verificação da aplicação

    Sumário da distribuição do número de conselhos

    Tabela simples da distribuição do número de conselhos

##Transfor os dados em indicadores 
#efetuar a soma para determinar o número de conselhos deliberativos
Delib_pond <- Munic_2014_Delib %>% 
  mutate_at(vars(2:15), funs(carater(.)))%>%
  mutate(Deliberativos = rowSums(select(., -A1))) 

# Visão geral
glimpse(Delib_pond)
## Observations: 5,570
## Variables: 16
## $ A1            <dbl> 110001, 110002, 110003, 110004, 110005, 110006, 11000...
## $ A549          <dbl> 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1,...
## $ A557          <dbl> 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,...
## $ A591          <dbl> 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0,...
## $ A627          <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1,...
## $ A637          <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,...
## $ A645          <dbl> 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,...
## $ A653          <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,...
## $ A661          <dbl> 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0,...
## $ A669          <dbl> 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0,...
## $ A677          <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
## $ A685          <dbl> 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
## $ A719          <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,...
## $ A736          <dbl> 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0,...
## $ A897          <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,...
## $ Deliberativos <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, 5, 5, 8, 4...
# Verificação da aplicação
apply(Delib_pond[2:16], 2, unique)
## $A549
## [1] 1 0
## 
## $A557
## [1] 0 1
## 
## $A591
## [1] 0 1
## 
## $A627
## [1] 1 0
## 
## $A637
## [1] 0 1
## 
## $A645
## [1] 1 0
## 
## $A653
## [1] 0 1
## 
## $A661
## [1] 1 0
## 
## $A669
## [1] 0 1
## 
## $A677
## [1] 0 1
## 
## $A685
## [1] 0 1
## 
## $A719
## [1] 0 1
## 
## $A736
## [1] 0 1
## 
## $A897
## [1] 1 0
## 
## $Deliberativos
##  [1]  5 11  9  2  3  6  4  8 10  7  1  0 12 13
# Summary 
summary(Delib_pond$Deliberativos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   4.000   5.000   5.304   6.000  13.000
# Tabela 
data.frame(table(Delib_pond$Deliberativos))
##    Var1 Freq
## 1     0    5
## 2     1   47
## 3     2  160
## 4     3  556
## 5     4 1069
## 6     5 1428
## 7     6 1087
## 8     7  601
## 9     8  348
## 10    9  162
## 11   10   67
## 12   11   32
## 13   12    7
## 14   13    1

Juntar ao dados

Visualizar

##Adicionamos os valores da tabela "Paridade_Munic"
Delib_pond <- Delib_pond %>% 
  mutate(A1 = as.character(A1))

Delib_Munic <- Paridade_Munic %>%
  left_join(select(Delib_pond, A1, Deliberativos))

glimpse(Delib_Munic)
## Observations: 5,570
## Variables: 14
## $ A1            <chr> "110001", "110002", "110003", "110004", "110005", "11...
## $ A1a           <dbl> 1100015, 1100023, 1100031, 1100049, 1100056, 1100064,...
## $ B1            <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIXI", "CACOA...
## $ B2            <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1...
## $ B3            <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO",...
## $ B4            <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 - Norte", "...
## $ B5            <chr> "4 - 20001 até 50000", "6 - 100001 até 500000", "2 - ...
## $ B6            <dbl> 25578, 104401, 6355, 87226, 17986, 18817, 8842, 16651...
## $ Porte_pop2010 <chr> "Pequeno II", "Médio", "Pequeno I", "Médio", "Pequeno...
## $ Pop_Total2010 <dbl> 24392, 90353, 6313, 78574, 17029, 18591, 8783, 13678,...
## $ IDHM          <dbl> 0.641, 0.702, 0.650, 0.718, 0.692, 0.685, 0.613, 0.61...
## $ Num_conselhos <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6, 6, 5, 9, ...
## $ Paridade      <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, 5, 3, 8, 4...
## $ Deliberativos <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, 5, 5, 8, 4...

Distribuição

### Histogram deliberativos
hist_3 <- ggplot(Delib_pond, aes(Deliberativos)) +
  geom_histogram(binwidth = 1, fill= "white", color="black") +
  xlab("Núm. de cons. deliberativos") + ylab("")+
  scale_y_continuous(limits = c(0,1550), breaks = seq(0,1500, 250))+
  scale_x_continuous(limits = c(0,18), breaks = seq(0, 20, 5))+
  ggtitle("Histograma 3", subtitle = "Num. Cons. deliberativos, qtdd por Município")+
  theme_classic()+
  theme_hist

hist_3

Criar tabela deliberativos

table_Num_del <- Delib_pond %>% 
  select(-A1) %>% 
  summarise_all(sum)%>% 
  gather() %>% 
  arrange(desc(value))%>% 
  left_join(Delib_codigo_nomes, by = c("key" = "V17")) %>%
  left_join(Conselhos_codigo_nomes, by = c("cod_nomes" = "cod")) %>% 
  select(nomes, key, N_Deliberativos = value)

table_Num_del
## # A tibble: 15 x 3
##    nomes                     key           N_Deliberativos
##    <chr>                     <chr>                   <dbl>
##  1 <NA>                      Deliberativos           29541
##  2 Assistência Social        A897                     5335
##  3 Saúde                     A627                     5006
##  4 Direitos da Criança e ... A645                     4916
##  5 Educação                  A591                     4101
##  6 Meio Ambiente             A549                     3238
##  7 Direitos do Idoso ou s... A661                     2939
##  8 Segurança Alimentar       A736                      994
##  9 Direitos da Pessoa com... A669                      907
## 10 Direitos da Mulher        A557                      731
## 11 Segurança Pública         A719                      436
## 12 Direitos da Juventude ... A685                      434
## 13 Direitos Humanos ou si... A637                      278
## 14 Igualdade Racial ou si... A653                      211
## 15 Direitos de Lésbicas, ... A677                       15
#write_excel_csv2(table_Num_del, "Num. deliberativos.csv")

3.2 Consultivos

Visualizar rótulos

# Mesmo procedimento anterior
  index_consul <- str_which(Legenda_Munic_2014$V5,"Consultivo") 

  Consul_lista <- slice(Legenda_Munic_2014,index_consul) 

  Consul_codigo <- Consul_lista$V17 
  
  # Nomes conselhos
  Consul_codigo_nomes <- Consul_lista %>% 
    select(V17) %>% 
    filter(!V17 %in% c("A610", "A618", "A727")) %>% 
    mutate(cod_nomes = Conselhos_codigo_nomes$cod)
  
  #
  Munic_2014_Consul <- select(Munic_2014, A1, Consul_codigo_nomes$V17)

  ### Excluir conselhos da alimentacao escolar, transporte escolar e defesa civil
  #Munic_2014_Consul <- select(Munic_2014_Consul, -c(A610, A618, A727))
  
apply(Munic_2014_Consul[2:15], 2, FUN = unique)  
## $A548
## [1] "Sim"               "Não"               "Não aplicável"    
## [4] "Recusa"            "Não sabe informar"
## 
## $A556
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## 
## $A590
## [1] "Não aplicável" "Sim"           "Não"           "Não informado"
## [5] "Recusa"       
## 
## $A626
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A636
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A644
## [1] "Sim"           "Não"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A652
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A660
## [1] "Sim"           "Não"           "Não aplicável" "Não informado"
## [5] "Recusa"       
## 
## $A668
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A676
## [1] "Não aplicável" "Recusa"        "Sim"           "Não"          
## [5] "Não informado"
## 
## $A684
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A718
## [1] "Sim"           "Não aplicável" "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A735
## [1] "Sim"           "Não aplicável" "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A896
## [1] "Sim"           "Não"           "Não aplicável" "Recusa"

Calcular número de consultivo

  • Plotar:

    Visão geral

    Verificação da aplicação

    Sumário da distribuição do número de conselhos

    Tabela simples da distribuição do número de conselhos

## Transformar dados em indicadores 
# efetuamos a soma para determinar o número de conselhos consultivos
Consul_pond <- Munic_2014_Consul%>% 
  mutate_at(vars(2:15),funs(carater(.)))%>%
  mutate(Consultivos = rowSums(select(., -A1)))

# Visão geral
glimpse(Consul_pond)
## Observations: 5,570
## Variables: 16
## $ A1          <dbl> 110001, 110002, 110003, 110004, 110005, 110006, 110007,...
## $ A548        <dbl> 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0...
## $ A556        <dbl> 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0...
## $ A590        <dbl> 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0...
## $ A626        <dbl> 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0...
## $ A636        <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0...
## $ A644        <dbl> 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0...
## $ A652        <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0...
## $ A660        <dbl> 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0...
## $ A668        <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0...
## $ A676        <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ A684        <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ A718        <dbl> 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0...
## $ A735        <dbl> 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0...
## $ A896        <dbl> 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0...
## $ Consultivos <dbl> 6, 10, 0, 4, 5, 2, 1, 5, 3, 7, 3, 4, 4, 4, 5, 3, 7, 3, ...
# Verificar aplicação
apply(Consul_pond[2:16], 2, unique)
## $A548
## [1] 1 0
## 
## $A556
## [1] 0 1
## 
## $A590
## [1] 0 1
## 
## $A626
## [1] 0 1
## 
## $A636
## [1] 0 1
## 
## $A644
## [1] 1 0
## 
## $A652
## [1] 0 1
## 
## $A660
## [1] 1 0
## 
## $A668
## [1] 0 1
## 
## $A676
## [1] 0 1
## 
## $A684
## [1] 0 1
## 
## $A718
## [1] 1 0
## 
## $A735
## [1] 1 0
## 
## $A896
## [1] 1 0
## 
## $Consultivos
##  [1]  6 10  0  4  5  2  1  3  7  8 11  9 14 12 13
# Sumário
summary(Consul_pond$Consultivos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   3.000   4.000   4.282   6.000  14.000
# Tabela
data.frame(table(Consul_pond$Consultivos))
##    Var1 Freq
## 1     0   80
## 2     1  341
## 3     2  661
## 4     3 1039
## 5     4 1109
## 6     5  893
## 7     6  666
## 8     7  379
## 9     8  218
## 10    9  106
## 11   10   51
## 12   11   18
## 13   12    6
## 14   13    1
## 15   14    2

Juntar ao dados

Visualizar

Consul_pond <- Consul_pond %>% 
  mutate(A1 = as.character(A1))

##Adicionamos os valores na tabela "Delib_Munic"
Consul_Munic <- Delib_Munic %>% 
  left_join(select(Consul_pond, A1, Consultivos))

glimpse(Consul_Munic)
## Observations: 5,570
## Variables: 15
## $ A1            <chr> "110001", "110002", "110003", "110004", "110005", "11...
## $ A1a           <dbl> 1100015, 1100023, 1100031, 1100049, 1100056, 1100064,...
## $ B1            <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIXI", "CACOA...
## $ B2            <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1...
## $ B3            <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO",...
## $ B4            <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 - Norte", "...
## $ B5            <chr> "4 - 20001 até 50000", "6 - 100001 até 500000", "2 - ...
## $ B6            <dbl> 25578, 104401, 6355, 87226, 17986, 18817, 8842, 16651...
## $ Porte_pop2010 <chr> "Pequeno II", "Médio", "Pequeno I", "Médio", "Pequeno...
## $ Pop_Total2010 <dbl> 24392, 90353, 6313, 78574, 17029, 18591, 8783, 13678,...
## $ IDHM          <dbl> 0.641, 0.702, 0.650, 0.718, 0.692, 0.685, 0.613, 0.61...
## $ Num_conselhos <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6, 6, 5, 9, ...
## $ Paridade      <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, 5, 3, 8, 4...
## $ Deliberativos <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, 5, 5, 8, 4...
## $ Consultivos   <dbl> 6, 10, 0, 4, 5, 2, 1, 5, 3, 7, 3, 4, 4, 4, 5, 3, 7, 3...

Distribuição

### Histogram Consultivos
hist_4 <- ggplot(Consul_pond, aes(Consultivos)) +
  geom_histogram(binwidth = 1, fill= "white", color="black") +
  ggtitle("Histograma 4", subtitle = "Nº Conselhos consultivos, qtdd por Município")+
  xlab("Núm. de cons. consultivos") + ylab("Número de Municípios")+
  scale_y_continuous(limits = c(0,1550), breaks = seq(0,1500, 250))+
  #scale_x_continuous(limits = c(0,18), breaks = seq(0, 20, 5)) +
  theme_classic()+
  theme_hist

hist_4

Criar tabela consultivos

## table
table_Num_Consultivos <- Consul_pond %>% 
  select(-A1) %>% 
  summarise_all(sum)%>% 
  gather() %>% 
  arrange(desc(value))%>% 
  left_join(Consul_codigo_nomes, by = c("key" = "V17")) %>%
  left_join(Conselhos_codigo_nomes, by = c("cod_nomes" = "cod")) %>% 
  select(nomes, key, N_consultivos = value)

table_Num_Consultivos
## # A tibble: 15 x 3
##    nomes                     key         N_consultivos
##    <chr>                     <chr>               <dbl>
##  1 <NA>                      Consultivos         23849
##  2 Educação                  A590                 4166
##  3 Direitos da Criança e ... A644                 3394
##  4 Saúde                     A626                 3302
##  5 Assistência Social        A896                 3261
##  6 Meio Ambiente             A548                 3064
##  7 Direitos do Idoso ou s... A660                 2431
##  8 Segurança Alimentar       A735                 1308
##  9 Direitos da Pessoa com... A668                  772
## 10 Direitos da Mulher        A556                  710
## 11 Direitos da Juventude ... A684                  497
## 12 Segurança Pública         A718                  495
## 13 Direitos Humanos ou si... A636                  222
## 14 Igualdade Racial ou si... A652                  212
## 15 Direitos de Lésbicas, ... A676                   15
#write_excel_csv2(table_Num_Cons, "table_Num_Cons.csv")

3.3 Normativos

Visualização dos rótulos

##3.3. indice para selecionar unicamente a opção "Normativo"

# Mesmo procedimento
index_norma <- str_which(Legenda_Munic_2014$V5,"Normativo") 

Norma_lista <- slice(Legenda_Munic_2014,index_norma) 

Norma_codigo <- Norma_lista$V17 

# Nomes 
Norma_codigo_nomes <- Norma_lista %>% 
    select(V17) %>% 
    filter(!V17 %in% c("A612", "A620", "A729")) %>% 
    mutate(cod_nomes = Conselhos_codigo_nomes$cod)

Munic_2014_Norma <- select(Munic_2014,A1, Norma_codigo_nomes$V17)

### Excluir conselhos da alimentacao escolar, transporte escolar e defesa civil
#Munic_2014_Norma <- select(Munic_2014_Norma, -c(A612, A620, A729))

sapply(Munic_2014_Norma[2:15], 2, FUN = unique)  
## $A550
## [1] "Não"               "Não aplicável"     "Sim"              
## [4] "Recusa"            "Não sabe informar"
## 
## $A558
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## 
## $A592
## [1] "Não aplicável" "Sim"           "Não"           "Não informado"
## [5] "Recusa"       
## 
## $A628
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A638
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A646
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A654
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A662
## [1] "Não"           "Sim"           "Não aplicável" "Não informado"
## [5] "Recusa"       
## 
## $A670
## [1] "Não aplicável" "Não"           "Sim"           "Recusa"       
## [5] "Não informado"
## 
## $A678
## [1] "Não aplicável" "Recusa"        "Não"           "Sim"          
## [5] "Não informado"
## 
## $A686
## [1] "Não aplicável" "Não"           "Sim"           "Recusa"       
## [5] "Não informado"
## 
## $A720
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A737
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A898
## [1] "Sim"           "Não"           "Não aplicável" "Recusa"

Calcular número de normativos

  • Plotar:

    Visão geral

    Verificação da aplicação

    Sumário da distribuição do número de conselhos

    Tabela simples da distribuição do número de conselhos

##Transformamos os dados em indicadores
Norma_pond <- Munic_2014_Norma %>% 
  mutate_at(vars(2:15), funs(carater(.)))%>%
  mutate(Normativos = rowSums(select(., - A1))) 

# Visão geral 
glimpse(Norma_pond)
## Observations: 5,570
## Variables: 16
## $ A1         <dbl> 110001, 110002, 110003, 110004, 110005, 110006, 110007, ...
## $ A550       <dbl> 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,...
## $ A558       <dbl> 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0,...
## $ A592       <dbl> 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0,...
## $ A628       <dbl> 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0,...
## $ A638       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,...
## $ A646       <dbl> 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0,...
## $ A654       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,...
## $ A662       <dbl> 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0,...
## $ A670       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0,...
## $ A678       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
## $ A686       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
## $ A720       <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,...
## $ A737       <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0,...
## $ A898       <dbl> 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0,...
## $ Normativos <dbl> 1, 8, 0, 3, 6, 2, 1, 5, 1, 5, 1, 6, 1, 5, 5, 3, 7, 4, 0,...
# Verificação da aplicação
apply(Norma_pond[2:16], 2, unique)
## $A550
## [1] 0 1
## 
## $A558
## [1] 0 1
## 
## $A592
## [1] 0 1
## 
## $A628
## [1] 0 1
## 
## $A638
## [1] 0 1
## 
## $A646
## [1] 0 1
## 
## $A654
## [1] 0 1
## 
## $A662
## [1] 0 1
## 
## $A670
## [1] 0 1
## 
## $A678
## [1] 0 1
## 
## $A686
## [1] 0 1
## 
## $A720
## [1] 0 1
## 
## $A737
## [1] 0 1
## 
## $A898
## [1] 1 0
## 
## $Normativos
##  [1]  1  8  0  3  6  2  5  7  4 10  9 11 12
# Summários 
summary(Norma_pond$Normativos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   3.058   4.000  12.000
# Tabela 
data.frame(table(Norma_pond$Normativos))
##    Var1 Freq
## 1     0  320
## 2     1  845
## 3     2 1199
## 4     3 1159
## 5     4  887
## 6     5  607
## 7     6  304
## 8     7  135
## 9     8   80
## 10    9   21
## 11   10   10
## 12   11    2
## 13   12    1

Juntar ao dados

Visualizar

Norma_pond <- Norma_pond %>% 
  mutate(A1 = as.character(A1))

##Adicionamos os valores na tabela "Delib_Munic"
Norma_Munic <- Consul_Munic %>% 
  left_join(select(Norma_pond, A1, Normativos))

glimpse(Norma_Munic)
## Observations: 5,570
## Variables: 16
## $ A1            <chr> "110001", "110002", "110003", "110004", "110005", "11...
## $ A1a           <dbl> 1100015, 1100023, 1100031, 1100049, 1100056, 1100064,...
## $ B1            <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIXI", "CACOA...
## $ B2            <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1...
## $ B3            <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO",...
## $ B4            <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 - Norte", "...
## $ B5            <chr> "4 - 20001 até 50000", "6 - 100001 até 500000", "2 - ...
## $ B6            <dbl> 25578, 104401, 6355, 87226, 17986, 18817, 8842, 16651...
## $ Porte_pop2010 <chr> "Pequeno II", "Médio", "Pequeno I", "Médio", "Pequeno...
## $ Pop_Total2010 <dbl> 24392, 90353, 6313, 78574, 17029, 18591, 8783, 13678,...
## $ IDHM          <dbl> 0.641, 0.702, 0.650, 0.718, 0.692, 0.685, 0.613, 0.61...
## $ Num_conselhos <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6, 6, 5, 9, ...
## $ Paridade      <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, 5, 3, 8, 4...
## $ Deliberativos <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, 5, 5, 8, 4...
## $ Consultivos   <dbl> 6, 10, 0, 4, 5, 2, 1, 5, 3, 7, 3, 4, 4, 4, 5, 3, 7, 3...
## $ Normativos    <dbl> 1, 8, 0, 3, 6, 2, 1, 5, 1, 5, 1, 6, 1, 5, 5, 3, 7, 4,...

Distribuição

### Histogram normativos
hist_5 <- ggplot(Norma_pond, aes(Normativos)) +
  geom_histogram(binwidth = 1, fill= "white", color="black") +
  ggtitle("Histograma 5", subtitle = "Num. cons. normativos, qtdd por Município")+
  xlab("Núm. de cons. normativos") +  ylab("")+
  scale_y_continuous(limits = c(0,1550), breaks = seq(0,1500, 250))+
  scale_x_continuous(limits = c(0,18), breaks = seq(0, 20, 5)) +
  theme_classic()+
  theme_hist

hist_5

Criar tabela Normativos

# Table
table_Num_Norma <- Norma_pond %>% 
  select(-A1) %>% 
  summarise_all(sum)%>% 
  gather() %>% 
  arrange(desc(value))%>% 
  left_join(Norma_codigo_nomes, by = c("key" = "V17")) %>%
  left_join(Conselhos_codigo_nomes, by = c("cod_nomes" = "cod")) %>% 
  select(nomes, key, N_Normativos = value)

table_Num_Norma
## # A tibble: 15 x 3
##    nomes                     key        N_Normativos
##    <chr>                     <chr>             <dbl>
##  1 <NA>                      Normativos        17035
##  2 Educação                  A592               3270
##  3 Assistência Social        A898               3055
##  4 Direitos da Criança e ... A646               2805
##  5 Saúde                     A628               2586
##  6 Meio Ambiente             A550               1612
##  7 Direitos do Idoso ou s... A662               1598
##  8 Segurança Alimentar       A737                522
##  9 Direitos da Pessoa com... A670                471
## 10 Direitos da Mulher        A558                406
## 11 Direitos da Juventude ... A686                229
## 12 Segurança Pública         A720                195
## 13 Direitos Humanos ou si... A638                162
## 14 Igualdade Racial ou si... A654                115
## 15 Direitos de Lésbicas, ... A678                  9
# write_excel_csv2(table_Num_Norma, "table_Num_Norma.csv")

3.4 Fiscalizadores

Visualização dos rótulos

##3.4. indice para selecionar unicamente a opção "Fiscalizador"

# Mesmo procedimento
  index_fisca <- str_which(Legenda_Munic_2014$V5,"Fiscalizador") 

  Fisca_lista <- slice(Legenda_Munic_2014,index_fisca) 

  Fisca_codigo <- Fisca_lista$V17 

  # Nomes 
  Fisca_codigo_nomes <- Fisca_lista %>% 
    select(V17) %>% 
    filter(!V17 %in% c("A613", "A621", "A730")) %>% 
    mutate(cod_nomes = Conselhos_codigo_nomes$cod)
  
  
  #
  Munic_2014_Fisca <- select(Munic_2014, A1, Fisca_codigo_nomes$V17)

  ### Excluir conselhos da alimentacao escolar, transporte escolar e defesa civil
  #Munic_2014_Fisca <- select(Munic_2014_Fisca, -c(A613, A621, A730))
  
sapply(Munic_2014_Fisca[2:15], 2, FUN = unique)
## $A551
## [1] "Sim"               "Não"               "Não aplicável"    
## [4] "Recusa"            "Não sabe informar"
## 
## $A559
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## 
## $A593
## [1] "Não aplicável" "Não"           "Sim"           "Não informado"
## [5] "Recusa"       
## 
## $A629
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A639
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A647
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A655
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A663
## [1] "Não"           "Sim"           "Não aplicável" "Não informado"
## [5] "Recusa"       
## 
## $A671
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A679
## [1] "Não aplicável" "Recusa"        "Sim"           "Não"          
## [5] "Não informado"
## 
## $A687
## [1] "Não aplicável" "Sim"           "Não"           "Recusa"       
## [5] "Não informado"
## 
## $A721
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A738
## [1] "Não"           "Sim"           "Não aplicável" "Recusa"       
## [5] "Não informado"
## 
## $A899
## [1] "Sim"           "Não"           "Não aplicável" "Recusa"

Calcular número de Fiscalizadores

  • Plotar:

    Visão geral

    Verificação da aplicação

    Sumário da distribuição do número de conselhos

    Tabela simples da distribuição do número de conselhos

##Transformamos os dados em indicadores 
# Efetuar a soma para determinar o número de conselhos fiscalizadores
Fisca_pond <- Munic_2014_Fisca %>% 
  mutate_at(vars(2:15),funs(carater(.)))%>%
  mutate(Fiscalizadores = rowSums(select(., - A1))) 

# Visão geral
glimpse(Fisca_pond)
## Observations: 5,570
## Variables: 16
## $ A1             <dbl> 110001, 110002, 110003, 110004, 110005, 110006, 1100...
## $ A551           <dbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1...
## $ A559           <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0...
## $ A593           <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0...
## $ A629           <dbl> 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1...
## $ A639           <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0...
## $ A647           <dbl> 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1...
## $ A655           <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0...
## $ A663           <dbl> 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0...
## $ A671           <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0...
## $ A679           <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ A687           <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ A721           <dbl> 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0...
## $ A738           <dbl> 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0...
## $ A899           <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1...
## $ Fiscalizadores <dbl> 2, 9, 4, 3, 4, 3, 2, 5, 3, 6, 4, 4, 2, 6, 5, 4, 8, 4...
# Verificação da aplicação
apply(Fisca_pond[2:16], 2, unique)
## $A551
## [1] 1 0
## 
## $A559
## [1] 0 1
## 
## $A593
## [1] 0 1
## 
## $A629
## [1] 0 1
## 
## $A639
## [1] 0 1
## 
## $A647
## [1] 0 1
## 
## $A655
## [1] 0 1
## 
## $A663
## [1] 0 1
## 
## $A671
## [1] 0 1
## 
## $A679
## [1] 0 1
## 
## $A687
## [1] 0 1
## 
## $A721
## [1] 0 1
## 
## $A738
## [1] 0 1
## 
## $A899
## [1] 1 0
## 
## $Fiscalizadores
##  [1]  2  9  4  3  5  6  8  1  7 10  0 12 11
# Sumário
summary(Fisca_pond$Fiscalizadores)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0     3.0     4.0     4.4     5.0    12.0
# Tabela

data.frame(table(Fisca_pond$Fiscalizadores))
##    Var1 Freq
## 1     0   25
## 2     1  196
## 3     2  519
## 4     3  984
## 5     4 1317
## 6     5 1206
## 7     6  683
## 8     7  352
## 9     8  186
## 10    9   63
## 11   10   26
## 12   11    9
## 13   12    4

Juntar ao dados

Visualizar

Fisca_pond <- Fisca_pond %>% 
  mutate(A1 = as.character(A1))

##Adicionar os valores à tabela "Delib_Munic"
Fisca_Munic <- Norma_Munic %>% 
  left_join(select(Fisca_pond,A1, Fiscalizadores))

glimpse(Fisca_Munic) 
## Observations: 5,570
## Variables: 17
## $ A1             <chr> "110001", "110002", "110003", "110004", "110005", "1...
## $ A1a            <dbl> 1100015, 1100023, 1100031, 1100049, 1100056, 1100064...
## $ B1             <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIXI", "CACO...
## $ B2             <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, ...
## $ B3             <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO"...
## $ B4             <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 - Norte", ...
## $ B5             <chr> "4 - 20001 até 50000", "6 - 100001 até 500000", "2 -...
## $ B6             <dbl> 25578, 104401, 6355, 87226, 17986, 18817, 8842, 1665...
## $ Porte_pop2010  <chr> "Pequeno II", "Médio", "Pequeno I", "Médio", "Pequen...
## $ Pop_Total2010  <dbl> 24392, 90353, 6313, 78574, 17029, 18591, 8783, 13678...
## $ IDHM           <dbl> 0.641, 0.702, 0.650, 0.718, 0.692, 0.685, 0.613, 0.6...
## $ Num_conselhos  <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6, 6, 5, 9,...
## $ Paridade       <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, 5, 3, 8, ...
## $ Deliberativos  <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, 5, 5, 8, ...
## $ Consultivos    <dbl> 6, 10, 0, 4, 5, 2, 1, 5, 3, 7, 3, 4, 4, 4, 5, 3, 7, ...
## $ Normativos     <dbl> 1, 8, 0, 3, 6, 2, 1, 5, 1, 5, 1, 6, 1, 5, 5, 3, 7, 4...
## $ Fiscalizadores <dbl> 2, 9, 4, 3, 4, 3, 2, 5, 3, 6, 4, 4, 2, 6, 5, 4, 8, 4...

Distribuição

### Histogram
hist_6 <- ggplot(Fisca_Munic, aes(Fiscalizadores)) +
  geom_histogram(binwidth = 1, fill = "white", color="black") +
  scale_y_continuous(limits = c(0,1550), breaks = seq(0,1500, 250))+
  scale_x_continuous(limits = c(0,18), breaks = seq(0, 20, 5)) +
  xlab("Núm. de cons. fiscalizadores") +  ylab("")+
  ggtitle("Histograma 6", subtitle = "Num. Cons. fiscalizadores, qtdd por Município")+
  theme_classic()+
  theme_hist

hist_6

Criar tabela Fiscalizadores

table_Num_Fisc <- Fisca_pond %>% 
  select(-A1) %>% 
  summarise_all(sum)%>% 
  gather() %>% 
  arrange(desc(value))%>% 
  left_join(Fisca_codigo_nomes, by = c("key" = "V17")) %>%
  left_join(Conselhos_codigo_nomes, by = c("cod_nomes" = "cod")) %>% 
  select(nomes, key, N_Fiscalizadores = value)

table_Num_Fisc
## # A tibble: 15 x 3
##    nomes                     key            N_Fiscalizadores
##    <chr>                     <chr>                     <dbl>
##  1 <NA>                      Fiscalizadores            24508
##  2 Assistência Social        A899                       4742
##  3 Saúde                     A629                       4325
##  4 Direitos da Criança e ... A647                       4099
##  5 Educação                  A593                       3816
##  6 Direitos do Idoso ou s... A663                       2366
##  7 Meio Ambiente             A551                       1829
##  8 Segurança Alimentar       A738                        853
##  9 Direitos da Pessoa com... A671                        725
## 10 Direitos da Mulher        A559                        619
## 11 Direitos da Juventude ... A687                        371
## 12 Segurança Pública         A721                        358
## 13 Direitos Humanos ou si... A639                        230
## 14 Igualdade Racial ou si... A655                        161
## 15 Direitos de Lésbicas, ... A679                         14
#write_excel_csv2(table_Num_Fisc, "table_Num_Fisc.csv"

04. Número de reuniões

Visualizar distribuição

## indice para selecionar unicamente a pergunta "número de rueniões?"
index_reu <- str_which(Legenda_Munic_2014$V4,"reuni") ##Coluna V4

Reuni_lista <- Legenda_Munic_2014 %>% 
  slice(index_reu) %>% 
  slice(-4)## tirar fila 4. Conselho do Fundeb; porque é um "conselho de controle...", mas que não tem as outras caracteristicas para avalair, Ou seja, não pode ser avalaido da mesma forma que os outros conselhos, portanto tiro fora da lista

Reuni_codigo <- Reuni_lista$V17 #extraimos os códigos de cada pergunta

#
Reuni_codigo_nomes <- Reuni_lista %>% 
    select(V17) %>% 
    filter(!V17 %in% c("A614", "A622", "A731")) %>% 
    mutate(cod_nomes = Conselhos_codigo_nomes$cod)

##Selecionamos apenas as colunas correspondentes a "número de reuniões"
Munic_2014_Reuni <- select(Munic_2014,A1, Reuni_codigo_nomes$V17)

### Excluir conselhos da alimentacao escolar, transporte escolar e defesa civil
#Munic_2014_Reuni <- select(Munic_2014_Reuni, -c(A614, A622, A731))

glimpse(Munic_2014_Reuni[2:15])
## Observations: 5,570
## Variables: 14
## $ A552 <chr> "8", "9", "6", "Não aplicável", "8", "Não aplicável", "Não apl...
## $ A560 <chr> "Não aplicável", "2", "Não aplicável", "8", "6", "Não aplicáve...
## $ A594 <chr> "Não aplicável", "24", "Não aplicável", "21", "Não aplicável",...
## $ A630 <chr> "14", "16", "12", "12", "12", "12", "13", "14", "12", "10", "1...
## $ A640 <chr> "Não aplicável", "Não aplicável", "Não aplicável", "Não aplicá...
## $ A648 <chr> "2", "12", "4", "15", "4", "6", "8", "12", "13", "12", "12", "...
## $ A656 <chr> "Não aplicável", "Não aplicável", "Não aplicável", "Não aplicá...
## $ A664 <chr> "1", "5", "0", "12", "3", "Não aplicável", "Não aplicável", "1...
## $ A672 <chr> "Não aplicável", "0", "Não aplicável", "10", "Não aplicável", ...
## $ A680 <chr> "Não aplicável", "Não aplicável", "Não aplicável", "Não aplicá...
## $ A688 <chr> "Não aplicável", "0", "Não aplicável", "10", "Não aplicável", ...
## $ A722 <chr> "0", "7", "Não aplicável", "2", "Não aplicável", "Não aplicáve...
## $ A739 <chr> "0", "12", "Não aplicável", "0", "Não aplicável", "Não aplicáv...
## $ A895 <chr> "12", "18", "8", "18", "9", "7", "16", "12", "9", "8", "19", "...

# Solução simples # Introdução de NAs
Munic_2014_Reuni <- Munic_2014_Reuni %>% 
  mutate_if(is.factor, as.character) %>%  
  mutate_if(is.character, as.numeric)

glimpse(Munic_2014_Reuni)
## Observations: 5,570
## Variables: 15
## $ A1   <dbl> 110001, 110002, 110003, 110004, 110005, 110006, 110007, 110008...
## $ A552 <dbl> 8, 9, 6, NA, 8, NA, NA, NA, 18, 0, 0, NA, NA, 12, 0, NA, NA, 1...
## $ A560 <dbl> NA, 2, NA, 8, 6, NA, NA, NA, NA, 12, NA, NA, NA, NA, NA, NA, 1...
## $ A594 <dbl> NA, 24, NA, 21, NA, NA, NA, 33, NA, 18, NA, 66, NA, NA, 10, 48...
## $ A630 <dbl> 14, 16, 12, 12, 12, 12, 13, 14, 12, 10, 12, 12, 12, 8, 12, 14,...
## $ A640 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 12, NA, NA, NA, NA...
## $ A648 <dbl> 2, 12, 4, 15, 4, 6, 8, 12, 13, 12, 12, 12, 12, 12, 12, 6, 12, ...
## $ A656 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ A664 <dbl> 1, 5, 0, 12, 3, NA, NA, 10, 0, 5, 8, 1, NA, 6, 12, NA, 12, NA,...
## $ A672 <dbl> NA, 0, NA, 10, NA, NA, NA, NA, NA, 10, NA, 12, NA, NA, NA, NA,...
## $ A680 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA...
## $ A688 <dbl> NA, 0, NA, 10, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,...
## $ A722 <dbl> 0, 7, NA, 2, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA...
## $ A739 <dbl> 0, 12, NA, 0, NA, NA, NA, NA, 0, NA, 5, 0, 3, 0, NA, NA, 6, NA...
## $ A895 <dbl> 12, 18, 8, 18, 9, 7, 16, 12, 9, 8, 19, 6, 6, 2, 17, 3, 15, 12,...
descr::descr(Munic_2014_Reuni[2:15])
##       A552             A560             A594              A630      
##  Min.   : 0.000   Min.   : 0.000   Min.   :  0.000   Min.   : 0.00  
##  1st Qu.: 1.000   1st Qu.: 0.000   1st Qu.:  3.000   1st Qu.: 9.00  
##  Median : 3.000   Median : 4.000   Median :  6.000   Median :12.00  
##  Mean   : 4.455   Mean   : 5.304   Mean   :  7.804   Mean   :11.27  
##  3rd Qu.: 6.000   3rd Qu.:10.000   3rd Qu.: 12.000   3rd Qu.:12.00  
##  Max.   :60.000   Max.   :60.000   Max.   :120.000   Max.   :96.00  
##  NA's   :1832     NA's   :4619     NA's   :712       NA's   :32     
##       A640             A648              A656             A664        
##  Min.   : 0.000   Min.   :  0.000   Min.   : 0.000   Min.   :  0.000  
##  1st Qu.: 3.000   1st Qu.:  5.000   1st Qu.: 1.000   1st Qu.:  2.000  
##  Median : 8.000   Median :  8.000   Median : 6.000   Median :  5.000  
##  Mean   : 7.763   Mean   :  8.823   Mean   : 6.487   Mean   :  6.038  
##  3rd Qu.:12.000   3rd Qu.: 12.000   3rd Qu.:12.000   3rd Qu.: 11.000  
##  Max.   :34.000   Max.   :288.000   Max.   :24.000   Max.   :112.000  
##  NA's   :5253     NA's   :157       NA's   :5297     NA's   :2175     
##       A672             A680             A688             A722       
##  Min.   : 0.000   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.: 1.000   1st Qu.: 1.000   1st Qu.: 0.000   1st Qu.: 0.000  
##  Median : 6.000   Median : 2.000   Median : 4.000   Median : 4.000  
##  Mean   : 6.302   Mean   : 4.905   Mean   : 5.198   Mean   : 4.969  
##  3rd Qu.:12.000   3rd Qu.:10.000   3rd Qu.:10.000   3rd Qu.: 9.000  
##  Max.   :58.000   Max.   :14.000   Max.   :48.000   Max.   :24.000  
##  NA's   :4489     NA's   :5549     NA's   :4974     NA's   :4897    
##       A739             A895       
##  Min.   : 0.000   Min.   :  0.00  
##  1st Qu.: 0.000   1st Qu.:  6.00  
##  Median : 2.000   Median : 11.00  
##  Mean   : 3.843   Mean   : 10.28  
##  3rd Qu.: 6.000   3rd Qu.: 12.00  
##  Max.   :24.000   Max.   :150.00  
##  NA's   :3955     NA's   :36
boxplot(Munic_2014_Reuni[2:15])

Manipular outliers

# Substituir outliers antes de somar o total por mun. 
#Substituir 5% dos maiores outliers 

# identificar outs.
out <- boxplot(Munic_2014_Reuni[2:15])$out

summary(out) 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0     4.0    20.0    22.2    26.0   288.0
length(out) # 1141
## [1] 1141
# idenficar 5% dos outs.
5*length(out)/100 # 1141 casos, ~5% = 57 casos
## [1] 57.05
# Guardar 5% dos outliers - Valores máximos
out_5 <- tail(sort(out), 57)
out_5
##  [1]  50  50  50  50  50  50  50  50  50  51  52  53  54  55  55  55  56  56  58
## [20]  60  60  60  60  60  63  64  66  66  67  69  75  88  88  88  88  88  88  92
## [39]  92  96  96  96  96  96 101 101 104 105 108 108 112 114 120 123 150 193 288
length(out_5)
## [1] 57
summary(out_5) # valor mínimo 50; subtituir todos os valores maiores por este;
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   50.00   55.00   67.00   82.18   96.00  288.00
######## Aplicar exclusão de outliers
Munic_2014_Reuni <- Munic_2014_Reuni %>% 
  mutate_at( vars(2:15),~ifelse(.x %in% out_5, 50, .x))

#boxplot(Munic_2014_Reuni[2:15])
summary(Munic_2014_Reuni) # Valor máximo 50;
##        A1              A552             A560             A594       
##  Min.   :110001   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.:251213   1st Qu.: 1.000   1st Qu.: 0.000   1st Qu.: 3.000  
##  Median :314628   Median : 3.000   Median : 4.000   Median : 6.000  
##  Mean   :325359   Mean   : 4.452   Mean   : 5.293   Mean   : 7.667  
##  3rd Qu.:411919   3rd Qu.: 6.000   3rd Qu.:10.000   3rd Qu.:12.000  
##  Max.   :530010   Max.   :50.000   Max.   :50.000   Max.   :50.000  
##                   NA's   :1832     NA's   :4619     NA's   :712     
##       A630            A640             A648             A656       
##  Min.   : 0.00   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.: 9.00   1st Qu.: 3.000   1st Qu.: 5.000   1st Qu.: 1.000  
##  Median :12.00   Median : 8.000   Median : 8.000   Median : 6.000  
##  Mean   :11.25   Mean   : 7.763   Mean   : 8.716   Mean   : 6.487  
##  3rd Qu.:12.00   3rd Qu.:12.000   3rd Qu.:12.000   3rd Qu.:12.000  
##  Max.   :50.00   Max.   :34.000   Max.   :50.000   Max.   :24.000  
##  NA's   :32      NA's   :5253     NA's   :157      NA's   :5297    
##       A664             A672             A680             A688       
##  Min.   : 0.000   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.: 2.000   1st Qu.: 1.000   1st Qu.: 1.000   1st Qu.: 0.000  
##  Median : 5.000   Median : 6.000   Median : 2.000   Median : 4.000  
##  Mean   : 5.994   Mean   : 6.295   Mean   : 4.905   Mean   : 5.198  
##  3rd Qu.:11.000   3rd Qu.:12.000   3rd Qu.:10.000   3rd Qu.:10.000  
##  Max.   :50.000   Max.   :50.000   Max.   :14.000   Max.   :48.000  
##  NA's   :2175     NA's   :4489     NA's   :5549     NA's   :4974    
##       A722             A739             A895      
##  Min.   : 0.000   Min.   : 0.000   Min.   : 0.00  
##  1st Qu.: 0.000   1st Qu.: 0.000   1st Qu.: 6.00  
##  Median : 4.000   Median : 2.000   Median :11.00  
##  Mean   : 4.969   Mean   : 3.843   Mean   :10.23  
##  3rd Qu.: 9.000   3rd Qu.: 6.000   3rd Qu.:12.00  
##  Max.   :24.000   Max.   :24.000   Max.   :50.00  
##  NA's   :4897     NA's   :3955     NA's   :36

Calcular número de reuniões

## Somar
Reuni_pond <- Munic_2014_Reuni %>% 
  mutate(Num_reunioes = rowSums(select(., -A1), na.rm = T))

### 
descr::descr(Reuni_pond)
##        A1              A552             A560             A594       
##  Min.   :110001   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.:251213   1st Qu.: 1.000   1st Qu.: 0.000   1st Qu.: 3.000  
##  Median :314628   Median : 3.000   Median : 4.000   Median : 6.000  
##  Mean   :325359   Mean   : 4.452   Mean   : 5.293   Mean   : 7.667  
##  3rd Qu.:411919   3rd Qu.: 6.000   3rd Qu.:10.000   3rd Qu.:12.000  
##  Max.   :530010   Max.   :50.000   Max.   :50.000   Max.   :50.000  
##                   NA's   :1832     NA's   :4619     NA's   :712     
##       A630            A640             A648             A656       
##  Min.   : 0.00   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.: 9.00   1st Qu.: 3.000   1st Qu.: 5.000   1st Qu.: 1.000  
##  Median :12.00   Median : 8.000   Median : 8.000   Median : 6.000  
##  Mean   :11.25   Mean   : 7.763   Mean   : 8.716   Mean   : 6.487  
##  3rd Qu.:12.00   3rd Qu.:12.000   3rd Qu.:12.000   3rd Qu.:12.000  
##  Max.   :50.00   Max.   :34.000   Max.   :50.000   Max.   :24.000  
##  NA's   :32      NA's   :5253     NA's   :157      NA's   :5297    
##       A664             A672             A680             A688       
##  Min.   : 0.000   Min.   : 0.000   Min.   : 0.000   Min.   : 0.000  
##  1st Qu.: 2.000   1st Qu.: 1.000   1st Qu.: 1.000   1st Qu.: 0.000  
##  Median : 5.000   Median : 6.000   Median : 2.000   Median : 4.000  
##  Mean   : 5.994   Mean   : 6.295   Mean   : 4.905   Mean   : 5.198  
##  3rd Qu.:11.000   3rd Qu.:12.000   3rd Qu.:10.000   3rd Qu.:10.000  
##  Max.   :50.000   Max.   :50.000   Max.   :14.000   Max.   :48.000  
##  NA's   :2175     NA's   :4489     NA's   :5549     NA's   :4974    
##       A722             A739             A895        Num_reunioes   
##  Min.   : 0.000   Min.   : 0.000   Min.   : 0.00   Min.   :  0.00  
##  1st Qu.: 0.000   1st Qu.: 0.000   1st Qu.: 6.00   1st Qu.: 32.00  
##  Median : 4.000   Median : 2.000   Median :11.00   Median : 42.00  
##  Mean   : 4.969   Mean   : 3.843   Mean   :10.23   Mean   : 48.32  
##  3rd Qu.: 9.000   3rd Qu.: 6.000   3rd Qu.:12.00   3rd Qu.: 57.00  
##  Max.   :24.000   Max.   :24.000   Max.   :50.00   Max.   :263.00  
##  NA's   :4897     NA's   :3955     NA's   :36
descr::freq(as.factor(Reuni_pond$Num_reunioes))

## as.factor(Reuni_pond$Num_reunioes) 
##       Frequência Percentual
## 0              1    0.01795
## 2              1    0.01795
## 3              2    0.03591
## 4              3    0.05386
## 6              2    0.03591
## 7              4    0.07181
## 8              7    0.12567
## 9              4    0.07181
## 10             2    0.03591
## 11            12    0.21544
## 12            12    0.21544
## 13            10    0.17953
## 14            14    0.25135
## 15            23    0.41293
## 16            29    0.52065
## 17            23    0.41293
## 18            35    0.62837
## 19            25    0.44883
## 20            54    0.96948
## 21            60    1.07720
## 22            75    1.34650
## 23            61    1.09515
## 24            75    1.34650
## 25            74    1.32855
## 26           106    1.90305
## 27           104    1.86715
## 28           126    2.26212
## 29           118    2.11849
## 30           140    2.51346
## 31           149    2.67504
## 32           120    2.15440
## 33           130    2.33393
## 34           134    2.40575
## 35           128    2.29803
## 36           184    3.30341
## 37           131    2.35189
## 38           150    2.69300
## 39           117    2.10054
## 40           139    2.49551
## 41           119    2.13645
## 42           142    2.54937
## 43           127    2.28007
## 44           128    2.29803
## 45           108    1.93896
## 46           108    1.93896
## 47            88    1.57989
## 48           109    1.95691
## 49            89    1.59785
## 50            99    1.77738
## 51            95    1.70557
## 52           101    1.81329
## 53            65    1.16697
## 54            79    1.41831
## 55            59    1.05925
## 56            70    1.25673
## 57            53    0.95153
## 58            81    1.45422
## 59            47    0.84381
## 60            49    0.87971
## 61            62    1.11311
## 62            40    0.71813
## 63            43    0.77199
## 64            48    0.86176
## 65            39    0.70018
## 66            37    0.66427
## 67            32    0.57451
## 68            34    0.61041
## 69            33    0.59246
## 70            30    0.53860
## 71            37    0.66427
## 72            31    0.55655
## 73            26    0.46679
## 74            26    0.46679
## 75            28    0.50269
## 76            25    0.44883
## 77            19    0.34111
## 78            25    0.44883
## 79            17    0.30521
## 80            12    0.21544
## 81            12    0.21544
## 82            13    0.23339
## 83            17    0.30521
## 84            18    0.32316
## 85            13    0.23339
## 86            13    0.23339
## 87            10    0.17953
## 88            17    0.30521
## 89            13    0.23339
## 90            15    0.26930
## 91            15    0.26930
## 92            11    0.19749
## 93            17    0.30521
## 94            11    0.19749
## 95            14    0.25135
## 96             7    0.12567
## 97            13    0.23339
## 98             8    0.14363
## 99            12    0.21544
## 100            9    0.16158
## 101            7    0.12567
## 102            8    0.14363
## 103            5    0.08977
## 104           10    0.17953
## 105            8    0.14363
## 106            5    0.08977
## 107            5    0.08977
## 108            9    0.16158
## 109            2    0.03591
## 110           14    0.25135
## 111            7    0.12567
## 112            4    0.07181
## 113            8    0.14363
## 114           12    0.21544
## 115            7    0.12567
## 116            3    0.05386
## 117            4    0.07181
## 118            2    0.03591
## 119            6    0.10772
## 120            7    0.12567
## 121           10    0.17953
## 122            3    0.05386
## 123            2    0.03591
## 124            2    0.03591
## 125            1    0.01795
## 126            4    0.07181
## 127            4    0.07181
## 128            5    0.08977
## 129            2    0.03591
## 130            2    0.03591
## 131            3    0.05386
## 132            2    0.03591
## 133            5    0.08977
## 134            4    0.07181
## 135            2    0.03591
## 136            5    0.08977
## 137            3    0.05386
## 138            5    0.08977
## 139            1    0.01795
## 140            2    0.03591
## 141            1    0.01795
## 142            1    0.01795
## 143            2    0.03591
## 144            3    0.05386
## 145            2    0.03591
## 146            3    0.05386
## 147            2    0.03591
## 148            2    0.03591
## 149            1    0.01795
## 150            2    0.03591
## 151            1    0.01795
## 152            3    0.05386
## 154            1    0.01795
## 155            2    0.03591
## 156            3    0.05386
## 158            2    0.03591
## 160            2    0.03591
## 163            1    0.01795
## 165            3    0.05386
## 166            2    0.03591
## 168            1    0.01795
## 170            2    0.03591
## 171            1    0.01795
## 172            2    0.03591
## 173            1    0.01795
## 175            1    0.01795
## 177            1    0.01795
## 180            1    0.01795
## 183            2    0.03591
## 188            1    0.01795
## 189            1    0.01795
## 191            1    0.01795
## 193            2    0.03591
## 194            1    0.01795
## 196            1    0.01795
## 197            1    0.01795
## 199            1    0.01795
## 201            2    0.03591
## 225            1    0.01795
## 237            1    0.01795
## 245            1    0.01795
## 247            1    0.01795
## 257            1    0.01795
## 263            1    0.01795
## Total       5570  100.00000
summary(Reuni_pond$Num_reunioes)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00   32.00   42.00   48.32   57.00  263.00

Juntar dados

Visualizar

Reuni_pond <- Reuni_pond %>% 
  mutate(A1 = as.character(A1))

##Adicionamos os valores na tabela "Fisca_Munic"
Reuni_Munic <- Fisca_Munic %>%
  left_join(select(Reuni_pond, A1, Num_reunioes))

glimpse(Reuni_Munic)
## Observations: 5,570
## Variables: 18
## $ A1             <chr> "110001", "110002", "110003", "110004", "110005", "1...
## $ A1a            <dbl> 1100015, 1100023, 1100031, 1100049, 1100056, 1100064...
## $ B1             <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIXI", "CACO...
## $ B2             <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, ...
## $ B3             <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO"...
## $ B4             <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 - Norte", ...
## $ B5             <chr> "4 - 20001 até 50000", "6 - 100001 até 500000", "2 -...
## $ B6             <dbl> 25578, 104401, 6355, 87226, 17986, 18817, 8842, 1665...
## $ Porte_pop2010  <chr> "Pequeno II", "Médio", "Pequeno I", "Médio", "Pequen...
## $ Pop_Total2010  <dbl> 24392, 90353, 6313, 78574, 17029, 18591, 8783, 13678...
## $ IDHM           <dbl> 0.641, 0.702, 0.650, 0.718, 0.692, 0.685, 0.613, 0.6...
## $ Num_conselhos  <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6, 6, 5, 9,...
## $ Paridade       <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, 5, 3, 8, ...
## $ Deliberativos  <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, 5, 5, 8, ...
## $ Consultivos    <dbl> 6, 10, 0, 4, 5, 2, 1, 5, 3, 7, 3, 4, 4, 4, 5, 3, 7, ...
## $ Normativos     <dbl> 1, 8, 0, 3, 6, 2, 1, 5, 1, 5, 1, 6, 1, 5, 5, 3, 7, 4...
## $ Fiscalizadores <dbl> 2, 9, 4, 3, 4, 3, 2, 5, 3, 6, 4, 4, 2, 6, 5, 4, 8, 4...
## $ Num_reunioes   <dbl> 37, 105, 30, 108, 42, 25, 37, 81, 52, 75, 56, 105, 3...

Tabela Número de reuniões

table_Num_Reuni <- Reuni_pond %>% 
  select(-A1) %>% 
  summarise_all(sum, na.rm = T)%>% 
  gather() %>% 
  arrange(desc(as.numeric(value)))%>% 
  left_join(Reuni_codigo_nomes, by = c("key" = "V17")) %>%
  left_join(Conselhos_codigo_nomes, by = c("cod_nomes" = "cod")) %>% 
  select(nomes, key, N_reuni = value)

table_Num_Reuni
## # A tibble: 15 x 3
##    nomes                     key          N_reuni
##    <chr>                     <chr>          <dbl>
##  1 <NA>                      Num_reunioes  269154
##  2 Saúde                     A630           62296
##  3 Assistência Social        A895           56620
##  4 Direitos da Criança e ... A648           47179
##  5 Educação                  A594           37248
##  6 Direitos do Idoso ou s... A664           20348
##  7 Meio Ambiente             A552           16641
##  8 Direitos da Pessoa com... A672            6805
##  9 Segurança Alimentar       A739            6206
## 10 Direitos da Mulher        A560            5034
## 11 Segurança Pública         A722            3344
## 12 Direitos da Juventude ... A688            3098
## 13 Direitos Humanos ou si... A640            2461
## 14 Igualdade Racial ou si... A656            1771
## 15 Direitos de Lésbicas, ... A680             103
# write_excel_csv2(table_Num_Reuni, "table_Num_Reuni.csv")

Apenas para visualização.

# Hist_
hist_7 <- ggplot(Reuni_pond, aes(Num_reunioes)) +
  geom_histogram(binwidth = 1) +
  ggtitle("Nº de reuniões, quantidade por Município")+
  theme_classic()

hist_7

# Hist_
Reuni_Munic %>% 
  mutate(reuni_cons = Num_reunioes/Num_conselhos) %>% 
  ggplot()+
  xlab("")+
  geom_boxplot(aes(x=1, y = reuni_cons))+
  theme_classic()+
  theme(axis.text.y = element_blank())+
  coord_flip()

05. Tabela dos indicadicores

tabela_indicadores <- table_Num_Conselhos %>% 
  select(-key) %>% 
  left_join(table_Num_pari) %>% 
  select(-key) %>% 
  left_join(table_Num_del, by = "nomes") %>%
  select(-key) %>% 
  left_join(table_Num_Consultivos ) %>% 
  select(-key) %>% 
  left_join(table_Num_Fisc) %>% 
  select(-key) %>% 
  left_join(table_Num_Norma) %>% 
  select(-key) %>% 
  left_join(table_Num_Reuni) %>% 
  select(-key) %>% 
  arrange(desc(N_conselhos))

tabela_indicadores %>% 
  datatable(extensions = 'FixedColumns',
            rownames = F,
            options = list(autoFill = TRUE,
                           fixedHeader = TRUE,
                           autowidth = TRUE,
                           paging = F,
                           scrollX = TRUE,
                           scrollY = "400px"))
tabela_indicadores
## # A tibble: 15 x 8
##    nomes N_conselhos N_Paritários N_Deliberativos N_consultivos N_Fiscalizadores
##    <chr>       <dbl>        <dbl>           <dbl>         <dbl>            <dbl>
##  1 <NA>        34329        32493           29541         23849            24508
##  2 Assi~        5562         5515            5335          3261             4742
##  3 Saúde        5556         5429            5006          3302             4325
##  4 Dire~        5481         5378            4916          3394             4099
##  5 Educ~        4874         4496            4101          4166             3816
##  6 Meio~        3785         3503            3238          3064             1829
##  7 Dire~        3450         3365            2939          2431             2366
##  8 Segu~        1629         1199             994          1308              853
##  9 Dire~        1093         1042             907           772              725
## 10 Dire~         976          890             731           710              619
## 11 Segu~         691          561             436           495              358
## 12 Dire~         608          534             434           497              371
## 13 Dire~         323          304             278           222              230
## 14 Igua~         280          257             211           212              161
## 15 Dire~          21           20              15            15               14
## # ... with 2 more variables: N_Normativos <dbl>, N_reuni <dbl>

06. Calculo do IPPC

Visualização

Distribuicao_conselhos <- Reuni_Munic

glimpse(Distribuicao_conselhos)
## Observations: 5,570
## Variables: 18
## $ A1             <chr> "110001", "110002", "110003", "110004", "110005", "1...
## $ A1a            <dbl> 1100015, 1100023, 1100031, 1100049, 1100056, 1100064...
## $ B1             <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIXI", "CACO...
## $ B2             <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, ...
## $ B3             <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO", "RO"...
## $ B4             <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 - Norte", ...
## $ B5             <chr> "4 - 20001 até 50000", "6 - 100001 até 500000", "2 -...
## $ B6             <dbl> 25578, 104401, 6355, 87226, 17986, 18817, 8842, 1665...
## $ Porte_pop2010  <chr> "Pequeno II", "Médio", "Pequeno I", "Médio", "Pequen...
## $ Pop_Total2010  <dbl> 24392, 90353, 6313, 78574, 17029, 18591, 8783, 13678...
## $ IDHM           <dbl> 0.641, 0.702, 0.650, 0.718, 0.692, 0.685, 0.613, 0.6...
## $ Num_conselhos  <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6, 6, 5, 9,...
## $ Paridade       <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, 5, 3, 8, ...
## $ Deliberativos  <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, 5, 5, 8, ...
## $ Consultivos    <dbl> 6, 10, 0, 4, 5, 2, 1, 5, 3, 7, 3, 4, 4, 4, 5, 3, 7, ...
## $ Normativos     <dbl> 1, 8, 0, 3, 6, 2, 1, 5, 1, 5, 1, 6, 1, 5, 5, 3, 7, 4...
## $ Fiscalizadores <dbl> 2, 9, 4, 3, 4, 3, 2, 5, 3, 6, 4, 4, 2, 6, 5, 4, 8, 4...
## $ Num_reunioes   <dbl> 37, 105, 30, 108, 42, 25, 37, 81, 52, 75, 56, 105, 3...

Valores de referência

Cria uma variavel ficctícia para o valor IPPC = 1

# Criar valor de referência
Ref <- data.frame(A1 = "Ref",   A1a = "Ref",    B1 = "Ref", B2 = "Ref", B3 = "Ref", B4 = "Ref",     B5 = "Ref", B6 = "Ref", Porte_pop2010 = "Ref", Pop_Total2010 = "Ref", IDHM = "Ref",  Num_conselhos = 14,    Paridade = 14,  Deliberativos= 14,  Consultivos =14,    Normativos = 14,    Fiscalizadores =14, Num_reunioes = 263)

Distribuicao_conselhos <- rbind(Distribuicao_conselhos, Ref)

Pré-calculos do Índice

  • Perfil do conselho. Soma: Número de Conselhos + Número de Conselhos paritários + Número de Conselhos deliberativos + 0,3 * Número de Conselhos consultivos + 0,3 * Número de Conselhos normativos + 0,3 * Número de Conselhos fiscalizadores

  • Índice participativos Número de reuniões/número de conselhos Isto é, a média das reuniões

## potencial participativo: valor ponderado a cada conselho.

# Como indicado no roteiro: 1 para cada conselho, 1 se paritário, 1 se deliberativo, 0.3 o resto.

# "Perfil do Conselho": descreve o a quatdade de conselhos e suas poderações
Potencial <- Distribuicao_conselhos%>%
  mutate(Perfil_Conselho = Num_conselhos+Paridade+Deliberativos+0.33*Consultivos+0.33*Normativos+0.33*Fiscalizadores)

summary(Potencial$Perfil_Conselho)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00   16.97   20.29   21.18   24.63   55.86
# índice participativo: Número de reuniões/Número de Conselhos (média das reuniões)
Potencial <- Potencial %>% 
  mutate(Indice_participativo = Num_reunioes/Num_conselhos)

summary(Potencial$Indice_participativo)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.500   5.800   7.500   7.755   9.375  24.625       1

Calcular IPPC

  • IPPC: Perfil do conselho * Índice participativo
# Potencial participativo = média de reuniões * perfil dos conselhos.
Potencial <- Potencial %>% 
  mutate(Potencial_participativo = Perfil_Conselho*Indice_participativo)

glimpse(Potencial)
## Observations: 5,571
## Variables: 21
## $ A1                      <chr> "110001", "110002", "110003", "110004", "11...
## $ A1a                     <chr> "1100015", "1100023", "1100031", "1100049",...
## $ B1                      <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIX...
## $ B2                      <chr> "11", "11", "11", "11", "11", "11", "11", "...
## $ B3                      <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "...
## $ B4                      <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 -...
## $ B5                      <chr> "4 - 20001 até 50000", "6 - 100001 até 5000...
## $ B6                      <chr> "25578", "104401", "6355", "87226", "17986"...
## $ Porte_pop2010           <chr> "Pequeno II", "Médio", "Pequeno I", "Médio"...
## $ Pop_Total2010           <chr> "24392", "90353", "6313", "78574", "17029",...
## $ IDHM                    <chr> "0.641", "0.702", "0.65", "0.718", "0.692",...
## $ Num_conselhos           <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6,...
## $ Paridade                <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, ...
## $ Deliberativos           <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, ...
## $ Consultivos             <dbl> 6, 10, 0, 4, 5, 2, 1, 5, 3, 7, 3, 4, 4, 4, ...
## $ Normativos              <dbl> 1, 8, 0, 3, 6, 2, 1, 5, 1, 5, 1, 6, 1, 5, 5...
## $ Fiscalizadores          <dbl> 2, 9, 4, 3, 4, 3, 2, 5, 3, 6, 4, 4, 2, 6, 5...
## $ Num_reunioes            <dbl> 37, 105, 30, 108, 42, 25, 37, 81, 52, 75, 5...
## $ Perfil_Conselho         <dbl> 19.97, 41.91, 16.32, 31.30, 21.95, 10.31, 1...
## $ Indice_participativo    <dbl> 5.285714, 9.545455, 6.000000, 10.800000, 7....
## $ Potencial_participativo <dbl> 105.55571, 400.05000, 97.92000, 338.04000, ...

Normalizar índice

Transformar índice para que sua variação seja entre 0, menor valor, e 1, maior. O valor 1 corresponde a variável ficctítica criada acima

# # Aplicar fórmula
# Normalizar 
# (x-min(x))/(max(x)-min(x))

#Checar NAs
sapply(Potencial, function(x)all(any(is.na(x))))
##                      A1                     A1a                      B1 
##                   FALSE                   FALSE                   FALSE 
##                      B2                      B3                      B4 
##                   FALSE                   FALSE                   FALSE 
##                      B5                      B6           Porte_pop2010 
##                   FALSE                   FALSE                   FALSE 
##           Pop_Total2010                    IDHM           Num_conselhos 
##                    TRUE                    TRUE                   FALSE 
##                Paridade           Deliberativos             Consultivos 
##                   FALSE                   FALSE                   FALSE 
##              Normativos          Fiscalizadores            Num_reunioes 
##                   FALSE                   FALSE                   FALSE 
##         Perfil_Conselho    Indice_participativo Potencial_participativo 
##                   FALSE                    TRUE                    TRUE
sum(is.na(Potencial$Indice_participativo)) # Apenas 1 NA.
## [1] 1
## Remover Na's
Potencial <- Potencial %>% 
  mutate(IPP_Norm = round((Potencial$Potencial_participativo - min(Potencial$Potencial_participativo, na.rm = T))/(max(Potencial$Potencial_participativo, na.rm = T)- min(Potencial$Potencial_participativo, na.rm = T)),3))

glimpse(Potencial)
## Observations: 5,571
## Variables: 22
## $ A1                      <chr> "110001", "110002", "110003", "110004", "11...
## $ A1a                     <chr> "1100015", "1100023", "1100031", "1100049",...
## $ B1                      <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIX...
## $ B2                      <chr> "11", "11", "11", "11", "11", "11", "11", "...
## $ B3                      <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "...
## $ B4                      <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 -...
## $ B5                      <chr> "4 - 20001 até 50000", "6 - 100001 até 5000...
## $ B6                      <chr> "25578", "104401", "6355", "87226", "17986"...
## $ Porte_pop2010           <chr> "Pequeno II", "Médio", "Pequeno I", "Médio"...
## $ Pop_Total2010           <chr> "24392", "90353", "6313", "78574", "17029",...
## $ IDHM                    <chr> "0.641", "0.702", "0.65", "0.718", "0.692",...
## $ Num_conselhos           <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6,...
## $ Paridade                <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, ...
## $ Deliberativos           <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, ...
## $ Consultivos             <dbl> 6, 10, 0, 4, 5, 2, 1, 5, 3, 7, 3, 4, 4, 4, ...
## $ Normativos              <dbl> 1, 8, 0, 3, 6, 2, 1, 5, 1, 5, 1, 6, 1, 5, 5...
## $ Fiscalizadores          <dbl> 2, 9, 4, 3, 4, 3, 2, 5, 3, 6, 4, 4, 2, 6, 5...
## $ Num_reunioes            <dbl> 37, 105, 30, 108, 42, 25, 37, 81, 52, 75, 5...
## $ Perfil_Conselho         <dbl> 19.97, 41.91, 16.32, 31.30, 21.95, 10.31, 1...
## $ Indice_participativo    <dbl> 5.285714, 9.545455, 6.000000, 10.800000, 7....
## $ Potencial_participativo <dbl> 105.55571, 400.05000, 97.92000, 338.04000, ...
## $ IPP_Norm                <dbl> 0.095, 0.377, 0.087, 0.318, 0.141, 0.076, 0...
sum(is.na(Potencial$IPP_Norm)) # apenas 1 NA
## [1] 1
summary(Potencial$IPP_Norm)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##  0.0000  0.0980  0.1330  0.1529  0.1810  1.0000       1

Classificar

Potencial <- filter(Potencial, IPP_Norm != 1)

# Classificação IPP-Norm
# summary(Potencial$IPP_Norm)
# p <- ggplot(Potencial, aes(x=1, y=IPP_Norm)) +
#     geom_boxplot()
# 
# ggplot_build(p)$data

p <- ggplot(Potencial, aes(x=1, y=IPP_Norm)) +
  #stat_boxplot(geom = "errorbar", coef=3, width = 0.5)+
  geom_boxplot(coef = 3)

ggplot_build(p)$data
## [[1]]
##   ymin lower middle upper  ymax
## 1    0 0.098  0.133 0.181 0.426
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 outliers
## 1 0.478, 0.692, 0.483, 0.550, 0.489, 0.497, 0.492, 0.453, 0.467, 0.541, 0.604, 0.466, 0.463, 0.481, 0.523, 0.452, 0.471, 0.598, 0.468, 0.647, 0.453, 0.442, 0.486, 0.641, 0.572, 0.503, 0.455, 0.536, 0.575, 0.491, 0.825, 0.465, 0.521, 0.568, 0.674, 0.764, 0.460, 0.449, 0.525, 0.496, 0.717, 0.434, 0.462, 0.571, 0.457, 0.457, 0.476, 0.438, 0.442, 0.433, 0.478, 0.463, 0.464, 0.466, 0.579, 0.457, 0.517, 0.503, 0.452, 0.501, 0.542, 0.685, 0.558, 0.472, 0.542, 0.768, 0.460, 0.607, 0.437, 0.458, 0.447, 0.453, 0.582, 0.716, 0.455, 0.430, 0.441, 0.482, 0.519, 0.455, 0.442, 0.440, 0.546, 0.430, 0.578, 0.551, 0.495, 0.615
##   notchupper notchlower x flipped_aes PANEL group ymin_final ymax_final  xmin
## 1  0.1347573  0.1312427 1       FALSE     1    -1          0      0.825 0.625
##    xmax xid newx new_width weight colour  fill size alpha shape linetype
## 1 1.375   1    1      0.75      1 grey20 white  0.5    NA    19    solid
##
Potencial <- Potencial %>% 
  mutate(IPP_Class = case_when(
    IPP_Norm <= 0.097 ~ "muito baixo",
    IPP_Norm >= 0.098 & IPP_Norm <= 0.132 ~ "baixo",
    IPP_Norm >= 0.133 & IPP_Norm <= 0.180 ~ "médio",
    IPP_Norm >= 0.181 & IPP_Norm <= 0.425 ~ "alto",
    IPP_Norm >= 0.426 ~ "muito alto"))

glimpse(Potencial)
## Observations: 5,569
## Variables: 23
## $ A1                      <chr> "110001", "110002", "110003", "110004", "11...
## $ A1a                     <chr> "1100015", "1100023", "1100031", "1100049",...
## $ B1                      <chr> "ALTA FLORESTA DOESTE", "ARIQUEMES", "CABIX...
## $ B2                      <chr> "11", "11", "11", "11", "11", "11", "11", "...
## $ B3                      <chr> "RO", "RO", "RO", "RO", "RO", "RO", "RO", "...
## $ B4                      <chr> "1 - Norte", "1 - Norte", "1 - Norte", "1 -...
## $ B5                      <chr> "4 - 20001 até 50000", "6 - 100001 até 5000...
## $ B6                      <chr> "25578", "104401", "6355", "87226", "17986"...
## $ Porte_pop2010           <chr> "Pequeno II", "Médio", "Pequeno I", "Médio"...
## $ Pop_Total2010           <chr> "24392", "90353", "6313", "78574", "17029",...
## $ IDHM                    <chr> "0.641", "0.702", "0.65", "0.718", "0.692",...
## $ Num_conselhos           <dbl> 7, 11, 5, 10, 6, 3, 3, 5, 6, 8, 6, 8, 4, 6,...
## $ Paridade                <dbl> 5, 11, 5, 9, 6, 3, 3, 5, 5, 7, 6, 8, 4, 6, ...
## $ Deliberativos           <dbl> 5, 11, 5, 9, 5, 2, 3, 5, 6, 4, 4, 8, 3, 5, ...
## $ Consultivos             <dbl> 6, 10, 0, 4, 5, 2, 1, 5, 3, 7, 3, 4, 4, 4, ...
## $ Normativos              <dbl> 1, 8, 0, 3, 6, 2, 1, 5, 1, 5, 1, 6, 1, 5, 5...
## $ Fiscalizadores          <dbl> 2, 9, 4, 3, 4, 3, 2, 5, 3, 6, 4, 4, 2, 6, 5...
## $ Num_reunioes            <dbl> 37, 105, 30, 108, 42, 25, 37, 81, 52, 75, 5...
## $ Perfil_Conselho         <dbl> 19.97, 41.91, 16.32, 31.30, 21.95, 10.31, 1...
## $ Indice_participativo    <dbl> 5.285714, 9.545455, 6.000000, 10.800000, 7....
## $ Potencial_participativo <dbl> 105.55571, 400.05000, 97.92000, 338.04000, ...
## $ IPP_Norm                <dbl> 0.095, 0.377, 0.087, 0.318, 0.141, 0.076, 0...
## $ IPP_Class               <chr> "muito baixo", "alto", "muito baixo", "alto...
Potencial$IPP_Class <- factor(Potencial$IPP_Class, levels = c("muito alto", "alto",  "médio", "baixo", "muito baixo"))

unique(Potencial$IPP_Class)
## [1] muito baixo alto        médio       baixo       muito alto 
## Levels: muito alto alto médio baixo muito baixo

07. Tabela Final do IPPC

Ordenada pelo IPPC, do maior para o menor

Potencial <- Potencial %>% 
  mutate(B4 = str_remove(B4, "1 - |2 - |3 - |4 - |5 - ")) %>%
  mutate(B4 = as.factor(B4))

Potencial$Porte_pop2010 <- factor(Potencial$Porte_pop2010, levels = c("Metrópole", "Grande", "Médio", "Pequeno II", "Pequeno I"))

Potencial %>% 
  arrange(desc(IPP_Norm)) %>% 
  #select(1:104) %>% 
  datatable(extensions = 'FixedColumns',
            rownames = F,
            options = list(autoFill = TRUE,
                           fixedHeader = TRUE,
                           autowidth = TRUE,
                           paging = F,
                           scrollX = TRUE,
                           scrollY = "400px"))#%>% 
   # DT::formatStyle(fontSize = '75%')

08. Gráficos

Histogramas

grid.arrange(hist_1, hist_2, hist_3, hist_4, 
             hist_5, hist_6, nrow = 2)

IDHM versus IPPC, com regiões

Para mais informações sobre a classificação do IDH-M, consultar o site Atlas-Brsail

Potencial$IDHM <- as.numeric(Potencial$IDHM)

Potencial <- Potencial %>% 
  mutate(IDHM_Class = case_when(
    IDHM <= 0.499 ~ "muito baixo",
    IDHM >= 0.500 & IDHM <= 0.599 ~ "baixo",
    IDHM >= 0.600 & IDHM <= 0.699 ~ "médio",
    IDHM >= 0.700 & IDHM <= 0.799 ~ "alto",
    IDHM >= 0.800 ~ "muito alto"))

Potencial$IDHM_Class <- factor(Potencial$IDHM_Class, levels = c("muito alto", "alto",  "médio", "baixo", "muito baixo"))

ggplot(drop_na(Potencial), 
  aes(x=IDHM, y=IPP_Norm))+
  geom_point(aes(color = B4)) +
  scale_color_paletteer_d(name = "Regiões: ", "ggsci::category10_d3")+
  xlab("IDH-M") + ylab("IPPC") +
  geom_smooth(se=F)+
  theme_classic()+
  guides(colour = guide_legend(override.aes = list(size=5)))+
  theme_hist

IDHM versus IPPC, sem regiões

ggplot(drop_na(Potencial), 
  aes(x=IDHM, y=IPP_Norm))+
  geom_point() +
  #scale_color_paletteer_d(name = "Regiões: ", "ggsci::category10_d3")+
  xlab("IDH-M") + ylab("IPPC") +
  geom_smooth(se=F)+
  theme_classic()+
  #guides(colour = guide_legend(override.aes = list(size=5)))+
  theme_hist

Anos de criação

index_ano <- str_which(Legenda_Munic_2014$V4,"ano de criação")   
  
  ### Usar o índice para selecionar as linhas.
  ano_lista <- slice(Legenda_Munic_2014,index_ano) 
  
    ## Usar a coluna V17 que possui os códigos da base de dados
  ano_codigo <- ano_lista$V17 #identificamos os códigos de cada conselho
  
  # Nome
  ano_codigo_nomes <- ano_lista %>% 
    select(V17) %>% 
    filter(!V17 %in% c("A605", "A608", "A616", "A725")) %>% 
    mutate(cod_nomes = Conselhos_codigo_nomes$cod,
           nomes = Conselhos_codigo_nomes$nomes)
  
  ##Selecionamos apenas as colunas correspondentes a "possui Conselho?"
  Munic_2014_anos <- select(Munic_2014, ano_codigo_nomes$V17)
  
  Munic_2014_anos <- gather(Munic_2014_anos, conselhos, anos)
  
  Munic_2014_anos_88 <- Munic_2014_anos %>% 
    mutate(anos = as.numeric(anos)) %>% 
    mutate(conselhos = factor(conselhos)) %>% 
    filter(anos > 1987) %>% 
    filter(anos < 2015)  %>% 
    arrange(anos) %>% 
    left_join(ano_codigo_nomes, by = c("conselhos" = "V17"))
  
##

anos <- ggplot(Munic_2014_anos_88, 
               aes(x=anos, y=reorder(nomes, -anos, FUN = mean)))+
  geom_density_ridges(aes(fill=reorder(conselhos, -anos, FUN = mean)), show.legend = F, alpha = .7) +
  scale_fill_viridis_d(option = "B", direction = -1,
                           begin = .1, end = .9)+
  scale_x_continuous(limits = c(1988, 2018), 
                     breaks = c(1990, 1994, 1998, 2002, 2006, 2010, 2014))+
  #scale_y_discrete(labels = c())+
  geom_vline(xintercept = c(1990, 1994, 1998, 2002, 2006, 2010, 2014), linetype= "dotdash") +
  ylab("") + xlab("")+
  theme_classic()+
  theme(axis.text.x = element_text(size = 14, face = "bold"),
        axis.text.y = element_text(size = 14, face = "bold"))

anos

09. Tabelas

Tabela dos indicadores gerais

library(formattable)

formattable(drop_na(tabela_indicadores),
              list(N_conselhos = normalize_bar(),
                   N_Paritários = normalize_bar(),
                   N_Deliberativos = normalize_bar(),
                   N_consultivos = normalize_bar(),
                   N_Fiscalizadores = normalize_bar(),
                   N_Normativos = normalize_bar(),
                   N_reuni= normalize_bar()))
nomes N_conselhos N_Paritários N_Deliberativos N_consultivos N_Fiscalizadores N_Normativos N_reuni
Assistência Social 5562 5515 5335 3261 4742 3055 56620
Saúde 5556 5429 5006 3302 4325 2586 62296
Direitos da Criança e … 5481 5378 4916 3394 4099 2805 47179
Educação 4874 4496 4101 4166 3816 3270 37248
Meio Ambiente 3785 3503 3238 3064 1829 1612 16641
Direitos do Idoso ou s… 3450 3365 2939 2431 2366 1598 20348
Segurança Alimentar 1629 1199 994 1308 853 522 6206
Direitos da Pessoa com… 1093 1042 907 772 725 471 6805
Direitos da Mulher 976 890 731 710 619 406 5034
Segurança Pública 691 561 436 495 358 195 3344
Direitos da Juventude … 608 534 434 497 371 229 3098
Direitos Humanos ou si… 323 304 278 222 230 162 2461
Igualdade Racial ou si… 280 257 211 212 161 115 1771
Direitos de Lésbicas, … 21 20 15 15 14 9 103

IPPC versus IDHM

sjPlot::sjt.xtab(Potencial$IPP_Class, 
                 Potencial$IDHM_Class,
                 encoding = "UTF-8",
                 show.summary = F)
IPP_Class IDHM_Class Total
muito alto alto médio baixo muito baixo
muito alto 14 66 8 1 0 89
alto 27 629 465 192 4 1317
médio 2 436 589 372 4 1403
baixo 0 405 575 390 7 1377
muito baixo 1 353 596 411 17 1378
Total 44 1889 2233 1366 32 5564

IPPC versus Porte

sjPlot::sjt.xtab(Potencial$IPP_Class, 
                 Potencial$Porte_pop2010,
                 encoding = "UTF-8",
                 show.summary = F)
IPP_Class Porte_pop2010 Total
Metrópole Grande Médio Pequeno II Pequeno I
muito alto 9 61 13 6 0 89
alto 8 192 215 412 490 1317
médio 0 12 62 306 1024 1404
baixo 0 1 25 195 1156 1377
muito baixo 0 0 10 124 1248 1382
Total 17 266 325 1043 3918 5569

IPPC versus região

sjPlot::sjt.xtab(Potencial$IPP_Class, 
                 Potencial$B4,
                 encoding = "UTF-8",
                 show.summary = F)
IPP_Class B4 Total
Centro-Oeste Nordeste Norte Sudeste Sul
muito alto 10 15 7 38 19 89
alto 117 360 119 448 273 1317
médio 106 493 116 379 310 1404
baixo 104 471 82 398 322 1377
muito baixo 130 454 126 405 267 1382
Total 467 1793 450 1668 1191 5569

10. Mapa

mapa_mun <- read_municipality(simplified = T, showProgress = F)

mapa_states <- read_state(simplified = T, showProgress = F)

mapa_plot <-mapa_mun %>% 
 select(1, 5 ) %>% 
  mutate(code_muni = as.character(code_muni)) %>% 
  right_join(Potencial, by = c("code_muni" = "A1a"))  

ggplot(drop_na(mapa_plot))+
  geom_sf(aes(fill=IPP_Class), colour = alpha("white", .4), lty=3)+
  geom_sf(data=mapa_states, fill=NA, color = "black")+
  #geom_sf(data=brmap::brmap_estado, fill=NA, color = "black")+
  scale_fill_paletteer_d(name = "IPPC", "ggsci::category10_d3")+
  theme_map_br

11. Correlação entre variáveis

matrix_cor <- Potencial %>% 
  select(IPP_Norm, IDHM, Num_conselhos:Potencial_participativo) %>% 
  drop_na()

corr <- round(cor(matrix_cor), 1)

corr  %>% 
  datatable(extensions = 'FixedColumns',
            rownames = F,
            options = list(autoFill = TRUE,
                           fixedHeader = TRUE,
                           autowidth = TRUE,
                           paging = F,
                           scrollX = TRUE,
                           scrollY = "400px"))
ggcorrplot(corr, hc.order = F, 
           type = "lower", 
           show.diag = T,
           pch = 12,
           pch.cex = 12,
           tl.cex = 12,
           lab = TRUE, 
           lab_size = 3, 
           method="circle", 
           colors = c("tomato2", "white", "springgreen3"), 
           title="Matrix de correlação", 
           ggtheme=theme_bw)