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í”.
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 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"))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 <- enaho3Aquellas variables que nos sirven para realizar las desagregaciones posteriores.
enaho <- enaho%>% mutate(sexo = ifelse(p207==1,"hombre",
ifelse(p207==2,"Mujer",NA)))
table(enaho$sexo, useNA = "alw")##
## hombre Mujer <NA>
## 57352 60775 3126
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
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)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
#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)
}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 |
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 |
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 |
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_excel2("DINDES-38-SALUD-04-CALG.xlsx", list(datos,datos1,datos4))