Indicadores de pobreza, enfoque de lineas de pobreza
###Datos para ejemplo:
ingreso<-c(58, 79, 376, 403, 121, 284, 299, 385, 537, 545, 569, 577, 584, 723, 729,737,746)Indicadores de la Familia Foster Greer & Thorbecke
Familia de indicadores FGT.
# Construcción de una función personalizada.
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
}Tasa de Pobreza (Head Count):
#Tasa de recuento H:
pobreza_FGT_alpha(ingreso, linea_pobreza = 300,alpha = 0)## [1] 0.2941176
###También se puede obtener así:
#Recuento:H Head Count
pobreza_H <- function(vector_ingreso, linea_pobreza) {
q <- length(vector_ingreso[vector_ingreso < linea_pobreza])
n <- length(vector_ingreso)
H <- q / n
H_data <- list(q = q, n = n, H = H)
}
pobreza_H(ingreso, linea_pobreza = 300)$H## [1] 0.2941176
Indice de Brecha de Pobreza (Poverty Gap)
#Brecha de pobreza PG:
pobreza_FGT_alpha(ingreso, linea_pobreza = 300,alpha = 1)## [1] 0.1292157
###También se puede obtener así:
pobreza_PG <- function(vector_ingreso, linea_pobreza) {
PG_vector <-
(linea_pobreza - vector_ingreso[vector_ingreso < linea_pobreza]) / linea_pobreza
n <- length(vector_ingreso)
PG <- (1 / n) * sum(PG_vector)
list(PG_vector = PG_vector, PG = PG)
}
pobreza_PG(ingreso, linea_pobreza = 300)$PG## [1] 0.1292157
Indice de Severidad de la Pobreza FGT2
#Indice de severidad de pobreza FGT2:
pobreza_FGT_alpha(ingreso, linea_pobreza = 300,alpha = 2)## [1] 0.09130915
##También se puede obtener así:
pobreza_FGT2 <- function(vector_ingreso, linea_pobreza) {
PG_vector <-
(linea_pobreza - vector_ingreso[vector_ingreso < linea_pobreza]) / linea_pobreza
n <- length(vector_ingreso)
FGT2 <- (1 / n) * sum(PG_vector ^ 2)
list(PG_vector = PG_vector, FGT2 = FGT2)
}
pobreza_FGT2(ingreso, linea_pobreza = 300)$FGT2## [1] 0.09130915
Brecha de Media de ingresos I
pobreza_I <- function(vector_ingreso, linea_pobreza) {
ybar <- mean(vector_ingreso[vector_ingreso < linea_pobreza])
I <- (linea_pobreza - ybar) / linea_pobreza
I_data <- list(ybar = ybar, I = I)
}
pobreza_I(ingreso, linea_pobreza = 300)$I #prueba## [1] 0.4393333
Mismos resultados usando libreria “ineq”
Tasa de recuento H
library(ineq)
ineq::Foster(x = ingreso,k = 300,parameter = 1)## [1] 0.2941176
Tasa de brecha de pobreza PG
library(ineq)
ineq::Foster(x = ingreso,k = 300,parameter = 2)## [1] 0.1292157
Indice de severidad de pobreza FGT2
library(ineq)
ineq::Foster(x = ingreso,k = 300,parameter = 3)## [1] 0.09130915
I
library(ineq)
ineq::Foster(x = ingreso,k = 300,parameter = 2) / ineq::Foster(x = ingreso,k = 300,parameter = 1) ## [1] 0.4393333
##Ejemplo con datos en formato tabular.
Datos y carga de librerias:
y <- c(100, 200, 300, 400)
n <- c(50, 25, 75, 25)
library(ineq)
library(purrr)###Cálculos:
H
#H
map2(y,n,.f = rep) %>% unlist() %>%
pobreza_FGT_alpha(linea_pobreza = 300,alpha = 0)## [1] 0.4285714
map2(y,n,.f = rep) %>% unlist() %>%
Foster(k = 300,parameter = 1)## [1] 0.4285714
PG
#PG
map2(y,n,.f = rep) %>% unlist() %>%
pobreza_FGT_alpha(linea_pobreza = 300,alpha = 1)## [1] 0.2380952
map2(y,n,.f = rep) %>% unlist() %>%
Foster(k = 300,parameter = 2)## [1] 0.2380952
FGT2
#FGT2
map2(y,n,.f = rep) %>% unlist() %>%
pobreza_FGT_alpha(linea_pobreza = 300,alpha = 2)## [1] 0.1428571
#------------
map2(y,n,.f = rep) %>% unlist() %>%
Foster(k = 300,parameter = 3)## [1] 0.1428571
Brecha de Media de ingresos I
#I
(map2(y,n,.f = rep) %>% unlist() %>%
pobreza_FGT_alpha(linea_pobreza = 300,alpha = 1))/(map2(y,n,.f = rep) %>% unlist() %>%
pobreza_FGT_alpha(linea_pobreza = 300,alpha = 0))## [1] 0.5555556
#---------
(map2(y,n,.f = rep) %>% unlist() %>%
Foster(k = 300,parameter = 2)) / (map2(y,n,.f = rep) %>% unlist() %>%
Foster(k = 300,parameter = 1))## [1] 0.5555556
Ejemplo con una base de datos:
library(readxl)
library(dplyr)
info_FGT <- read_excel("C:/Users/walter/OneDrive/Escritorio/info_FGT.xlsx")
glimpse(info_FGT)## Rows: 45
## Columns: 4
## $ zona <chr> "Rural", "Rural", "Rural", "Rural", "Urbano", "Urbano", "U…
## $ ingreso <dbl> 58, 79, 376, 403, 121, 284, 299, 385, 537, 545, 569, 577, …
## $ municipio <chr> "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A"…
## $ num_hogares <dbl> 55, 25, 60, 104, 22, 65, 18, 76, 23, 124, 97, 11, 28, 10, …
Literal a)
library(dplyr)
library(kableExtra)
library(purrr)
z <- 300
info_FGT %>%
group_by(municipio) %>%
summarise(
H = pobreza_H(map2(ingreso, num_hogares, .f = rep) %>% unlist(), linea_pobreza = z)$H,
I = pobreza_I(map2(ingreso, num_hogares, .f = rep) %>% unlist(), linea_pobreza = z)$I,
PG = pobreza_PG(map2(ingreso, num_hogares, .f = rep) %>% unlist(), linea_pobreza = z)$PG,
FGT2 = pobreza_FGT2(map2(ingreso, num_hogares, .f = rep) %>% unlist(), linea_pobreza = z)$FGT2
) %>% kable(caption = "Indicadores familia FGT", digits = 4) %>%
kable_classic()| municipio | H | I | PG | FGT2 |
|---|---|---|---|---|
| A | 0.1867 | 0.4294 | 0.0802 | 0.0579 |
| B | 0.5721 | 0.3152 | 0.1803 | 0.0760 |
| C | 0.4013 | 0.2645 | 0.1061 | 0.0396 |
Literal b)
library(dplyr)
library(purrr)
library(ineq)
z<-350
info_FGT %>%
group_by(municipio,zona) %>%
summarise(
H = Foster(map2(ingreso,num_hogares,.f = rep) %>% unlist(),
k = z,parameter = 1),
I = pobreza_I(map2(ingreso,num_hogares,.f = rep) %>% unlist(), linea_pobreza = z)$I,
PG = Foster(map2(ingreso,num_hogares,.f = rep) %>% unlist(),
k = z,parameter = 2),
FGT2 = Foster(map2(ingreso,num_hogares,.f = rep) %>% unlist(),
k=z,parameter = 3)
) %>% kable(caption = "Indicadores familia FGT",digits = 4) %>%
kable_classic()| municipio | zona | H | I | PG | FGT2 |
|---|---|---|---|---|---|
| A | Rural | 0.3279 | 0.8155 | 0.2674 | 0.2183 |
| A | Urbano | 0.1406 | 0.2788 | 0.0392 | 0.0162 |
| B | Rural | 0.3871 | 0.5945 | 0.2301 | 0.1375 |
| B | Urbano | 0.7500 | 0.3230 | 0.2422 | 0.0868 |
| C | Rural | 0.1311 | 0.4297 | 0.0563 | 0.0280 |
| C | Urbano | 1.0000 | 0.3113 | 0.3113 | 0.1239 |