FORMATEO DE LA BASE ENAHO 2023 (queremos que este más delimitada): Jovenes de 15-29 años Solo las variables utilizadas en el trabajo Creacion de 2 variables: ID_UNICO, EDAD, 4 modulos: caracteristcas de los miembros del hogar, salud, educacion y empleo e ingresos
setwd("C:/Users/Adriana/Desktop/INDICE DE DESARROLLO JUVENIL/")
library(haven)
data_EDUCACION <- read_sav("906-Modulo03-EDUCACION/Enaho01A-2023-300.sav")
data_SALUD <- read_sav("906-Modulo04-SALUD/Enaho01A-2023-400.sav")
data_EMPLEO_INGRESOS <- read_sav("906-Modulo05-EMPLEO E INGRESOS/Enaho01a-2023-500.sav")
data_CARACTERISTICAS <- read_sav("C:/Users/Adriana/Desktop/INDICE DE DESARROLLO JUVENIL/906-Modulo02_caracteristicasdemiembros/Enaho01-2023-200.sav")
Crear el ID unico por persona
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Crear ID en cada base
data_EDUCACION <- data_EDUCACION %>% mutate(ID_UNICO = paste(CONGLOME, VIVIENDA, HOGAR, CODPERSO, sep = "_"))
data_SALUD <- data_SALUD %>% mutate(ID_UNICO = paste(CONGLOME, VIVIENDA, HOGAR, CODPERSO, sep = "_"))
data_EMPLEO_INGRESOS <- data_EMPLEO_INGRESOS %>% mutate(ID_UNICO = paste(CONGLOME, VIVIENDA, HOGAR, CODPERSO, sep = "_"))
data_CARACTERISTICAS<- data_CARACTERISTICAS %>% mutate(ID_UNICO = paste(CONGLOME, VIVIENDA, HOGAR, CODPERSO, sep = "_"))
Agregar variable EDAD usando el año de nacimiento
data_SALUD$P400A3=as.numeric(data_SALUD$P400A3)
data_SALUD <- data_SALUD %>% mutate(EDAD = 2023 - data_SALUD$P400A3)
str(data_SALUD$EDAD)
## num [1:112530] 44 42 10 8 61 60 39 31 30 8 ...
data_SALUD_JOVENES <- data_SALUD %>% filter(EDAD >= 15 & EDAD <= 29)
# Merge 1: unir EDUCACION con SALUD
base_educacion_salud <- inner_join(data_SALUD_JOVENES, data_EDUCACION, by = "ID_UNICO")
# Merge 2: unir el resultado anterior con EMPLEO_INGRESOS
base_final_jovenes <- inner_join(base_educacion_salud, data_EMPLEO_INGRESOS, by = "ID_UNICO")
BASE_MODELO <- inner_join(base_final_jovenes, data_CARACTERISTICAS, by = "ID_UNICO")
# Instalar y cargar el paquete necesario
if (!require("haven")) install.packages("haven")
library(haven)
# Seleccionar las variables
vars <- c("ID_UNICO", "EDAD", "P207.y.y", "P301A", "P314A", "OCUPINF", "P524E1", "P530A", "P523", "DOMINIO.x", "P513A1", "P4191", "P4192", "P4193", "P4194", "P4195", "P4196", "P4197", "P4198")
# Crear la sub base (asumiendo que 'BASE_MODELO' es tu base principal)
sub_base <- BASE_MODELO[, vars]
# Guardar como archivo SPSS (.sav)
write_sav(sub_base, "sub_base_7variables.sav")
# Reasignar valores: 1 si tiene secundaria completa, 0 si no
sub_base$P301A <- ifelse(sub_base$P301A %in% c(6,7,8,9,10,11), 1, 0)
# Renombrar la variable a SECUNDARIA_COMPLETA
names(sub_base)[names(sub_base) == "P301A"] <- "SECUNDARIA_COMPLETA"
names(sub_base)[names(sub_base) == "P207.y.y"] <- "SEXO"
# Recodificar valores: 1 = Sí, 0 = No
sub_base$P314A <- ifelse(sub_base$P314A == 1, 1, 0)
# Renombrar la variable a INTERNET
names(sub_base)[names(sub_base) == "P314A"] <- "INTERNET"
# Recodificar: Si (1) se queda como 1, No (2) se convierte en 0
sub_base$OCUPINF <- ifelse(sub_base$OCUPINF == 1, 1, 0)
# Renombrar la variable
names(sub_base)[names(sub_base) == "OCUPINF"] <- "INFORMAL"
# 1. Renombrar la variable de ingreso
names(sub_base)[names(sub_base) == "P524E1"] <- "ingresodep"
# 2. Convertir a numérico (por si acaso está como factor o carácter)
sub_base$ingresodep <- as.numeric(sub_base$ingresodep)
# 3. Crear variable de ingreso mensual con el nombre "ingreso_mensual_dep"
sub_base$ingreso_mensual_dep <- with(sub_base,
ifelse(P523 == 1, ingresodep * 30,
ifelse(P523 == 2, ingresodep * 4,
ifelse(P523 == 3, ingresodep * 2,
ifelse(P523 == 4, ingresodep * 1, NA)))))
# (Opcional) Redondear el resultado a 2 decimales
sub_base$ingreso_mensual_dep <- round(sub_base$ingreso_mensual_dep, 2)
# Reordenar columnas para que ingreso_mensual_dep esté en la posición 8
sub_base <- sub_base[, c(names(sub_base)[1:7], "ingreso_mensual_dep", names(sub_base)[!names(sub_base) %in% c(names(sub_base)[1:7], "ingreso_mensual_dep")])]
names(sub_base)[names(sub_base) == "P530A"] <- "ingreso_mensual_indep"
# Paso 1: Renombrar la variable DOMINIO.x a REGION
names(sub_base)[names(sub_base) == "DOMINIO.x"] <- "REGION"
# Paso 2: Reemplazar los valores numéricos por categorías generales
sub_base$REGION <- dplyr::case_when(
sub_base$REGION %in% c(1, 2, 3, 8) ~ "Costa",
sub_base$REGION %in% c(4, 5, 6) ~ "Sierra",
sub_base$REGION == 7 ~ "Selva",
TRUE ~ NA_character_
)
# Crear dummies automáticamente
library(fastDummies)
## Warning: package 'fastDummies' was built under R version 4.3.2
## Thank you for using fastDummies!
## To acknowledge our work, please cite the package:
## Kaplan, J. & Schlegel, B. (2023). fastDummies: Fast Creation of Dummy (Binary) Columns and Rows from Categorical Variables. Version 1.7.1. URL: https://github.com/jacobkap/fastDummies, https://jacobkap.github.io/fastDummies/.
sub_base <- dummy_cols(sub_base, select_columns = "REGION", remove_selected_columns = TRUE)
Mujer:1, hombre:0
sub_base$SEXO <- ifelse(sub_base$SEXO == 1, 0, 1)
sub_base$SEGURO_SALUD <- ifelse(
sub_base$P4191 == 1 | sub_base$P4192 == 1 | sub_base$P4193 == 1 |
sub_base$P4194 == 1 | sub_base$P4195 == 1 | sub_base$P4196 == 1 |
sub_base$P4197 == 1 | sub_base$P4198 == 1,
1, 0
)
# Asegúrate de que ambas bases tengan la variable ID_UNICO
# Unimos solo la variable P513A2 desde BASE_MODELO a sub_base
sub_base <- merge(sub_base,
BASE_MODELO[, c("ID_UNICO", "P513A2")],
by = "ID_UNICO",
all.x = TRUE)
sub_base$mesestrab_antiguedad <- (as.numeric(sub_base$P513A1) * 12) + as.numeric(sub_base$P513A2)
sub_base$ingresos_jovenes <- ifelse(
!is.na(sub_base$ingreso_mensual_dep),
sub_base$ingreso_mensual_dep,
sub_base$ingreso_mensual_indep
)
sum(is.na(sub_base$ingresos_jovenes))
## [1] 15022
mean(is.na(sub_base$ingresos_jovenes)) * 100
## [1] 59.42952
sum(!is.na(sub_base$ingresos_jovenes))
## [1] 10255
names(sub_base)
## [1] "ID_UNICO" "EDAD" "SEXO"
## [4] "SECUNDARIA_COMPLETA" "INTERNET" "INFORMAL"
## [7] "ingresodep" "ingreso_mensual_dep" "ingreso_mensual_indep"
## [10] "P523" "P513A1" "P4191"
## [13] "P4192" "P4193" "P4194"
## [16] "P4195" "P4196" "P4197"
## [19] "P4198" "REGION_Costa" "REGION_Selva"
## [22] "REGION_Sierra" "SEGURO_SALUD" "P513A2"
## [25] "mesestrab_antiguedad" "ingresos_jovenes"
# Crear nueva base con solo dos variables
base_FINAL <- sub_base[, c("ID_UNICO", "ingresos_jovenes","SEXO", "EDAD", "INFORMAL", "REGION_Costa", "REGION_Sierra", "REGION_Selva", "SECUNDARIA_COMPLETA", "INTERNET", "SEGURO_SALUD", "mesestrab_antiguedad")]
# Guardar en formato .sav (SPSS)
library(haven)
write_sav(base_FINAL, "base_final.sav")
base_FINAL$mesestrab_antiguedad[is.na(base_FINAL$mesestrab_antiguedad)] <- 0
base_FINAL$ingresos_jovenes <- ifelse(
base_FINAL$mesestrab_antiguedad == 0 & is.na(base_FINAL$ingresos_jovenes),
0,
base_FINAL$ingresos_jovenes
)
mean(is.na(base_FINAL$ingresos_jovenes)) * 100
## [1] 20.98746
#base con solo los NA en ingreso jovenes
sub_na_ingresos <- subset(base_FINAL, is.na(ingresos_jovenes))
# Eliminar casos con NA en ingresos_jovenes
base_limpia <- base_FINAL[!is.na(base_FINAL$ingresos_jovenes), ]
# Crear subbase solo con jóvenes ocupados
base_ocupados_jov <- base_limpia[base_limpia$mesestrab_antiguedad > 0, ]
# Ver cuántos NA hay en la variable INFORMAL
sum(is.na(base_ocupados_jov$INFORMAL))
## [1] 0
# Contar la cantidad de NA por variable
colSums(is.na(base_ocupados_jov))
## ID_UNICO ingresos_jovenes SEXO
## 0 0 0
## EDAD INFORMAL REGION_Costa
## 0 0 0
## REGION_Sierra REGION_Selva SECUNDARIA_COMPLETA
## 0 0 0
## INTERNET SEGURO_SALUD mesestrab_antiguedad
## 2 0 0
# Eliminar observaciones con NA en la variable INTERNET
base_ocupados_jov <- base_ocupados_jov[!is.na(base_ocupados_jov$INTERNET), ]
colSums(is.na(base_ocupados_jov))
## ID_UNICO ingresos_jovenes SEXO
## 0 0 0
## EDAD INFORMAL REGION_Costa
## 0 0 0
## REGION_Sierra REGION_Selva SECUNDARIA_COMPLETA
## 0 0 0
## INTERNET SEGURO_SALUD mesestrab_antiguedad
## 0 0 0
str(base_ocupados_jov)
## 'data.frame': 10250 obs. of 12 variables:
## $ ID_UNICO : chr "005027_055_11_03" "005027_055_11_04" "005030_060_11_03" "005030_060_11_04" ...
## $ ingresos_jovenes : num 1050 150 1442 650 100 ...
## $ SEXO : num 1 1 1 1 0 1 1 0 0 1 ...
## $ EDAD : num 25 18 26 18 16 28 23 25 22 19 ...
## $ INFORMAL : num 1 1 1 1 1 1 1 1 1 1 ...
## $ REGION_Costa : int 0 0 0 0 0 0 0 0 0 0 ...
## $ REGION_Sierra : int 0 0 0 0 0 0 0 0 0 0 ...
## $ REGION_Selva : int 1 1 1 1 1 1 1 1 1 1 ...
## $ SECUNDARIA_COMPLETA : num 1 1 1 1 0 1 1 1 1 1 ...
## $ INTERNET : num 1 1 1 1 1 1 1 1 1 1 ...
## $ SEGURO_SALUD : num 1 1 1 1 1 1 1 1 1 1 ...
## $ mesestrab_antiguedad: num 1 9 72 1 18 6 1 6 48 1 ...
# Modelo de regresión lineal
modelo_ingresos <- lm(ingresos_jovenes ~ SEXO + EDAD + INFORMAL + REGION_Sierra + REGION_Selva +
SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD +
mesestrab_antiguedad,
data = base_ocupados_jov)
# Resumen del modelo
summary(modelo_ingresos)
##
## Call:
## lm(formula = ingresos_jovenes ~ SEXO + EDAD + INFORMAL + REGION_Sierra +
## REGION_Selva + SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD +
## mesestrab_antiguedad, data = base_ocupados_jov)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1743.2 -444.6 -115.8 279.8 17401.9
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 340.24777 64.35103 5.287 1.27e-07 ***
## SEXO -235.90711 14.68229 -16.067 < 2e-16 ***
## EDAD 44.63465 2.02007 22.096 < 2e-16 ***
## INFORMAL -612.67424 19.23113 -31.858 < 2e-16 ***
## REGION_Sierra -122.34187 17.00280 -7.195 6.66e-13 ***
## REGION_Selva -70.12159 18.81746 -3.726 0.000195 ***
## SECUNDARIA_COMPLETA 181.81235 19.40167 9.371 < 2e-16 ***
## INTERNET 178.37157 31.65912 5.634 1.81e-08 ***
## SEGURO_SALUD -99.57313 20.61759 -4.830 1.39e-06 ***
## mesestrab_antiguedad -0.08707 0.29608 -0.294 0.768716
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 719.2 on 10240 degrees of freedom
## Multiple R-squared: 0.2344, Adjusted R-squared: 0.2338
## F-statistic: 348.4 on 9 and 10240 DF, p-value: < 2.2e-16
#Base: COSTA
modelo2 <- lm(ingresos_jovenes ~ SEXO + EDAD + I(EDAD^2) + INFORMAL +
REGION_Costa + REGION_Sierra + SECUNDARIA_COMPLETA +
INTERNET + SEGURO_SALUD + mesestrab_antiguedad,
data = base_ocupados_jov)
summary(modelo2)
##
## Call:
## lm(formula = ingresos_jovenes ~ SEXO + EDAD + I(EDAD^2) + INFORMAL +
## REGION_Costa + REGION_Sierra + SECUNDARIA_COMPLETA + INTERNET +
## SEGURO_SALUD + mesestrab_antiguedad, data = base_ocupados_jov)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1749.0 -443.4 -116.2 279.6 17404.5
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 395.13961 268.03703 1.474 0.140459
## SEXO -235.92354 14.68288 -16.068 < 2e-16 ***
## EDAD 33.20125 23.88858 1.390 0.164608
## I(EDAD^2) 0.24884 0.51806 0.480 0.631000
## INFORMAL -612.54865 19.23363 -31.848 < 2e-16 ***
## REGION_Costa 70.23686 18.81970 3.732 0.000191 ***
## REGION_Sierra -52.57619 20.21737 -2.601 0.009321 **
## SECUNDARIA_COMPLETA 185.17061 20.62363 8.979 < 2e-16 ***
## INTERNET 178.31300 31.66054 5.632 1.83e-08 ***
## SEGURO_SALUD -99.73400 20.62109 -4.837 1.34e-06 ***
## mesestrab_antiguedad -0.09141 0.29623 -0.309 0.757656
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 719.3 on 10239 degrees of freedom
## Multiple R-squared: 0.2345, Adjusted R-squared: 0.2337
## F-statistic: 313.6 on 10 and 10239 DF, p-value: < 2.2e-16
modelo3 <- lm(ingresos_jovenes ~ SEXO + INFORMAL +
REGION_Costa + REGION_Sierra + SECUNDARIA_COMPLETA +
INTERNET + SEGURO_SALUD + mesestrab_antiguedad,
data = base_ocupados_jov)
summary(modelo3)
##
## Call:
## lm(formula = ingresos_jovenes ~ SEXO + INFORMAL + REGION_Costa +
## REGION_Sierra + SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD +
## mesestrab_antiguedad, data = base_ocupados_jov)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1872.5 -475.0 -130.6 300.4 17598.5
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1306.3242 44.6996 29.225 < 2e-16 ***
## SEXO -211.7122 14.9856 -14.128 < 2e-16 ***
## INFORMAL -702.8448 19.2350 -36.540 < 2e-16 ***
## REGION_Costa 80.8674 19.2535 4.200 2.69e-05 ***
## REGION_Sierra -57.5944 20.6765 -2.785 0.00535 **
## SECUNDARIA_COMPLETA 279.0773 19.3400 14.430 < 2e-16 ***
## INTERNET 148.7804 32.3745 4.596 4.37e-06 ***
## SEGURO_SALUD -123.7762 21.0725 -5.874 4.39e-09 ***
## mesestrab_antiguedad 1.8744 0.2891 6.484 9.37e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 736.1 on 10241 degrees of freedom
## Multiple R-squared: 0.1979, Adjusted R-squared: 0.1973
## F-statistic: 315.9 on 8 and 10241 DF, p-value: < 2.2e-16
FILTRAR ENTRE MUJERES Y HOMBRES:
# Filtrar hombres (SEXO == 0)
modelo_hombres <- lm(ingresos_jovenes ~ EDAD + INFORMAL + REGION_Costa + REGION_Sierra +
SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD + mesestrab_antiguedad,
data = subset(base_ocupados_jov, SEXO == 0))
# Filtrar mujeres (SEXO == 1)
modelo_mujeres <- lm(ingresos_jovenes ~ EDAD + INFORMAL + REGION_Costa + REGION_Sierra +
SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD + mesestrab_antiguedad,
data = subset(base_ocupados_jov, SEXO == 1))
# Ver resumen
summary(modelo_hombres)
##
## Call:
## lm(formula = ingresos_jovenes ~ EDAD + INFORMAL + REGION_Costa +
## REGION_Sierra + SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD +
## mesestrab_antiguedad, data = subset(base_ocupados_jov, SEXO ==
## 0))
##
## Residuals:
## Min 1Q Median 3Q Max
## -1738.5 -462.4 -119.9 288.3 8022.1
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 72.9288 82.8636 0.880 0.378836
## EDAD 51.1348 2.6618 19.211 < 2e-16 ***
## INFORMAL -551.3572 25.1418 -21.930 < 2e-16 ***
## REGION_Costa 68.3264 24.2957 2.812 0.004935 **
## REGION_Sierra -75.9899 25.8857 -2.936 0.003341 **
## SECUNDARIA_COMPLETA 172.9290 24.4613 7.069 1.73e-12 ***
## INTERNET 183.3582 39.0936 4.690 2.79e-06 ***
## SEGURO_SALUD -87.4655 25.3342 -3.452 0.000559 ***
## mesestrab_antiguedad -0.1860 0.3638 -0.511 0.609173
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 722.2 on 6119 degrees of freedom
## Multiple R-squared: 0.2278, Adjusted R-squared: 0.2267
## F-statistic: 225.6 on 8 and 6119 DF, p-value: < 2.2e-16
summary(modelo_mujeres)
##
## Call:
## lm(formula = ingresos_jovenes ~ EDAD + INFORMAL + REGION_Costa +
## REGION_Sierra + SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD +
## mesestrab_antiguedad, data = subset(base_ocupados_jov, SEXO ==
## 1))
##
## Residuals:
## Min 1Q Median 3Q Max
## -1584.2 -421.7 -113.3 262.7 17379.9
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 297.8467 103.1794 2.887 0.003913 **
## EDAD 35.6866 3.1104 11.473 < 2e-16 ***
## INFORMAL -700.0961 29.8555 -23.449 < 2e-16 ***
## REGION_Costa 73.0866 29.7247 2.459 0.013982 *
## REGION_Sierra -10.4705 32.3394 -0.324 0.746130
## SECUNDARIA_COMPLETA 189.0847 32.0262 5.904 3.83e-09 ***
## INTERNET 183.9843 54.1310 3.399 0.000683 ***
## SEGURO_SALUD -105.0483 35.6732 -2.945 0.003250 **
## mesestrab_antiguedad -0.2635 0.5153 -0.511 0.609167
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 713 on 4113 degrees of freedom
## Multiple R-squared: 0.2197, Adjusted R-squared: 0.2182
## F-statistic: 144.7 on 8 and 4113 DF, p-value: < 2.2e-16
Para informales:
modelo_informales <- lm(ingresos_jovenes ~ SEXO + EDAD + REGION_Costa + REGION_Sierra + SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD + mesestrab_antiguedad, data = subset(base_ocupados_jov, INFORMAL == 1))
summary(modelo_informales)
##
## Call:
## lm(formula = ingresos_jovenes ~ SEXO + EDAD + REGION_Costa +
## REGION_Sierra + SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD +
## mesestrab_antiguedad, data = subset(base_ocupados_jov, INFORMAL ==
## 1))
##
## Residuals:
## Min 1Q Median 3Q Max
## -1242.5 -407.4 -79.4 278.6 8149.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -227.9897 50.5860 -4.507 6.67e-06 ***
## SEXO -261.9514 14.0629 -18.627 < 2e-16 ***
## EDAD 39.6675 1.8441 21.511 < 2e-16 ***
## REGION_Costa 127.6670 17.5733 7.265 4.08e-13 ***
## REGION_Sierra -59.2563 18.4591 -3.210 0.00133 **
## SECUNDARIA_COMPLETA 188.2932 17.1696 10.967 < 2e-16 ***
## INTERNET 159.0711 27.7912 5.724 1.08e-08 ***
## SEGURO_SALUD -84.2017 17.9111 -4.701 2.63e-06 ***
## mesestrab_antiguedad -0.8954 0.2800 -3.198 0.00139 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 613.7 on 8165 degrees of freedom
## Multiple R-squared: 0.1467, Adjusted R-squared: 0.1458
## F-statistic: 175.4 on 8 and 8165 DF, p-value: < 2.2e-16
MODELO LOGISTICO: Como es el perfil de un joven que gana mas del sueldo minimo?
-creamos la variable dicotomica: gana mas del SM:1, gana sueldo minimo o menos
base_ocupados_jov$GANA_MAS_SM <- ifelse(base_ocupados_jov$ingresos_jovenes > 1025, 1, 0)
modelo_logit <- glm(GANA_MAS_SM ~ SEXO + EDAD + INFORMAL + REGION_Costa +
REGION_Sierra + SECUNDARIA_COMPLETA + INTERNET +
SEGURO_SALUD + mesestrab_antiguedad,
data = base_ocupados_jov,
family = binomial)
summary(modelo_logit)
##
## Call:
## glm(formula = GANA_MAS_SM ~ SEXO + EDAD + INFORMAL + REGION_Costa +
## REGION_Sierra + SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD +
## mesestrab_antiguedad, family = binomial, data = base_ocupados_jov)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.1270489 0.2204065 -14.188 < 2e-16 ***
## SEXO -0.8896847 0.0487204 -18.261 < 2e-16 ***
## EDAD 0.1400996 0.0067482 20.761 < 2e-16 ***
## INFORMAL -1.4696010 0.0601880 -24.417 < 2e-16 ***
## REGION_Costa 0.3827774 0.0608372 6.292 3.14e-10 ***
## REGION_Sierra -0.0198618 0.0670755 -0.296 0.767145
## SECUNDARIA_COMPLETA 0.4960499 0.0666046 7.448 9.50e-14 ***
## INTERNET 0.5139808 0.1159696 4.432 9.33e-06 ***
## SEGURO_SALUD -0.2034371 0.0631873 -3.220 0.001284 **
## mesestrab_antiguedad -0.0033168 0.0009339 -3.552 0.000383 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 13672 on 10249 degrees of freedom
## Residual deviance: 11380 on 10240 degrees of freedom
## AIC: 11400
##
## Number of Fisher Scoring iterations: 4
exp(coef(modelo_logit))
## (Intercept) SEXO EDAD
## 0.0438470 0.4107853 1.1503883
## INFORMAL REGION_Costa REGION_Sierra
## 0.2300172 1.4663516 0.9803341
## SECUNDARIA_COMPLETA INTERNET SEGURO_SALUD
## 1.6422214 1.6719337 0.8159215
## mesestrab_antiguedad
## 0.9966887
Como REGION_Sierra no es significativo, lo quitamos del modelo. Estás prediciendo la probabilidad de que un joven gane más del sueldo mínimo (en 2023, S/1025). Como es una regresión logística, los coeficientes están en log-odds, pero se pueden interpretar en términos de probabilidad relativa (odds ratio).
modelo_reducido <- glm(GANA_MAS_SM ~ SEXO + EDAD + INFORMAL + REGION_Costa +
SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD +
mesestrab_antiguedad,
family = binomial(link = "logit"), data = base_ocupados_jov)
summary(modelo_reducido)
##
## Call:
## glm(formula = GANA_MAS_SM ~ SEXO + EDAD + INFORMAL + REGION_Costa +
## SECUNDARIA_COMPLETA + INTERNET + SEGURO_SALUD + mesestrab_antiguedad,
## family = binomial(link = "logit"), data = base_ocupados_jov)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.1341817 0.2190977 -14.305 < 2e-16 ***
## SEXO -0.8895471 0.0487173 -18.259 < 2e-16 ***
## EDAD 0.1401021 0.0067479 20.762 < 2e-16 ***
## INFORMAL -1.4697351 0.0601869 -24.419 < 2e-16 ***
## REGION_Costa 0.3943446 0.0466724 8.449 < 2e-16 ***
## SECUNDARIA_COMPLETA 0.4942914 0.0663401 7.451 9.27e-14 ***
## INTERNET 0.5110948 0.1155609 4.423 9.75e-06 ***
## SEGURO_SALUD -0.2038498 0.0631737 -3.227 0.001252 **
## mesestrab_antiguedad -0.0033022 0.0009326 -3.541 0.000399 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 13672 on 10249 degrees of freedom
## Residual deviance: 11381 on 10241 degrees of freedom
## AIC: 11399
##
## Number of Fisher Scoring iterations: 4
INTERPRETACION: SEXO (hombres): Tienen mayor probabilidad de ganar más que el SM (las mujeres tienen 59% menos).
EDAD: Aumenta la probabilidad en 15% por cada año adicional.
INFORMALIDAD: Reduce fuertemente la probabilidad (en 77%).
REGIÓN Costa: Mayor ventaja respecto a la Selva (47% más probable).
SECUNDARIA COMPLETA: 64% más probabilidad de ganar más que el SM.
INTERNET: 67% más probabilidad. Puede reflejar acceso a oportunidades digitales o educativas.
SEGURO SALUD: Leve efecto negativo, posiblemente asociado a ciertos empleos de menor pago.
Antigüedad: Muy leve efecto negativo, posiblemente sin impacto práctico.
Perfil del joven que más probablemente gana más del sueldo mínimo: 👤 Hombre, de mayor edad (más cerca a 29), trabajadora formal, que vive en la Costa, tiene educación secundaria completa, acceso a Internet, y aunque tenga seguro de salud, este tiene un efecto pequeño.
El análisis mediante regresión logística muestra que la probabilidad de que un joven gane más del sueldo mínimo en el Perú en 2023 se relaciona fuertemente con su situación laboral formal, su edad, su género, su nivel educativo y el acceso a servicios como Internet. Las mujeres, quienes trabajan formalmente, con mayor edad y con secundaria completa, tienen una mayor probabilidad de superar el salario mínimo. Además, residir en la región Costa y contar con acceso a Internet también incrementa significativamente esa probabilidad. Estos resultados sugieren que la formalidad laboral y la inclusión digital son factores claves para mejorar los ingresos juveniles.