DESCRIPCIÓN DEL INDICADOR

El indicador fue calculada utilizando la pregunta 704 del módulo de salud de la ENDES. Se incluyeron las opciones de “Varios días”, “La mayoría de días” y “Casi todos los días” para las siguientes variables:

¿Ha tenido pocas ganas o interés en hacer las cosas? ¿Se ha sentido desanimada(o), deprimida(o), triste o sin esperanza? ¿Ha tenido problemas para dormir o mantenerse dormida(o) o dormir demasiado? ¿Se ha sentido cansada(o), ha tenido poca energía sin motivo que lo justifique? ¿Ha tenido poco apetito o ha comido en exceso? ¿Ha tenido dificultad para poner atención o concentrarse en las cosas que hace? ¿Se ha movido o hablado más lento de lo normal o se ha sentido más inquieta(o) de lo normal? ¿Ha tenido pensamientos de que sería mejor estar muerta(o) o que quisiera hacerse daño de alguna forma buscando morir? ¿Se ha sentido mal acerca de sí misma(o) o se ha sentido que es una (un) fracasado(a) o que se ha fallado a sí misma(o) o a su familia? El factor de ponderación utilizado fue PESO15_AMAS.

Factor de ponderación: PESO15_AMAS

MODELADO DE BASE DATO

PAQUETES ESTADÍSTICOS

library(openxlsx) 
library(rmarkdown) 
library(tidyverse) 
library(haven) 
library(foreign) 
library(survey) 
library(knitr)

GENERAMOS UNA RUTA PARA GUARDAR NUESTROS DATOS

Una ruta hacia una carpeta donde almacenaremos los excel que se elaborarán posteriormente, que contarán con dataset de información construida.

ruta <- "C:/Users/Trabajo/Desktop/RDATA" 

CARGAR BASES DE DATOS

Cargamos los modulo de Características del miembro del hogar y Salud. Además, filtramos solo las encuestas completas del modulo de salud.

choose.files()
## character(0)
cmh <- read_spss("C:\\Users\\Trabajo\\Desktop\\ENDES\\2022\\caracteristicas del hogar -786-Modulo1629\\RECH0.sav")
salud <- read_spss("C:\\Users\\Trabajo\\Desktop\\ENDES\\2022\\Salud - 786- modulo1640\\CSALUD01.sav")
salud <- filter(salud, QSRESULT==1)

UNIÓN DE BASES DE DATOS

endes_inicialx <- left_join(salud,cmh,by=c("HHID"))
endes <- endes_inicialx

ELABORACION DE VARIABLES PARA DESAGREGACIONES

VARIABLES TRANSVERSALES

Aquellas variables que nos sirven para realizar las desagregaciones posteriores.

VARIABLE SEXO

endes <- endes%>% mutate(sexo = ifelse(QSSEXO==1,"hombre",
                                        ifelse(QSSEXO==2,"Mujer",NA)))
table(endes$sexo, useNA = "alw")
## 
## hombre  Mujer   <NA> 
##  13455  18052      0

DEPARTAMENTOS

Hay que convertir la variable ubigeo.x (el “.x” es producto de la unión de bases de datos) a numérico para no encontrar problemas al momento de recodificar

