Para el INEI (2022) señala que el método de medición de las Necesidades Básicas Insatisfechas (NBI) toma en consideración un conjunto de indicadores relacionados con características de los hogares en relación a necesidades básicas estructurales (Vivienda, educación, salud, infraestructura pública, etc.).
Este método presta atención fundamentalmente a la evolución de la pobreza estructural, y por tanto no es sensible a los cambios de la coyuntura económica y permite una visión específica de la situación de pobreza, considerando los aspectos sociales. A la vez, se define pobre por NBI a aquella población que reside en hogares con al menos una las siguientes necesidades básicas insatisfechas:
\[\begin{equation} \begin{split} NBI & = NBI_1 = NBI_2 = NBI_3 = NBI_4 = NBI_5 \\ & = \textrm{% de población con al menos 1 necesidad básica insatisfecha} \end{split} \end{equation}\]
A continuación se presenta la sumaria de la ENAHO 2021.
setwd("D:/Libros/Seminarios/Construccion indicadores economicos sociales R/3 Pobreza segun necesidades basicas insatisfechas/ENAHO 2021 Condiciones vida pobreza Caracteristicas vivienda hogar")
sumaria <- as.data.frame(sjlabelled::read_stata("enaho01-2021-100.dta"))
## p1171_03, p1172_03, p1173_03, p1174_01, p1174_02, p1174_03, p1174_05, p1174_11, p1174_12, p1174_13, p1174_14, d1174_01, d1174_02, d1174_05, d1174_11, d1174_12, d1174_13, d1174_14, i1174_01, i1174_02, i1174_05, i1174_11, i1174_12, i1174_13, i1174_14
head(sumaria)
Analiza los hogares rurales usando la variable
estrato, ésta se lee como:
# Frecuencia de estrato
table(sumaria$estrato,useNA = c("ifany"))
##
## 1 2 3 4 5 6 7 8
## 7881 8419 3694 2885 5603 2696 8920 3426
# Reemplaza valores NA por 0
sumaria$estrato<-ifelse(is.na(sumaria$estrato),0,sumaria$estrato)
Con ayuda de esta variable se crea la variable rural.
Aquí los estratos 6, 7 y 8 serán 1, todo lo demás 0, es decir, las
primeras serán las zonas rurales, las demás serán urbanas.
# Crea variable rural
sumaria$rural <- ifelse(sumaria$estrato=="6" |
sumaria$estrato=="7" |
sumaria$estrato=="8", 1, 0)
# Frecuencia
table(sumaria$rural)
##
## 0 1
## 28482 15042
Se agregan etiquetas para mayor claridad.
# Rural
sumaria$rural <- factor(sumaria$rural,
labels = c("urbano", "rural"))
table(sumaria$rural)
##
## urbano rural
## 28482 15042
Crea las regiones con ayuda de la variable ubigeo, ésta
es una clave con la que se identifica la ubicación geográfica de las
comunidades, los primeros dos dígitos de la variable indican el
departamento, los siguientes dos la provincia, y el último par el
distrito.
# Filtro 1 y 2 (Primeros digitos de ubigeo para Departamento)
sumaria$sub12 <- substr(sumaria$ubigeo,1,2)
# Transformo en variable numerica
sumaria$sub12 <- as.numeric(sumaria$sub12)
# Base de datos con los 25 departamentos de Peru
regiones<- data.frame(id = c(1:25),
departamentos = c("Amazonas", "Ancash", "Apurimac", "Arequipa", "Ayacucho", "Cajamarca", "Callao", "Cusco", "Huancavelica", "Huanuco", "Ica", "Junin", "La Libertad", "Lambayeque", "Lima", "Loreto", "Madre De Dios", "Moquegua", "Pasco", "Piura", "Puno", "San Martin", "Tacna", "Tumbes", "Ucayali"))
# Match de las regiones con el filtro sub12
sumaria$region<- regiones$departamentos[match(sumaria$sub12,regiones$id)]
table(sumaria$region,useNA = c("ifany"))
##
## Amazonas Ancash Apurimac Arequipa Ayacucho
## 1516 1748 1083 2060 1580
## Cajamarca Callao Cusco Huancavelica Huanuco
## 1700 1347 1643 1301 1585
## Ica Junin La Libertad Lambayeque Lima
## 1838 1827 1874 1638 6117
## Loreto Madre De Dios Moquegua Pasco Piura
## 1747 874 1310 1130 1877
## Puno San Martin Tacna Tumbes Ucayali
## 1853 1626 1880 1006 1364
# Observar valores los nulos
table(sumaria$nbi1, useNA = c("ifany"))
##
## 0 1 <NA>
## 31730 2515 9279
# Reemplazar valores nulos con ceros
sumaria$nbi1 <- ifelse(is.na(sumaria$nbi1), 0, sumaria$nbi1)
table(sumaria$nbi1, useNA = c("ifany"))
##
## 0 1 2
## 9279 31730 2515
# Recodificar variable
sumaria$nbi1 <- ifelse(sumaria$nbi1=="0" | sumaria$nbi1=="1", 0, 1)
table(sumaria$nbi1)
##
## 0 1
## 41009 2515
# Observar valores los nulos
table(sumaria$nbi2,useNA = c("ifany"))
##
## 0 1 <NA>
## 32843 1402 9279
# Reemplazar valores nulos con ceros
sumaria$nbi2<-ifelse(is.na(sumaria$nbi2),0,sumaria$nbi2)
table(sumaria$nbi2, useNA = c("ifany"))
##
## 0 1 2
## 9279 32843 1402
# Recodificar variable
sumaria$nbi2 <- ifelse(sumaria$nbi2 == "0" | sumaria$nbi2 == "1", 0, 1)
table(sumaria$nbi2)
##
## 0 1
## 42122 1402
# Obsevar los nulos
table(sumaria$nbi3,useNA = c("ifany"))
##
## 0 1 <NA>
## 31678 2567 9279
# Reemplazar valores nulos con ceros
sumaria$nbi3<-ifelse(is.na(sumaria$nbi3),0,sumaria$nbi3)
table(sumaria$nbi3, useNA = c("ifany"))
##
## 0 1 2
## 9279 31678 2567
# Recodificar variable
sumaria$nbi3 <- ifelse(sumaria$nbi3 == "0" | sumaria$nbi3 == "1", 0, 1)
table(sumaria$nbi3)
##
## 0 1
## 40957 2567
# Observar valores los nulos
table(sumaria$nbi4,useNA = c("ifany"))
##
## 0 1 <NA>
## 33996 249 9279
# Reemplazar valores nulos con ceros
sumaria$nbi4<-ifelse(is.na(sumaria$nbi4),0,sumaria$nbi4)
table(sumaria$nbi4, useNA = c("ifany"))
##
## 0 1 2
## 9279 33996 249
# Recodificar variable
sumaria$nbi4 <- ifelse(sumaria$nbi4 == "0" | sumaria$nbi4 == "1", 0, 1)
table(sumaria$nbi4)
##
## 0 1
## 43275 249
# Observar valores los nulos
table(sumaria$nbi5, useNA = c("ifany"))
##
## 0 1 <NA>
## 34048 197 9279
# Reemplazar valores nulos con ceros
sumaria$nbi5<-ifelse(is.na(sumaria$nbi5), 0, sumaria$nbi5)
table(sumaria$nbi5, useNA = c("ifany"))
##
## 0 1 2
## 9279 34048 197
# Recodificar variable
sumaria$nbi5 <- ifelse(sumaria$nbi5 == "0" | sumaria$nbi5 == "1", 0, 1)
table(sumaria$nbi5)
##
## 0 1
## 43327 197
Se construye el indicador de pobreza NBI, de tal forma que cuente todos los 1 en cada uno de los NBI.
sumaria$pobrezaNBI <- ifelse(sumaria$nbi1 == "1" |
sumaria$nbi2=="1" |
sumaria$nbi3=="1"|
sumaria$nbi4=="1" |
sumaria$nbi5 == "1", 1, 0)
Se agregan etiquetas para mayor claridad.
sumaria$pobrezaNBI <- factor(sumaria$pobrezaNBI, labels = c("no NBI", "NBI"))
# Frecuencia
table(sumaria$pobrezaNBI)
##
## no NBI NBI
## 37678 5846
Diseña el factor de expansión por hogar.
attach(sumaria)
# Factor de expansion
facpob <- factor07
Construye el diseño de muestra.
# Diseño muestral
diseno <- svydesign(id=~conglome, strata=~estrato, weight=~facpob, data=sumaria, nest=TRUE)
Se calcula la incidencia de la pobreza por NBI por hogares.
# Incidencia
pmonetaria <- svymean(~pobrezaNBI, diseno, deff=TRUE)
resultados <- c(pmonetaria)
resultados
## pobrezaNBIno NBI pobrezaNBINBI
## 0.8884513 0.1115487
En 2021 el 11.15% de los hogares peruanos a nivel nacional sufrían de algún tipo de pobreza de necesidades básicas dado que, carecían de al menos una de sus elementos, por lo tanto, de por cada 100 hogares, 11 de ellos tienen al menos una de sus necesidades básicas insatisfechas.
tabla <- svyby(~pobrezaNBI, ~rural, diseno, svymean, deff = FALSE, na.rm = TRUE)
tabla
# Exporta el resultado
# write.csv(tabla,"tabla_resumen.csv")
En 2021 el 20.93% de los hogares rurales padecía algún tipo de pobreza de necesidades básicas, mientras que sólo el 8.5% de los hogares urbanos presentaban éste problema.
tabla <- svyby(~pobrezaNBI, ~region, diseno, svymean, deff = FALSE, na.rm = TRUE)
# Frecuencia
tabla
# Departamento mas pobre
tabla[tabla$pobrezaNBINBI == max(tabla$pobrezaNBINBI), ]
# Departamento menos pobre
tabla[tabla$pobrezaNBINBI == min(tabla$pobrezaNBINBI), ]
# Exporta el resultado
# write.csv(tabla,"tabla_resumen.csv")
En 2021, a nivel departamental, Loreto presentaba un 43.40% de pobreza de necesidades básicas, siendo el departamento más pobre en este rubro, es decir, que de cada 100 hogares, 43 presentaba por lo menos una necesidad básica insatisfecha, mientras que Tacna sólo presentaba un pobreza de 4.99%, siendo el departamento menos vulnerable.
Para hacer este calculo se usa el factor poblacional. Inicio guardando las variables más relevantes.
JHb <- select(sumaria, aÑo, conglome, vivienda, hogar, pobrezaNBI, region, rural, estrato, factor07, nbi1, nbi2, nbi3, nbi4, nbi5)
head(JHb)
El factor poblacional debe ser multiplicado por la variable
mieperho que es el número de personas en el hogar y se
encuentra en la base de datos de Sumaria.
setwd("D:/Libros/Seminarios/Construccion indicadores economicos sociales R/3 Pobreza segun necesidades basicas insatisfechas/ENAHO 2021 Condiciones vida pobreza Sumaria")
sumaria1 <- as.data.frame(sjlabelled::read_stata("sumaria-2021.dta"))
head(sumaria1)
Se vuelven a seleccionar las variables más importantes de esta nueva base de datos.
JHE <- select(sumaria1, aÑo, conglome, vivienda, hogar, mieperho)
head(JHE)
Junta las dos bases de datos
BaseFinal <- merge(JHb, JHE,
by.x = c("conglome", "vivienda", "hogar"),
by.y = c("conglome", "vivienda", "hogar"),
all.x = TRUE)
head(BaseFinal)
Se buscan valores nulos, de haberlos, se sustituyen por 0.
attach(BaseFinal)
# Observar valores los nulos
table(BaseFinal$mieperho, useNA = c("ifany"))
##
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <NA>
## 5445 7297 6862 6882 4243 1982 817 384 180 79 41 19 11 2 1 9279
# Reemplazar valores nulos con ceros
BaseFinal$mieperho<-ifelse(is.na(BaseFinal$mieperho), 0, BaseFinal$mieperho)
table(BaseFinal$mieperho, useNA = c("ifany"))
##
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
## 9279 5445 7297 6862 6882 4243 1982 817 384 180 79 41 19 11 2 1
# Observar valores los nulos
table(BaseFinal$aÑo.y, useNA = c("ifany"))
##
## 2021 <NA>
## 34245 9279
# Reemplazar valores nulos con ceros
BaseFinal$aÑo.y <- ifelse(is.na(BaseFinal$aÑo.y), 2021, BaseFinal$aÑo.y)
table(BaseFinal$aÑo.y, useNA = c("ifany"))
##
## 2021
## 43524
Se multiplica el factor de expansión por el número de miembros en el hogar.
facpob <- factor07 * BaseFinal$mieperho
Construye el diseño de la muestra.
diseno <- svydesign(id=~conglome, strata=~estrato, weight=~facpob, data=BaseFinal, nest=TRUE)
Se calcula la incidencia de la pobreza por NBI a nivel poblacional.
# Incidencia
pmonetaria <- svymean(~pobrezaNBI, diseno, deff = TRUE)
resultados <- c(pmonetaria)
resultados
## pobrezaNBIno NBI pobrezaNBINBI
## 0.8375312 0.1624688
En 2021, a nivel nacional, el 16.24% de la población peruana sufria al menos una necesidad básica insatisfecha, es decir, que de 100 peruanos, 16 de ellos tienen alguna necesidad básica insatisfecha. Este dato coincide con la información presentada en el portal del INEI, dentro de su cuadro resumen Población con al menos una necesidad básica insatisfecha, según departamento.
tabla <- svyby(~pobrezaNBI, ~rural, diseno, svymean, deff = FALSE, na.rm = TRUE)
tabla
# Exporta el resultado
# write.csv(tabla,"tabla_resumen.csv")
En 2021 el 28.65% de la población rural padecía algún tipo de pobreza de necesidades básicas, mientras que sólo el 13.07% de los hogares urbanos presentaban éste problema.
tabla <- svyby(~pobrezaNBI, ~region, diseno, svymean, deff = FALSE, na.rm = TRUE)
# Frecuencia
tabla
# Departamento mas pobre
tabla[tabla$pobrezaNBINBI == max(tabla$pobrezaNBINBI), ]
# Departamento menos pobre
tabla[tabla$pobrezaNBINBI == min(tabla$pobrezaNBINBI), ]
# Exporta el resultado
# write.csv(tabla,"tabla_resumen.csv")
En 2021, a nivel departamental, el 43.46% de la población de Loreto presentaba por lo menos una necesidad básica vulnerada, siendo la población más grandemente afectada por esta situación. Sin embargo, en Tacna, solo el 6.21% de la población presentaba este problema, siendo la población menos vulnerable de Perú. Estos dato coinciden con la información presentada en el portal del INEI, dentro de su cuadro resumen Población con al menos una necesidad básica insatisfecha, según departamento.