#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
}
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
#Brecha de pobreza PG:
pobreza_FGT_alpha(ingreso, linea_pobreza = 300,alpha = 1)
## [1] 0.1292157
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
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
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
##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
library(ineq)
ineq::Foster(x = ingreso,k = 300,parameter = 3)
## [1] 0.09130915
library(ineq)
ineq::Foster(x = ingreso,k = 300,parameter = 2) / ineq::Foster(x = ingreso,k = 300,parameter = 1)
## [1] 0.4393333
###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
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
#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
library(readxl)
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
info_FGT <- read_excel("C:/Users/Febe Arias/Downloads/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, …
library(dplyr)
library(kableExtra)
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
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()
## `summarise()` has grouped output by 'municipio'. You can override using the
## `.groups` argument.
| 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 |