endes$ubigeonum <- as.numeric(endes$UBIGEO)
endes <- endes %>%
  mutate(regiones2 = 
           ifelse(ubigeonum >= 010101 & ubigeonum <= 010707, "Amazonas", 
           ifelse(ubigeonum >= 020101 & ubigeonum <= 022008, "Ancash",
           ifelse(ubigeonum >= 030101 & ubigeonum <= 030714, "Apurimac",
           ifelse(ubigeonum >= 040101 & ubigeonum <= 040811, "Arequipa",
           ifelse(ubigeonum >= 050101 & ubigeonum <= 051108, "Ayacucho",
           ifelse(ubigeonum >= 060101 & ubigeonum <= 061311, "Cajamarca",
           ifelse(ubigeonum >= 070101 & ubigeonum <= 070107, "Callao",
           ifelse(ubigeonum >= 080101 & ubigeonum <= 081307, "Cusco",
           ifelse(ubigeonum >= 090101 & ubigeonum <= 090723, "Huancavelica",
           ifelse(ubigeonum >= 100101 & ubigeonum <= 101108, "Huanuco",
           ifelse(ubigeonum >= 110101 & ubigeonum <= 110508, "Ica",
           ifelse(ubigeonum >= 120101 & ubigeonum <= 120909, "Junin",
           ifelse(ubigeonum >= 130101 & ubigeonum <= 131203, "La Libertad",
           ifelse(ubigeonum >= 140101 & ubigeonum <= 140312, "Lambayeque",
           ifelse(ubigeonum >= 150101 & ubigeonum <= 150143, "Lima Metropolitana",
           ifelse(ubigeonum >= 150201 & ubigeonum <= 151033, "Lima Region",
           ifelse(ubigeonum >= 160101 & ubigeonum <= 160804, "Loreto",
           ifelse(ubigeonum >= 170101 & ubigeonum <= 170303, "Madre de Dios",
           ifelse(ubigeonum >= 180101 & ubigeonum <= 180303, "Moquegua",
           ifelse(ubigeonum >= 190101 & ubigeonum <= 190308, "Pasco",
           ifelse(ubigeonum >= 200101 & ubigeonum <= 200806, "Piura",
           ifelse(ubigeonum >= 210101 & ubigeonum <= 211307, "Puno",
           ifelse(ubigeonum >= 220101 & ubigeonum <= 221005, "San Martín",
           ifelse(ubigeonum >= 230101 & ubigeonum <= 230408, "Tacna",
           ifelse(ubigeonum >= 240101 & ubigeonum <= 240304, "Tumbes",
           ifelse(ubigeonum >= 250101 & ubigeonum <= 250401, "Ucayali",NA)))))))))))))))))))))))))))

table(endes$regiones2, useNA = "alw")
## 
##           Amazonas             Ancash           Apurimac           Arequipa 
##               1316               1150               1160               1126 
##           Ayacucho          Cajamarca             Callao              Cusco 
##               1362               1194               1043               1095 
##       Huancavelica            Huanuco                Ica              Junin 
##               1194               1282               1069               1123 
##        La Libertad         Lambayeque Lima Metropolitana        Lima Region 
##               1073               1150               2509               1206 
##             Loreto      Madre de Dios           Moquegua              Pasco 
##               1149               1097               1022               1113 
##              Piura               Puno         San Martín              Tacna 
##               1157               1170               1163               1183 
##             Tumbes            Ucayali               <NA> 
##               1178               1223                  0

ÁREA URBANA/RURAL

table(endes$HV025)
## 
##     1     2 
## 20248 11259
endes <- endes %>% mutate(area = ifelse(HV025==1, "urbano", "rural"))
table(endes$area, useNA = "alw")
## 
##  rural urbano   <NA> 
##  11259  20248      0

LENGUA MATERNA

endes <- endes %>%
  mutate(lengua = ifelse(QS25AA==10, "Castellano",
                         ifelse(QS25A %in% 1:9, "Originaria", NA)))
endes$lengua <- as.factor(endes$lengua)
table(endes$lengua, useNA = "alw")
## 
## Castellano Originaria       <NA> 
##      23442       5627       2438

ETNICIDAD

endes<- endes %>%
  mutate(defiet2 = case_when(
    QS25BB == 1 ~ "Quechua",
    QS25BB == 2 ~ "Aimara",
    QS25BB == 3 ~ "Nativo o indigena de la Amazonia",
    QS25BB == 5 ~ "Negro/Moreno/Zambo/Mulato/Pueblo Afro peruano o Afrodescendiente",
    QS25BB == 6 ~ "Blanco",
    QS25BB == 7 ~ "Mestizo",
    QS25BB == 8 ~ "otro",
    QS25BB == 99 ~ "No sabe/No responde",
    QS25BB == 4 ~ "Nativo o indigena de la Amazonia",
    TRUE ~ NA_character_
  ))
