O índice de Gini é uma medida estatística que é amplamente utilizada para avaliar a desigualdade de distribuição de renda em uma determinada população ou país. Ele fornece uma medida numérica que varia de 0 a 1, onde 0 representa igualdade perfeita (ou seja, todas as pessoas possuem a mesma renda) e 1 representa desigualdade máxima (ou seja, uma única pessoa detém toda a renda, enquanto as demais não possuem nenhuma). (Hoffman, 2006)
Ao calcular o índice de Gini, é possível ter uma noção clara do quão desigual é a distribuição de renda em uma sociedade. Ele é frequentemente usado por economistas, pesquisadores e formuladores de políticas públicas para medir e comparar a desigualdade em diferentes regiões e ao longo do tempo. Com base nessa medida, é possível identificar áreas em que a desigualdade é alta e, assim, direcionar esforços para promover políticas sociais e econômicas mais igualitárias.
Estes são alguns exemplos de problemas de pesquisa que podem ser analisados a partir desse índice:
Esses são apenas alguns exemplos, e há uma infinidade de problemas de pesquisa que podem ser abordados usando o índice de Gini como medida de desigualdade de renda.
Cada problema pode exigir diferentes abordagens metodológicas e fontes de dados específicas, mas o índice de Gini oferece uma base sólida para explorar e compreender as questões relacionadas à desigualdade socioeconômica.
índice de Gini é calculado da seguinte maneira A fórmula do índice de Gini é dada por: \[ G = 1- \sum_{k=0}^{k =n-1}(X_{k+1}-X_{k})(Y_{k+1}-Y_{k}) \]
Onde:
\(G\) é o índice de Gini.
\(X\) é proporção acumulada da variável população.
\(Y\) são os valores ordenados das variaveis de renda.
Primeiro vamos baixar as informações sobre PIB municipal e poulação
#Carregar pacotes
library(sidrar)
library(ineq)
library(survey)
library(convey)
library(tidyverse)
# Importar dados do Sidrar por meio de API
# PIB municipal
pib<-get_sidra(api = '/t/5938/n6/all/v/37/p/last%201/d/v37%200' )
#População
populacao <- get_sidra(api = '/t/6579/n6/all/v/all/p/2020')
Podemos agora trabalhar nessas bases de forma a ter somente as informações pertinentes
pib <- pib %>% janitor::clean_names() %>%
select(municipio_codigo,
municipio,
ano,
renda = valor
)
populacao <- populacao %>% janitor::clean_names() %>% select(
municipio_codigo,
municipio,
ano,
habitantes = valor
)
Depois vamos juntar as base e criar a varivel de PIB per capta
#Preparando a base de dados
dados <- left_join(pib, populacao)
dados <- dados %>%
separate(municipio, into = c("municipio", "uf"), sep = " - ")%>%
filter(uf=='MG') %>%
mutate(pib_per_cp = renda/habitantes)
Lendo nossa base de dados
head(dados,n=10)
## municipio_codigo municipio uf ano renda habitantes pib_per_cp
## 1 3100104 Abadia dos Dourados MG 2020 153873 7006 21.96303
## 2 3100203 Abaeté MG 2020 555814 23250 23.90598
## 3 3100302 Abre Campo MG 2020 226522 13444 16.84930
## 4 3100401 Acaiaca MG 2020 58057 3994 14.53605
## 5 3100500 Açucena MG 2020 138557 9368 14.79046
## 6 3100609 Água Boa MG 2020 172998 13523 12.79287
## 7 3100708 Água Comprida MG 2020 159718 1992 80.17972
## 8 3100807 Aguanil MG 2020 71565 4522 15.82596
## 9 3100906 Águas Formosas MG 2020 254012 19247 13.19749
## 10 3101003 Águas Vermelhas MG 2020 214552 13599 15.77704
#calcular o indice de Gini no R
Primeiro Exemplo
Neste exemplo vamos calcular o índice manualmente, no prixomo exemplo temos uma implementação via pacote
# Crie uma nova coluna para a acumulação de renda per capita
dados <- dados %>%
mutate(acum_renda_per_capita = cumsum(pib_per_cp))
# Crie uma nova coluna para a acumulação de pessoas
dados <- dados %>%
mutate(acum_pessoas = cumsum(habitantes))
# Calcule o índice de Gini para cada município
gini_municipios <- dados %>%
group_by(municipio) %>%
summarize(gini = 1 - 2 * sum(acum_renda_per_capita / (acum_pessoas + 1)),
code_muni = municipio_codigo)
# Imprima o índice de Gini para cada município
print(gini_municipios)
## # A tibble: 853 × 3
## municipio gini code_muni
## <chr> <dbl> <chr>
## 1 Abadia dos Dourados 0.994 3100104
## 2 Abaeté 0.997 3100203
## 3 Abre Campo 0.997 3100302
## 4 Acaiaca 0.997 3100401
## 5 Aguanil 0.995 3100807
## 6 Aimorés 0.996 3101102
## 7 Aiuruoca 0.996 3101201
## 8 Alagoa 0.996 3101300
## 9 Albertina 0.996 3101409
## 10 Alfenas 0.997 3101607
## # ℹ 843 more rows
Por fim podemos visualizar a distribuição espacial do indice de Gini
library(geobr)
mun <- read_municipality(code_muni = "MG", year = 2010)
#Converter coluna
gini_municipios$code_muni <- as.double(gini_municipios$code_muni)
#Juntar coordenadas para criar o mapa
gini_municipios<- left_join(gini_municipios, mun , by = 'code_muni')
Podemos criar um gráfico interativo por meio do pacote ‘plotly’
# Carregar bibliotecas
library(ggplot2)
library(plotly)
# Criar o gráfico ggplot com o índice Gini como hovertext
ggplot_obj <- gini_municipios %>%
ggplot() +
geom_sf(data = gini_municipios$geom, aes(fill = gini_municipios$gini, text = paste("Município: ", gini_municipios$NM_MUNICIP, "<br>Índice Gini: ", gini_municipios$gini))) +
scale_fill_viridis_c(option = 15, begin = 0.2, end = 0.8,
name = 'Gini') +
theme(panel.grid = element_line(colour = "transparent"),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank()) +
labs(title = "Índice de Gini 2020 dos Municípios de MG",
subtitle = 'Calculado com base no PIB per capita',
caption = 'Fonte: Elaboração própria', size = 8)
# Converter o gráfico ggplot para plotly com o hovertext
interactive_plot <- ggplotly(ggplot_obj, tooltip = "text")
# Exibir o gráfico interativo
interactive_plot
Segundo exemplo
No R, você pode usar pacotes estatísticos, como o ineq,
para calcular o índice de Gini.
Neste exemplo vamos calcular o índice com base no rendimento médio do setor formal, estes dados podem ser encontrados em https://imrs.fjp.mg.gov.br/.
emprego <- read.csv2("DadosConsulta.csv", encoding = 'latin1') %>% janitor::clean_names()
Calcular o índice de Gini
#gini_mg <- emprego %>%
#mutate(gini = ineq(emprego, type = "Gini"))
#head(gini_mg, n = 10)