Economía del Desarrollo I
Grupo teórico 03
Ejercicio de medición de pobreza y desigualdad con el enfoque de ingresos
Responsable:
Claros Ruiz, Jacqueline Vanessa - CR19014
14 de mayo de 2024
Para la economía de los primigenios, en la ciudad de R’lyeh, el vector de rentas es (100,200,300,400,700), (en unidades monetarias: u.m.) el cual es ponderado por el siguiente vector de población (50,35,55,35,10) (en numero de personas).
Cálculo del coeficiente de Gini de la ciudad de R’lyeh:
y <- c(100, 200, 300, 400,700)
n <- c(50, 35, 55, 35,10)
#Cálculo de la renta media
renta_media <- function(vector_renta, vector_poblacion) {
as.vector(crossprod(vector_renta,
vector_poblacion)/sum(vector_poblacion))
}
renta_media(vector_renta = y, vector_poblacion = n)
## [1] 267.5676
Lo que significa que cada persona en esta economía debería recibir 267.57 unidades monetarias.
options(scipen = 999999)
gini_debraj_ray <- function(vector_renta, vector_poblacion) {
# Generación del Dataframe para el cálculo
library(dplyr)
df_y <- expand.grid(vector_renta, vector_renta)
names(df_y) <- c("Yj", "Yk")
df_n <- expand.grid(vector_poblacion, vector_poblacion)
names(df_n) <- c("Nj", "Nk")
gini_data <- bind_cols(df_n, df_y)
# Cálculo del doble sumatorio
renta_media(vector_renta = vector_renta,
vector_poblacion=vector_poblacion)->mu
N<-sum(vector_poblacion)
gini_data %>% mutate(doble_sum = Nj * Nk * abs(Yj - Yk)) -> gini_data
gini_data %>% summarise(Gini=(1/(2*mu*N^2))*sum(doble_sum)) %>% select(Gini)-> Gini
list(gini_data=gini_data,mu=mu,N=N,Gini=Gini[,1])
}
# Data original
g1 <- gini_debraj_ray(vector_renta = y, vector_poblacion = n)
print(g1)
## $gini_data
## Nj Nk Yj Yk doble_sum
## 1 50 50 100 100 0
## 2 35 50 200 100 175000
## 3 55 50 300 100 550000
## 4 35 50 400 100 525000
## 5 10 50 700 100 300000
## 6 50 35 100 200 175000
## 7 35 35 200 200 0
## 8 55 35 300 200 192500
## 9 35 35 400 200 245000
## 10 10 35 700 200 175000
## 11 50 55 100 300 550000
## 12 35 55 200 300 192500
## 13 55 55 300 300 0
## 14 35 55 400 300 192500
## 15 10 55 700 300 220000
## 16 50 35 100 400 525000
## 17 35 35 200 400 245000
## 18 55 35 300 400 192500
## 19 35 35 400 400 0
## 20 10 35 700 400 105000
## 21 50 10 100 700 300000
## 22 35 10 200 700 175000
## 23 55 10 300 700 220000
## 24 35 10 400 700 105000
## 25 10 10 700 700 0
##
## $mu
## [1] 267.5676
##
## $N
## [1] 185
##
## $Gini
## [1] 0.2926563
library(ineq)
library(purrr)
map2(y,n,.f = rep) %>% unlist() %>% Gini()
## [1] 0.2926563
La gráfica:
library(ineq)
library(purrr)
map2(y,n,.f = rep) %>% unlist() %>% ineq::Lc() %>% plot()
El alcalde de R’lyeh el “Gran Primigenio Cthulhu” ha propuesto una transferencia del gobierno de 15% sobre el monto de las rentas de hasta 200 u.m. y un impuesto sobre la renta del 5% para las rentas superiores a las 200 u.m. ¿La desigualdad en R’lyeh aumenta o disminuye?
sv <- 15/100
impuesto <- 5/100
library(dplyr)
y %>% as.data.frame() %>%
mutate(renta_transferencia=ifelse(y <= 200,
y * (1+sv),
y)) |>
mutate(rentas_finales=ifelse(renta_transferencia > 200,
renta_transferencia * (1-impuesto),
renta_transferencia))-> y_b
names(y_b)<-c("renta_original","renta_antes_impuestos","renta_final")
y_b |> select("renta_original","renta_final") |> mutate(variacion=(renta_final/renta_original-1)*100)
## renta_original renta_final variacion
## 1 100 115.0 15.00
## 2 200 218.5 9.25
## 3 300 285.0 -5.00
## 4 400 380.0 -5.00
## 5 700 665.0 -5.00
renta_media <- function(vector_renta, vector_poblacion) {
as.vector(crossprod(vector_renta, vector_poblacion) / sum(vector_poblacion))
}
renta_media(vector_renta = y_b$renta_final, vector_poblacion = n)
## [1] 264.9865
Lo que significa que cada persona en esta economía debería recibir 264.98 unidades monetarias.
options(scipen = 999999)
gini_debraj_ray <- function(vector_renta, vector_poblacion) {
# Generación del Dataframe para el cálculo
library(dplyr)
df_y <- expand.grid(vector_renta, vector_renta)
names(df_y) <- c("Yj", "Yk")
df_n <- expand.grid(vector_poblacion, vector_poblacion)
names(df_n) <- c("Nj", "Nk")
gini_data <- bind_cols(df_n, df_y)
# Cálculo del doble sumatorio
renta_media(vector_renta = vector_renta,
vector_poblacion = vector_poblacion)-> mu
N<-sum(vector_poblacion)
gini_data %>% mutate(doble_sum = Nj * Nk * abs(Yj - Yk)) -> gini_data
gini_data %>% summarise(Gini=(1/(2*mu*N^2))*sum(doble_sum)) %>% select(Gini)->Gini
list(gini_data=gini_data,mu=mu,N=N,Gini=Gini[,1])
}
# Data original
g1_b<-gini_debraj_ray(vector_renta = y_b$renta_final,vector_poblacion = n)
print(g1_b)
## $gini_data
## Nj Nk Yj Yk doble_sum
## 1 50 50 115.0 115.0 0.0
## 2 35 50 218.5 115.0 181125.0
## 3 55 50 285.0 115.0 467500.0
## 4 35 50 380.0 115.0 463750.0
## 5 10 50 665.0 115.0 275000.0
## 6 50 35 115.0 218.5 181125.0
## 7 35 35 218.5 218.5 0.0
## 8 55 35 285.0 218.5 128012.5
## 9 35 35 380.0 218.5 197837.5
## 10 10 35 665.0 218.5 156275.0
## 11 50 55 115.0 285.0 467500.0
## 12 35 55 218.5 285.0 128012.5
## 13 55 55 285.0 285.0 0.0
## 14 35 55 380.0 285.0 182875.0
## 15 10 55 665.0 285.0 209000.0
## 16 50 35 115.0 380.0 463750.0
## 17 35 35 218.5 380.0 197837.5
## 18 55 35 285.0 380.0 182875.0
## 19 35 35 380.0 380.0 0.0
## 20 10 35 665.0 380.0 99750.0
## 21 50 10 115.0 665.0 275000.0
## 22 35 10 218.5 665.0 156275.0
## 23 55 10 285.0 665.0 209000.0
## 24 35 10 380.0 665.0 99750.0
## 25 10 10 665.0 665.0 0.0
##
## $mu
## [1] 264.9865
##
## $N
## [1] 185
##
## $Gini
## [1] 0.2603465
map2(y_b$renta_final,n,.f = rep) %>% unlist() %>% Gini()
## [1] 0.2603465
map2(y_b$renta_final,n,.f = rep) %>% unlist() %>% ineq::Lc() %>% plot()
En este caso hay una reducción (0.2926563 - 0.2603465 = 0.0323098) del 3.23% que provoca que la distribución de la renta se vuelva equitativa.
¿La severidad de la pobreza (FGT2) aumenta o disminuye con la política del primigenio alcalde, descrita en el literal b)?
pobreza_FGT_alpha <- function(vector_ingreso,
linea_pobreza,alpha=0) {
PG_vector <-
(linea_pobreza - vector_ingreso[vector_ingreso <
linea_pobreza]) / linea_pobreza
n <- length(vector_ingreso)
FGT <- (1 / n) * sum(PG_vector ^ alpha)
FGT
}
# FGT2 de literal a)
map2(y,n,.f = rep) %>% unlist() %>%
pobreza_FGT_alpha(linea_pobreza = 200,alpha = 2)
## [1] 0.06756757
# FGT2 de literal b)
map2(y_b$renta_final,n,.f = rep) %>% unlist() %>%
pobreza_FGT_alpha(linea_pobreza = 200,alpha = 2)
## [1] 0.04881757
El índice de serivdad demuestra una disminución del 0.01875, significando que las personas que están por debajo de la línea de pobreza se encuentran más próximas entre ellas y más cercanas al umbral.
De acuerdo al indicador de Kuznet, ¿hay cambios evidentes entre el 10% más rico y el 40% más pobre de la ciudad de R’lyeh, con la implementación de la política del primigenio alcalde, ya descrita con anterioridad?
Kuznets.X.Y <- function(vector_renta,
vector_poblacion = 1,
cuantil_x,
cuantil_y) {
map2(vector_renta, vector_poblacion, .f = rep) %>%
unlist() %>% quantile(probs = c(cuantil_x)) -> Pob.X
map2(vector_renta, vector_poblacion, .f = rep) %>%
unlist() %>% quantile(probs = c(1-cuantil_y)) -> Pob.Y
list(Kuznets.indice=unname(Pob.Y/Pob.X),Pob.X=Pob.X,Pob.Y=Pob.Y)
}
# Kuznets de literal a)
Kuznets.X.Y(vector_renta = y, vector_poblacion = n,cuantil_x = 0.4,cuantil_y =0.1)
## $Kuznets.indice
## [1] 2
##
## $Pob.X
## 40%
## 200
##
## $Pob.Y
## 90%
## 400
# Kuznets de literal b)
Kuznets.X.Y(vector_renta = y_b$renta_final, vector_poblacion = n,cuantil_x = 0.4,cuantil_y =0.1)
## $Kuznets.indice
## [1] 1.73913
##
## $Pob.X
## 40%
## 218.5
##
## $Pob.Y
## 90%
## 380
Se puede observar que hay un aumento de 18.5 u.m. en el 40% más pobre de la población y una disminución de 20 u.m. al 10% más rico de la población, esto quiere decir que antes por una unidad monetaria que se le daba al 40% más pobre, el 10% más rico recibía 2 u.m, pero esto disminuye con la implementación de la política, ahora el 10% más rico pasó de recibir 2 u.m. a 1.73 u.m., haciendo que la distribución del ingreso se vaya volviendo más equitativa.