endes$defiet2 <- as.factor(endes$defiet2)
table(endes$defiet2, useNA = "alw")
## 
##                                                           Aimara 
##                                                             1034 
##                                                           Blanco 
##                                                             1906 
##                                                          Mestizo 
##                                                            12661 
##                                 Nativo o indigena de la Amazonia 
##                                                              821 
## Negro/Moreno/Zambo/Mulato/Pueblo Afro peruano o Afrodescendiente 
##                                                             3339 
##                                                             otro 
##                                                              278 
##                                                          Quechua 
##                                                             9890 
##                                                             <NA> 
##                                                             1578

VARIABLES INDICADOR

SALUD MENTAL EN LOS ÚLTIMOS 14 DÍAS

#SALUD MENTAL EN LOS ULTIMOS 14 DÍAS
endes <- endes %>%
  mutate(saludment1 = case_when(QS700A == 0 ~ 0, QS700A %in% 1:3 ~ 1, TRUE ~ 0),
         saludment2 = case_when(QS700B == 0 ~ 0, QS700B %in% 1:3 ~ 1, TRUE ~ 0),
         saludment3 = case_when(QS700C == 0 ~ 0, QS700C %in% 1:3 ~ 1, TRUE ~ 0),
         saludment4 = case_when(QS700D == 0 ~ 0, QS700D %in% 1:3 ~ 1, TRUE ~ 0),
         saludment5 = case_when(QS700E == 0 ~ 0, QS700E %in% 1:3 ~ 1, TRUE ~ 0),
         saludment6 = case_when(QS700F == 0 ~ 0, QS700F %in% 1:3 ~ 1, TRUE ~ 0),
         saludment7 = case_when(QS700G == 0 ~ 0, QS700G %in% 1:3 ~ 1, TRUE ~ 0),
         saludment8 = case_when(QS700H == 0 ~ 0, QS700H %in% 1:3 ~ 1, TRUE ~ 0),
         saludment9 = case_when(QS700I == 0 ~ 0, QS700I %in% 1:3 ~ 1, TRUE ~ 0))
endes<- endes %>% mutate(mental14dias=ifelse(saludment1==1|saludment2==1|saludment3==1|saludment4==1|saludment5==1|saludment6==1|saludment7==1|saludment8==1|saludment9==1,1,NA))
table(endes$mental14dias, useNA = "alw")
## 
##     1  <NA> 
## 17673 13834

SALUD MENTAL EN LOS ÚLTIMOS 12 MESES

endes <- endes %>%
  mutate(saludment10 = case_when(QS704A == 0 ~ 0, QS704A %in% 1:3 ~ 1, TRUE ~ 0),
         saludment20 = case_when(QS704B == 0 ~ 0, QS704B %in% 1:3 ~ 1, TRUE ~ 0),
         saludment30 = case_when(QS704C == 0 ~ 0, QS704C %in% 1:3 ~ 1, TRUE ~ 0),
         saludment40 = case_when(QS704D == 0 ~ 0, QS704D %in% 1:3 ~ 1, TRUE ~ 0),
         saludment50 = case_when(QS704E == 0 ~ 0, QS704E %in% 1:3 ~ 1, TRUE ~ 0),
         saludment60 = case_when(QS704F == 0 ~ 0, QS704F %in% 1:3 ~ 1, TRUE ~ 0),
         saludment70 = case_when(QS704G == 0 ~ 0, QS704G %in% 1:3 ~ 1, TRUE ~ 0),
         saludment80 = case_when(QS704H == 0 ~ 0, QS704H %in% 1:3 ~ 1, TRUE ~ 0),
         saludment90 = case_when(QS704I == 0 ~ 0, QS704I %in% 1:3 ~ 1, TRUE ~ 0))
endes<- endes %>% mutate(mental12meses=ifelse(saludment10==1|saludment20==1|saludment30==1|saludment40==1|saludment50==1|saludment60==1|saludment70==1|saludment80==1|saludment90==1,1,0))
endes$mental12meses <- as.factor(endes$mental12meses)
table(endes$mental12meses, useNA = "alw")
## 
##     0     1  <NA> 
## 21335 10172     0

