Indicadores de Pobreza, enfoque de lineas de pobreza

#Datos para el 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.

#Construccion de una funcion 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

Tambien 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) PG

#Brecha de pobreza PG:
pobreza_FGT_alpha(ingreso, linea_pobreza = 300, alpha = 1)
## [1] 0.1292157

Tambien 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

Tambien 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)

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

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

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 media del ingreso: 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:

Se conoce la información de ingresos por municipio y zona rural & urbana para “Lovercraft Country”, se le solicita que:

Calcule los indicadores de FGT, si el umbral de pobreza z es:

  1. 300 u.m., y presente los resultados totales por municipio.
  2. 350 u.m., y presente los resultados totales por municipio y por zona.

importante: la información se encuentra disponible en el archivo “info_FGT.xlsx”, zona, indica si la persona es de zona rural o urbana, ingreso es la renta en unidades monetarias para cada hogar (un hogar por fila del dataframe), municipio indica si el hogar es del municipio “A”, “B” ó “C”, & num_hogares contiene la cantidad de hogares que perciben el mismo nivel de ingresos indicado en ingreso.

library(readxl)
library(dplyr)
info_FGT <- read_excel("C:/Users/mario/Desktop/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