¿Qué es el Índice de Gini y cómo calcularlo?

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe pacha.dev/blogși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)


Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

Dacă această postare vă este utilă, vă rog cu drag o donație minimă pe Buy Me a Coffee. Va fi folosit pentru a-mi continua eforturile Open Source.

Puteți să-mi trimiteți întrebări pentru blog folosind acest formular și să vă abonați pentru a primi un e-mail când apare o nouă postare.

El Índice de Gini este o măsură statistică care se utilizează pentru a cuantifica desigualtatea într-o distribuție, aplicată în mod obișnuit la distribuția ingresoului sau a richeității într-o populație. Este o măsură de concentrație care reflectă cum se distribuie resursele între persoanele dintr-o țară sau regiune.

Fue developed por el italiano Corrado Gini en 1912. El valor del Índice de Gini varía entre 0 y 1 (o 0% y 100%), donde 0 representa una igualdad perfecta (todos tienen el mismo ingreso) y 1 representa una desigualdad máxima (una sola persona tiene todo el ingreso y los demás no tienen nada).

Para entender esto un poco mejor, analizam la frase de Nicanor Parra: „Hay dos panes. Usted se come dos; yo, ninguno. Consumo promedio: un pan por persona”. Además del promedio de 1 pan por persona, prin definiție (y sin realiza calculs), el Índice de Gini în acest caz este 1 (desigualdad maximă), ya care una persona consume todo el pan.

El calcul del Índice de Gini se bazează în curba lui Lorenz, care reprezintă proporția acumulată din ingreso total primit prin procentajul acumulat de populație. El Índice de Gini se calculează ca zona dintre curba lui Lorenz și linia de egalitate perfectă, împărțită prin zona totală sub linia de egalitate perfectă.

Es decir, si el 1% mai pobre de la populație primește el 1% del ingreso total, el 2% más pobre recibe el 2% del ingreso total, și așa sucesivamente, se are un caz de igualdad perfecta cu o Índice de Gini de 0.

Acordul asupra datelor de la Comisia Económica pentru America Latina și el Caribe (CEPAL) din 2024, Chile are următoarea distribuție a intrărilor:

1 1.7
2 3.1
3 4.2
4 5.2
5 6.4
6 7.7
7 9.4
8 11.9
9 16.2
10 34.2

A partir de aceste date, se poate calcula Índice de Gini de Chile, care este aproximativ 0,44 (44%), indicând un nivel moderat de desigualdad în distribuția ingresoului.

Usando R, putem calcula Índice de Gini de la aceste date:

# Calculo sin usar librerías

# Porcentaje acumulado de ingreso por decil
ingreso <- c(1.7, 3.1, 4.2, 5.2, 6.4, 7.7, 9.4, 11.9, 16.2, 34.2)
ingreso_acumulado <- cumsum(ingreso)

# Población acumulada por decil
poblacion_acumulada <- seq(0.1, 1, by = 0.1)

# Convertir a proporciones acumuladas
ingreso_prop_acum <- ingreso_acumulado / 100

# Agregar el punto inicial (0,0) para la curva de Lorenz
x <- c(0, poblacion_acumulada)
y <- c(0, ingreso_prop_acum)

# Calculo del área bajo la curva de Lorenz usando regla del trapecio
area_lorenz <- sum((x(-1) - x(-length(x))) * (y(-1) + y(-length(y))) / 2)

# Calculo del Índice de Gini
# Gini = (Área entre línea de igualdad y curva de Lorenz) / (Área total bajo línea de igualdad)
# Área bajo línea de igualdad = 0.5, entonces:
# Gini = (0.5 - area_lorenz) / 0.5 = 1 - 2 * area_lorenz
indice_gini <- 1 - 2 * area_lorenz

indice_gini

Folosind la libreria „ineq”:

if (!require(ineq)) { install.packages("ineq", repos = "https://cran.r-project.org") }
Loading required package: ineq
library(ineq)

# Convertir datos acumulados a participación individual de cada decil
participacion_individual <- c(ingreso_acumulado(1), diff(ingreso_acumulado))

# Calcular Gini usando la librería ineq
Gini(participacion_individual)

Este comod grafic aceste date pentru vizualizarea curbei lui Lorenz și a zonelor implicate în calculul indicelui Gini:

library(ggplot2)

# Datos para la curva de Lorenz
lorenz_data <- data.frame(
  Poblacion = c(0, poblacion_acumulada),
  Ingreso = c(0, ingreso_prop_acum))

