Instruções para realização do trabalho

Os alunos deverão consultar o site do IBGE https://sidra.ibge.gov.br/tabela/993 para elaboração de um arquivo csv com dados sobre o número de empresas da construção civil no Brasil, considerando os municípios do Estado com maior número de empresas. Cada dupla ficará responsável por organizar os dados de um ano entre 2007 e 2015.

O arquivo deverá constar de 3 colunas, uma com os Municípios, outra com os códigos do município e outra com o número de empresas (unidades).

Após organizar a planilha, a dupla deverá produzir um relatório com análise de dados e um conclusão. Os scripts de apoio ao trabalho podem ser adaptado do modelo abaixo.

Prazo de realização: 2 semanas. O que deve entregar: 1. a planilha em formato csv 2. O relatório em formato Rmd 3. O relatório compilado versão impressa.

Leitura dos Dados

Tabela 993 - Empresas e outras organizações, por seção da classificação de atividades (CNAE 2.0), faixas de pessoal ocupado total

Classificação Nacional de Atividades Econômicas (CNAE 2.0) - F Construção

Ano - 2006

Variável - Número de empresas e outras organizações (Unidades)

Esta classe compreende: - a montagem e desmontagem de plataformas de trabalho e andaimes, exceto o aluguel de andaimes e plataformas de trabalho - a montagem e desmontagem de fôrmas para concreto e escoramentos - a montagem e desmontagem de estruturas temporárias - as obras de alvenaria - a perfuração e construção de poços de água - a construção de fornos industriais - a construção de partes de edifícios, tais como: telhados, coberturas, chaminés, lareiras, churrasqueiras, etc. - os serviços de limpeza de fachadas, com jateamento de areia, vapor e semelhantes

Mais detalhes em https://concla.ibge.gov.br/busca-online-cnae.html?classe=43991&tipo=cnae&versao=7&view=classe

#Alterar o local do arquivo.
tabela993munic2006 <- read.csv2("C:/Users/TPC02/OneDrive/Mestrado Pos Civil/1-2018/tabela993munic2006.csv", stringsAsFactors=F )
head(tabela993munic2006)
##       Cod                  Municipio Unidades
## 1 1100015 Alta Floresta D'Oeste (RO)        5
## 2 1100023             Ariquemes (RO)       30
## 3 1100031                Cabixi (RO)        0
## 4 1100049                Cacoal (RO)       28
## 5 1100056            Cerejeiras (RO)        3
## 6 1100064     Colorado do Oeste (RO)        6

Estatísticas Descritivas

Sumário do número de empresas da construção civil:

summary(tabela993munic2006)
##       Cod           Municipio            Unidades      
##  Min.   :1100015   Length:5570        Min.   :    0.0  
##  1st Qu.:2512126   Class :character   1st Qu.:    0.0  
##  Median :3146280   Mode  :character   Median :    1.0  
##  Mean   :3253591                      Mean   :   19.8  
##  3rd Qu.:4119190                      3rd Qu.:    6.0  
##  Max.   :5300108                      Max.   :13911.0

BoxPlot

attach(tabela993munic2006)

boxplot(Unidades)

Municípios com número de unidades discrepantes

Os Municípios que apresentam número de unidades discrepantes de acordo com o boxplot são obtidos pelo script abaixo.

attach(tabela993munic2006)

LS=quantile(Unidades,0.75)+1.5*IQR(Unidades)  #Limite superior para detecção de outliers
#OBS: Caso o outlier esteja abaixo da mediana, deve-se utilizar LI=quantile(Unidades,0.25)-1.5*IQR(Unidades) 
LI=quantile(Unidades,0.25)-1.5*IQR(Unidades)
#Neste caso LI < 0, ou seja, não há pontos discrepantes abaixo do primeiro quartil.

#Quantidades de municípios discrepantes:
length(Municipio[Unidades>LS])
## [1] 746
#Como são muitos municípios exibiremos apenas os 10 primeiros da lista
head(Municipio[Unidades>LS],10)
##  [1] "Ariquemes (RO)"       "Cacoal (RO)"          "Jaru (RO)"           
##  [4] "Ji-Paraná (RO)"       "Porto Velho (RO)"     "Rolim de Moura (RO)" 
##  [7] "Vilhena (RO)"         "Cruzeiro do Sul (AC)" "Rio Branco (AC)"     
## [10] "Coari (AM)"

