1 Programa Pensiones 65

1.1 Módulo Jefe de hogar

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

  • 0.Panel
  • 1.Jefe/Jefa
  • 2.Esposo(a)/compañero(a)
  • 3.Hijo(a)/Hijastro(a)
  • 4.Yerno/Nuera
  • 5.Nieto(a)
  • 6.Padres/Suegros
  • 7.Otros parientes
  • 8.Trabajador Hogar
  • 9.Pensionista
  • 10.Otros no parientes
  • 11.Hermano(a)

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

    1. Sin nivel
    1. Educación inicial
    1. Primaria incompleta
    1. Primaria completa
    1. Secundaria incompleta
    1. Secundaria completa
    1. Superior no universitaria Incompleta
    1. Superior no universitaria completa
    1. Superior universitaria incompleta
    1. Superior universitaria completa
    1. Maestría/Doctorado
    1. Básica especial
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?

    1. Estatal
    1. No estatal
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?

    1. No
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)

1.2 Módulo Características del hogar

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)

1.3 Módulo Ocupación jefe de hogar

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)

1.4 Módulo Sumaria

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)

1.4.1 Pobreza

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

1.4.2 Zona

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

1.4.3 Regiones

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)

1.5 Módulo Pensiones 65

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)

1.6 Módulo Servicios

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)

1.6.1 Agua

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

1.6.2 Baño

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

1.6.3 Electricidad

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)

1.7 Análisis del programa Pensiones 65

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%.