ggplot(lorenz_data, aes(x = Poblacion, y = Ingreso)) +
  geom_line(color = "blue", linewidth = 1.2) +
  geom_abline(slope = 1, intercept = 0, linewidth = 1.2, linetype = "dashed", color = "red") +
  geom_ribbon(aes(ymin = Ingreso, ymax = Poblacion), fill = "lightblue", alpha = 0.5) +
  geom_ribbon(aes(ymin = 0, ymax = Ingreso), fill = "lightgreen", alpha = 0.5) +
  geom_text(aes(x = 0.6, y = 0.2), label = "B", color = "black", size = 8) +
  geom_text(aes(x = 0.6, y = 0.5), label = "A", color = "black", size = 8) +
  labs(title = "Curva de Lorenz",
       x = "Proporción acumulada de la población",
       y = "Proporción acumulada del ingreso") +
  theme_minimal()
Warning in geom_text(aes(x = 0.6, y = 0.2), label = "B", color = "black", : All aesthetics have length 1, but the data has 11 rows.
ℹ Please consider using `annotate()` or provide this layer with data containing
  a single row.
Warning in geom_text(aes(x = 0.6, y = 0.5), label = "A", color = "black", : All aesthetics have length 1, but the data has 11 rows.
ℹ Please consider using `annotate()` or provide this layer with data containing
  a single row.

Si el area entre la linia de egalitate perfecta si la curva de Lorenz es A, si el zona sub la curva de Lorenz es B, atunci el Índice de Gini se calculeaza ca

În grafic, zona A este reprezentată în azul clar și zona B în verde clar.

Geometricamente, o societate foarte egală va avea o zonă A tendiendo a cero, în timp ce o societate foarte desigual va avea o zonă B tendiendo a cero.

Volviendo al exemplu de Nicanor Parra, pentru un promedio de un pan por persona se pot avea diferite distribuciones del pan cu el mismo promedio:

  1. Persona A vine 1 pan, Persona B vine 1 pan.
  2. Persona A are 2 panouri, Persona B are 0 panouri.
  3. Persona A are 0 panouri, Persona B are 2 panouri.

Para el caso 1, el Índice de Gini es 0 (igualdad perfecta). Para los casos 2 și 3, el Índice de Gini es 1 (desigualdad maximă), ya că o persoană consume todo el pan și la otra no consume nada.

El Índice de Gini este un stadístico care complementa alte măsuri ca media sau mediana, oferind o viziune mai completă a distribuției intrării într-o populație. Problema rezidă în care mulți tienden a interpretar el Índice de Gini ca o măsură absolută a justiției sociale, ceea ce este incorect. Este pur și simplu o unealtă pentru a înțelege distribuția ingresoului și nu a rezolvat probleme éticas sau morales.

Mai mult, el Índice de Gini nu captura toate dimensiunile desigualității, ca și mobilitatea socială sau diferențele în accesoriul sau calitatea serviciilor. Por lo tanto, este important să utilizeze împreună cu alte metrice și analiza pentru a obține o înțelegere mai completă a dezideratului într-o societate.

Veamos qué pasaría și hipotéticamente se expropia 10% de la riqueza al decil más rico și este se divide equitativamente între toți deciles. Cum afectaría esto al Índice de Gini?

ingreso2 <- ingreso
monto_expropiado <- ingreso2(10) * 0.1

ingreso2(10) <- ingreso2(10) * 0.9
ingreso2 <- ingreso2 + monto_expropiado / 10

ingreso_acumulado2 <- cumsum(ingreso2)

participacion_individual2 <- c(ingreso_acumulado2(1), diff(ingreso_acumulado2))

gini1 <- Gini(participacion_individual)
gini2 <- Gini(participacion_individual2)

c("Gini original" = gini1, "Gini hipotético" = gini2)
  Gini original Gini hipotético 
        0.43660         0.40582 
# Cambio porcentual en el Índice de Gini
(gini2 - gini1) / gini1 * 100

De acuerdo al resultado, expropiar 10% del ingreso del decil más rico y dividerlo en partes iguales Índice de Gini în aproximativ un 7%, lo que indica o disminución în la desigualdad sin mayor informație cu privire la justo o injusto de la medida.

Vedem datele pentru America del Sur folosind datele Banco Mundial:

if (!require(wbstats)) { install.packages("wbstats", repos = "https://cran.r-project.org") }

library(wbstats)

# Obtener datos del Índice de Gini para América Latina
gini_data <- wb_data(indicator = "SI.POV.GINI", start_date = 2020, end_date = 2024)
# Filtrar datos para América del Sur y conservar el dato más reciente por país

library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
iso2 <- c("AR", "BO", "BR", "CL", "CO", "EC", "PE", "PR", "PY", "UY", "VE")

gini_data <- gini_data %>%
  filter(iso2c %in% iso2 & !is.na(SI.POV.GINI)) %>%
  group_by(iso2c) %>%
  slice_max(order_by = date, n = 1) %>%
  ungroup() %>%
  mutate(SI.POV.GINI = round(SI.POV.GINI / 100, 3))

print(gini_data, n = 11)
# A tibble: 9 × 9
  iso2c iso3c country    date SI.POV.GINI unit  obs_status footnote last_updated
                                  
1 AR    ARG   Argentina  2024       0.424          Based o… 2025-10-07  
2 BO    BOL   Bolivia    2023       0.421          Based o… 2025-10-07  
3 BR    BRA   Brazil     2023       0.516          Based o… 2025-10-07  
4 CL    CHL   Chile      2022       0.43           Based o… 2025-10-07  
5 CO    COL   Colombia   2023       0.539          Based o… 2025-10-07  
6 EC    ECU   Ecuador    2024       0.452          Based o… 2025-10-07  
7 PE    PER   Peru       2024       0.401          Based o… 2025-10-07  
8 PY    PRY   Paraguay   2024       0.442          Based o… 2025-10-07  
9 UY    URY   Uruguay    2024       0.4            Based o… 2025-10-07  

Vedem aceste date pe hartă folosind „d3po”:

if (!require(d3po)) { install.packages("d3po", repos = "https://pachadotdev.r-universe.dev") }

library(d3po)

dout <- map_ids(maps$south_america$continent) %>%
  left_join(gini_data, by = c("id" = "iso2c"))

# dout %>%
#   filter(!is.na(value))
  
my_gradient <- c("#7e2119", "#cf3a33", "#ec5938", "#ee874d", "#f6cc84")

d3po(dout, width = 800, height = 600) %>%
  po_geomap(daes(group = id, size = SI.POV.GINI, color = my_gradient, gradient = T, tooltip = name),
    map = maps$south_america$continent) %>%
  po_labels(
    title = "Coeficiente de Gini en América del Sur",
    subtitle = "Fuente: Banco Mundial") %>%
  po_tooltip("País: {name}
Valor: {SI.POV.GINI}")

A primera vista, se observă că Brasil este el país cu mayor desigualdad în America del Sur și că la desigualdad în Argentina și Chile sunt similare.

Comparați aceste date cu Índice de Dezvoltare Umană (IDH):

idh_data <- wb_data(indicator = "HD.HCI.OVRL", start_date = 2020, end_date = 2024)

idh_data <- idh_data %>%
  filter(iso2c %in% iso2 & !is.na(HD.HCI.OVRL)) %>%
  group_by(iso2c) %>%
  slice_max(order_by = date, n = 1) %>%
  ungroup() %>%
  mutate(HD.HCI.OVRL = round(HD.HCI.OVRL, 3))

print(idh_data, n = 11)
# A tibble: 8 × 9
  iso2c iso3c country    date HD.HCI.OVRL unit  obs_status footnote last_updated
                                  
1 AR    ARG   Argentina  2020       0.602               2020-09-21  
2 BR    BRA   Brazil     2020       0.551               2020-09-21  
3 CL    CHL   Chile      2020       0.652               2020-09-21  
4 CO    COL   Colombia   2020       0.604               2020-09-21  
5 EC    ECU   Ecuador    2020       0.594               2020-09-21  
6 PE    PER   Peru       2020       0.605               2020-09-21  
7 PY    PRY   Paraguay   2020       0.528               2020-09-21  
8 UY    URY   Uruguay    2020       0.599               2020-09-21  
dout_idh <- map_ids(maps$south_america$continent) %>%
  left_join(idh_data, by = c("id" = "iso2c"))

my_gradient <- c("#0b5394", "#3075b3", "#4583bb", "#6fa8dc", "#7fbce9")

d3po(dout_idh, width = 800, height = 600) %>%
  po_geomap(daes(group = id, size = HD.HCI.OVRL, color = my_gradient, gradient = T, tooltip = name),
    map = maps$south_america$continent) %>%
  po_labels(
    title = "Índice de Desarrollo Humano en América del Sur",
    subtitle = "Fuente: Banco Mundial") %>%
  po_tooltip("País: {name}
Valor: {HD.HCI.OVRL}")
Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.