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.