Visualizando os 20 municípios com maior número de empresas da construção civil.

attach(tabela993munic2006)
x = sort(Unidades, decreasing = T) #ordenando as unidades em ordem crescente
y = order(Unidades, decreasing = T)[1:20] #posição original das unidades relativas a ordenação
barplot(x[1:20], names.arg = Municipio[y], cex.names = 0.5, horiz = T, axisnames = TRUE, las = 1, col = "darkblue", main = "Número de Empresas da Construção Civil no ano 2006", xlab = "N.Empresas da construção Civil", sub="Fonte: Sidra/IBGE", cex.main=0.8)

Eliminando os municípios com ausência de empresas de construção

#Para facilitar a tarefa, usaremos o pacote tidyverse
#Instale-o se não tiver
require(tidyverse)
novatabela=tabela993munic2006 %>% dplyr::filter(Unidades>0)
head(novatabela,30) #listando os 30 primeiros
##        Cod                     Municipio Unidades
## 1  1100015    Alta Floresta D'Oeste (RO)        5
## 2  1100023                Ariquemes (RO)       30
## 3  1100049                   Cacoal (RO)       28
## 4  1100056               Cerejeiras (RO)        3
## 5  1100064        Colorado do Oeste (RO)        6
## 6  1100072               Corumbiara (RO)        2
## 7  1100098          Espigão D'Oeste (RO)        4
## 8  1100106            Guajará-Mirim (RO)        5
## 9  1100114                     Jaru (RO)       23
## 10 1100122                Ji-Paraná (RO)       47
## 11 1100130       Machadinho D'Oeste (RO)        5
## 12 1100148 Nova Brasilândia D'Oeste (RO)        7
## 13 1100155      Ouro Preto do Oeste (RO)       12
## 14 1100189            Pimenta Bueno (RO)       11
## 15 1100205              Porto Velho (RO)      241
## 16 1100254        Presidente Médici (RO)        4
## 17 1100262               Rio Crespo (RO)        1
## 18 1100288           Rolim de Moura (RO)       37
## 19 1100296      Santa Luzia D'Oeste (RO)        1
## 20 1100304                  Vilhena (RO)       29
## 21 1100320    São Miguel do Guaporé (RO)        2
## 22 1100338              Nova Mamoré (RO)        2
## 23 1100346         Alvorada D'Oeste (RO)        3
## 24 1100379  Alto Alegre dos Parecis (RO)        1
## 25 1100403             Alto Paraíso (RO)        2
## 26 1100452                  Buritis (RO)        2
## 27 1100502  Novo Horizonte do Oeste (RO)        1
## 28 1100700   Campo Novo de Rondônia (RO)        1
## 29 1100809       Candeias do Jamari (RO)        2
## 30 1100940                  Cujubim (RO)        2
novatabela %>%
ggplot(aes(x=" ",y=Unidades))+
geom_boxplot()

LS=quantile(novatabela$Unidades,0.75)+1.5*IQR(novatabela$Unidades)  #Limite superior para detecção de outliers
#OBS: Caso o outlier esteja abaixo da mediana, deve-se utilizar LI=quantile(Unidades,0.25)-1.5*IQR(Unidades)
LI=quantile(Unidades,0.25)-1.5*IQR(Unidades)

#Quantidades de municípios discrepantes:
novatabela %>% 
  summarise(n_distinct(Municipio))
##   n_distinct(Municipio)
## 1                  3820
consulta= novatabela %>%
  dplyr::filter(Unidades>LS)

