#Datos para el ejemplo
ingreso<-c(58, 79, 376, 403, 121, 284, 299, 385, 537, 545, 569, 577, 584, 723, 729,737,746)
#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 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
#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 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
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
library(ineq)
ineq::Foster(x = ingreso, k = 300, parameter = 1)
## [1] 0.2941176
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
I
library(ineq)
ineq::Foster(x = ingreso, k = 300, parameter = 2) / ineq::Foster(x = ingreso, k = 300, parameter = 1)
## [1] 0.4393333
y <-c(100, 200, 300, 400)
n <-c(50, 25, 75, 25)
library(ineq)
library(purrr)
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
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
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
(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
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:
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, …
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 |
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 |