DEPRESION

endes <- endes %>% 
  mutate (depre = ifelse(QS704B %in% 1:3 ,"Tiene depresión","No"))
endes$depre <- as.factor(endes$depre)
table(endes$depre)
## 
##              No Tiene depresión 
##           22553            8954

SENTIMIENTO DE MORIR

endes <- endes %>% 
  mutate(morir = ifelse(QS704H %in% 1:3,"Sentimiento de morir","NO"))
endes$morir <- as.factor(endes$morir)
table(endes$morir)
## 
##                   NO Sentimiento de morir 
##                29114                 2393

RANGOS ETARIOS: INTERÉS JUVENTUD

endes <- endes %>% mutate(Edadcompleta = ifelse(QS23>=15,1,0))

endes <- endes %>% mutate(Juventud = ifelse(QS23>=15 & QS23<=29,1,NA))

endes <- endes %>% mutate(adultos = ifelse(QS23>=30,1,0))

PONDERACIÓN DE DATOS, DATASETS Y TRASLADO A EXCEL

DISEÑO MUESTRAL Y FUNCION EXPORTAR A EXCEL

# Diseño muestral para la ponderación de valores
endes_limpio <- subset(endes, !is.na(PESO15_AMAS))
encuesta = svydesign(data=endes, id=~QHCLUSTER, strata=NULL,
                     weights=~PESO15_AMAS)

# Función para generar un archivo excel con todas las desagregaciones en pestañas
generar_archivo_excel2 <- function(nombre_archivo, datos) {
  workbook <- createWorkbook()
  
  for (i in seq_along(datos)) {
    addWorksheet(workbook, sheetName = paste("Datos", i-1, sep = ""))
    writeData(workbook, sheet = paste("Datos", i-1, sep = ""), x = datos[[i]], colNames = TRUE)
  }
  
  saveWorkbook(workbook, nombre_archivo)
}

DESAGREGACION NACIONAL POB TOTAL

tabla <- svyby(~mental12meses, ~Edadcompleta, encuesta, svymean, deff=F, na.rm=T)
ic <- confint(tabla)
cv<-cv(tabla)

ic <- subset(ic, !grepl("mental12meses0", rownames(ic)))
ic <- as.data.frame(ic)

cv <- cv %>% select(!contains("mental12meses0"))
names(cv) <- c("coef. var")

tabla <- tabla %>% select(!contains("mental12meses0") & !contains("se.mental12meses1"))
names(tabla) <- c("Población total","%")

datos<-bind_cols(tabla, cv, ic)
kable(datos, format = "markdown")
Población total % coef. var 2.5 % 97.5 %
1 0.30446 0.01555 0.2951808 0.3137391

DESAGREGACIÓN NACIONAL

tabla0 <- svyby(~mental12meses, ~Juventud, encuesta, svymean, deff=F, na.rm=T)
ic0 <- confint(tabla0)
cv0<-cv(tabla0)

ic0 <- subset(ic0, !grepl("mental12meses0", rownames(ic0)))
ic0 <- as.data.frame(ic0)

cv0 <- cv0 %>% select(!contains("mental12meses0"))
names(cv0) <- c("coef. var")

tabla0 <- tabla0 %>% select(!contains("mental12meses0") & !contains("se.mental12meses1"))
names(tabla0) <- c("Juventud","%")

datos0<-bind_cols(tabla0, cv0, ic0)
kable(datos0, format = "markdown")
Juventud % coef. var 2.5 % 97.5 %
1 0.322942 0.0242683 0.3075813 0.3383028

DESAGREGACIÓN SEGÚN SEXO

tabla1 <- svyby(~mental12meses, ~Juventud+sexo, encuesta, svymean, deff=F, na.rm=T)
ic1 <- confint(tabla1)
cv1<-cv(tabla1)

ic1 <- subset(ic1, !grepl("mental12meses0", rownames(ic1)))
ic1 <- as.data.frame(ic1)

cv1 <- cv1 %>% select(!contains("mental12meses0"))
names(cv1) <- c("coef. var")

