DESCRIPCIÓN DEL INDICADOR

Hacemos uso del módulo de salud de la ENAHO las variables p401h1 al p401 que explora la pregunta: ¿Padece de alguna enfermedad o malestar crónico (Artritis, hipertensión, asma, reumatismo, diabetes, tuberculosis, VIH, colesterol, etc.)? Se codifican las respuestas afrimativas “Sí”.

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 todas las bases de datos que nos permitan hacer un filtro por temáticas de interés general (Discapacidad, etnicidad, lengua originaria, PEA, etc)

choose.files()
## character(0)
cmh <- read_dta("C:\\Users\\Trabajo\\Desktop\\ENAHO\\CMH - 759-Modulo02\\enaho01-2022-200.dta")
sumaria2022 <- read_dta("C:\\Users\\Trabajo\\Desktop\\ENAHO\\SUMARIA - 759-Modulo34\\sumaria-2022.dta")
educacion2022 <- read_dta("C:\\Users\\Trabajo\\Desktop\\ENAHO\\EDUACIÓN - 759-Modulo03\\enaho01a-2022-300.dta")
salud2022 <- read_dta("C:\\Users\\Trabajo\\Desktop\\ENAHO\\SALUD - 759-Modulo04\\enaho01a-2022-400.dta")
empleo2022 <- read_dta("C:\\Users\\Trabajo\\Desktop\\ENAHO\\EMPLEO - 759-Modulo05\\enaho01a-2022-500.dta")

sumaria2022 <- subset(sumaria2022, select= c("conglome","hogar","vivienda","pobreza","estrsocial"))
empleo2022 <- subset(empleo2022, select = c("codperso","conglome","vivienda","hogar","p558c")) 
educacion2022 <- subset(educacion2022, select = c("codperso","conglome","vivienda","hogar","p300a"))
salud2022 <- subset(salud2022, select = c("codperso","conglome","vivienda","hogar","p401","p401h1","p401h2","p401h3","p401h4","p401h5","p401h6"))

UNIÓN DE BASES DE DATOS

enaho0 <- left_join(cmh, educacion2022, by=c("codperso","conglome", "vivienda", "hogar"))
enaho1 <- left_join(enaho0, salud2022, by=c("codperso","conglome", "vivienda", "hogar"))
enaho2 <- left_join(enaho1, empleo2022, by=c("codperso","conglome", "vivienda", "hogar"))
enaho3 <- left_join(enaho2,sumaria2022, by =c("conglome", "vivienda", "hogar"))
enaho <- enaho3

ELABORACION DE VARIABLES PARA DESAGREGACIONES

VARIABLES TRANSVERSALES

Aquellas variables que nos sirven para realizar las desagregaciones posteriores.

SEXO

enaho <- enaho%>% mutate(sexo = ifelse(p207==1,"hombre",
                                        ifelse(p207==2,"Mujer",NA)))
table(enaho$sexo, useNA = "alw")
## 
## hombre  Mujer   <NA> 
##  57352  60775   3126

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

enaho$ubigeonum <- as.numeric(enaho$ubigeo)

enaho <- enaho %>%
  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)))))))))))))))))))))))))))

enaho$regiones2<-as.factor(enaho$regiones2)
table(enaho$regiones2, useNA = "alw")
## 
##           Amazonas             Ancash           Apurimac           Arequipa 
##               4668               5020               3141               5306 
##           Ayacucho          Cajamarca             Callao              Cusco 
##               3632               4870               3684               4016 
##       Huancavelica            Huanuco                Ica              Junin 
##               3524               4497               5178               4998 
##        La Libertad         Lambayeque Lima Metropolitana        Lima Region 
##               5677               5467              10856               4926 
##             Loreto      Madre de Dios           Moquegua              Pasco 
##               6490               2056               2946               3119 
##              Piura               Puno         San Martín              Tacna 
##               6375               3396               5201               4161 
##             Tumbes            Ucayali               <NA> 
##               3148               4901                  0

RANGOS ETARIOS: INTERÉS JUVENTUD

enaho <- enaho %>% mutate(Juventud = ifelse(p208a>=15 & p208a<=29,"jovenes",NA))
enaho$Juventud <- as.factor(enaho$Juventud)

enaho <- enaho %>% mutate(poblaciontotal = ifelse(p208a>=15,"poblacion",NA))
enaho$poblaciontotal <- as.factor(enaho$poblaciontotal)

ENFERMEDADES CRÓNICAS

table(enaho$p401)
## 
##     1     2 
## 47151 67470
enaho <- enaho %>%
  mutate(enfermedadc =ifelse(p401==1, "Tiene alguna enfermedad crónica","No tiene alguna enfermedad crónica"))
enaho$enfermedadc <- as.factor(enaho$enfermedadc)
table(enaho$enfermedadc)
## 
## No tiene alguna enfermedad crónica    Tiene alguna enfermedad crónica 
##                              67470                              47151

PONDERACIÓN DE DATOS, DATASETS Y TRASLADO A EXCEL

DISEÑO MUESTRAL Y FUNCION EXPORTAR A EXCEL