head(consulta,30)
##        Cod                 Municipio Unidades
## 1  1100023            Ariquemes (RO)       30
## 2  1100049               Cacoal (RO)       28
## 3  1100122            Ji-Paraná (RO)       47
## 4  1100205          Porto Velho (RO)      241
## 5  1100288       Rolim de Moura (RO)       37
## 6  1100304              Vilhena (RO)       29
## 7  1200203      Cruzeiro do Sul (AC)       30
## 8  1200401           Rio Branco (AC)      187
## 9  1302603               Manaus (AM)      759
## 10 1400100            Boa Vista (RR)      281
## 11 1500602             Altamira (PA)       29
## 12 1500800           Ananindeua (PA)      198
## 13 1501303            Barcarena (PA)       34
## 14 1501402                Belém (PA)      602
## 15 1502400            Castanhal (PA)       46
## 16 1504208               Marabá (PA)       74
## 17 1505304            Oriximiná (PA)       27
## 18 1505502          Paragominas (PA)       35
## 19 1505536          Parauapebas (PA)       63
## 20 1506138             Redenção (PA)       30
## 21 1506807             Santarém (PA)       67
## 22 1600303               Macapá (AP)      220
## 23 1600600              Santana (AP)       29
## 24 1702109            Araguaína (TO)       64
## 25 1709500               Gurupi (TO)       38
## 26 1716109 Paraíso do Tocantins (TO)       30
## 27 1718204       Porto Nacional (TO)       58
## 28 1721000               Palmas (TO)      226
## 29 2101400               Balsas (MA)       37
## 30 2103000               Caxias (MA)       27

Observe o efeito de eliminar os municípios sem empresas de construção: considerando todos os municípios, serão outlier aqueles com número de empresas acima de 15 unidades; com a redução dos municípios aos que possuem pelo menos uma empresa, serão outlier aqueles com número de empresas acima de 26 unidades. Desse modo o número de outlier passou de 746 para 524.

Veja também que inicialmente tínhamos 5570 municípios, após aplicarmos o filtro (que eliminou os municípios sem empresas de construção) passou para 3820 municípios. Isso significa que aproximadamente 31% dos municípios do Brasil no ano de 2006 não possuiam empresas de construção.

Visualizando o mapa dos municípios do Estado de São Paulo e o número de unidades de empresas da construção no ano de 2006

require(rgdal)
#Primeiro argumento da função readOGR
#Diretório onde encontram-se os arquivo da malha
#que você baixou do site do IBGE
#No meu caso são 5 arquivos denominados 35MUE250GC_SIR com diferentes extensões

#Baixei duas malhas e usei a segunda malha para fazer os mapas. Se usasse a primeira malha, o argumento  GEOCODIGO na malha SaoPaulo corresponde a CD_GEOCMU. 

SaoPaulo1 <- readOGR("C:\\Users\\TPC02\\Documents\\Disciplinas\\Mestrado Pos Civil\\1-2018", "35MUE250GC_SIR") #malha 2017
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Users\TPC02\Documents\Disciplinas\Mestrado Pos Civil\1-2018", layer: "35MUE250GC_SIR"
## with 645 features
## It has 2 fields
SaoPaulo <- readOGR("C:\\Users\\TPC02\\Documents\\Disciplinas\\Mestrado Pos Civil\\1-2018", "35mu500gc") #malha 2005
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Users\TPC02\Documents\Disciplinas\Mestrado Pos Civil\1-2018", layer: "35mu500gc"
## with 690 features
## It has 10 fields
#plot(SaoPaulo)
n=nrow(SaoPaulo1@data) #fornece o número de municípios da malha de São Paulo
n
## [1] 645
require(stringr)
tabela993munic2006=as.tibble(tabela993munic2006)
tabela=tabela993munic2006 %>%
mutate(Municipio1 = stringr::str_sub(Municipio,end= -6))

#Os municípios de São Paulo são o que possuem código iniciando com 35

tabela=tabela %>% filter(Cod>3500000&Cod<3600000)
MalhaFundida <- merge(SaoPaulo, tabela, by.x = "GEOCODIGO", by.y = "Cod", all.x = TRUE, all.y = TRUE) # left join com R base

spplot(MalhaFundida, "Unidades", main="Título do seu mapa")

Outras opções de coloração.

Opção 1:

spplot(MalhaFundida, "Unidades", col.regions = rainbow(16, start=0.1)) #start=0.1 foi usado para melhorar a diferenciação das cores. Em outras situações pode não ser necessário.

#Alternativas para colorir mapa
#rainbow(n, alpha = 1)
#heat.colors(n, alpha = 1)
#terrain.colors(n, alpha = 1)
#topo.colors(n, alpha = 1)
#cm.colors(n, alpha = 1)

Opção 2

library(viridis) # Para selecionar uma paleta de cores



#Escolhendo a palheta de cores
pal16<-viridis(16,option="C")

spplot(MalhaFundida, "Unidades", col.regions = pal16)