A continuación se presenta la base de datos del programa Pensiones 65 de Perú 2021.
setwd("D:/Libros/Seminarios/Construccion indicadores economicos sociales R/6 Beneficiarios programa pension 65/Data Pensiones")
data <- as.data.frame(sjlabelled::read_stata("enaho01a-2021-300.dta"))
## p311a1_8, p311a1_9, p311a2_8, p311a2_9, p311a3_8, p311a3_9, p311a4_8, p311a4_9, p311a5_8, p311a5_9, p311a7_8, p311a7_9, p311b_8, p311b_9, p311c_5, p311c_6, p311c_8, p311c_9, p311d_8, p311d2_1, p311d2_2, p311d2_3, p311d2_6, p311d2_8, p311d2_9, p311d3_1, p311d3_3, p311d3_5, p311d3_6, p311d3_8, p311d3_9, p311d4_1, p311d4_2, p311d4_3, p311d4_4, p311d4_6, p311d4_8, p311d4_9, p311d5_8, p311d5_9, p311d6_8, p311d7_1, p311d7_2, p311d7_6, p311d7_8, p311d7_9, p311e_8, p311e_9, p3122c2, p3122c3, p3122c5, p3122c6, p315b5, p315b6, d311d2_1, d311d3_1, d311d4_1, d311d7_1, d311d2_2, d311d4_2, d311d7_2, d311d2_3, d311d3_3, d311d4_3, d311d4_4, d311d3_5, d311d2_6, d311d3_6, d311d4_6, d311d7_6, d3122c2, d3122c3, d3122c5, d3122c6, d315b5, d315b6, i311d2_1, i311d3_1, i311d4_1, i311d7_1, i311d2_2, i311d4_2, i311d7_2, i311d4_4, i311d2_6, i311d3_6, i311d4_6, i311d7_6, i311d2_3, i311d3_3, i311d4_3, i311d3_5, i3122c2, i3122c3, i3122c5, i3122c6, i315b5, i315b6
head(data)
Inicia revisando la variable p203 que contiene la
información de la relación de parentesco con el jefe o jefa del hogar,
donde
Y se eligen sólo a los jefes de hogares.
table(data$p203, useNA = c("ifany"))
##
## 1 2 3 4 5 6 7 8 10 11
## 34245 20441 43882 1393 4864 1826 1230 81 617 1288
# Reemplazar valos nulos por ceros
data$p203<-ifelse(is.na(data$p203),0, data$p203)
# Jefes de hogares
data5 <- subset(data, p203 == "1")
¿Cuál es el último año o grado de estudios y nivel que aprobó? Para
ellos se explotar la variable p301a
table(data5$p301a,useNA = c("ifany"))
##
## 1 2 3 4 5 6 7 8 9 10 11 12 <NA>
## 1955 22 6052 5206 4138 8582 1152 2837 1064 2569 663 1 4
# Reemplazar valos nulos por ceros
data5$p301a <- ifelse(is.na(data5$p301a), 0, data5$p301a)
# Recodifica variable
data5$educ<- ifelse(data5$p301a == 0 |
data5$p301a == 1, 1,
ifelse(data5$p301a == 2, 2,
ifelse(data5$p301a == 3 |
data5$p301a == 4, 3,
ifelse(data5$p301a == 5|
data5$p301a == 6|
data5$p301a == 12, 4,
ifelse(data5$p301a == 7|
data5$p301a==8|
data5$p301a==9|
data5$p301a==10|
data5$p301a==11, 5, -1)))))
# Etiquetas
data5$educ<- ifelse(data5$educ == 1, "sin estudios",
ifelse(data5$educ == 2, "inicial",
ifelse(data5$educ == 3, "primaria",
ifelse(data5$educ == 4, "secundaria",
ifelse(data5$educ == 5, "superior", NA)))))
table(data5$educ)
##
## inicial primaria secundaria sin estudios superior
## 22 11258 12721 1959 8285
¿Cuál es el último año o grado de estudios y nivel que aprobó, ya sea en centro público o privado?
table(data5$p301d,useNA = c("ifany"))
##
## 1 2 <NA>
## 28045 4241 1959
# Reemplazar valos nulos por ceros
data5$p301d <- ifelse(is.na(data5$p301d), 0, data5$p301d)
# Recodifica variable
data5$estatal <- ifelse(data5$p301d=="1", 1, 0)
# Etiquetas
data5$estatal <- factor(data5$estatal, labels = c("no estatal", "estatal"))
table(data5$estatal)
##
## no estatal estatal
## 6200 28045
¿Sabe leer y escribir?
table(data5$p302,useNA = c("ifany"))
##
## 1 2 <NA>
## 4947 2734 26564
# Reemplazar valos nulos por ceros
data5$p302<-ifelse(is.na(data5$p302), 0, data5$p302)
# Recodifica variable
data5$analfabeto <- ifelse(data5$p302 == "2", 1, 0)
# Etiquetas
data5$analfabeto <- factor(data5$analfabeto, labels = c("no analfabeto", "analfabeto"))
table(data5$analfabeto)
##
## no analfabeto analfabeto
## 31511 2734
Se seleccionan las variables de interés, tomando en cuenta que
conglome, vivienda, hogar son las
llaves de la base de datos.
JHb <- select(data5, conglome, vivienda, hogar, aÑo, educ, estatal, analfabeto)
head(JHb)
setwd("D:/Libros/Seminarios/Construccion indicadores economicos sociales R/6 Beneficiarios programa pension 65/Data Pensiones")
data2 <- as.data.frame(read_dta("enaho01-2021-200.dta"))
head(data2)
Aísla de nuevo a los jefes de hogar
table(data2$p203,useNA = c("ifany"))
##
## 0 1 2 3 4 5 6 7 8 9 10 11
## 3430 34245 20441 48003 1600 6885 2094 1787 81 1 1036 1464
# Reemplazar valos nulos por ceros
data2$p203 <- ifelse(is.na(data2$p203), 0, data2$p203)
# Solo jefes de hogar
data4 <- subset(data2, p203 == "1")
Revisa el sexo del jefe de hogar.
table(data4$p207,useNA = c("ifany"))
##
## 1 2
## 22616 11629
# Reemplazar valos nulos por ceros
data4$p207<-ifelse(is.na(data4$p207), 0, data4$p207)
# Recodifica variable
data4$generoJH<-ifelse(data4$p207 == "1", 1, 0)
# Etiquetas
data4$generoJH <- factor(data4$generoJH, labels = c("mujer", "hombre"))
table(data4$generoJH)
##
## mujer hombre
## 11629 22616
¿Qué edad tiene en años cumplidos?
table(data4$p208a,useNA = c("ifany"))
##
## 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
## 1 4 27 38 59 94 124 159 212 220 284 288 355 426 449 436 521 541 574 590
## 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
## 640 607 702 696 699 750 718 767 742 762 767 762 789 758 770 788 709 747 779 787
## 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
## 736 728 678 649 707 708 625 570 566 605 578 572 514 478 461 468 423 381 380 369
## 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
## 367 293 265 256 227 233 191 175 161 141 113 104 90 68 61 50 32 18 18 15
## 96 97 98
## 7 8 15
Renombra las variables p208a como
edadJH
data4 = rename(data4, c(p208a = "edadJH"))
names(data4)
## [1] "aÑo" "mes" "conglome" "vivienda"
## [5] "hogar" "codperso" "ubigeo" "dominio"
## [9] "estrato" "p201p" "p203" "p203a"
## [13] "p203b" "p204" "p205" "p206"
## [17] "p207" "edadJH" "p208b" "p209"
## [21] "p210" "p211a" "p211d" "p212"
## [25] "p213" "p214" "p215" "p216"
## [29] "p217" "t211" "ocupac_r3" "ocupac_r4"
## [33] "rama_r3" "rama_r4" "codtarea" "codtiempo"
## [37] "ticuest01" "tipocuestionario" "facpob07" "nconglome"
## [41] "sub_conglome" "generoJH"
Selecciono las variables de interés, conservando siempre las llaves.
JHa <- select(data4, conglome, vivienda, hogar, generoJH, edadJH)
head(JHa)
setwd("D:/Libros/Seminarios/Construccion indicadores economicos sociales R/6 Beneficiarios programa pension 65/Data Pensiones")
empleo_ingresos <- as.data.frame(read_dta("enaho01a-2021-500.dta"))
head(empleo_ingresos)
Analiza de nuevo a los jefes de hogar
table(empleo_ingresos$p203,useNA = c("ifany"))
##
## 1 2 3 4 5 6 7 8 10 11
## 34245 20441 24628 1392 1526 1826 898 80 531 1239
# Reemplaza valores nulos por ceros
empleo_ingresos$p203 <- ifelse(is.na(empleo_ingresos$p203), 0, empleo_ingresos$p203)
# Selecciona a los ocupados
empleo_ingresos <- subset(empleo_ingresos,p203 == "1")
# Recodifica variable
empleo_ingresos$ocupado <- ifelse(empleo_ingresos$ocu500 == 1, 1, 0)
table(empleo_ingresos$ocupado,useNA = c("ifany"))
##
## 0 1
## 5911 28334
# Etiquetas
empleo_ingresos$ocupado <- factor(empleo_ingresos$ocupado, labels = c("no ocupado", "ocupado"))
table(empleo_ingresos$ocupado)
##
## no ocupado ocupado
## 5911 28334
Selecciono las variables de interés, conservando siempre las llaves.
JHc <- select(empleo_ingresos, conglome, vivienda, hogar, ocupado)
head(JHc)
setwd("D:/Libros/Seminarios/Construccion indicadores economicos sociales R/6 Beneficiarios programa pension 65/Data Pensiones")
sumaria <- as.data.frame(read_dta("sumaria-2021.dta"))
head(sumaria)
Analiza la variable pobreza
table(sumaria$pobreza,useNA = c("ifany"))
##
## 1 2 3
## 1130 5210 27905
# Reemplaza valores nulos por ceros
sumaria$pobreza<-ifelse(is.na(sumaria$pobreza), 0, sumaria$pobreza)
# Recodifica variable
sumaria$pobre <- ifelse(sumaria$pobreza=="1"|
sumaria$pobreza=="2", 1, 0)
# Etiquetas
sumaria$pobre <- factor(sumaria$pobre, labels = c("no pobre", "pobre"))
table(sumaria$pobre)
##
## no pobre pobre
## 27905 6340
table(sumaria$estrato,useNA = c("ifany"))
##
## 1 2 3 4 5 6 7 8
## 5824 6543 2931 2339 4438 2069 7331 2770
# Reemplaza valores nulos por ceros
sumaria$estrato <- ifelse(is.na(sumaria$estrato), 0, sumaria$estrato)
# Recodifica variable
sumaria$rural <- ifelse(sumaria$estrato=="6"|
sumaria$estrato=="7"|
sumaria$estrato=="8", 1, 0)
# Etiquetas
sumaria$rural <- factor(sumaria$rural, labels = c("urbano", "rural"))
table(sumaria$rural)
##
## urbano rural
## 22075 12170
sumaria$sub12 <- substr(sumaria$ubigeo, 1, 2)
sumaria$sub12 <- as.numeric(sumaria$sub12)
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"))
sumaria$region <- regiones$departamentos[match(sumaria$sub12,regiones$id)]
table(sumaria$region,useNA = c("ifany"))
##
## Amazonas Ancash Apurimac Arequipa Ayacucho
## 1254 1433 960 1534 1182
## Cajamarca Callao Cusco Huancavelica Huanuco
## 1453 982 1259 1036 1269
## Ica Junin La Libertad Lambayeque Lima
## 1542 1531 1538 1434 4525
## Loreto Madre De Dios Moquegua Pasco Piura
## 1388 621 982 886 1632
## Puno San Martin Tacna Tumbes Ucayali
## 1143 1334 1321 863 1143
Seleccionamos las variables de interés.
pobreza1 <- select(sumaria, conglome, vivienda, hogar, pobre, rural, region, factor07, estrato, mieperho)
head(pobreza1)
setwd("D:/Libros/Seminarios/Construccion indicadores economicos sociales R/6 Beneficiarios programa pension 65/Data Pensiones")
sociales <- as.data.frame(read_dta("enaho01-2021-700.dta"))
head(sociales)
La información de los beneficiarios de la pensión esta en la variable
p710_05.
table(sociales$p710_05)
##
## 0 1
## 30255 2750
# Reemplaza valores nulos por ceros
sociales$p710_05<-ifelse(is.na(sociales$p710_05),0,sociales$p710_05)
# Recodifico la variable
sociales$p65<-ifelse(sociales$p710_05=="1",1,0)
table(sociales$p65)
##
## 0 1
## 31495 2750
# Etiquetas
sociales$p65 <- factor(sociales$p65, labels = c("no beneficiario", "beneficiario"))
table(sociales$p65)
##
## no beneficiario beneficiario
## 31495 2750
Se guardan las variables más importantes.
trabajo <- select(sociales, conglome, vivienda, hogar, p65)
head(trabajo)
setwd("D:/Libros/Seminarios/Construccion indicadores economicos sociales R/6 Beneficiarios programa pension 65/Data Pensiones")
servicios <- as.data.frame(read_dta("enaho01-2021-100.dta"))
head(servicios)
El agua que utilizan en el hogar procede principalmente de
table(servicios$p110)
##
## 1 2 3 4 5 6 7 8
## 27847 1316 703 863 686 832 884 1114
# Reemplaza valores nulos por ceros
servicios$p110<-ifelse(is.na(servicios$p110),0,servicios$p110)
# Recodifico la variable
servicios$agua <- ifelse(servicios$p110=="1" | servicios$p110=="2" ,1,0)
table(servicios$agua)
##
## 0 1
## 14361 29163
# Etiquetas
servicios$agua <- factor(servicios$agua, labels = c("no agua potable", "agua potable"))
table(servicios$agua)
##
## no agua potable agua potable
## 14361 29163
El baño o servicio higiénico que tiene su hogar esta conectado a:
table(servicios$p111a)
##
## 1 2 3 4 5 6 7 9
## 20670 1260 1058 3630 3068 480 2411 1668
# Reemplaza valores nulos por ceros
servicios$p111a<-ifelse(is.na(servicios$p111a),0,servicios$p111a)
# Recodifico la variable
servicios$bano <- ifelse(servicios$p111a=="1" | servicios$p111a=="2" ,1,0)
table(servicios$bano)
##
## 0 1
## 21594 21930
# Etiquetas
servicios$bano <- factor(servicios$bano, labels = c("no bano", "bano"))
table(servicios$bano)
##
## no bano bano
## 21594 21930
Tipo de alumbrado del hogar
table(servicios$p1121)
##
## 0 1
## 2435 31810
# Reemplaza valores nulos por ceros
servicios$p1121 <- ifelse(is.na(servicios$p1121), 0, servicios$p1121)
# Recodifico la variable
servicios$luz <- ifelse(servicios$p1121 == "1", 1, 0)
table(servicios$luz)
##
## 0 1
## 11714 31810
# Etiquetas
servicios$luz <- factor(servicios$luz, labels = c("no luz", "con luz"))
table(servicios$luz)
##
## no luz con luz
## 11714 31810
Se guardan las variables más importantes.
hogarservicios <- select(servicios, conglome, vivienda, hogar, agua, bano, luz)
head(hogarservicios)
##Consolidado
A continuación, se consolidan todas las bases de datos anteriormente creadas en una sola.
BaseFinal<-merge(JHb, JHa,
by.x = c("conglome","vivienda","hogar"),
by.y = c("conglome","vivienda","hogar"),
all.x = TRUE)
BaseFinal<-merge(BaseFinal, JHc,
by.x = c("conglome","vivienda","hogar"),
by.y = c("conglome","vivienda","hogar"),
all.x = TRUE)
BaseFinal<-merge(BaseFinal,pobreza1,
by.x = c("conglome","vivienda","hogar"),
by.y = c("conglome","vivienda","hogar"),
all.x = TRUE)
BaseFinal<-merge(BaseFinal, trabajo,
by.x = c("conglome","vivienda","hogar"),
by.y = c("conglome","vivienda","hogar"),
all.x = TRUE)
BaseFinal<-merge(BaseFinal, hogarservicios,
by.x = c("conglome","vivienda","hogar"),
by.y = c("conglome","vivienda","hogar"),
all.x = TRUE)
De la base final se eligen a todos aquellos mayores a 65 años para hacer el diseño muestral.
BaseFinal1 <- subset(BaseFinal, edadJH >= 65)
# Factores de expansion
attach(BaseFinal1)
facpob1 <- factor07
facpob <- factor07*mieperho
# Diseño muestral
diseno <- svydesign(id=~conglome, strata=~estrato, weight=~facpob1, data=BaseFinal1, nest=TRUE)
diseno1 <- svydesign(id=~conglome, strata=~estrato, weight=~facpob, data=BaseFinal1, nest=TRUE)
Total de beneficiarios del programa Pensiones 65 en 2021
tabla <- svyby(~p65, ~aÑo, diseno, svymean, deff = FALSE, na.rm = TRUE)
tabla
El 23.58% de las personas eran beneficiarias de la pensión
Total de hogares beneficiarias del programa Pensiones 65.
total <- svytotal(~p65, diseno, deff = TRUE)
total
## total SE DEff
## p65no beneficiario 1748897 35493 10.8943
## p65beneficiario 539864 16040 2.2249
Ese 17.53% representó a 539,864 hogares.
Total de hogares beneficiarias del programa Pensiones 65, según zona.
tabla <- svyby(~p65, ~aÑo+rural,diseno, svymean, deff = FALSE, na.rm = TRUE)
tabla
Hay un total de 57.06% de beneficiarios en la zona rural.
Total de personas beneficiarias del programa Pensiones 65, según zona.
total <- svytotal(~p65+rural, diseno1, deff=TRUE)
total
## total SE DEff
## p65no beneficiario 4818843 120774 24.0738
## p65beneficiario 1024409 33491 1.8512
## ruralurbano 4654602 121817 21.8521
## ruralrural 1188650 27683 1.1285
Ese 57.06% equivale a 1,188,650 personas.
Total de beneficiarios del programa Pensiones 65, según departamento.
tabla <- svyby(~p65, ~aÑo+region,diseno, svymean, deff = FALSE, na.rm = TRUE)
tabla
En 2021, el departamento de Amazonas tenía 36.46% de beneficiarios del programa.
Total de personas por departamento
total <- svytotal(~p65+region, diseno1, deff = TRUE)
total
## total SE DEff
## p65no beneficiario 4818842.6 120773.8 24.0738
## p65beneficiario 1024408.8 33490.8 1.8512
## regionAmazonas 66472.0 7353.8 1.1474
## regionAncash 203991.0 21132.3 3.1628
## regionApurimac 68401.1 8249.5 1.4037
## regionArequipa 216865.5 22703.2 3.4417
## regionAyacucho 117090.9 14654.9 2.6097
## regionCajamarca 274297.2 27673.0 4.0844
## regionCallao 198344.1 23544.2 4.0337
## regionCusco 214277.3 22306.9 3.3611
## regionHuancavelica 91318.6 10388.1 1.6738
## regionHuanuco 124253.3 16505.0 3.1233
## regionIca 133921.6 13935.5 2.0693
## regionJunin 210920.0 20281.8 2.8211
## regionLa Libertad 393072.0 38803.8 5.7264
## regionLambayeque 255775.2 25592.6 3.7340
## regionLima 2258384.4 116580.0 13.6771
## regionLoreto 141291.8 16738.5 2.8334
## regionMadre De Dios 8810.8 1926.7 0.5883
## regionMoquegua 28839.6 3618.0 0.6360
## regionPasco 39871.5 5620.5 1.1123
## regionPiura 299333.2 28383.2 3.9552
## regionPuno 255282.4 31544.2 5.6830
## regionSan Martin 103994.3 13494.4 2.4858
## regionTacna 55343.6 8615.0 1.8877
## regionTumbes 33353.6 4720.1 0.9367
## regionUcayali 49746.6 7129.8 1.4370
En Amazonas esto representa a 66,472 personas.
Total de beneficiarios por zona y departamento.
tabla <- svyby(~p65, ~aÑo+rural+region,diseno, svymean, deff = FALSE, na.rm = TRUE)
tabla
En la zona rural de Amazonas los hogares beneficiarios fueron el 24.90%.