#DISEÑO MUESTRAL
encuesta = svydesign(data=enaho, id=~conglome, strata=~estrato,
                     weights=~facpob07)

# 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 POBLACION TOTAL (15 a más años de edad)

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

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

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

tabla <- tabla %>% select(!contains("enfermedadcNo") & !contains("se.enfermedadc"))
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 %
poblacion poblacion 0.5120182 0.0064839 0.5055113 0.5185251

DESAGREGACION NACIONAL POBLACION JOVEN (15 a 29 años)

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


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

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

tabla1 <- tabla1 %>% select(!contains("enfermedadcNo") & !contains("se.enfermedadc"))
names(tabla1) <- c("Juventud","%")

datos1<-bind_cols(tabla1, cv1, ic1)
kable(datos1, format = "markdown")
Juventud % coef. var 2.5 % 97.5 %
jovenes jovenes 0.3005439 0.0167486 0.2906781 0.3104098

DESAGREGACION NACIONAL POBLACION JOVEN SEGÚN SEXO

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

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

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

tabla2 <- tabla2 %>% select(!contains("enfermedadcNo") & !contains("se.enfermedadc"))
names(tabla2) <- c("Juventud","Departamentos","%")

datos2<-bind_cols(tabla2, cv2, ic2)
kable(datos2, format = "markdown")
Juventud Departamentos % coef. var 2.5 % 97.5 %
jovenes.hombre jovenes hombre 0.2634428 0.0242487 0.2509223 0.2759634
jovenes.Mujer jovenes Mujer 0.3389718 0.0200904 0.3256243 0.3523192

DESAGREGACION SEGÚN DEPARTAMENTOS

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

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

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

tabla4 <- tabla4 %>% select(!contains("enfermedadcNo") & !contains("se.enfermedadc"))
names(tabla4) <- c("Juventud","Departamentos","%")

datos4<-bind_cols(tabla4, cv4, ic4)
kable(datos4, format = "markdown")
Juventud Departamentos % coef. var 2.5 % 97.5 %
jovenes.Amazonas jovenes Amazonas 0.2942066 0.0750786 0.2509138 0.3374995
jovenes.Ancash jovenes Ancash 0.3467175 0.0557248 0.3088495 0.3845855
jovenes.Apurimac jovenes Apurimac 0.2664407 0.0751115 0.2272164 0.3056650
jovenes.Arequipa jovenes Arequipa 0.3884185 0.0538168 0.3474485 0.4293884
jovenes.Ayacucho jovenes Ayacucho 0.1586963 0.0996134 0.1277127 0.1896800
jovenes.Cajamarca jovenes Cajamarca 0.1974788 0.0881690 0.1633528 0.2316047
jovenes.Callao jovenes Callao 0.3706000 0.0602031 0.3268707 0.4143293
jovenes.Cusco jovenes Cusco 0.1287279 0.1059218 0.1020036 0.1554522
jovenes.Huancavelica jovenes Huancavelica 0.0820317 0.1289380 0.0613012 0.1027623
jovenes.Huanuco jovenes Huanuco 0.1953617 0.0948357 0.1590489 0.2316745
jovenes.Ica jovenes Ica 0.2999897 0.0517190 0.2695805 0.3303989
jovenes.Junin jovenes Junin 0.2505569 0.0736282 0.2143994 0.2867144
jovenes.La Libertad jovenes La Libertad 0.3137746 0.0572994 0.2785362 0.3490130
jovenes.Lambayeque jovenes Lambayeque 0.2839828 0.0600281 0.2505713 0.3173942
jovenes.Lima Metropolitana jovenes Lima Metropolitana 0.3912435 0.0319890 0.3667136 0.4157734
jovenes.Lima Region jovenes Lima Region 0.3050147 0.0555617 0.2717989 0.3382305
jovenes.Loreto jovenes Loreto 0.1647423 0.0887585 0.1360831 0.1934014
jovenes.Madre de Dios jovenes Madre de Dios 0.1268588 0.1971856 0.0778308 0.1758867
jovenes.Moquegua jovenes Moquegua 0.3696607 0.0779751 0.3131661 0.4261553
jovenes.Pasco jovenes Pasco 0.2411625 0.1135917 0.1874712 0.2948539
jovenes.Piura jovenes Piura 0.2520595 0.0622759 0.2212935 0.2828255
jovenes.Puno jovenes Puno 0.2427671 0.0875163 0.2011256 0.2844087
jovenes.San Martín jovenes San Martín 0.2415669 0.0644711 0.2110423 0.2720915
jovenes.Tacna jovenes Tacna 0.3476486 0.0835833 0.2906967 0.4046004
jovenes.Tumbes jovenes Tumbes 0.2873527 0.0680348 0.2490355 0.3256700
jovenes.Ucayali jovenes Ucayali 0.2351232 0.0800189 0.1982479 0.2719986

GENERAR ARCHIVO EXCEL

generar_archivo_excel2("DINDES-38-SALUD-04-CALG.xlsx", list(datos,datos1,datos4))