tabla1 <- tabla1 %>% select(!contains("mental12meses0") & !contains("se.mental12meses1"))
names(tabla1) <- c("Juventud","Sexo","%")

datos1<-bind_cols(tabla1, cv1, ic1)
kable(datos1, format = "markdown")
Juventud Sexo % coef. var 2.5 % 97.5 %
1.hombre 1 hombre 0.2687573 0.0427519 0.2462376 0.2912771
1.Mujer 1 Mujer 0.3750735 0.0278628 0.3545907 0.3955562

DESAGREGACIÓN SEGÚN ÁREA DE DOMICILIO (RURAL / URBANA)

tabla2 <- svyby(~mental12meses, ~Juventud+area, encuesta, svymean, deff=F, na.rm=T)
ic2 <- confint(tabla2)
cv2<-cv(tabla2)

ic2 <- subset(ic2, !grepl("mental12meses0", rownames(ic2)))
ic2 <- as.data.frame(ic2)

cv2 <- cv2 %>% select(!contains("mental12meses0"))
names(cv2) <- c("coef. var")

tabla2 <- tabla2 %>% select(!contains("mental12meses0") & !contains("se.mental12meses1"))
names(tabla2) <- c("Juventud","Área","%")

datos2<-bind_cols(tabla2, cv2, ic2)
kable(datos2, format = "markdown")
Juventud Área % coef. var 2.5 % 97.5 %
1.rural 1 rural 0.2752067 0.0426083 0.2522239 0.2981894
1.urbano 1 urbano 0.3335807 0.0275818 0.3155475 0.3516138

DESAGREGACIÓN SEGÚN DEPARTAMENTOS

tabla3 <- svyby(~mental12meses, ~Juventud+regiones2, encuesta, svymean, deff=F, na.rm=T)
ic3 <- confint(tabla3)
cv3<-cv(tabla3)

ic3 <- subset(ic3, !grepl("mental12meses0", rownames(ic3)))
ic3 <- as.data.frame(ic3)

cv3 <- cv3 %>% select(!contains("mental12meses0"))
names(cv3) <- c("coef. var")

tabla3 <- tabla3 %>% select(!contains("mental12meses0") & !contains("se.mental12meses1"))
names(tabla3) <- c("Juventud","Departamentos","%")

datos3<-bind_cols(tabla3, cv3, ic3)
kable(datos3, format = "markdown")
Juventud Departamentos % coef. var 2.5 % 97.5 %
1.Amazonas 1 Amazonas 0.2567622 0.0911927 0.2108700 0.3026544
1.Ancash 1 Ancash 0.2960728 0.0972823 0.2396206 0.3525249
1.Apurimac 1 Apurimac 0.3447169 0.0986445 0.2780694 0.4113643
1.Arequipa 1 Arequipa 0.5102357 0.0563663 0.4538669 0.5666044
1.Ayacucho 1 Ayacucho 0.3756731 0.0683653 0.3253354 0.4260108
1.Cajamarca 1 Cajamarca 0.1818713 0.1363672 0.1332617 0.2304809
1.Callao 1 Callao 0.2989799 0.0933114 0.2443004 0.3536595
1.Cusco 1 Cusco 0.3597776 0.0862388 0.2989662 0.4205889
1.Huancavelica 1 Huancavelica 0.6302721 0.0427794 0.5774263 0.6831180
1.Huanuco 1 Huanuco 0.1950258 0.1186118 0.1496872 0.2403645
1.Ica 1 Ica 0.2846755 0.0908091 0.2340082 0.3353428
1.Junin 1 Junin 0.4690571 0.0596175 0.4142486 0.5238655
1.La Libertad 1 La Libertad 0.4042391 0.0740106 0.3456009 0.4628773
1.Lambayeque 1 Lambayeque 0.2178865 0.1076854 0.1718995 0.2638735
1.Lima Metropolitana 1 Lima Metropolitana 0.3172313 0.0611443 0.2792141 0.3552485
1.Lima Region 1 Lima Region 0.2987584 0.0863418 0.2482005 0.3493164
1.Loreto 1 Loreto 0.2181567 0.1225070 0.1657752 0.2705381
1.Madre de Dios 1 Madre de Dios 0.3097737 0.0959559 0.2515145 0.3680329
1.Moquegua 1 Moquegua 0.2691302 0.1157158 0.2080918 0.3301686
1.Pasco 1 Pasco 0.2857653 0.1063167 0.2262184 0.3453122
1.Piura 1 Piura 0.2634349 0.0981490 0.2127583 0.3141115
1.Puno 1 Puno 0.4882626 0.0745875 0.4168841 0.5596411
1.San Martín 1 San Martín 0.2467626 0.1015210 0.1976624 0.2958628
1.Tacna 1 Tacna 0.4199173 0.0706808 0.3617454 0.4780892
1.Tumbes 1 Tumbes 0.2220064 0.1094495 0.1743822 0.2696306
1.Ucayali 1 Ucayali 0.2834732 0.1193168 0.2171811 0.3497653

