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
library(openxlsx)
library(rmarkdown)
library(tidyverse)
library(haven)
library(foreign)
library(survey)
library(knitr)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" 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)endes_inicialx <- left_join(salud,cmh,by=c("HHID"))
endes <- endes_inicialxAquellas variables que nos sirven para realizar las desagregaciones posteriores.
endes <- endes%>% mutate(sexo = ifelse(QSSEXO==1,"hombre",
ifelse(QSSEXO==2,"Mujer",NA)))
table(endes$sexo, useNA = "alw")##
## hombre Mujer <NA>
## 13455 18052 0
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
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
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
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
#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
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
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
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
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))# 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)
}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 |
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 |
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 |
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 |
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 |
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 |
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_excel2("DINDES-39-SALUD-05-INDA.xlsx", list(datos,datos0,datos1,datos2,datos3,datos4,datos5))