Desafio 5: Análises Avançados de Tipos de Dados Diversos

O prazo para entregar Desafio 5 por email com título “[FLS6397] - D5” à minha conta é 22/07/2021. Por favor entregue (i) o arquivo .Rmd (ou .Rnw se preferir), e (ii) o arquivo .html ou .PDF.


Instruções

Siga as instruções abaixo. Documente todos os seus passos em um script. Comente no seu script todos os seus passos e explique a si mesma(o) suas escolhas e estratégias. Se você se beneficiou da assistência de outra pessoa, sempre reconheça isso em comentários no código.

Roteiro

Análise Espacial

  1. Instale e abra o pacote geobr do IBGE. Leia as instruções no site de github sobre o pacote e use a função read_municipality() para acessar todos os municípios do estado de São Paulo em 2018.
# install.packages("geobr")
library("tidyverse")
library("sf")
library("geobr")
library("rmarkdown")
library("knitr")

muns_SP <- read_municipality(code_muni="SP", year=2018)
  1. Use a funcionalidade da família de map para aplicar a função read_municipality para os seguintes cinco estados seguintes em uma única linha de código: SP, RJ, MT, RS e RN (todos para o ano de 2018).
estados <- c("SP", "RJ", "MT", "RS", "RN")

muns_estados <- estados %>% map(read_municipality, year=2018)
  1. Baixe, descompacte e abre em R o arquivo da população paulista por município em 2010 do site do IBGE, clicando em ‘Censos’ -> ‘Censo_Demografico_2010’ -> ‘resultados’ -> ‘total_populacao_sao_paulo.zip’.
library("readxl")

popn_sp <- read_excel("total_populacao_sao_paulo/total_populacao_sao_paulo.xls") %>% slice(-((n()-1):n())) 

# obs: As duas últimas linhas na planilha contém dados de resumo que não são observações: 
#o total do estado e o link do site do IBGE de onde a planilha foi tirada.
#Idealmente, devemos tirar elas, mas por sorte provavalmente eles estarão tirados com o left_join na próxima questão. 
  1. Queremos mapear dados da população por município. Identifique a chave apropriada, e cruze o banco da população com o banco das fronteiras dos municípios de SP.
popn_sp <- popn_sp %>% mutate(code_muni=as.numeric(`Código do município`))

muns_SP <- muns_SP %>% left_join(popn_sp, by="code_muni")
  1. Usando o seu banco de dados de Questão 4, calcule a proporção da população urbana na população total em cada município e apresente os seus resultados por meio de um mapa bem-formatado dessa taxa por município em 2010. Aplique uma escala de cores e formatação apropriada.
muns_SP <- muns_SP %>% mutate(taxa_urbana=100*(`Total da população urbana`/`Total da população 2010`)) 

muns_SP %>%
  ggplot() +
  geom_sf(aes(fill=taxa_urbana)) +
  scale_fill_gradient2(name="% Urbana", low="dark green", mid="white", high="red", midpoint=50) +
  theme_void() +
  ggtitle("População Urbana por Município de São Paulo")

Testes Estatísticos e Regressões

  1. Usando o banco de dados de Questão 5, faça um teste de shapiro para avaliar se a taxa de urbanização dos municípios de SP é distribuída de forma normal.
muns_SP %>% pull(taxa_urbana) %>% shapiro.test()

    Shapiro-Wilk normality test

data:  .
W = 0.86591, p-value < 2.2e-16
  1. Usando os mesmos dados de SP, execute uma regressão linear para avaliar se a taxa de urbanização dos municípios (a variável dependente) é associada com a população total do município (a variável independente). Ou seja, se maiores municípios são mais urbanizados. Apresente o resultado numa tabela de regressão bem-formatada.
library("stargazer")

muns_SP %>% lm(taxa_urbana ~  + `Total da população 2010`, data=.)  %>% 
  stargazer(type="html", title="Preditores da Taxa Urbana por Município")
Preditores da Taxa Urbana por Município
Dependent variable:
taxa_urbana
Total da população 2010 0.00000***
(0.00000)
Constant 84.034***
(0.565)
Observations 645
R2 0.013
Adjusted R2 0.012
Residual Std. Error 14.214 (df = 643)
F Statistic 8.558*** (df = 1; 643)
Note: p<0.1; p<0.05; p<0.01
  1. Mostre um gráfico do efeito marginal (o coeficiente) da variável da população na regressão da questão anterior em Questão 8 e o intervalo de confiança do coeficiente.
library("broom")
muns_SP %>% lm(taxa_urbana ~  + `Total da população 2010`, data=.) %>% 
  tidy() %>%
  mutate(conf.lo=estimate-1.96*std.error,
         conf.hi=estimate+1.96*std.error) %>%
  filter(term!="(Intercept)") %>%
  ggplot() +
  geom_point(aes(x=term, y=estimate)) +
  geom_errorbar(aes(x=term, y=estimate, ymin=conf.lo, ymax=conf.hi), width=0.1) +
  geom_hline(yintercept=0, lty=2) +
  theme_classic() +
  ggtitle("Efeito Marginal do Coefficiente da Regressão de Questão 8") +
  xlab("Variável") +
  ylab("Coeficiente")