Problema: Desigualdade econômica entre municípios de Goiás. Objetivos específicos: Analisar a distribuição do PIB entre os municípios e identificar desigualdades regionais. Explorar tendências temporais (2002-2021), destacando municípios com maior ou menor crescimento econômico. Avaliar a contribuição setorial (agropecuário, industrial, serviços) para o PIB ao longo dos anos. Relevância: Oferecer insights sobre disparidades econômicas e setoriais que podem orientar políticas públicas e investimentos.
# Limpar o ambiente
rm(list = ls())
# Instalar e carregar o pacote pacman
if (!requireNamespace("pacman", quietly = TRUE)) {
install.packages("pacman")
}
library(pacman)
# Instalar e carregar os pacotes necessários
p_load(basedosdados, geobr, dplyr, sf, ggplot2, DBI, bigrquery, ggplot, ineq, tidyr, spdep, viridis)
## Instalando pacote em 'C:/Users/glauc/AppData/Local/R/win-library/4.4'
## (como 'lib' não foi especificado)
## Warning: pacote 'ggplot' não está disponível for this version of R
##
## Uma versão deste pacote para a sua versão do R pode estar disponível em outro lugar,
## veja as ideias em
## https://cran.r-project.org/doc/manuals/r-patched/R-admin.html#Installing-packages
## Warning: não é possível acessar o índice para o repositório http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.4:
## não foi possível abrir a URL 'http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.4/PACKAGES'
## Warning in p_install(package, character.only = TRUE, ...):
## Warning in library(package, lib.loc = lib.loc, character.only = TRUE,
## logical.return = TRUE, : não há nenhum pacote chamado 'ggplot'
## Warning in p_load(basedosdados, geobr, dplyr, sf, ggplot2, DBI, bigrquery, : Failed to install/load:
## ggplot
#2. Desenvolvimento do KDD 2.1 Coleta e pré-processamento de dados Fonte de dados: Base dos Dados, filtrada para os municípios de Goiás. Coleta: Dados já conectados via BigQuery. Já está filtrando os dados relevantes para os municípios brasileiros (tabela basedosdados.br_ibge_pib.municipio). Métodos de coleta: A coleta foi realizada diretamente com consultas SQL para obter os dados de forma estruturada. Na segunda consulta,já transformamos os tipos de dados para formatos mais adequados (de INTEGER para NUMERIC).
# Estabelecer conexão com o BigQuery
con <- dbConnect(
bigrquery::bigquery(),
billing = "projetonovo-426623", # Projeto de cobrança correto
project = "projetonovo-426623" # Projeto correto
)
# Primeira consulta: Obter todos os dados da tabela
query1 <- "
SELECT
*
FROM
`basedosdados.br_ibge_pib.municipio`;
"
# Executar a primeira consulta e armazenar os resultados
data1 <- dbGetQuery(con, query1)
## ! Using an auto-discovered, cached token.
## To suppress this message, modify your code or options to clearly consent to
## the use of a cached token.
## See gargle's "Non-interactive auth" vignette for more details:
## <https://gargle.r-lib.org/articles/non-interactive-auth.html>
## ℹ The bigrquery package is using a cached token for
## 'glaucia.lcalazans@sempreceub.com'.
## Warning in as.integer.integer64(x): NAs produced by integer overflow
## Warning in as.integer.integer64(x): NAs produced by integer overflow
## Warning in as.integer.integer64(x): NAs produced by integer overflow
## Warning in as.integer.integer64(x): NAs produced by integer overflow
## Warning in as.integer.integer64(x): NAs produced by integer overflow
## Warning in as.integer.integer64(x): NAs produced by integer overflow
## Warning in as.integer.integer64(x): NAs produced by integer overflow
# Segunda consulta: Transformar as colunas INTEGER em NUMERIC
query2 <- "
SELECT
id_municipio,
ano,
CAST(pib AS NUMERIC) AS pib,
CAST(impostos_liquidos AS NUMERIC) AS impostos_liquidos,
CAST(va AS NUMERIC) AS va,
CAST(va_agropecuaria AS NUMERIC) AS va_agropecuaria,
CAST(va_industria AS NUMERIC) AS va_industria,
CAST(va_servicos AS NUMERIC) AS va_servicos,
CAST(va_adespss AS NUMERIC) AS va_adespss
FROM
`basedosdados.br_ibge_pib.municipio`;
"
# Executar a segunda consulta e armazenar os resultados
data2 <- dbGetQuery(con, query2)
# Visualizar os primeiros registros dos dados da primeira consulta
head(data1)
## # A tibble: 6 × 9
## id_municipio ano pib impostos_liquidos va va_agropecuaria
## <chr> <int> <int> <int> <int> <int>
## 1 1100346 2002 66869000 3643000 63226000 15054000
## 2 1101500 2002 39708000 2199000 37509000 7964000
## 3 1502954 2002 55842000 2219000 53623000 9823000
## 4 1505635 2002 52055000 1346000 50709000 30760000
## 5 1506401 2002 14456000 264000 14191000 7541000
## 6 1703826 2002 4494000 142000 4352000 628000
## # ℹ 3 more variables: va_industria <int>, va_servicos <int>, va_adespss <int>
# Visualizar os primeiros registros dos dados da segunda consulta
head(data2)
## # A tibble: 6 × 9
## id_municipio ano pib impostos_liquidos va va_agropecuaria
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 1100346 2002 66869000 3643000 63226000 15054000
## 2 1101500 2002 39708000 2199000 37509000 7964000
## 3 1502954 2002 55842000 2219000 53623000 9823000
## 4 1505635 2002 52055000 1346000 50709000 30760000
## 5 1506401 2002 14456000 264000 14191000 7541000
## 6 1703826 2002 4494000 142000 4352000 628000
## # ℹ 3 more variables: va_industria <dbl>, va_servicos <dbl>, va_adespss <dbl>
Visualização da estrutura do dataframe
# Mostrar a estrutura do dataframe
str(data2)
## tibble [111,400 × 9] (S3: tbl_df/tbl/data.frame)
## $ id_municipio : chr [1:111400] "1100346" "1101500" "1502954" "1505635" ...
## $ ano : int [1:111400] 2002 2002 2002 2002 2002 2002 2002 2002 2002 2002 ...
## $ pib : num [1:111400] 66869000 39708000 55842000 52055000 14456000 ...
## $ impostos_liquidos: num [1:111400] 3643000 2199000 2219000 1346000 264000 ...
## $ va : num [1:111400] 63226000 37509000 53623000 50709000 14191000 ...
## $ va_agropecuaria : num [1:111400] 15054000 7964000 9823000 30760000 7541000 ...
## $ va_industria : num [1:111400] 3940000 3537000 5439000 4634000 698000 ...
## $ va_servicos : num [1:111400] 13954000 6140000 11420000 5513000 1473000 ...
## $ va_adespss : num [1:111400] 30277000 19868000 26941000 9801000 4480000 ...
Limpeza: Usamos a função clean_numeric_column para tratar inconsistências nas colunas numéricas. Verificou os valores ausentes (NA) no dataframe goias_data.
# 1. Função para limpar colunas numéricas
clean_numeric_column <- function(column) {
if (is.character(column) || is.factor(column)) { # Verifica se a coluna é texto
column <- gsub("\\s+", "", column) # Remove espaços em branco
column <- gsub("[^0-9,.]", "", column) # Remove caracteres não numéricos
column <- gsub(",", ".", column) # Substitui vírgulas por pontos decimais
}
column <- as.numeric(column) # Converte para numérico
return(column)
}
# 2. Aplicar a função de limpeza nas colunas e garantir que id_municipio também seja limpa
dados_limpos <- data2 %>%
mutate(across(everything(), ~ clean_numeric_column(.))) %>%
mutate(id_municipio = clean_numeric_column(id_municipio)) # Limpar e converter id_municipio
# 3. Verificar as primeiras linhas do dataframe limpo
head(dados_limpos)
## # A tibble: 6 × 9
## id_municipio ano pib impostos_liquidos va va_agropecuaria
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1100346 2002 66869000 3643000 63226000 15054000
## 2 1101500 2002 39708000 2199000 37509000 7964000
## 3 1502954 2002 55842000 2219000 53623000 9823000
## 4 1505635 2002 52055000 1346000 50709000 30760000
## 5 1506401 2002 14456000 264000 14191000 7541000
## 6 1703826 2002 4494000 142000 4352000 628000
## # ℹ 3 more variables: va_industria <dbl>, va_servicos <dbl>, va_adespss <dbl>
str(dados_limpos)
## tibble [111,400 × 9] (S3: tbl_df/tbl/data.frame)
## $ id_municipio : num [1:111400] 1100346 1101500 1502954 1505635 1506401 ...
## $ ano : num [1:111400] 2002 2002 2002 2002 2002 ...
## $ pib : num [1:111400] 66869000 39708000 55842000 52055000 14456000 ...
## $ impostos_liquidos: num [1:111400] 3643000 2199000 2219000 1346000 264000 ...
## $ va : num [1:111400] 63226000 37509000 53623000 50709000 14191000 ...
## $ va_agropecuaria : num [1:111400] 15054000 7964000 9823000 30760000 7541000 ...
## $ va_industria : num [1:111400] 3940000 3537000 5439000 4634000 698000 ...
## $ va_servicos : num [1:111400] 13954000 6140000 11420000 5513000 1473000 ...
## $ va_adespss : num [1:111400] 30277000 19868000 26941000 9801000 4480000 ...
Pré-processamento: Carrega dados geográficos utilizando a função geobr::read_municipality (fonte dos dados: biblioteca geobr, com dados do IBGE). Realiza a mesclagem dos dados geográficos com os dados de PIB por meio de left_join, integrando diferentes fontes de informações. Filtra especificamente os dados para o estado de Goiás (filter(abbrev_state == “GO”), garantindo a limpeza e preparação para análise regional.
# Carregar os dados geográficos dos municípios de Goiás
municipios_goias <- geobr::read_municipality(code_muni = "GO", year = 2020)
## Using year/date 2020
# Mesclar os dados do PIB com os dados geográficos de Goiás
merged_data <- dplyr::left_join(municipios_goias, dados_limpos, by = c("code_muni" = "id_municipio"))
# Filtrar os dados para o estado de Goiás (GO)
goias_data <- merged_data %>%
filter(abbrev_state == "GO")
# Verificar os primeiros registros dos dados filtrados
head(goias_data)
## Simple feature collection with 6 features and 15 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -49.55353 ymin: -16.86425 xmax: -49.38395 ymax: -16.71646
## Geodetic CRS: SIRGAS 2000
## code_muni name_muni code_state abbrev_state name_state code_region
## 1 5200050 Abadia De Goiás 52 GO Goiás 5
## 2 5200050 Abadia De Goiás 52 GO Goiás 5
## 3 5200050 Abadia De Goiás 52 GO Goiás 5
## 4 5200050 Abadia De Goiás 52 GO Goiás 5
## 5 5200050 Abadia De Goiás 52 GO Goiás 5
## 6 5200050 Abadia De Goiás 52 GO Goiás 5
## name_region ano pib impostos_liquidos va va_agropecuaria
## 1 Centro Oeste 2002 19813000 1617000 18196000 1674000
## 2 Centro Oeste 2003 22773000 1510000 21263000 2037000
## 3 Centro Oeste 2004 23756000 1314000 22442000 3044000
## 4 Centro Oeste 2005 28156000 1589000 26567000 2269000
## 5 Centro Oeste 2006 31165000 1787000 29378000 2041000
## 6 Centro Oeste 2007 34506000 2222000 32283000 2269000
## va_industria va_servicos va_adespss geom
## 1 4841000 5790000 5891000 MULTIPOLYGON (((-49.4444 -1...
## 2 4734000 7057000 7436000 MULTIPOLYGON (((-49.4444 -1...
## 3 3980000 7148000 8269000 MULTIPOLYGON (((-49.4444 -1...
## 4 5592000 9468000 9238000 MULTIPOLYGON (((-49.4444 -1...
## 5 6592000 10250000 10495000 MULTIPOLYGON (((-49.4444 -1...
## 6 8060000 10933000 11022000 MULTIPOLYGON (((-49.4444 -1...
Ainda conferindo a etapa de limpeza
# Verificar a quantidade de NAs nas colunas numéricas do dataframe goias_data
na_counts_goias <- goias_data %>%
select(where(is.numeric)) %>% # Seleciona apenas as colunas numéricas
sapply(function(x) sum(is.na(x))) # Conta os NAs em cada coluna numérica
# Visualizar a quantidade de NAs por coluna
na_counts_goias
## code_muni code_state code_region ano
## 0 0 0 0
## pib impostos_liquidos va va_agropecuaria
## 0 0 0 0
## va_industria va_servicos va_adespss geom
## 0 0 0 0
2.2 Seleção de dados Na etapa de seleção de dados, foram escolhidos os atributos mais relevantes para a análise econômica, como PIB, valores adicionados por setor (agropecuária, indústria, serviços), e o ano, por serem essenciais para entender a distribuição e evolução econômica dos municípios.
O critério principal para seleção das instâncias foi a filtragem geográfica, limitando a análise aos municípios de Goiás, garantindo foco regional. A integração dos dados do PIB com os dados geográficos usando o código do município (id_municipio) permitiu um cruzamento consistente, assegurando a qualidade e representatividade dos dados para a análise. Impacto: Redução de ruído e otimização para análises relevantes.
#2.3 Transformação de dados Transformações feitas: Preparamos os dados para serem cruzados com informações geográficas (left_join com dados do geobr). Tratamos colunas numéricas para garantir consistência.
#2.4 Mineração de dados
Análises conduzidas: Gráficos de dispersão (PIB x VA) e a análise de tendência com linha de regressão.
# Gráfico de dispersão entre PIB e VA com linha vermelha de regressão no dataframe goias_data
ggplot(goias_data, aes(x = va, y = pib)) +
geom_point(aes(color = ano)) + # Pontos de dispersão coloridos por ano
geom_smooth(method = "lm", color = "red", se = FALSE) + # Linha de regressão vermelha
theme_minimal() +
labs(title = "Dispersão entre PIB e VA com Linha de Regressão",
x = "Valor Adicionado", y = "PIB") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
## `geom_smooth()` using formula = 'y ~ x'
Interpretação do gráfico Correlação PIB x Valor Adicionado (VA): O
gráfico evidencia uma forte relação linear entre o PIB e o Valor
Adicionado (VA), o que é esperado, já que o VA é um componente do
cálculo do PIB. Isso demonstra que, à medida que o Valor Adicionado
aumenta (indústria, agropecuária, serviços), o PIB cresce
proporcionalmente.
Linha de Regressão: A linha de regressão (vermelha) confirma a tendência de crescimento linear, com os pontos bem ajustados à linha. Isso sugere baixa variabilidade ou presença de outliers significativos.
Análise Temporal: A coloração dos pontos (escala azul) indica uma evolução temporal. Municípios com maior PIB tendem a estar nos anos mais recentes (tons mais claros). Isso sugere um aumento econômico geral na última década.
Justificativa para escolha dessa análise: Visualização é uma ferramenta de mineração usada para explorar os dados e identificar relações.
Análises conduzidas: Gráfico de crescimento do PIB ao longo dos ano
# Calcular a média do PIB por município
top_5_municipios_pib <- goias_data %>%
group_by(name_muni) %>%
summarise(pib_medio = mean(pib, na.rm = TRUE)) %>%
arrange(desc(pib_medio)) %>%
head(5)
# Filtrar os dados para os 5 municípios com maior PIB médio
top_5_municipios_data <- goias_data %>%
filter(name_muni %in% top_5_municipios_pib$name_muni)
#Plotando um gráfico de linhas de tendência
top_5_municipios_data %>%
group_by(name_muni, ano) %>%
summarise(pib_total = sum(pib, na.rm = TRUE)) %>%
ggplot(aes(x = ano, y = pib_total, color = name_muni)) +
geom_line() +
labs(title = "Crescimento do PIB dos Top 5 Municípios", x = "Ano", y = "PIB Total") +
theme_minimal()
## `summarise()` has grouped output by 'name_muni'. You can override using the
## `.groups` argument.
Interpretação O gráfico mostra o crescimento do PIB total ao longo do
tempo (2002-2021) para os cinco municípios com maior PIB no estado de
Goiás. Aqui estão algumas formas de interpretar o gráfico:
Análises conduzidas: Mineração de dados - técnica de segmentação (ou classificação) dos municípios com base no PIB percentual Categorização do PIB percentual em diferentes grupos (Baixo, Moderado, Alto, Muito Alto)
# Filtrar dados de 2021
goias_data_2021 <- goias_data %>%
filter(ano == 2021) %>%
mutate(pib_percentual = pib / sum(pib, na.rm = TRUE))
# Criar categorias com base no percentual do PIB
goias_data_2021 <- goias_data_2021 %>%
mutate(
categoria = case_when(
pib_percentual <= 0.01 ~ "Baixo",
pib_percentual <= 0.05 ~ "Moderado",
pib_percentual <= 0.1 ~ "Alto",
TRUE ~ "Muito Alto"
)
)
# Gerar o mapa com categorias
ggplot(data = goias_data_2021) +
geom_sf(aes(fill = categoria), color = "white", size = 0.2) +
scale_fill_manual(
values = c(
"Baixo" = "#a6cee3",
"Moderado" = "#cab2d6",
"Alto" = "#1f78b4",
"Muito Alto" = "#08306b"
),
name = "Categoria"
) +
labs(
title = "Contribuição Percentual do PIB por Município - Goiás (2021)",
subtitle = "Categorias Ajustadas",
caption = "Elaboração própria"
) +
theme_minimal() +
theme(
legend.position = "right",
legend.title = element_text(size = 12),
legend.text = element_text(size = 10)
)
Interpretação do Mapa Objetivo do Mapa: O mapa mostra a contribuição
percentual do PIB por município no estado de Goiás em 2021,
categorizando os municípios em quatro faixas: “Baixo”, “Moderado”,
“Alto” e “Muito Alto”.
Categorias Representadas:
Baixo (Azul claro): Municípios com menor percentual de contribuição ao PIB total do estado. Moderado (Lilás): Municípios com contribuição intermediária. Alto (Azul médio): Municípios que contribuem significativamente, mas não de forma predominante. Muito Alto (Azul escuro): Municípios com as maiores contribuições percentuais. Destaques do Mapa:
Os municípios com Alto e Muito Alto destaque econômico (azul médio e azul escuro) estão centralizados em regiões com maiores polos industriais, agrícolas ou serviços. Catalão aparece como “Alto”, pois foi manualmente ajustado para essa categoria, refletindo sua relevância econômica. Desigualdades Regionais:
Observa-se uma concentração de municípios classificados como “Baixo”, indicando que muitas cidades têm baixa participação no PIB estadual. Os municípios com maior contribuição (azul escuro) indicam centros econômicos regionais, como Goiânia e Aparecida de Goiânia. Técnicas Aplicadas no Mapa Normalização:
O PIB de cada município foi dividido pelo PIB total do estado para calcular a proporção percentual de contribuição. Isso permite comparar municípios com populações e economias muito diferentes em uma mesma escala relativa.
Justificativa da escolha dessa análise: a segmentação dos municípios com base na contribuição percentual do PIB facilita a análise espacial e permite identificar áreas com diferentes níveis de desenvolvimento econômico. Isso pode fornecer insights sobre desigualdades regionais e ajudar na definição de políticas públicas.
#Informações das top 10 cidades para inclusão no entendimento do Mapa.
# Ordenar os municípios por contribuição percentual do PIB em ordem decrescente
maiores_contribuicoes <- goias_data_2021 %>%
select(name_muni, pib_percentual) %>% # Selecionar apenas os campos relevantes
arrange(desc(pib_percentual)) %>% # Ordenar por maior PIB percentual
slice_head(n = 20) # Alterar o número de cidades aqui (ex: 20)
# Exibir a tabela com as maiores contribuições
print(maiores_contribuicoes)
## Simple feature collection with 20 features and 2 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -53.2485 ymin: -18.77043 xmax: -46.83568 ymax: -14.53552
## Geodetic CRS: SIRGAS 2000
## First 10 features:
## name_muni pib_percentual geom
## 1 Goiânia 0.22203190 MULTIPOLYGON (((-49.17655 -...
## 2 Anápolis 0.06597348 MULTIPOLYGON (((-49.12301 -...
## 3 Aparecida De Goiânia 0.06297562 MULTIPOLYGON (((-49.25908 -...
## 4 Rio Verde 0.06047695 MULTIPOLYGON (((-50.9453 -1...
## 5 Catalão 0.03677835 MULTIPOLYGON (((-47.53267 -...
## 6 Jataí 0.02965842 MULTIPOLYGON (((-51.74423 -...
## 7 Luziânia 0.02015884 MULTIPOLYGON (((-47.96147 -...
## 8 Itumbiara 0.01974696 MULTIPOLYGON (((-49.09939 -...
## 9 Senador Canedo 0.01767283 MULTIPOLYGON (((-49.07802 -...
## 10 Cristalina 0.01706915 MULTIPOLYGON (((-47.51101 -...
Análises conduzidas:
Gráfico de Análise setorial dos 5 Municípios com maior PIB médio (O gráfico criado é uma etapa de exploração e visualização de dados, essencial para análise preliminar. Ele ajuda a entender a distribuição dos setores econômicos por município)
# Ordenando os municípios pela soma do PIB de forma crescente
top_5_municipios_data %>%
gather(key = "setor", value = "valor", va_agropecuaria:va_servicos) %>%
mutate(name_muni = factor(name_muni, levels = top_5_municipios_data %>%
group_by(name_muni) %>%
summarise(pib_total = sum(pib, na.rm = TRUE)) %>%
arrange(pib_total) %>%
pull(name_muni))) %>%
ggplot(aes(x = name_muni, y = valor, fill = setor)) +
geom_bar(stat = "identity", position = "dodge") +
labs(
title = "Comparação dos Setores Econômicos nos 5 Municípios com Maior PIB Médio",
x = "Município",
y = "Valor Adicionado",
fill = "Município" # Alterando o nome da legenda para "Município"
) +
theme_minimal()
Dados Utilizados: Valores do PIB dos 5 municípios com maior evolução do PIB em Goiás. Padronização: Os dados foram escalados para remover efeitos de magnitude. Número de Clusters (K): Escolhemos K = 3 para agrupar os municípios em três níveis distintos de evolução do PIB.
O K-means é um algoritmo de aprendizado não supervisionado utilizado para agrupar dados com base em suas características, minimizando a distância entre pontos e seus centroides. No projeto, ele foi aplicado para identificar padrões na evolução do PIB dos cinco municípios de Goiás com maior crescimento, utilizando três clusters. Goiânia se destacou com PIB significativamente superior, formando um cluster isolado, enquanto os demais municípios foram agrupados em níveis intermediários e baixos, evidenciando uma concentração de riqueza. A análise pode orientar políticas públicas para reduzir disparidades, embora o K-means tenha limitações, como a necessidade de definir o número de clusters e a sensibilidade a outliers. Essa abordagem demonstrou ser eficaz para apoiar decisões econômicas estratégicas.
# Verificar a estrutura do dataset top_5_municipios_data
str(top_5_municipios_data)
## Classes 'sf' and 'data.frame': 100 obs. of 16 variables:
## $ code_muni : num 5201108 5201108 5201108 5201108 5201108 ...
## $ name_muni : chr "Anápolis" "Anápolis" "Anápolis" "Anápolis" ...
## $ code_state : num 52 52 52 52 52 52 52 52 52 52 ...
## $ abbrev_state : chr "GO" "GO" "GO" "GO" ...
## $ name_state : chr "Goiás" "Goiás" "Goiás" "Goiás" ...
## $ code_region : num 5 5 5 5 5 5 5 5 5 5 ...
## $ name_region : chr "Centro Oeste" "Centro Oeste" "Centro Oeste" "Centro Oeste" ...
## $ ano : num 2002 2003 2004 2005 2006 ...
## $ pib : num 2.21e+09 2.69e+09 2.79e+09 3.07e+09 4.17e+09 ...
## $ impostos_liquidos: num 3.88e+08 4.48e+08 3.70e+08 4.13e+08 6.15e+08 ...
## $ va : num 1.82e+09 2.24e+09 2.42e+09 2.65e+09 3.55e+09 ...
## $ va_agropecuaria : num 15144000 17303000 17233000 14563000 13741000 ...
## $ va_industria : num 6.10e+08 8.00e+08 8.42e+08 9.30e+08 1.24e+09 ...
## $ va_servicos : num 9.16e+08 1.09e+09 1.17e+09 1.29e+09 1.81e+09 ...
## $ va_adespss : num 2.83e+08 3.28e+08 3.89e+08 4.21e+08 4.80e+08 ...
## $ geom :sfc_MULTIPOLYGON of length 100; first list element: List of 1
## ..$ :List of 1
## .. ..$ : num [1:208, 1:2] -49.1 -49.1 -49.1 -49.1 -49.1 ...
## ..- attr(*, "class")= chr [1:3] "XY" "MULTIPOLYGON" "sfg"
## - attr(*, "sf_column")= chr "geom"
## - attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA NA NA NA NA NA NA NA NA ...
## ..- attr(*, "names")= chr [1:15] "code_muni" "name_muni" "code_state" "abbrev_state" ...
# Calcular a diferença do PIB entre o primeiro e o último ano para cada município
pib_diff <- top_5_municipios_data %>%
as_tibble() %>% # Garantir que estamos trabalhando com um tibble (data.frame)
group_by(name_muni) %>% # Agrupar por município
summarise(evolucao_pib = max(pib, na.rm = TRUE) - min(pib, na.rm = TRUE)) %>%
arrange(desc(evolucao_pib))
# Selecionar os 5 municípios com maior evolução do PIB
top5_municipios <- pib_diff %>%
top_n(5, evolucao_pib) %>%
pull(name_muni)
# Filtrar os dados para esses 5 municípios
top5_data <- top_5_municipios_data %>%
filter(name_muni %in% top5_municipios) %>%
select(name_muni, pib)
# Padronizar os dados
pib_scaled <- scale(top5_data$pib)
# Aplicar k-means clustering
set.seed(123)
kmeans_result <- kmeans(pib_scaled, centers = 3) # Definindo 3 clusters
# Adicionar os resultados do clustering ao data frame
top5_data$cluster <- as.factor(kmeans_result$cluster)
# Visualizar os clusters
ggplot(top5_data, aes(x = name_muni, y = pib, color = cluster)) +
geom_point(size = 3) +
labs(
title = "Clusters dos 5 Municípios com Maior Evolução do PIB em Goiás",
x = "Município",
y = "PIB",
color = "Cluster"
) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
Interpretação do Gráfico
Pontos: Cada ponto representa o PIB de um município em um ano específico.
O gráfico gerado exibe a distribuição dos PIBs dos cinco municípios de Goiás com maior evolução do PIB ao longo do tempo. Os municípios são: Anápolis, Aparecida de Goiânia,Catalão, Goiânia, Rio Verde
Clusters Identificados
Cluster 1 (vermelho): Inclui a maioria dos municípios com PIBs menores e relativamente próximos em termos de evolução.
Cluster 2 (verde): Agrupa valores de PIB significativamente altos. Goiânia é o único município que apresenta esses valores, indicando uma disparidade grande em relação aos demais municípios.
Cluster 3 (azul): Possui PIBs intermediários, representando uma evolução maior do que a média, mas sem atingir os níveis do cluster 2.
Interpretação:
Goiânia se destaca como uma exceção com valores de PIB muito superiores, sugerindo que ela tem um papel econômico de liderança no estado. Isso justifica seu agrupamento no cluster 2. Os demais municípios, apesar de terem evoluções consideráveis, ainda estão agrupados majoritariamente nos clusters 1 e 3, o que mostra que suas evoluções não se aproximam tanto do nível de Goiânia. Essa análise pode ser útil para identificar possíveis estratégias de desenvolvimento focadas em diminuir essa disparidade entre Goiânia e os outros municípios.
Gráfico de Pizza para ver o percentual de contribuição dos setores em comparaçao com todo o Estado de Goiás.
# Calcular a média do percentual de contribuição setorial em Goiás
setores_goias <- dados_limpos %>%
mutate(
perc_agropecuaria = va_agropecuaria / pib * 100,
perc_industria = va_industria / pib * 100,
perc_servicos = va_servicos / pib * 100,
perc_impostos_liquidos = impostos_liquidos / pib * 100,
perc_administracao_publica = va_adespss / pib * 100
) %>%
summarise(
perc_agropecuaria = mean(perc_agropecuaria, na.rm = TRUE),
perc_industria = mean(perc_industria, na.rm = TRUE),
perc_servicos = mean(perc_servicos, na.rm = TRUE),
perc_impostos_liquidos = mean(perc_impostos_liquidos, na.rm = TRUE),
perc_administracao_publica = mean(perc_administracao_publica, na.rm = TRUE)
) %>%
pivot_longer(cols = starts_with("perc_"), names_to = "setor", values_to = "percentual") %>%
mutate(
setor = factor(setor,
levels = c("perc_agropecuaria", "perc_industria", "perc_servicos", "perc_impostos_liquidos", "perc_administracao_publica"),
labels = c("Agropecuária", "Indústria", "Serviços", "Impostos Líquidos", "Administração Pública"))
)
# Criar o gráfico de pizza com valores percentuais na legenda
ggplot(setores_goias, aes(x = "", y = percentual, fill = setor)) +
geom_bar(stat = "identity", width = 1) +
coord_polar(theta = "y") +
scale_fill_viridis_d() +
labs(
title = "Contribuição Percentual dos Setores ao PIB Médio de Goiás",
x = NULL, y = NULL,
fill = "Setor"
) +
theme_minimal() +
theme(axis.text.x = element_blank(), axis.ticks = element_blank()) +
geom_text(
aes(label = paste0(round(percentual, 1), "%")), # Apenas a porcentagem
position = position_stack(vjust = 0.5),
color = "black",
size = 3.5
)
Interpretação do Gráfico: O gráfico de pizza apresenta a contribuição
percentual de cada setor econômico para o PIB médio de Goiás. As
categorias destacadas são:
Administração Pública: Contribui com 31.3% do PIB médio de Goiás, sendo o setor com a maior participação. Serviços: Contribui com 29.2%, quase tanto quanto a administração pública, mostrando a importância do setor de serviços para a economia. Agropecuária: Com 20.6%, a agropecuária é o terceiro setor em importância, destacando o papel significativo da agricultura no estado. Indústria: Contribui com 12.4%, mostrando um papel menor comparado aos outros setores, mas ainda assim vital. Impostos Líquidos: Com 6.6%, este é o setor com a menor contribuição ao PIB médio.
Considerações: Este gráfico permite visualizar rapidamente quais setores têm maior peso no PIB de Goiás e entender a estrutura econômica do estado. A predominância dos serviços e da indústria destaca a diversificação econômica, enquanto a agropecuária mantém uma contribuição sólida, refletindo a importância do setor agrícola para o estado. A análise dos impostos líquidos e da administração pública mostra como a economia é influenciada por políticas e receitas governamentais.
Essas informações são cruciais para decisões de planejamento econômico, investimento e políticas públicas, pois evidenciam os setores mais relevantes que devem receber atenção para impulsionar o desenvolvimento e a sustentabilidade da economia local.
Justificativa da escolha dessa análise: A escolha dessas colunas foi feita para focar na análise das contribuições dos setores relevantes para o PIB médio, permitindo a visualização de sua importância relativa. Essa escolha ajuda a destacar os setores mais significativos e a identificar onde há uma maior concentração de contribuição econômica. O código inclui a transformação dos dados de forma a calcular as médias percentuais de cada setor. Em seguida, é feita uma conversão e reorganização com pivot_longer() para criar um formato adequado para a visualização em um gráfico de pizza. O gráfico e o código fornecido são parte de uma análise exploratória dos dados que prepara o caminho para um entendimento mais profundo e a aplicação de métodos de mineração de dados mais avançados que realizamos.
##Conclusão:
Para reduzir a disparidade no setor de serviços entre Goiânia e os demais municípios de Goiás, é essencial descentralizar a economia por meio de incentivos fiscais, capacitação profissional e estímulo ao empreendedorismo. Investimentos em infraestrutura, conectividade digital e melhoria do ambiente de negócios são fundamentais para atrair empresas de serviços e fomentar o desenvolvimento regional. Além disso, a criação de centros regionais de serviços públicos e a promoção do turismo podem diversificar a economia local. Parcerias público-privadas e desburocratização também são estratégias-chave para gerar empregos, atrair investimentos e promover um crescimento econômico mais equilibrado e sustentável em todo o estado.