DESAGREGACIÓN SEGÚN ETNICIDAD

tabla4 <- svyby(~mental12meses, ~Juventud+defiet2, encuesta, svymean, deff=F, na.rm=T)
ic4 <- confint(tabla4)
cv4<-cv(tabla4)

ic4 <- subset(ic4, !grepl("mental12meses0", rownames(ic4)))
ic4 <- as.data.frame(ic4)

cv4 <- cv4 %>% select(!contains("mental12meses0"))
names(cv4) <- c("coef. var")

tabla4 <- tabla4 %>% select(!contains("mental12meses0") & !contains("se.mental12meses1"))
names(tabla4) <- c("Juventud","Identidad Étnica","%")

datos4<-bind_cols(tabla4, cv4, ic4)
kable(datos4, format = "markdown")
Juventud Identidad Étnica % coef. var 2.5 % 97.5 %
1.Aimara 1 Aimara 0.4257001 0.1223944 0.3235795 0.5278208
1.Blanco 1 Blanco 0.2671057 0.0971874 0.2162264 0.3179850
1.Mestizo 1 Mestizo 0.3306782 0.0373535 0.3064687 0.3548877
1.Nativo o indigena de la Amazonia 1 Nativo o indigena de la Amazonia 0.2905165 0.1622438 0.1981346 0.3828983
1.Negro/Moreno/Zambo/Mulato/Pueblo Afro peruano o Afrodescendiente 1 Negro/Moreno/Zambo/Mulato/Pueblo Afro peruano o Afrodescendiente 0.2393129 0.0752060 0.2040380 0.2745879
1.otro 1 otro 0.3482043 0.1962572 0.2142651 0.4821435
1.Quechua 1 Quechua 0.3793648 0.0379745 0.3511292 0.4076005

DESAGREGACIÓN SEGÚN LENGUA MATERNA

tabla5 <- svyby(~mental12meses, ~Juventud+lengua, encuesta, svymean, deff=F, na.rm=T)
ic5 <- confint(tabla5)
cv5<-cv(tabla5)

ic5 <- subset(ic5, !grepl("mental12meses0", rownames(ic5)))
ic5 <- as.data.frame(ic5)

cv5 <- cv5 %>% select(!contains("mental12meses0"))
names(cv5) <- c("coef. var")

tabla5 <- tabla5 %>% select(!contains("mental12meses0") & !contains("se.mental12meses1"))
names(tabla5) <- c("Juventud","Lengua materna","%")

datos5<-bind_cols(tabla5, cv5, ic5)
kable(datos5, format = "markdown")
Juventud Lengua materna % coef. var 2.5 % 97.5 %
1.Castellano 1 Castellano 0.3219338 0.0263075 0.3053344 0.3385333
1.Originaria 1 Originaria 0.3393664 0.0541886 0.3033230 0.3754097

GENERAR ARCHIVO EXCEL

generar_archivo_excel2("DINDES-39-SALUD-05-INDA.xlsx", list(datos,datos0,datos1,datos2,datos3,datos4,datos5))