Carregar bibliotecas necessárias
pacman::p_load(tidyverse, viridis, plotly, ggridges, gridExtra,
geobr, DT, paletteer, ggcorrplot, formattable)
Disponíveis na Base Munics-IPs. Consultá-la no repositório github
setwd("C:\\r_files\\my_academic_projects\\ippc_project_r_final")
#### Carregar os dados das Munics-IPs
Munics_IPs <- read_csv2("Munics_IPs.csv")
#### variaveis auxiliares
var_aux <- Munics_IPs %>%
select(A1:B6)
#### Carregar 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_Munic <- slice(Munics_IPs.legenda,c(695:767, 786:899, 910:920, 1107:1152))
# Base
Munics_IPs <- select(Munics_IPs, c(A1, A545:A606, A623:A722, A732:A740, A891:A912))
# O conselho de segurança alimentar aparecia duplicado # Agora excluído o código "A913".
# Excluir tb "A607": Alimentação escolar, "A615": transporte escolar, "A724": defesa civil
# Bases suas
suas <- read_csv2("censo_suas.csv",
locale(encoding = "latin1"),
col_names = T,
col_types = NULL) %>%
select(IBGE, Porte_pop2010, Pop_Total2010)
# IDH
idh <- read_csv2("idh_census.csv")
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))
}
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))
}
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))
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))
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.34, 0.4), #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'))
Verificar número de conselhos por município
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$V3,"possui Conselho Municipal")
### Usar o índice para selecionar as linhas.
Conselhos_lista <- slice(Legenda_Munic,index_cons)
## Usar a coluna V17 que possui os códigos da base de dados
Conselhos_codigo_nomes <- Conselhos_lista %>%
select(V3, V17)
# Usar V3 para extrair o nome do conselho
Conselhos_codigo_nomes <- Conselhos_codigo_nomes %>%
mutate(nome_IBGE = str_remove(V3, "O município possui "),
nome_IBGE = str_remove(nome_IBGE, "\\?"),
nome_abr = str_remove(nome_IBGE, "Conselho Municipal d(e?o?s?) "),
nome_abr = str_remove(nome_abr, " ou similar"),
nome_abr = str_replace(nome_abr, "Direitos", "D."),
nome_abr = str_replace(nome_abr, "Lésbicas, Gays, Bissexuais, Travestis e Transexuais", "LGBTT"), nome_abr = str_trunc(nome_abr, 25),
nome_abr = str_trim(nome_abr, side = "both")) %>%
select(nome_IBGE, nome_abr, cod = V17)
Conselhos_codigo_nomes %>%
datatable(extensions = 'FixedColumns',
rownames = F,
options = list(autoFill = TRUE,
fixedHeader = TRUE,
autowidth = TRUE,
paging = F,
scrollX = TRUE,
scrollY = "400px"))
##Selecionamos apenas as colunas correspondentes a "possui Conselho?"
Munic_Conselhos <- select(Munics_IPs,A1, Conselhos_codigo_nomes$cod)
Munic_Conselhos %>%
datatable(extensions = 'FixedColumns',
rownames = F,
options = list(autoFill = TRUE,
fixedHeader = TRUE,
autowidth = TRUE,
paging = F,
scrollX = TRUE,
scrollY = "400px"))
Operação básica: Sim = 1; Não (e demais opções) = 0
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_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
Visualização com histograma
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))+
theme_classic() +
theme_hist
hist_1
Visualização com tabela simples
table_Num_Conselhos <- Numero_conselhos %>%
select(-A1) %>%
summarise_all(sum) %>%
gather() %>%
arrange(desc(value)) %>%
left_join(Conselhos_codigo_nomes, by = c("key" = "cod")) %>%
select(nome_abr, key, N_conselhos = value)
table_Num_Conselhos
## # A tibble: 15 x 3
## nome_abr key N_conselhos
## <chr> <chr> <dbl>
## 1 <NA> Num_conselhos 34329
## 2 Assistência Social A891 5562
## 3 Saúde A623 5556
## 4 D. da Criança e do Ado... A641 5481
## 5 Educação A587 4874
## 6 Meio Ambiente A545 3785
## 7 D. do Idoso A657 3450
## 8 Segurança Alimentar A732 1629
## 9 D. da Pessoa com Defic... A665 1093
## 10 D. da Mulher A553 976
## 11 Segurança Pública A715 691
## 12 D. da Juventude A681 608
## 13 D. Humanos A633 323
## 14 Igualdade Racial A649 280
## 15 D. de LGBTT A673 21
Visualização da operaçã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 <- var_aux %>%
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, ...
Calcular a existência de paridade nos conselhos
## Criar índice para selecionar unicamente a pergunta "O conselho e paritario?"
index_pari <- str_which(Legenda_Munic$V4,"paritário") ##Coluna V4
## usar a coluna V17 que possui os codigos da base de dados
Paridade_lista <- slice(Legenda_Munic,index_pari)
#identificar os codigos de pergunta
Paridade_codigo <- Paridade_lista %>%
select(V17) %>%
mutate(cod_nomes = Conselhos_codigo_nomes$cod)
## Sel. apenas as colunas correspondentes a "O Conselho e paritario?"
Munic_Paridade <- select(Munics_IPs, A1, Paridade_codigo$V17)
# Verificar rótulos
#sapply(Munic__Paridade[2:18], FUN = unique) # Há um erro de digitação Naão sabe
Munic_Paridade$A547[1] <- "Não sabe informar"
sapply(Munic_Paridade[2:15], 2, FUN = unique)
## $A547
## [1] "Não sabe informar" "Sim" "Não aplicável"
## [4] "Não" "Recusa"
##
## $A555
## [1] "Não aplicável" "Sim" "Não"
## [4] "Recusa" "Não sabe informar"
##
## $A589
## [1] "Não aplicável" "Paritário" "Não paritário" "Não informado"
## [5] "Recusa"
##
## $A625
## [1] "Paritário" "Não aplicável" "Não paritário" "Recusa"
## [5] "Não informado"
##
## $A635
## [1] "Não aplicável" "Paritário" "Não paritário" "Recusa"
## [5] "Não informado"
##
## $A643
## [1] "Paritário" "Não aplicável" "Não paritário" "Recusa"
## [5] "Não informado"
##
## $A651
## [1] "Não aplicável" "Paritário" "Não paritário" "Recusa"
## [5] "Não informado"
##
## $A659
## [1] "Paritário" "Não aplicável" "Não paritário" "Não informado"
## [5] "Recusa"
##
## $A667
## [1] "Não aplicável" "Paritário" "Não paritário" "Recusa"
## [5] "Não informado"
##
## $A675
## [1] "Não aplicável" "Recusa" "Paritário" "Não paritário"
## [5] "Não informado"
##
## $A683
## [1] "Não aplicável" "Paritário" "Não paritário" "Recusa"
## [5] "Não informado"
##
## $A717
## [1] "Não paritário" "Paritário"
## [3] "Não aplicável" "Recusa"
## [5] "Não está em funcionamento" "Não informado"
##
## $A734
## [1] "Paritário" "Não aplicável" "Não paritário" "Recusa"
## [5] "Não informado"
##
## $A893
## [1] "É paritário"
## [2] "Tem maior representação da sociedade civil"
## [3] "Tem maior representação governamental"
## [4] "Não aplicável"
## [5] "Recusa"
Operação: Existência de paridade = 1; Não existência = 0
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_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))
# 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
Visualização com histograma
# Histograma
hist_2 <- ggplot(Paridade_Munic, aes(Paridade)) +
geom_histogram(binwidth = 1, fill = "white", color = "black") +
ggtitle("Histogram 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
Visualização com tabela simples
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(nome_abr, key, N_Paritários = value)
table_Num_pari
## # A tibble: 15 x 3
## nome_abr key N_Paritários
## <chr> <chr> <dbl>
## 1 <NA> Paridade 32493
## 2 Assistência Social A893 5515
## 3 Saúde A625 5429
## 4 D. da Criança e do Ado... A643 5378
## 5 Educação A589 4496
## 6 Meio Ambiente A547 3503
## 7 D. do Idoso A659 3365
## 8 Segurança Alimentar A734 1199
## 9 D. da Pessoa com Defic... A667 1042
## 10 D. da Mulher A555 890
## 11 Segurança Pública A717 561
## 12 D. da Juventude A683 534
## 13 D. Humanos A635 304
## 14 Igualdade Racial A651 257
## 15 D. de LGBTT A675 20
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$V5,"Deliberativo")
## Usar a coluna V17 que possui os códigos da base de dados
Delib_lista <- slice(Legenda_Munic,index_deli)
#identificar códigos de pergunta
Delib_codigo <- Delib_lista$V17
# Nomes
Delib_codigo_nomes <- Delib_lista %>%
select(V17) %>%
mutate(cod_nomes = Conselhos_codigo_nomes$cod)
##Selecionamos apenas as colunas correspondentes a "Deliberativo"
Munic_Delib <- select(Munics_IPs, A1, Delib_codigo_nomes$V17)
### Excluir conselhos da alimentacao escolar, transporte escolar e defesa civil
#Munic_Delib <- select(Munic_Delib) # -c(A611, A619, A728)
sapply(Munic_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"
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
Delib_pond <- Munic_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
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...
### 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("Histogram 3", subtitle = "Num. Cons. deliberativos, qtdd por Município")+
theme_classic()+
theme_hist
hist_3
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(nome_abr, key, N_Deliberativos = value)
table_Num_del
## # A tibble: 15 x 3
## nome_abr key N_Deliberativos
## <chr> <chr> <dbl>
## 1 <NA> Deliberativos 29541
## 2 Assistência Social A897 5335
## 3 Saúde A627 5006
## 4 D. da Criança e do Ado... A645 4916
## 5 Educação A591 4101
## 6 Meio Ambiente A549 3238
## 7 D. do Idoso A661 2939
## 8 Segurança Alimentar A736 994
## 9 D. da Pessoa com Defic... A669 907
## 10 D. da Mulher A557 731
## 11 Segurança Pública A719 436
## 12 D. da Juventude A685 434
## 13 D. Humanos A637 278
## 14 Igualdade Racial A653 211
## 15 D. de LGBTT A677 15
Visualizar distribuição
## indice para selecionar unicamente a pergunta "número de rueniões?"
index_reu <- str_which(Legenda_Munic$V4,"reuni") ##Coluna V4
Reuni_lista <- Legenda_Munic %>%
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)%>%
mutate(cod_nomes = Conselhos_codigo_nomes$cod)
##Selecionamos apenas as colunas correspondentes a "número de reuniões"
Munic_Reuni <- select(Munics_IPs,A1, Reuni_codigo_nomes$V17)
glimpse(Munic_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_Reuni <- Munic_Reuni %>%
mutate_if(is.factor, as.character) %>%
mutate_if(is.character, as.numeric)
glimpse(Munic_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_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_Reuni[2:15])
# Substituir outliers antes de somar o total por mun.
#Substituir 5% dos maiores outliers
# identificar outs.
out <- boxplot(Munic_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.
cinco_porc <- round(5*length(out)/100, 1) # 1141 casos, ~5% = 57 casos
# Guardar 5% dos outliers - Valores máximos
out_5 <- tail(sort(out), cinco_porc)
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_Reuni <- Munic_Reuni %>%
mutate_at( vars(2:15),~ifelse(.x %in% out_5, 50, .x))
summary(Munic_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
boxplot(Munic_Reuni[2:15])
## Somar
Reuni_pond <- Munic_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
Visualizar
Reuni_pond <- Reuni_pond %>%
mutate(A1 = as.character(A1))
##Adicionamos os valores na tabela "Fisca_Munic"
Reuni_Munic <- Delib_Munic %>%
left_join(select(Reuni_pond, A1, Num_reunioes))
glimpse(Reuni_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...
## $ Num_reunioes <dbl> 37, 105, 30, 108, 42, 25, 37, 81, 52, 75, 56, 105, 33...
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(nome_abr, key, N_reuni = value)
table_Num_Reuni
## # A tibble: 15 x 3
## nome_abr key N_reuni
## <chr> <chr> <dbl>
## 1 <NA> Num_reunioes 269154
## 2 Saúde A630 62296
## 3 Assistência Social A895 56620
## 4 D. da Criança e do Ado... A648 47179
## 5 Educação A594 37248
## 6 D. do Idoso A664 20348
## 7 Meio Ambiente A552 16641
## 8 D. da Pessoa com Defic... A672 6805
## 9 Segurança Alimentar A739 6206
## 10 D. da Mulher A560 5034
## 11 Segurança Pública A722 3344
## 12 D. da Juventude A688 3098
## 13 D. Humanos A640 2461
## 14 Igualdade Racial A656 1771
## 15 D. de LGBTT A680 103
# write_excel_csv2(table_Num_Reuni, "table_Num_Reuni.csv")
tabela_indicadores <- table_Num_Conselhos %>%
select(-key) %>%
left_join(table_Num_pari, by = "nome_abr") %>%
select(-key) %>%
left_join(table_Num_del, by = "nome_abr") %>%
select(-key) %>%
left_join(table_Num_Reuni, by = "nome_abr") %>%
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"))
Visualização
Distribuicao_conselhos <- Reuni_Munic
# Excluir Brasília e Fernando de Noronha
Distribuicao_conselhos <- Distribuicao_conselhos %>%
filter(!B1 %in% c("BRASILIA", "FERNANDO DE NORONHA"))
glimpse(Distribuicao_conselhos)
## Observations: 5,568
## 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...
## $ Num_reunioes <dbl> 37, 105, 30, 108, 42, 25, 37, 81, 52, 75, 56, 105, 33...
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, Num_reunioes = 263)
Distribuicao_conselhos <- rbind(Distribuicao_conselhos, Ref)
Soma:
Número de Conselhos +
Número de Conselhos paritários +
Número de Conselhos deliberativos +
Índice participativo:
Número de reuniões/número de conselhos
Isto é, a média das reuniões
Plotar:
Sumário do perfil
10 primeiros casos
10 últimos casos
Sumário do Índice participativo
10 primeiros casos
10 últimos casos
## 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)
summary(Potencial$Perfil_Conselho)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 14.0 17.0 17.3 20.0 42.0
Potencial %>%
arrange(desc(Perfil_Conselho)) %>%
head(10)
## # A tibble: 10 x 16
## A1 A1a B1 B2 B3 B4 B5 B6 Porte_pop2010 Pop_Total2010
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Ref Ref Ref Ref Ref Ref Ref Ref Ref Ref
## 2 2930~ 2930~ SERR~ 29 BA 2 - ~ 5 - ~ 83275 Médio 76762
## 3 2208~ 2208~ PICOS 22 PI 2 - ~ 5 - ~ 76544 Médio 73414
## 4 2303~ 2303~ CARI~ 23 CE 2 - ~ 3 - ~ 18810 Pequeno I 18567
## 5 2900~ 2900~ ALAG~ 29 BA 2 - ~ 6 - ~ 1544~ Grande 141949
## 6 3205~ 3205~ VITO~ 32 ES 3 - ~ 6 - ~ 3558~ Grande 327801
## 7 3548~ 3548~ SAO ~ 35 SP 3 - ~ 6 - ~ 2413~ Grande 221950
## 8 2910~ 2910~ FEIR~ 29 BA 2 - ~ 7 - ~ 6175~ Grande 556642
## 9 3104~ 3104~ ARAXA 31 MG 3 - ~ 6 - ~ 1022~ Médio 93672
## 10 3113~ 3113~ CARA~ 31 MG 3 - ~ 5 - ~ 90782 Médio 85239
## # ... with 6 more variables: IDHM <chr>, Num_conselhos <dbl>, Paridade <dbl>,
## # Deliberativos <dbl>, Num_reunioes <dbl>, Perfil_Conselho <dbl>
Potencial %>%
arrange(Perfil_Conselho) %>%
head(10)
## # A tibble: 10 x 16
## A1 A1a B1 B2 B3 B4 B5 B6 Porte_pop2010 Pop_Total2010
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 2102~ 2102~ BREJ~ 21 MA 2 - ~ 2 - ~ 9166 Pequeno I 5577
## 2 4309~ 4309~ HULH~ 43 RS 4 - ~ 2 - ~ 6478 Pequeno I 6043
## 3 3109~ 3109~ BUGRE 31 MG 3 - ~ 1 - ~ 4134 Pequeno I 3992
## 4 5106~ 5106~ NOVA~ 51 MT 5 - ~ 3 - ~ 12946 Pequeno I 11643
## 5 5219~ 5219~ SANT~ 52 GO 5 - ~ 2 - ~ 5073 Pequeno I 4762
## 6 1100~ 1100~ SANT~ 11 RO 1 - ~ 2 - ~ 8532 Pequeno I 8886
## 7 2100~ 2100~ ALTA~ 21 MA 2 - ~ 3 - ~ 11616 Pequeno I 11063
## 8 2101~ 2101~ BENE~ 21 MA 2 - ~ 2 - ~ 5519 Pequeno I 5469
## 9 1100~ 1100~ CAST~ 11 RO 1 - ~ 1 - ~ 3617 Pequeno I 3575
## 10 1300~ 1300~ ANORI 13 AM 1 - ~ 3 - ~ 19292 Pequeno I 16317
## # ... with 6 more variables: IDHM <chr>, Num_conselhos <dbl>, Paridade <dbl>,
## # Deliberativos <dbl>, Num_reunioes <dbl>, Perfil_Conselho <dbl>
# índice participativo: Número de reuniões/Número de Conselhos (média das reuniões)
Potencial <- Potencial %>%
mutate(Indice_participativo = round(Num_reunioes/Num_conselhos, 3))
summary(Potencial$Indice_participativo)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.500 5.800 7.472 7.754 9.375 24.625 1
Potencial %>%
arrange(desc(Indice_participativo)) %>%
head(10)
## # A tibble: 10 x 17
## A1 A1a B1 B2 B3 B4 B5 B6 Porte_pop2010 Pop_Total2010
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 4202~ 4202~ BLUM~ 42 SC 4 - ~ 6 - ~ 3388~ Grande 309011
## 2 4306~ 4306~ ELDO~ 43 RS 4 - ~ 4 - ~ 37794 Pequeno II 34343
## 3 3151~ 3151~ POCO~ 31 MG 3 - ~ 6 - ~ 1636~ Grande 152435
## 4 3304~ 3304~ RIO ~ 33 RJ 3 - ~ 7 - ~ 6476~ Metrópole 6320446
## 5 4300~ 4300~ ALEG~ 43 RS 4 - ~ 5 - ~ 78499 Médio 77653
## 6 1101~ 1101~ SAO ~ 11 RO 1 - ~ 3 - ~ 19002 Pequeno I 16035
## 7 2902~ 2902~ AURE~ 29 BA 2 - ~ 3 - ~ 13089 Pequeno I 13595
## 8 4314~ 4314~ PORT~ 43 RS 4 - ~ 7 - ~ 1476~ Metrópole 1409351
## 9 1400~ 1400~ BOA ~ 14 RR 1 - ~ 6 - ~ 3207~ Grande 284313
## 10 3205~ 3205~ VITO~ 32 ES 3 - ~ 6 - ~ 3558~ Grande 327801
## # ... with 7 more variables: IDHM <chr>, Num_conselhos <dbl>, Paridade <dbl>,
## # Deliberativos <dbl>, Num_reunioes <dbl>, Perfil_Conselho <dbl>,
## # Indice_participativo <dbl>
Potencial %>%
arrange(Indice_participativo) %>%
head(10)
## # A tibble: 10 x 17
## A1 A1a B1 B2 B3 B4 B5 B6 Porte_pop2010 Pop_Total2010
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1200~ 1200~ ASSI~ 12 AC 1 - ~ 2 - ~ 6738 Pequeno I 6072
## 2 4315~ 4315~ ROLA~ 43 RS 4 - ~ 1 - ~ 2542 Pequeno I 2546
## 3 1303~ 1303~ SANT~ 13 AM 1 - ~ 4 - ~ 22404 Pequeno I 18146
## 4 2915~ 2915~ ITAN~ 29 BA 2 - ~ 2 - ~ 8034 Pequeno I 7598
## 5 2100~ 2100~ ALTA~ 21 MA 2 - ~ 3 - ~ 11616 Pequeno I 11063
## 6 5106~ 5106~ PORT~ 51 MT 5 - ~ 1 - ~ 3354 Pequeno I 3649
## 7 3504~ 3504~ BALS~ 35 SP 3 - ~ 2 - ~ 8773 Pequeno I 8160
## 8 5220~ 5220~ SIMO~ 52 GO 5 - ~ 2 - ~ 6773 Pequeno I 6514
## 9 1716~ 1716~ PARA~ 17 TO 1 - ~ 3 - ~ 10573 Pequeno I 10338
## 10 2102~ 2102~ BURI~ 21 MA 2 - ~ 4 - ~ 28022 Pequeno II 27013
## # ... with 7 more variables: IDHM <chr>, Num_conselhos <dbl>, Paridade <dbl>,
## # Deliberativos <dbl>, Num_reunioes <dbl>, Perfil_Conselho <dbl>,
## # Indice_participativo <dbl>
# Potencial participativo = média de reuniões * perfil dos conselhos.
Potencial <- Potencial %>%
mutate(Potencial_participativo = round(Perfil_Conselho * Indice_participativo, 3))
glimpse(Potencial)
## Observations: 5,569
## Variables: 18
## $ 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, ...
## $ Num_reunioes <dbl> 37, 105, 30, 108, 42, 25, 37, 81, 52, 75, 5...
## $ Perfil_Conselho <dbl> 17, 33, 15, 28, 17, 8, 9, 15, 17, 19, 16, 2...
## $ Indice_participativo <dbl> 5.286, 9.545, 6.000, 10.800, 7.000, 8.333, ...
## $ Potencial_participativo <dbl> 89.862, 314.985, 90.000, 302.400, 119.000, ...
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
Plotar:
Visão geral
Sumário do perfil
Boxplot
10 primeiros casos
10 últimos casos
# # Aplicar fórmula
# Normalizar
# (x-min(x))/(max(x)-min(x))
#Checar NAs
#View(sapply(Potencial, function(x)all(any(is.na(x)))))
#sum(is.na(Potencial$Indice_participativo)) # Apenas 1 NA.
## 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))
sum(is.na(Potencial$IPP_Norm)) # apenas 1 NA
## [1] 1
Potencial <- Potencial %>%
drop_na(IPP_Norm)
glimpse(Potencial$IPP_Norm)
## num [1:5568] 0.107 0.395 0.107 0.379 0.144 0.077 0.134 0.303 0.181 0.22 ...
summary(Potencial$IPP_Norm)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.1070 0.1460 0.1657 0.1970 1.0000
ggplot(Potencial, aes(y = 1, x = IPP_Norm))+
geom_boxplot()+
theme_classic()+
theme_box
Potencial %>%
arrange(desc(IPP_Norm)) %>%
head(10)
## # A tibble: 10 x 19
## A1 A1a B1 B2 B3 B4 B5 B6 Porte_pop2010 Pop_Total2010
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Ref Ref Ref Ref Ref Ref Ref Ref Ref Ref
## 2 3205~ 3205~ VITO~ 32 ES 3 - ~ 6 - ~ 3558~ Grande 327801
## 3 3201~ 3201~ CARI~ 32 ES 3 - ~ 6 - ~ 3818~ Grande 348738
## 4 4300~ 4300~ ALEG~ 43 RS 4 - ~ 5 - ~ 78499 Médio 77653
## 5 3304~ 3304~ RIO ~ 33 RJ 3 - ~ 7 - ~ 6476~ Metrópole 6320446
## 6 4314~ 4314~ PORT~ 43 RS 4 - ~ 7 - ~ 1476~ Metrópole 1409351
## 7 2927~ 2927~ SALV~ 29 BA 2 - ~ 7 - ~ 2921~ Metrópole 2675656
## 8 3205~ 3205~ VILA~ 32 ES 3 - ~ 6 - ~ 4727~ Grande 414586
## 9 1400~ 1400~ BOA ~ 14 RR 1 - ~ 6 - ~ 3207~ Grande 284313
## 10 4202~ 4202~ BLUM~ 42 SC 4 - ~ 6 - ~ 3388~ Grande 309011
## # ... with 9 more variables: IDHM <chr>, Num_conselhos <dbl>, Paridade <dbl>,
## # Deliberativos <dbl>, Num_reunioes <dbl>, Perfil_Conselho <dbl>,
## # Indice_participativo <dbl>, Potencial_participativo <dbl>, IPP_Norm <dbl>
Potencial %>%
arrange(Perfil_Conselho) %>%
head(10)
## # A tibble: 10 x 19
## A1 A1a B1 B2 B3 B4 B5 B6 Porte_pop2010 Pop_Total2010
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 4309~ 4309~ HULH~ 43 RS 4 - ~ 2 - ~ 6478 Pequeno I 6043
## 2 3109~ 3109~ BUGRE 31 MG 3 - ~ 1 - ~ 4134 Pequeno I 3992
## 3 5106~ 5106~ NOVA~ 51 MT 5 - ~ 3 - ~ 12946 Pequeno I 11643
## 4 5219~ 5219~ SANT~ 52 GO 5 - ~ 2 - ~ 5073 Pequeno I 4762
## 5 1100~ 1100~ SANT~ 11 RO 1 - ~ 2 - ~ 8532 Pequeno I 8886
## 6 2100~ 2100~ ALTA~ 21 MA 2 - ~ 3 - ~ 11616 Pequeno I 11063
## 7 2101~ 2101~ BENE~ 21 MA 2 - ~ 2 - ~ 5519 Pequeno I 5469
## 8 1100~ 1100~ CAST~ 11 RO 1 - ~ 1 - ~ 3617 Pequeno I 3575
## 9 1300~ 1300~ ANORI 13 AM 1 - ~ 3 - ~ 19292 Pequeno I 16317
## 10 1504~ 1504~ NOVA~ 15 PA 1 - ~ 4 - ~ 20663 Pequeno II 20158
## # ... with 9 more variables: IDHM <chr>, Num_conselhos <dbl>, Paridade <dbl>,
## # Deliberativos <dbl>, Num_reunioes <dbl>, Perfil_Conselho <dbl>,
## # Indice_participativo <dbl>, Potencial_participativo <dbl>, IPP_Norm <dbl>
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= IPP_Norm, y = 1)) +
geom_boxplot(coef = 3)
ggplot_build(p)$data
## [[1]]
## xmin xlower xmiddle xupper xmax
## 1 0 0.107 0.146 0.197 0.467
## outliers
## 1 0.533, 0.711, 0.490, 0.556, 0.510, 0.514, 0.532, 0.521, 0.475, 0.550, 0.593, 0.470, 0.496, 0.593, 0.496, 0.490, 0.629, 0.501, 0.716, 0.498, 0.481, 0.674, 0.473, 0.607, 0.578, 0.498, 0.593, 0.653, 0.522, 0.875, 0.475, 0.532, 0.625, 0.713, 0.901, 0.503, 0.567, 0.527, 0.767, 0.482, 0.505, 0.616, 0.505, 0.524, 0.500, 0.479, 0.511, 0.497, 0.522, 0.523, 0.471, 0.554, 0.636, 0.514, 0.559, 0.587, 0.471, 0.521, 0.568, 0.684, 0.588, 0.529, 0.578, 0.789, 0.489, 0.630, 0.492, 0.524, 0.495, 0.486, 0.655, 0.742, 0.506, 0.477, 0.472, 0.527, 0.613, 0.499, 0.582, 0.620, 0.472, 0.556, 0.470, 0.507
## notchupper notchlower y flipped_aes PANEL group xmin_final xmax_final ymin
## 1 0.1479059 0.1440941 1 TRUE 1 -1 0 0.901 0.625
## ymax 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.107 ~ "muito baixo",
IPP_Norm >= 0.108 & IPP_Norm <= 0.146 ~ "baixo",
IPP_Norm >= 0.147 & IPP_Norm <= 0.197 ~ "médio",
IPP_Norm >= 0.198 & IPP_Norm <= 0.467 ~ "alto",
IPP_Norm >= 0.468 ~ "muito alto"))
glimpse(Potencial)
## Observations: 5,567
## Variables: 20
## $ 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, ...
## $ Num_reunioes <dbl> 37, 105, 30, 108, 42, 25, 37, 81, 52, 75, 5...
## $ Perfil_Conselho <dbl> 17, 33, 15, 28, 17, 8, 9, 15, 17, 19, 16, 2...
## $ Indice_participativo <dbl> 5.286, 9.545, 6.000, 10.800, 7.000, 8.333, ...
## $ Potencial_participativo <dbl> 89.862, 314.985, 90.000, 302.400, 119.000, ...
## $ IPP_Norm <dbl> 0.107, 0.395, 0.107, 0.379, 0.144, 0.077, 0...
## $ IPP_Class <chr> "muito baixo", "alto", "muito baixo", "alto...
Potencial$IPP_Class <- factor(Potencial$IPP_Class, levels = c("muito baixo", "baixo", "médio", "alto", "muito alto"), ordered = T)
Potencial %>%
count(IPP_Class, sort = T)
## # A tibble: 5 x 2
## IPP_Class n
## <ord> <int>
## 1 muito baixo 1455
## 2 baixo 1416
## 3 médio 1317
## 4 alto 1295
## 5 muito alto 84
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("Pequeno I", "Pequeno II", "Médio", "Grande", "Metrópole"), ordered = T)
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")) %>%
formatStyle(columns = colnames(.), fontSize = '50%')
grid.arrange(hist_1, hist_2, hist_3,
nrow = 1)
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 baixo", "baixo", "médio", "alto", "muito alto" ), ordered = T)
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
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
index_ano <- str_which(Legenda_Munic$V4,"ano de criação")
### Usar o índice para selecionar as linhas.
ano_lista <- slice(Legenda_Munic,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$nome_abr)
##Selecionamos apenas as colunas correspondentes a "possui Conselho?"
Munic_anos <- select(Munics_IPs, ano_codigo_nomes$V17)
Munic_anos <- gather(Munic_anos, conselhos, anos)
Munic_anos_88 <- Munic_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_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
anos +
scale_fill_grey()
Munic_anos_88_alt <- Munic_anos_88 %>%
mutate(nomes = reorder(nomes, anos, FUN = mean))
councils_qt <- Munic_anos_88_alt %>%
count(nomes) %>%
arrange(desc(n)) %>%
mutate (councils_qt = paste0(nomes, " (", n, ")"))
Munic_anos_88_alt <- Munic_anos_88_alt %>%
full_join(councils_qt)
Munic_anos_88_alt <- Munic_anos_88_alt %>%
mutate(councils_qt = reorder(councils_qt, anos, FUN = mean))
ggplot(Munic_anos_88_alt, aes(x=anos))+
geom_bar(aes(y = ..count../sum(..count..)))+
geom_density(aes(y = ..density../5))+
scale_x_continuous(limits = c(1988, 2018),
breaks = c(1990, 1994, 1998, 2002, 2006, 2010, 2014))+
geom_vline(xintercept = c(1990, 1994, 1998, 2002, 2006, 2010, 2014),
linetype= "dotdash")+
facet_wrap(~ councils_qt, nrow = 14, strip.position = "left")+
scale_fill_viridis_d(option = "B",
begin = .1, end = .9)+
labs(x = "", y = "")+
theme_classic()+
theme(
axis.text.y = element_blank(),
axis.line.y.left = element_blank(),
axis.ticks.y.left = element_blank(),
strip.text.y.left = element_text(angle = 0),
strip.placement = "inside",
strip.text.x = element_blank()
)
formattable(drop_na(tabela_indicadores),
list(N_conselhos = normalize_bar(),
N_Paritários = normalize_bar(),
N_Deliberativos = normalize_bar(),
N_consultivos = normalize_bar(),
N_reuni= normalize_bar()))
| nome_abr | N_conselhos | N_Paritários | N_Deliberativos | N_reuni |
|---|---|---|---|---|
| Assistência Social | 5562 | 5515 | 5335 | 56620 |
| Saúde | 5556 | 5429 | 5006 | 62296 |
| D. da Criança e do Ado… | 5481 | 5378 | 4916 | 47179 |
| Educação | 4874 | 4496 | 4101 | 37248 |
| Meio Ambiente | 3785 | 3503 | 3238 | 16641 |
| D. do Idoso | 3450 | 3365 | 2939 | 20348 |
| Segurança Alimentar | 1629 | 1199 | 994 | 6206 |
| D. da Pessoa com Defic… | 1093 | 1042 | 907 | 6805 |
| D. da Mulher | 976 | 890 | 731 | 5034 |
| Segurança Pública | 691 | 561 | 436 | 3344 |
| D. da Juventude | 608 | 534 | 434 | 3098 |
| D. Humanos | 323 | 304 | 278 | 2461 |
| Igualdade Racial | 280 | 257 | 211 | 1771 |
| D. de LGBTT | 21 | 20 | 15 | 103 |
sjPlot::sjt.xtab(Potencial$IPP_Class,
Potencial$IDHM_Class,
var.labels = c("IPPC", "IDH-M"),
encoding = "UTF-8",
show.summary = F)
| IPPC | IDH-M | Total | ||||
|---|---|---|---|---|---|---|
| muito baixo | baixo | médio | alto | muito alto | ||
| muito baixo | 18 | 455 | 626 | 351 | 1 | 1451 |
| baixo | 7 | 396 | 600 | 413 | 0 | 1416 |
| médio | 4 | 342 | 546 | 421 | 3 | 1316 |
| alto | 3 | 173 | 454 | 639 | 26 | 1295 |
| muito alto | 0 | 0 | 7 | 64 | 13 | 84 |
| Total | 32 | 1366 | 2233 | 1888 | 43 | 5562 |
sjPlot::sjt.xtab(Potencial$IPP_Class,
Potencial$Porte_pop2010,
var.labels = c("IPPC", "Porte municipal"),
encoding = "UTF-8",
show.summary = F)
| IPPC | Porte municipal | Total | ||||
|---|---|---|---|---|---|---|
| Pequeno I | Pequeno II | Médio | Grande | Metrópole | ||
| muito baixo | 1308 | 134 | 13 | 0 | 0 | 1455 |
| baixo | 1190 | 199 | 26 | 1 | 0 | 1416 |
| médio | 948 | 300 | 58 | 11 | 0 | 1317 |
| alto | 471 | 404 | 216 | 198 | 6 | 1295 |
| muito alto | 0 | 6 | 12 | 56 | 10 | 84 |
| Total | 3917 | 1043 | 325 | 266 | 16 | 5567 |
sjPlot::sjt.xtab(Potencial$IPP_Class,
Potencial$B4,
var.labels = c("IPPC", "Região"),
encoding = "latin1",
show.summary = F)
| IPPC | Região | Total | ||||
|---|---|---|---|---|---|---|
| Centro-Oeste | Nordeste | Norte | Sudeste | Sul | ||
| muito baixo | 136 | 516 | 132 | 393 | 278 | 1455 |
| baixo | 111 | 471 | 97 | 412 | 325 | 1416 |
| médio | 98 | 452 | 105 | 360 | 302 | 1317 |
| alto | 113 | 340 | 109 | 466 | 267 | 1295 |
| muito alto | 8 | 13 | 7 | 37 | 19 | 84 |
| Total | 466 | 1792 | 450 | 1668 | 1191 | 5567 |
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"))
color <- c("#AF1900FF", "#9467BDFF", "#E19600FF", "#1F77B4FF", "#001964FF") # see gist
ggplot(drop_na(mapa_plot))+
geom_sf(aes(fill=IPP_Class), colour = alpha("white", .45), lty=3)+
geom_sf(data=mapa_states, fill=NA, color = "black")+
scale_fill_manual("IPPC", values = color)+
#scale_fill_paletteer_d(name = "IPPC", "nord::victory_bonds")+
theme_map_br
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)