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()
Indicadores familia FGT
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()
Indicadores familia FGT
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