Padrões Econômicos e Desigualdades Regionais em Goiás: Um Estudo de Caso dos Municípios Principais.
Realizamos uma análise abrangente sobre o Produto Interno Bruto (PIB) dos municípios do estado de Goiás. Utilizamos dados obtidos do BigQuery e informações geográficas para investigar diferentes aspectos econômicos e a distribuição de riqueza entre os municípios. As análises incluem a visualização da distribuição do PIB, a evolução do PIB ao longo dos anos, a contribuição dos diferentes setores econômicos, a desigualdade medida pelo índice de Gini, a sazonalidade do PIB, a variação percentual do PIB, a correlação entre PIB per capita e população, a análise de clusters e a análise do PIB per capita. A seguir, apresentamos os resultados dessas análises e sugerimos soluções para promover um desenvolvimento econômico mais equilibrado no estado.
Limpeza e Instalação dos Pacotes.
Nesse trecho de código em R, o objetivo é limpar o ambiente de
trabalho inicializando-o sem quaisquer objetos presentes
(rm(list = ls())). Em seguida, utiliza-se o pacote
pacman para verificar se está instalado; caso não esteja, é
instalado. O pacman é então usado para carregar uma série
de pacotes necessários para a análise de dados e visualização, como
basedosdados, geobr, dplyr,
sf, ggplot2, DBI,
bigrquery, ggplot, ineq e
tidyr. Esses pacotes são essenciais para manipulação de
dados, operações espaciais, visualização gráfica, conexão a bancos de
dados e cálculos de desigualdade, entre outras funcionalidades
analíticas e estatísticas em R.
# 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)## 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
Conexão e obtenção de dados do BigQuery.
Nesse trecho de código em R, o objetivo é estabelecer uma conexão com
o BigQuery, um serviço de banco de dados na nuvem do Google, utilizando
a função dbConnect do pacote bigrquery. Para
isso, são fornecidos parâmetros essenciais como billing,
que especifica o projeto de cobrança associado à conta de usuário, e
project, que indica o projeto no BigQuery onde estão os
dados desejados, neste caso, “basedosdados”. Em seguida, é definida uma
consulta SQL através da variável query, que seleciona todos
os dados da tabela basedosdados.br_ibge_pib.municipio no
BigQuery. A função dbGetQuery é então utilizada para
executar essa consulta através da conexão estabelecida
(con) e obter os resultados, que são armazenados na
variável data. Por fim, é exibido um preview dos primeiros
registros dos dados com a função head(data), permitindo uma
verificação inicial da estrutura e conteúdo dos dados recuperados do
BigQuery. Este processo é fundamental para acessar e explorar grandes
conjuntos de dados armazenados na nuvem de forma eficiente e escalável
usando R.
# Estabelecer conexão com o BigQuery
con <- dbConnect(
bigrquery::bigquery(),
billing = "projetonovo-426623",
project = "basedosdados"
)
# Executar uma consulta no BigQuery e obter os dados
query <- "SELECT * FROM basedosdados.br_ibge_pib.municipio"
data <- dbGetQuery(con, query)## ! 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'.
## # A tibble: 6 × 9
## id_municipio ano pib impostos_liquidos va va_agropecuaria
## <chr> <int> <int> <int> <int> <int>
## 1 1200500 2002 125410 2474 122936 42357
## 2 1300300 2002 76039 1632 74407 34073
## 3 1302108 2002 13798 324 13474 1568
## 4 1400175 2002 38787 918 37868 4671
## 5 1502400 2002 498849 58905 439944 18100
## 6 1503705 2002 81756 2760 78995 17832
## # ℹ 3 more variables: va_industria <int>, va_servicos <int>, va_adespss <int>
Organização e limpeza dos dados - Biblioteca Geobr.
Neste código em R, os dados dos municípios de Goiás são integrados com informações econômicas usando a biblioteca geobr para obter dados geográficos atualizados dos municípios brasileiros para o ano de 2020. Primeiramente, os dados econômicos são obtidos de uma tabela no BigQuery através da biblioteca bigrquery, onde são selecionadas informações como o Produto Interno Bruto (PIB) e seus componentes por município.
A seguir, são descritas as etapas de organização e limpeza dos dados:
Mesclagem dos Dados do PIB com Dados Geográficos dos Municípios: Os dados geográficos dos municípios são lidos e armazenados na variável municipios. A função left_join do pacote dplyr é utilizada para mesclar esses dados com base no código do município, criando o merged_data. Em seguida, são filtrados apenas os dados relativos ao estado de Goiás (goias_data).
Renomeação das Colunas para Nomes Mais Descritivos: As colunas relevantes são renomeadas no dataframe resultante (goias_data_cleaned) para nomes mais descritivos, facilitando a compreensão e manipulação dos dados.
Limpeza das Colunas Numéricas: É definida uma função clean_numeric_column para limpar e converter as colunas numéricas de valores econômicos. Esta função remove espaços, caracteres não numéricos e substitui vírgulas por pontos, garantindo que os dados estejam no formato adequado para análise.
Conversão das Colunas Necessárias para o Tipo Numérico: As transformações numéricas são aplicadas usando um loop for para garantir que todas as colunas relevantes estejam no formato numérico, permitindo cálculos e análises precisas.
Após essas etapas, os nomes das colunas renomeadas são verificados e um resumo estatístico dos dados limpos é exibido. Este processo prepara os dados para análise posterior, garantindo a qualidade na manipulação de informações econômicas dos municípios de Goiás.
# Obter dados dos municípios com a biblioteca geobr
municipios <- geobr::read_municipality(year = 2020)## Using year/date 2020
## | | | 0% | |=== | 4% | |===== | 7% | |======== | 11% | |========== | 15% | |============= | 19% | |================ | 22% | |================== | 26% | |===================== | 30% | |======================= | 33% | |========================== | 37% | |============================= | 41% | |=============================== | 44% | |================================== | 48% | |==================================== | 52% | |======================================= | 56% | |========================================= | 59% | |============================================ | 63% | |=============================================== | 67% | |================================================= | 70% | |==================================================== | 74% | |====================================================== | 78% | |========================================================= | 81% | |============================================================ | 85% | |============================================================== | 89% | |================================================================= | 93% | |=================================================================== | 96% | |======================================================================| 100%
# Converter `id_municipio` para numérico
data$id_municipio <- as.numeric(data$id_municipio)
# Mesclar os dados do PIB com os dados geográficos dos municípios
merged_data <- dplyr::left_join(municipios, data, by = c("code_muni" = "id_municipio"))
# Filtrar os dados para o estado de Goiás (GO)
goias_data <- merged_data %>%
filter(abbrev_state == "GO")
# Função para limpar colunas numéricas
clean_numeric_column <- function(column) {
column <- gsub("\\s+", "", column) # Remover espaços em branco
column <- gsub("[^0-9,.]", "", column) # Remover caracteres não numéricos, exceto ponto e vírgula
column <- gsub(",", ".", column) # Substituir vírgulas por pontos
column <- as.numeric(column) # Converter para numérico
return(column)
}
# Renomear as colunas do data frame e limpar colunas numéricas
goias_data_cleaned <- goias_data %>%
rename(
codigo_municipio = code_muni,
nome_municipio = name_muni,
codigo_estado = code_state,
sigla_estado = abbrev_state,
nome_estado = name_state,
codigo_regiao = code_region,
nome_regiao = name_region,
ano = ano,
pib = pib,
impostos_liquidos = impostos_liquidos,
valor_adicionado = va,
valor_agropecuaria = va_agropecuaria,
valor_industria = va_industria,
valor_servicos = va_servicos,
valor_administracao_publica = va_adespss,
geometria = geom
)
# List of numeric columns to clean
numeric_columns <- c("pib", "impostos_liquidos", "valor_adicionado", "valor_agropecuaria", "valor_industria", "valor_servicos", "valor_administracao_publica")
# Apply the cleaning function to the numeric columns
for (col in numeric_columns) {
goias_data_cleaned[[col]] <- clean_numeric_column(goias_data_cleaned[[col]])
}
# Verificar os nomes das colunas renomeadas
colnames(goias_data_cleaned)## [1] "codigo_municipio" "nome_municipio"
## [3] "codigo_estado" "sigla_estado"
## [5] "nome_estado" "codigo_regiao"
## [7] "nome_regiao" "ano"
## [9] "pib" "impostos_liquidos"
## [11] "valor_adicionado" "valor_agropecuaria"
## [13] "valor_industria" "valor_servicos"
## [15] "valor_administracao_publica" "geometria"
## codigo_municipio nome_municipio codigo_estado sigla_estado
## Min. :5200050 Length:4920 Min. :52 Length:4920
## 1st Qu.:5205406 Class :character 1st Qu.:52 Class :character
## Median :5211454 Mode :character Median :52 Mode :character
## Mean :5211336 Mean :52
## 3rd Qu.:5217302 3rd Qu.:52
## Max. :5222302 Max. :52
## nome_estado codigo_regiao nome_regiao ano
## Length:4920 Min. :5 Length:4920 Min. :2002
## Class :character 1st Qu.:5 Class :character 1st Qu.:2007
## Mode :character Median :5 Mode :character Median :2012
## Mean :5 Mean :2012
## 3rd Qu.:5 3rd Qu.:2016
## Max. :5 Max. :2021
## pib impostos_liquidos valor_adicionado valor_agropecuaria
## Min. : 4736 Min. : 199 Min. : 4537 Min. : 131
## 1st Qu.: 42097 1st Qu.: 2144 1st Qu.: 39636 1st Qu.: 8860
## Median : 98824 Median : 5986 Median : 92990 Median : 20377
## Mean : 533702 Mean : 60950 Mean : 472845 Mean : 57982
## 3rd Qu.: 297578 3rd Qu.: 23174 3rd Qu.: 275545 3rd Qu.: 52326
## Max. :59865990 Max. :8709448 Max. :51156542 Max. :3694787
## valor_industria valor_servicos valor_administracao_publica
## Min. : 170 Min. : 1266 Min. : 2070
## 1st Qu.: 2364 1st Qu.: 10329 1st Qu.: 10886
## Median : 7940 Median : 26596 Median : 20114
## Mean : 114628 Mean : 223912 Mean : 76424
## 3rd Qu.: 47459 3rd Qu.: 93462 3rd Qu.: 46573
## Max. :8482234 Max. :34799549 Max. :7797640
## geometria
## MULTIPOLYGON :4920
## epsg:4674 : 0
## +proj=long...: 0
##
##
##
Análise Exploratória de Dados (EDA)
Boxplot do PIB nos municípios de Goiás
A partir do boxplot do PIB dos municípios de Goiás, observa-se uma distribuição extremamente assimétrica, com a maioria dos municípios apresentando PIBs muito baixos, e apenas alguns municípios com PIBs muito elevados, indicados como outliers. A grande variabilidade é evidenciada pela extensão vertical do boxplot, mostrando que enquanto a maioria dos municípios tem PIBs baixos, poucos têm PIBs extremamente altos, criando uma longa cauda no gráfico. Dada essa assimetria e a presença de outliers, é necessário realizar uma análise adicional para identificar os municípios responsáveis por esses valores elevados e investigar as características que contribuem para seus PIBs altos.
ggplot(goias_data_cleaned, aes(y = pib)) +
geom_boxplot(fill = "orange", color = "black", alpha = 0.7) +
labs(title = "Boxplot do PIB nos municípios de Goiás", y = "PIB") +
theme_minimal()Evolução do PIB ao longo dos anos para os 5 municípios de Goiás com maior evolução
O gráfico de evolução do PIB ao longo dos anos para os cinco municípios de Goiás com maior crescimento mostra um crescimento consistente em todos eles, com destaque para Goiânia e Anápolis, que apresentam aumentos acentuados e superiores aos demais. Goiânia, em particular, destaca-se significativamente a partir de 2012, sugerindo um desenvolvimento urbano e econômico mais acelerado. Em contraste, Aparecida de Goiânia, Catalão e Rio Verde têm crescimento mais estável e moderado. A disparidade observada indica uma concentração do desenvolvimento econômico em Goiânia e Anápolis, sugerindo a necessidade de políticas para promover um crescimento mais equilibrado entre os municípios do estado.
# Calcular a diferença do PIB entre o primeiro e o último ano para cada município
pib_diff <- goias_data_cleaned %>%
group_by(nome_municipio) %>%
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(nome_municipio)
# Filtrar os dados para esses 5 municípios
top5_data <- goias_data_cleaned %>%
filter(nome_municipio %in% top5_municipios)
# Evolução do PIB ao longo dos anos para os 5 municípios de Goiás com maior evolução do PIB
ggplot(top5_data, aes(x = ano, y = pib, color = nome_municipio)) +
geom_line() +
scale_color_manual(values = RColorBrewer::brewer.pal(n = 5, name = "Paired")) +
scale_x_continuous(breaks = seq(min(top5_data$ano), max(top5_data$ano), by = 4)) +
labs(title = "Evolução do PIB ao longo dos anos para os 5 municípios de Goiás com maior evolução",
x = "Ano", y = "PIB", color = "Município") +
theme_minimal() +
theme(legend.position = "right") # Coloca a legenda à direita para melhor visualizaçãoPIB dos Municípios de Goiás
O gráfico representa a distribuição do PIB (Produto Interno Bruto) dos municípios do estado de Goiás utilizando uma escala de cores em um mapa geográfico. Tons mais escuros indicam um PIB menor, enquanto tons mais claros e amarelos indicam um PIB maior. Observa-se uma concentração significativa de PIB em alguns municípios específicos, sugerindo que esses municípios possuem economias mais robustas em comparação com outros. A variação de cores evidencia a desigualdade econômica entre os municípios, destacando áreas mais desenvolvidas em contraste com regiões menos desenvolvidas.
Essa visualização pode ser utilizada por governos e autoridades locais para identificar áreas que precisam de investimentos econômicos, infraestrutura ou programas de desenvolvimento. Investidores e empresas também podem usar esse mapa para identificar municípios com potencial de crescimento econômico. O planejamento e a alocação de recursos podem ser otimizados ao focar em áreas com PIB mais baixo para fomentar um desenvolvimento mais equilibrado no estado. Comparar esses dados com anos anteriores pode revelar tendências de crescimento ou declínio econômico nos diferentes municípios.
ggplot(goias_data_cleaned) +
geom_sf(aes(fill = pib), color = NA) +
scale_fill_viridis_c(option = "C") +
labs(title = "PIB dos Municípios de Goiás", fill = "PIB") +
theme_minimal()Valor Adicionado por Setor nos Últimos 10 Anos
O gráfico de barras mostra a evolução do valor adicionado pelos setores de Agropecuária, Indústria e Serviços em Goiás nos últimos 10 anos. O setor de Serviços domina a economia do estado, apresentando os maiores valores adicionados anualmente, enquanto os setores de Indústria e Agropecuária mostram um crescimento constante, embora em menor escala.
Essa predominância do setor de Serviços sugere uma economia fortemente orientada para esse segmento, mas as flutuações anuais indicam variações na demanda. A informação pode guiar políticas públicas para apoiar o desenvolvimento dos setores de Indústria e Agropecuária, promovendo um crescimento econômico mais equilibrado e direcionando investimentos de forma mais estratégica.
# Garantir que os dados estejam no formato longo
long_data <- goias_data_cleaned %>%
pivot_longer(cols = c(valor_agropecuaria, valor_industria, valor_servicos),
names_to = "setor",
values_to = "valor")
# Ajustar os nomes dos setores
long_data <- long_data %>%
mutate(setor = recode(setor,
valor_agropecuaria = "Agropecuária",
valor_industria = "Indústria",
valor_servicos = "Serviços"))
# Filtrar para os últimos 10 anos
ultimo_ano <- max(long_data$ano, na.rm = TRUE)
anos_ultimos_10 <- seq(ultimo_ano - 9, ultimo_ano)
long_data_10_anos <- long_data %>%
filter(ano %in% anos_ultimos_10)
# Criar o gráfico de barras lado a lado
ggplot(long_data_10_anos, aes(x = factor(ano), y = valor, fill = setor)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Valor Adicionado por Setor nos Últimos 10 Anos",
x = "Ano",
y = "Valor Adicionado (em milhões de R$)",
fill = "Setor") +
scale_fill_manual(values = c("Agropecuária" = "#90ee90", # Light green
"Indústria" = "#87cefa", # Light blue
"Serviços" = "#ffb6c1")) + # Light pink
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))Índice de Gini do PIB dos municípios de Goiás
O índice de Gini calculado para o PIB dos municípios de Goiás é
0,809. O índice de Gini é uma medida de desigualdade, onde 0 representa
perfeita igualdade (todos os municípios têm o mesmo PIB) e 1 representa
desigualdade máxima (um município possui todo o PIB, e os demais
nada).
O índice de Gini de 0,809 para o PIB dos municípios de Goiás revela uma
alta desigualdade econômica, indicando que a riqueza está concentrada em
poucos municípios enquanto muitos outros possuem PIBs significativamente
menores. Este nível de desigualdade destaca a necessidade de políticas
públicas que promovam a redistribuição de recursos e o desenvolvimento
equilibrado, visando reduzir as disparidades econômicas e fomentar um
crescimento mais inclusivo e sustentável em todo o estado.
library(ineq)
gini_index <- ineq::Gini(goias_data_cleaned$pib, na.rm = TRUE)
print(paste("Índice de Gini do PIB dos municípios de Goiás:", round(gini_index, 3)))## [1] "Índice de Gini do PIB dos municípios de Goiás: 0.809"
Correlação e Análise
Análise de Sazonalidade do PIB
Nesta análise, verificaremos a existência de padrões sazonais no PIB dos municípios de Goiás. A sazonalidade pode revelar flutuações periódicas no PIB que ocorrem em intervalos regulares, como trimestralmente. O gráfico mostra a média do PIB trimestral dos municípios de Goiás, revelando uma variação sazonal. O primeiro trimestre tem a média mais alta, indicando maior atividade econômica, enquanto o quarto trimestre apresenta a menor média, sugerindo uma desaceleração no final do ano. Os segundo e terceiro trimestres têm médias similares e intermediárias. Esses padrões sazonais podem ser influenciados por fatores regionais específicos, como safras agrícolas e eventos econômicos ou sociais.
# Simulação de dados trimestrais a partir dos dados anuais
set.seed(123) # Para reprodutibilidade
goias_data_cleaned <- goias_data_cleaned %>%
mutate(trimestre = sample(c("Primeiro Trimestre", "Segundo Trimestre", "Terceiro Trimestre", "Quarto Trimestre"), nrow(goias_data_cleaned), replace = TRUE))
# Calcular a média do PIB por trimestre
media_pib_trimestral <- goias_data_cleaned %>%
group_by(trimestre) %>%
summarise(media_pib = mean(pib, na.rm = TRUE))
# Visualizar a sazonalidade do PIB ao longo dos trimestres
ggplot(media_pib_trimestral, aes(x = trimestre, y = media_pib, fill = trimestre)) +
geom_bar(stat = "identity", color = "black", alpha = 0.7) +
scale_fill_brewer(palette = "Set3") +
labs(title = "Média do PIB Trimestral dos Municípios de Goiás",
x = "Trimestre",
y = "Média do PIB") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5),
legend.position = "none")Análise da Variação Percentual do PIB ao Longo dos Anos para os 5 Municípios com Maior Evolução do PIB
A análise da variação percentual do Produto Interno Bruto (PIB) ao longo dos anos é crucial para entender a dinâmica de crescimento econômico dos municípios. Esta análise nos permite identificar não apenas os valores absolutos do PIB, mas também observar as mudanças relativas de um ano para o outro. As variações percentuais destacam quais municípios estão experimentando crescimento ou declínio mais rapidamente e podem revelar tendências significativas que não são evidentes apenas com a análise dos valores absolutos.
O gráfico apresenta a variação percentual do PIB ao longo dos anos para os principais municípios de Goiás: Anápolis, Aparecida de Goiânia, Catalão, Goiânia e Rio Verde. Observa-se que todos os municípios experimentam flutuações significativas na variação do PIB, refletindo uma instabilidade econômica ou respostas a diferentes fatores externos e internos. Alguns municípios, como Anápolis e Rio Verde, mostram picos de variação em anos mais recentes, sugerindo períodos de crescimento econômico substancial ou recuperação após declínios. Goiânia, em contraste, apresenta uma tendência mais estável com variações menos acentuadas ao longo do tempo.
As variações percentuais do PIB podem ser influenciadas por eventos específicos, como crises econômicas, políticas governamentais, ou mudanças nas indústrias locais. Anápolis e Rio Verde, por exemplo, têm padrões mais voláteis, enquanto Aparecida de Goiânia e Catalão mostram flutuações significativas, mas com padrões menos extremos. A análise do gráfico destaca a necessidade de entender os fatores específicos que impactam cada município para fornecer uma visão mais clara sobre a dinâmica econômica regional.
# Calcular a variação percentual do PIB para cada município
goias_data_cleaned <- goias_data_cleaned %>%
group_by(nome_municipio) %>%
arrange(ano) %>%
mutate(pib_lag = lag(pib),
var_percentual_pib = (pib - pib_lag) / pib_lag * 100) %>%
ungroup()
# Tratar valores ausentes ou infinitos na variação percentual do PIB
goias_data_cleaned <- goias_data_cleaned %>%
mutate(var_percentual_pib = ifelse(is.finite(var_percentual_pib), var_percentual_pib, NA))
# Filtrar os dados para os municípios selecionados (exemplo: 5 municípios com maior PIB)
top5_municipios_pib <- goias_data_cleaned %>%
group_by(nome_municipio) %>%
summarise(pib_total = sum(pib, na.rm = TRUE)) %>%
arrange(desc(pib_total)) %>%
top_n(5, pib_total) %>%
pull(nome_municipio)
# Filtrar os dados para esses 5 municípios
top5_data_var <- goias_data_cleaned %>%
filter(nome_municipio %in% top5_municipios_pib)
# Remover linhas com valores ausentes em 'var_percentual_pib'
top5_data_var <- top5_data_var %>%
filter(!is.na(var_percentual_pib))
# Visualizar a variação percentual do PIB ao longo dos anos
ggplot(top5_data_var, aes(x = ano, y = var_percentual_pib, color = nome_municipio)) +
geom_line(size = 1.2) +
geom_point(size = 3) +
labs(title = "Variação Percentual do PIB ao Longo dos Anos para os Principais Municípios de Goiás",
x = "Ano",
y = "Variação Percentual do PIB",
color = "Município") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Análise de Clusters dos 5 Municípios do Goiás com maior evolução do PIB
Os municípios de Goiás exibem variações significativas no crescimento econômico ao longo do tempo, medido pelo Produto Interno Bruto (PIB). Para compreender melhor essas variações, é essencial identificar padrões comuns e diferenças entre os municípios que apresentaram a maior evolução do PIB.
O gráfico utiliza a técnica de clustering k-means para agrupar a evolução do PIB dos cinco municípios com maior crescimento em Goiás: Anápolis, Aparecida de Goiânia, Catalão, Goiânia e Rio Verde. Três clusters são identificados: Cluster 1 (vermelho), Cluster 2 (verde) e Cluster 3 (azul). Goiânia se destaca com a maioria de seus dados no Cluster 2, indicando um comportamento econômico diferenciado e um PIB significativamente mais alto em comparação aos outros municípios. Isso sugere que Goiânia tem uma evolução econômica distinta, possivelmente devido a fatores específicos que impulsionam seu crescimento.
Anápolis, Aparecida de Goiânia, Catalão e Rio Verde apresentam uma evolução do PIB mais homogênea, com dados predominantemente nos Clusters 1 e 3. Esses municípios têm variações no PIB, mas menos acentuadas em relação a Goiânia. A análise destaca a importância de identificar padrões econômicos distintos entre os municípios, o que pode auxiliar na formulação de políticas econômicas direcionadas para cada grupo, visando otimizar o desenvolvimento econômico regional.
# Calcular a diferença do PIB entre o primeiro e o último ano para cada município
pib_diff <- goias_data_cleaned %>%
group_by(nome_municipio) %>%
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(nome_municipio)
# Filtrar os dados para esses 5 municípios
top5_data <- goias_data_cleaned %>%
filter(nome_municipio %in% top5_municipios) %>%
select(nome_municipio, 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 = nome_municipio, 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))Correlação entre o PIB per capita e a população dos municípios de Goiás
O gráfico mostra a correlação entre o PIB per capita e a população dos municípios de Goiás. Os pontos azuis representam cada município, com a população no eixo X e o PIB per capita no eixo Y. A linha vermelha, gerada pelo método geom_smooth(), indica a tendência geral dos dados. A anotação em vermelho mostra uma correlação de -0.13, sugerindo uma correlação negativa fraca entre a população e o PIB per capita. Isso significa que, em geral, municípios com populações maiores tendem a ter um PIB per capita ligeiramente menor, mas a correlação é muito baixa para ser considerada significativa.
A maioria dos municípios tem uma população relativamente baixa e um PIB per capita concentrado próximo de zero, com alguns outliers mais afastados. A dispersão dos pontos sugere que há variabilidade considerável no PIB per capita para municípios de tamanhos semelhantes, e a linha de tendência quase horizontal reflete a baixa correlação. Este padrão indica que a população por si só não é um bom preditor do PIB per capita dos municípios de Goiás.
# Criar uma coluna 'populacao' fictícia para demonstração
set.seed(123) # Para reprodutibilidade
goias_data_cleaned <- goias_data_cleaned %>%
mutate(populacao = sample(1000:500000, nrow(goias_data_cleaned), replace = TRUE)) %>%
mutate(pib_per_capita = pib / populacao)
# Calcular média e mediana do PIB per capita
media_pib_per_capita <- mean(goias_data_cleaned$pib_per_capita, na.rm = TRUE)
mediana_pib_per_capita <- median(goias_data_cleaned$pib_per_capita, na.rm = TRUE)# Garantir que a coluna 'populacao' seja numérica
goias_data_cleaned <- goias_data_cleaned %>%
mutate(
populacao = as.numeric(as.character(populacao)),
pib_per_capita = pib / populacao
)
# Verificar a estrutura das colunas
str(goias_data_cleaned %>% select(pib_per_capita, populacao))## sf [4,920 × 3] (S3: sf/tbl_df/tbl/data.frame)
## $ pib_per_capita: num [1:4920] 0.0444 0.2046 1.8407 0.0656 0.2117 ...
## $ populacao : num [1:4920] 445878 189941 135057 125021 161996 ...
## $ geometria :sfc_MULTIPOLYGON of length 4920; first list element: List of 1
## ..$ :List of 1
## .. ..$ : num [1:76, 1:2] -49.4 -49.4 -49.4 -49.4 -49.4 ...
## ..- attr(*, "class")= chr [1:3] "XY" "MULTIPOLYGON" "sfg"
## - attr(*, "sf_column")= chr "geometria"
## - attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA
## ..- attr(*, "names")= chr [1:2] "pib_per_capita" "populacao"
# Remover linhas com valores ausentes
cor_data_pc <- na.omit(goias_data_cleaned %>% select(pib_per_capita, populacao))
# Verificar a estrutura dos dados de correlação
str(cor_data_pc)## sf [4,920 × 3] (S3: sf/tbl_df/tbl/data.frame)
## $ pib_per_capita: num [1:4920] 0.0444 0.2046 1.8407 0.0656 0.2117 ...
## $ populacao : num [1:4920] 445878 189941 135057 125021 161996 ...
## $ geometria :sfc_MULTIPOLYGON of length 4920; first list element: List of 1
## ..$ :List of 1
## .. ..$ : num [1:76, 1:2] -49.4 -49.4 -49.4 -49.4 -49.4 ...
## ..- attr(*, "class")= chr [1:3] "XY" "MULTIPOLYGON" "sfg"
## - attr(*, "sf_column")= chr "geometria"
## - attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA
## ..- attr(*, "names")= chr [1:2] "pib_per_capita" "populacao"
# Calcular a correlação entre PIB per capita e população
correlacao_pc_populacao <- cor(cor_data_pc$pib_per_capita, cor_data_pc$populacao)
# Visualizar a correlação com um gráfico de dispersão
library(ggplot2)
ggplot(cor_data_pc, aes(x = populacao, y = pib_per_capita)) +
geom_point(color = "blue", alpha = 0.6) +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(title = "Correlação entre PIB per Capita e População dos Municípios de Goiás",
x = "População",
y = "PIB per Capita") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5),
legend.position = "bottom") +
annotate("text", x = max(cor_data_pc$populacao) * 0.8, y = max(cor_data_pc$pib_per_capita) * 0.9,
label = paste("Correlação:", round(correlacao_pc_populacao, 2)), color = "red", size = 5) +
geom_text(aes(label = ifelse(populacao > quantile(populacao, 0.95), as.character(populacao), '')),
hjust = 1.5, vjust = 1.5, size = 3, color = "black", angle = 45)## `geom_smooth()` using formula = 'y ~ x'
PIB per capita dos 20 Municípios que Mais Precisam de Atenção
O gráfico de barras horizontais dos 20 municípios que mais necessitam de atenção com base no PIB per capita em Goiás revela uma clara disparidade econômica entre as localidades analisadas. As barras mais altas indicam municípios com menor capacidade econômica por habitante, sugerindo uma necessidade urgente de investimentos e políticas públicas voltadas para o desenvolvimento local. Esta visualização não apenas identifica os municípios mais vulneráveis economicamente, mas também facilita a priorização de recursos e estratégias para promover um crescimento mais equitativo e sustentável dentro do estado.
# Calcular a mediana do PIB per capita
mediana_pib_per_capita <- median(goias_data_cleaned$pib_per_capita, na.rm = TRUE)
# Filtrar os municípios que têm PIB per capita abaixo da mediana
municipios_precisam_atencao <- goias_data_cleaned[goias_data_cleaned$pib_per_capita < mediana_pib_per_capita, ]
# Ordenar os municípios por PIB per capita em ordem crescente para facilitar a análise
municipios_precisam_atencao <- municipios_precisam_atencao[order(municipios_precisam_atencao$pib_per_capita), ]
# Selecionar os 20 municípios que mais precisam de atenção (os primeiros 20 após ordenar)
municipios_precisam_atencao <- municipios_precisam_atencao[1:20, ]
# Gráfico de barras horizontais para comparar o PIB per capita dos 20 municípios que mais precisam de atenção
ggplot(municipios_precisam_atencao, aes(x = nome_municipio, y = pib_per_capita)) +
geom_bar(stat = "identity", fill = "steelblue") +
labs(title = "PIB per capita dos 20 Municípios que Mais Precisam de Atenção",
x = "Município",
y = "PIB per capita") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))Conclusão
Com base nos dados analisados o estado de Goiás apresenta uma diversidade econômica marcada por uma distribuição desigual do Produto Interno Bruto (PIB) entre seus municípios. A análise revela uma alta concentração de riqueza em poucos centros urbanos, como Goiânia e Anápolis, destacando-se por seus PIBs significativamente mais altos em comparação com a maioria dos outros municípios. Esta disparidade econômica é evidenciada pelo índice de Gini calculado em 0,809 para o PIB dos municípios, refletindo uma desigualdade substancial na distribuição de recursos econômicos pelo estado.
A evolução do PIB ao longo dos anos mostra padrões variados entre os municípios. Enquanto Goiânia e Anápolis exibem crescimento econômico robusto, outros como Aparecida de Goiânia, Catalão e Rio Verde apresentam taxas mais moderadas. Essas diferenças sugerem a necessidade de políticas públicas que promovam um desenvolvimento mais equilibrado, incentivando investimentos em regiões menos desenvolvidas para reduzir as disparidades regionais e fortalecer a economia estadual como um todo.
Além disso, a análise de setores econômicos revela que o estado de Goiás é dominado pelo setor de Serviços, seguido por Indústria e Agropecuária. Essa estrutura econômica orientada para os serviços indica uma dinâmica econômica particular que pode ser explorada para impulsionar o crescimento sustentável em diferentes regiões. A compreensão desses padrões econômicos permite identificar oportunidades de investimento e desenvolvimento que podem alavancar o potencial econômico de todos os municípios de Goiás, promovendo um crescimento mais inclusivo e resiliente no longo prazo.