Evaluación - Sistemas de Información - Untref

Author

Juan Esteban Barriola

Interacción del lenguaje R con MySQL.

Objetivo general

Describir las condiciones socioeconómicas del grupo etario joven a lo largo del período 2020/2023 comparando la tendencia de diversos indicadores con los restantes grupos.

Objetivos específicos

  • Describir y especificar la tendencia que toman de distintas tasas de ocupación en el mercado de trabajo para el sector joven.

  • Describir y visualizar la tendencia de la pobreza e indigencia en jóvenes desagregada por nivel educativo, región y género.

  • Explicitar la tendencia y describir para ciertos períodos los porcentajes de trabajadores formales.

Anexo metodológico.

El trabajo empleará la base de microdatos de la Encuesta Permanente de Hogares que es relevada trimestralmente por INDEC.

Utilizaremos, además, parte de la sintáxis de SQL y de algunas librerías del lenguaje R que complementarán la interacción que se hará con las bases de datos almacenadas en el motor MySQL. Entre ellas DBI, que nos permite manejar todo tipo de bases de datos relacionales sin importar el motor que se esté empleando (SQL, MySQL, PostgreSQL,etc) a partir de funciones tales como dbConnect, y dbGetQuery. Las restantes (odbc, RMySQL) son derivadas de la ya mencionada, con la excepción RODBC que resulta menos flexible y trabaja con ODBC como controlador que sirve como medio de conexión.

En lo que refiere a las entidades referenciadas, tendremos 4 distintas almacenadas en tres bases de datos distintas en el script de extensión SQL.

  • Individuos habitantes de los grandes aglomerados urbanos repartidos a lo largo de cuatro tablas (tablaeph_2020, tablaeph_2021…) e integradas en la base de datos base_eph.

  • Valores mensuales de la canasta básica alimentaria y de la canasta básica total regional almacenadas en la base canastas al interior de las tablas cba_region, y cbt_region.

  • Códigos de la regiones que integran los aglomerados urbanos también dentro de la base canastas en la tabla glosario_region.

  • Valores correspondientes a la unidad de adulto equivalente de entre 30 y 60 años correspondiente a las necesidad kilocalóricas y proteicas necesarias para cubrir un umbral mínimo según sexo y edad en la base unidad_adulto_equiv dentro de la tabla adequi.

Solo una de esas tablas tiene una clave primaria identificada en un único atributo. Se refiere aquí a la tabla glosario_region en la columna Codigo. Las tablas restantes, cotnienen un identificador único repartido en varios atributos como es el caso de los valores mensuales que registran las canastas al interior de cada región (Valor, Mes, Región).

A propósito de la funciones para realizar consultas, mayormente estaremos utilizando aquellas para agregar (GROUP BY), realizar operaciones aritméticas (SUM), condicionales (CASE WHEN), de concatenación (UNION), y de relación (LEFT JOIN). Esto será acompañado del almacenamiento constante de consultas en los tradicionales objetos de R, análogos a las vistas creadas en SQL con CREATE VIEW.

En algunos casos, emplearemos la sintáxis de R puesto que provee mayor facilidad a los fines de sostener un criterio de buenas prácticas y no hacer consultas de varias líneas. Esto podría reflejarse en algunos casos de conversión de variables en categorías, que se hará con la función pivot_longer al no disponer de la función UNPIVOT en MySQL. O también al convertir categorías en variables que se hará con la función pivot_wider propia de la librería tidyverse. Por lo que, en conclusión y repitiendo lo ya dicho, nos valdremos de la sintáxis de R con sus librerías particulares con la de SQL en combinación.

Estado de situación joven en el mercado de trabajo

Tomando la base de microdatos de individuos de la EPH para el tercer trimestre de 2023, y una vez divida la población de análisis en tres subgrupos, esto es, subgrupo “Jóvenes” de entre 16 y 29 años; subgrupo “Adultos”, de entre 30 y 65 años; y subgrupo “Adultos mayores”, con más de 65 años, comenzamos visualizando tres indicadores de ocupación en el mercado de trabajo para el subgrupo joven desagregandolo por sexo durante período eleccionario.

Code
## CALCULAMOS TASA DE OCUPACION, DESOCUPACION Y SUBOCUP PARA EL TERCER TRIMESTRE DEL AÑO 2023 EN POBLACION JOVEN AGRUPANDO POR GENERO


tasas_merc_trab = dbGetQuery(conn = conexion, 
           statement = 'SELECT `Género`,
    (SUM(CASE WHEN ESTADO = 1 AND INTENSI = 1 AND PP03J = 1 THEN PONDERA END) + 
     SUM(CASE WHEN ESTADO = 1 AND INTENSI = 1 AND PP03J IN (2, 9) THEN PONDERA END)) /
     (SUM(CASE WHEN ESTADO = 1 THEN PONDERA END) + 
      SUM(CASE WHEN ESTADO = 2 THEN PONDERA END)) * 100 AS `Tasa de subocupación`,
    
    SUM(CASE WHEN ESTADO = 2 THEN PONDERA END) / 
    (SUM(CASE WHEN ESTADO = 1 THEN PONDERA END) + 
     SUM(CASE WHEN ESTADO = 2 THEN PONDERA END)) * 100 AS `Tasa de desocupación`,
    
    SUM(CASE WHEN ESTADO = 1 THEN PONDERA END) / 
    (SUM(CASE WHEN ESTADO = 1 THEN PONDERA END) + 
     SUM(CASE WHEN ESTADO = 2 THEN PONDERA END)) * 100 AS `Tasa de ocupación`
FROM tablaeph_2023
WHERE `Grupo etario` = "Jóvenes"
AND TRIMESTRE=3
GROUP BY `Género`')
  
  
tabla1 =  kable(tasas_merc_trab,align = c("c", "c", "c","c")) |>
    kable_classic(html_font = "Arial") |>
    kable_styling(font_size = 11, full_width = TRUE) |>
    kable_paper(bootstrap_options = "striped")|>
    row_spec(0, color = "white", background = "#536795ff", bold = TRUE, font_size = 13) |> add_header_above(c("Tabla 1 - Tasas de ocupación en población joven" = 4),align = "l", font_size = 11)


filitas = nrow(tasas_merc_trab)
  for (z in 1:filitas) {
    color = ifelse(z %% 2 == 1, "#E0FFFF", "#cee2eaff")
    tabla1 = tabla1 |>
      row_spec(z, background = color, font_size = 11)}

tabla1
Tabla 1 - Tasas de ocupación en población joven
Género Tasa de subocupación Tasa de desocupación Tasa de ocupación
Mujer 13.3636 12.7826 87.2174
Varón 9.8098 11.9819 88.0181

Como puede verse, al comparar tasas del mercado de trabajo por género en el tercer trimestre de 2023 las mujeres jóvenes se encuentran en peores condiciones laborales con casi un punto de diferencia porcentual frente a los hombres en lo que a desocupación respecta, mientras que superan en más de tres puntos para los valores arrojados por la tasa de subocupación. También debe destacarse, que a pesar de que predominen los jóvenes empleados, tanto tasa de desocupación como sub ocupación alcanzan valores de por lo menos el 10%, lo que expresa un alto nivel de demanda por estar empleado, como así también, poder trabajar más horas de las que tienen fijadas.

Tendencia de tasa de desocupación en diversos grupos etarios - Año 2020-2023

Una vez visto este subgrupo de forma aislada, resulta pertinente compararlo con otros a partir de la categorización elaborada en torno a la edad de los individuos en tres subgrupos. Para esto visualizaremos el movimiento que sigue la tasa de desocupación desde el primer trimestre del año 2020 hasta el último relevamiento con datos actualizados al tercer trimestre de 2023.

Code
orden_prefijado = c("1/2020","2/2020","3/2020","4/2020","1/2021","2/2021","3/2021","4/2021","1/2022","2/2022","3/2022","4/2022","1/2023","2/2023","3/2023")


otro_orden = c("Jóvenes","Adultos","Adultos mayores")


dbGetQuery(conn = conexion, 
           statement = 'SELECT
  `Grupo etario`,
  SUM(CASE WHEN ESTADO = 2 THEN PONDERA END) / 
  (SUM(CASE WHEN ESTADO = 1 THEN PONDERA END) + 
         SUM(CASE WHEN ESTADO = 2 THEN PONDERA END)) * 100 AS `Tasa de desocupación`,
  CONCAT(TRIMESTRE, "/", ANO4) AS `Período`
FROM (
  SELECT * FROM tablaeph_2020
  UNION ALL
  SELECT * FROM tablaeph_2021
  UNION ALL
  SELECT * FROM tablaeph_2022
  UNION ALL
  SELECT * FROM tablaeph_2023
) AS tablaeph
GROUP BY `Grupo etario`, ANO4, TRIMESTRE
')|>
  mutate(`Período`=factor(`Período`, levels = orden_prefijado),
            `Grupo etario`=factor(`Grupo etario`, levels = otro_orden))|>
  ggplot(mapping = aes(x = `Período`,
      y = `Tasa de desocupación`,
      group = `Grupo etario`,
      color = `Grupo etario`)) +
  geom_line() +
  geom_point() +
  theme_bw() +
  theme(axis.text.x =  element_text(angle = -50,size = 9,hjust = 0)) +
  labs(title = "Gráfico 1 - Tendencia de tasa de desocupación",
       subtitle = "Por grupo etario",
       caption = "Elaboración propia en base a EPH-INDEC",
       x = "Trimestre",
       fill = "Grupo etario") +
  scale_color_manual(values= c("deepskyblue",
                     "lightblue",
                     "lightcyan4"))

Lo que aquí puede verse es la amplia brecha existente entre la población joven y los restantes grupos etarios, donde la desocupación, para los primeros, no llega a bajar al 12% en todo el lapso temporal abordado.

El segundo cuatrimestre de 2020, año del inicio del Aislamiento Social Preventivo y Obligatorio, marca un pico en dos grupos, a los cuales les sigue un marcado descenso de la tasa aunque sin dejar de marcar niveles alarmantes en lo que al grupo joven respecta.

Movimiento de tasas de ocupación en población joven a nivel regional, desagregando por género - Tercer trimestre de 2022 y 2023

Code
dbGetQuery(conn = conexion, 
           statement = 'SELECT 
    `Género`, 
    CONCAT(TRIMESTRE, "/", ANO4) AS `Período`,
    CASE 
        WHEN REGION = 1 THEN "GBA"
        WHEN REGION = 43 THEN "Pampeana"
        WHEN REGION = 40 THEN "Noroeste"
        WHEN REGION = 41 THEN "Noreste"
        WHEN REGION = 42 THEN "Cuyo"
        WHEN REGION = 44 THEN "Patagonia"
        ELSE "Otra" 
    END AS `Región`,
    ROUND(SUM(CASE WHEN ESTADO = 2 THEN PONDERA END) / 
          (SUM(CASE WHEN ESTADO = 1 THEN PONDERA END) + 
                 SUM(CASE WHEN ESTADO = 2 THEN PONDERA END)) * 100, 2) AS `Tasa de desocupación`
FROM (
  SELECT * FROM tablaeph_2022
  UNION ALL
  SELECT * FROM tablaeph_2023) AS tablaeph
WHERE 
    `Grupo etario` = "Jóvenes"
    AND TRIMESTRE = 3
GROUP BY 
    `Género`, 
    TRIMESTRE, 
    ANO4, 
    REGION')|>
  ggplot(mapping = aes(x = `Región`, 
      y = `Tasa de desocupación`,
      fill = `Género`,
      group = `Género`)) +
  facet_wrap(~ `Período`) +  
  geom_bar(stat = "identity",
           position = "dodge",
           color = "black") +
  theme(axis.text.x =  element_text(angle = -90, size = 5, hjust = 0)) +
  theme_bw() +
  labs(title = "Gráfico 2 - Tasa de desocupación - Interanual",
       subtitle = "Por género",
       caption = "Elaboración propia en base a EPH-INDEC",
       x = "Regiones",
       fill = "Género") +
  scale_fill_manual(values = c("deepskyblue", "lightcyan3")) +
  coord_flip()

Observando el tercer trimestre en distintos años, y desagregando a nivel regional, vemos nuevamente que aquellos individuos de la subpoblación joven que presentan los niveles más altos de desocupación son mujeres, con algunas excepciones como puede ser la región patagónica en donde por diferencias notables de más de dos puntos, imperan los varones desocupados

Situación socioeconómica en población joven

En este apartado nos centraremos en observar la dinámica que toman las tasas de indigencia y pobreza en población joven que pertenece o no a un hogar que se ubica por debajo del umbral de pobreza o indigencia; para esto, vuelve a ser pertinente, además de desagregar como ya se viene haciendo por algunas variables al interior de esta subpoblación, comparar con otros grupos etarios.

Para calcular las mismas, en primer lugar, se obtuvieron los valores de las canastas correspondientes del Informe Técnico de Incidencia de la Pobreza y la Indigencia para los 31 Aglomerados Urbanos relevado de forma semestral por INDEC. Así también, del mismo informe se tomaron los valores correspondientes a la Unidad de Adulto Equivalente, que refiere a la unidad de medida que se toma para asignar los requerimientos kilocalóricos y proteicos imprescindibles para garantizar un umbral mínimo de necesidad, teniendo en cuenta el género y la edad de cada persona, y tomando como unidad base a los hombres de entre 30 y 60 años. Los hábitos de consumo están fijados en función de los resultados obtenidos en la Encuesta de Gasto de los Hogares (ENGHo) del año 1996/19971

Situación socioeconómica de población joven según género - Tercer trimestre de 2023

Code
# CONVERSION DE VARIABLES EN MODALIDADES/CATEGORIAS O COMO HACER LA FUNCION PIVOT_LONGER DE R

cba_longer = dbGetQuery(conn = conexion, 
           statement = '
SELECT Mes, AÑO, Canasta,"GBA" AS Region, GBA AS Valores FROM canastas.cba_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Cuyo" AS Region, Cuyo AS Valores FROM canastas.cba_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Noreste" AS Region, Noreste AS Valores FROM canastas.cba_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Noroeste" AS Region, Noroeste AS Valores FROM canastas.cba_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Pampeana" AS Region, Pampeana AS Valores FROM canastas.cba_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Patagonia" AS Region, Patagonia AS Valores FROM canastas.cba_region')


cbt_longer = dbGetQuery(conn = conexion, 
           statement = '
SELECT Mes, AÑO, Canasta,"GBA" AS Region, GBA AS Valores FROM canastas.cbt_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Cuyo", Cuyo FROM canastas.cbt_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Noreste", Noreste FROM canastas.cbt_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Noroeste", Noroeste FROM canastas.cbt_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Pampeana", Pampeana FROM canastas.cbt_region
UNION ALL
SELECT Mes, AÑO, Canasta,"Patagonia", Patagonia FROM canastas.cbt_region;
')

union_canastas = dbGetQuery(conn = conexion, 
           statement = 'select * from canastas.glosario_region') |>
  right_join(bind_rows(cba_longer, cbt_longer), by=c("Regiones"="Region")) |> mutate(Trimestre=case_when(Mes %in% c(1:3) ~ 1, Mes %in% c(4:6) ~ 2,Mes %in% c(7:9) ~ 3, Mes %in% c(10:12) ~ 4), Período=paste0(Trimestre,"/",AÑO), Valores = as.numeric(Valores)) |> group_by(Canasta, Codigo, Regiones, Período) |>
  summarise(Valor = mean(Valores, na.rm = TRUE)) |> pivot_wider(values_from = "Valor", names_from = "Canasta", id_cols = c("Codigo","Regiones","Período"))


## JOIN DE LA TABLA DE INDIVIDUOS DEL 2020 AL 2023 CON LA TABLA DE UNIDAD DE ADULTO EQUIVALENTE POR EDAD Y GENERO, LUEGO GENERO LA VARIABLE DE PERIODO PARA HACER OTRO JOIN CON TABLA DE CANASTAS POR CADA TRIMESTRE Y REGION. LA DIFERENCIA CON R ES QUE, EN ESTE CASO, SE ME DUPLICAN LAS COLUMNAS EN COMUN, QUE SON LAS QUE, SIN NECESARIAMENTE ESTAR CONCATENADAS, CONFORMAN LA PRIMARY KEY DE LA TABLA DE LA UNIDAD DE ADULTO EQUIVALENTE. FINALMENTE PROCEDEMOS A GENERAR LAS CANASTAS PARTICULARES PARA CADA HOGAR Y ASI LA CLASIFICACION EN POBRE, NO POBRES E INDIGENTES

pobreza_hogares = dbGetQuery(conn = conexion, 
  statement = '
    SELECT *, CONCAT(TRIMESTRE, "/", ANO4) AS Período
    FROM (
      SELECT * FROM tablaeph_2020
      UNION ALL
      SELECT * FROM tablaeph_2021
      UNION ALL
      SELECT * FROM tablaeph_2022
      UNION ALL
      SELECT * FROM tablaeph_2023
    ) AS tablaeph
    LEFT JOIN unidad_adulto_equiv.adequi AS adequi
    ON tablaeph.CH04 = adequi.CH04 AND tablaeph.CH06 = adequi.CH06
  ') |> select(-c(23,24)) |> left_join(union_canastas, by=c("Período","REGION"="Codigo")) |>
  group_by(CODUSU,NRO_HOGAR,Período) |>
  mutate(adequi_hogar = sum(adequiv)) |> mutate(CBA=CBA*adequi_hogar,CBT=CBT*adequi_hogar,condicion = case_when(ITF<CBA ~ 'Indigente',ITF>=CBA & ITF<CBT ~ 'Pobre', ITF>=CBT ~ 'No Pobre'))


## FILTRO 3ER TRIMESTRE DEL 2023 EN POBLACION JOVEN, LUEGO CALCULO DE TASAS DE POBREZA AGRUPADO POR GENERO Y NIV ED. FINALMENTE CONVERSION DE ALGUNAS CATEGORIAS EN VARIABLES.
## VARIABLE PONDIH EN ESTE CASO REEMPLAZA A PONDERA EN TANTO OMITE CONTABILIZAR INDIVIDUOS QUE NO DECLARARON INGRESOS, Y QUE EN ITF FIGURAN CON "-9".

tasas_genero = pobreza_hogares |>
  filter(Período=="3/2023" & `Grupo etario`=="Jóvenes") |>
  group_by(Género) |> 
  summarise(`Tasa Pobreza` = round(sum(PONDIH[condicion %in% c('Pobre', 'Indigente')],na.rm = TRUE)/ sum(PONDIH,na.rm = TRUE)*100,2),
            `Tasa Indigencia` = round(sum(PONDIH[condicion == 'Indigente'],na.rm = TRUE)/sum(PONDIH,na.rm = TRUE)*100,2))

tabla2 = kable(tasas_genero, align = c("c", "c","c")) |>
    kable_classic(html_font = "Arial") |>
    kable_styling(font_size = 11, full_width = TRUE) |>
    kable_paper(bootstrap_options = "striped")|>
    row_spec(0, color = "white", background = "#536795ff", bold = TRUE, font_size = 13) |> add_header_above(c("Tabla 2 - Pobreza e indigencia en población joven según género" = 3),align = "l", font_size = 11)

filitas = nrow(tasas_genero)
  for (z in 1:filitas) {
    color = ifelse(z %% 2 == 1, "#E0FFFF", "#cee2eaff")
    tabla2 = tabla2 |>
      row_spec(z, background = color, font_size = 11)}

tabla2
Tabla 2 - Pobreza e indigencia en población joven según género
Género Tasa Pobreza Tasa Indigencia
Mujer 43.88 11.18
Varón 41.76 9.37

Tal como sucede con las tasas de ocupación en el mercado de trabajo, al tener una primera aproximación en este período a la condición socioeconómica de la población joven, vemos que el sector más perjudicado -que más predomina- son las mujeres, con 44 de cada 100 de ellas integrando hogares en situación de pobreza. Sin embargo, viendo la tabla en su conjunto resulta alarmante que más del 9% de la distribución, sea para hombres o mujeres, pertenezcan a hogares indigentes.

Pobreza e indigencia en población joven según nivel educativo alcanzado - Tercer trimestre de 2023

Code
## TASAS AGRUPADAS POR GENERO Y NIVEL EDUCATIVO

tasas = pobreza_hogares |>
  filter(Período=="3/2023" & `Grupo etario`=="Jóvenes") |>
  group_by(Género,`Nivel educativo`) |> 
  summarise(`Tasa Pobreza` = round(sum(PONDIH[condicion %in% c('Pobre', 'Indigente')],na.rm = TRUE)/ sum(PONDIH,na.rm = TRUE)*100,2),
            `Tasa Indigencia` = round(sum(PONDIH[condicion == 'Indigente'],na.rm = TRUE)/sum(PONDIH,na.rm = TRUE)*100,2)) %>% 
  pivot_wider(., values_from = c(`Tasa Indigencia`,`Tasa Pobreza`),
id_cols = `Nivel educativo`, names_from = "Género") %>% select(1,5,3,4,2)

colnames(tasas) <- c("Nivel educativo", "Tasa de Pobreza", "Tasa de Indigencia","Tasa de Pobreza", "Tasa de Indigencia")


tabla3 = kable(tasas, align = c("c", "c","c", "c","c")) |>
    kable_classic(html_font = "Arial") |>
    kable_styling(font_size = 11, full_width = TRUE) |>
    kable_paper(bootstrap_options = "striped")|>
    row_spec(0, color = "white", background = "#536795ff", bold = TRUE, font_size = 13) |>add_header_above(c(" "=1, "Varón"=2, "Mujer"=2),font_size = 12) |> add_header_above(c("Tabla 3 - Pobreza e indigencia en población joven según según nivel educativo" = 5),align = "l", font_size = 11)

filitas = nrow(tasas)
  for (z in 1:filitas) {
    color = ifelse(z %% 2 == 1, "#E0FFFF", "#cee2eaff")
    tabla3 = tabla3 |>
      row_spec(z, background = color, font_size = 11)}

tabla3
Tabla 3 - Pobreza e indigencia en población joven según según nivel educativo
Varón
Mujer
Nivel educativo Tasa de Pobreza Tasa de Indigencia Tasa de Pobreza Tasa de Indigencia
Primaria completa 78.35 27.34 46.07 9.43
Primaria incompleta 65.14 16.74 64.73 15.23
Secundaria completa 34.92 6.75 48.97 10.59
Secundaria incompleta 55.89 12.62 61.36 17.98
Sin instrucción 76.81 41.59 100.00 100.00
Superior completo 11.70 5.97 11.74 2.26
Superior incompleto 26.11 4.60 29.08 6.95

Lo que aquí puede verse es el amplio rango existente entre los valores arrojados de ambas tasas para varones y mujeres jóvenes con estudios superiores completos y jóvenes sin instrucción. Pero esto vale no solo contra jóvenes sin instrucción, sino también resulta amplia la distancia frente a jóvenes con secundario completo, lo que habla, en parte, de la escasa relevancia que tiene el nivel secundario a la hora de buscar un empleo aporte un ingreso al hogar que permita superar la línea de pobreza.

Visualización de tasa de indigencia y pobreza en jovenes - Nivel regional - según género.

Code
tasas2 = pobreza_hogares |>
  filter(Período=="3/2023" & `Grupo etario`=="Jóvenes") |>
  group_by(Género, Regiones) |> 
  summarise(`Tasa Pobreza` = round(sum(PONDIH[condicion %in% c('Pobre', 'Indigente')],na.rm = TRUE)/ sum(PONDIH,na.rm = TRUE)*100,2),
            `Tasa Indigencia` = round(sum(PONDIH[condicion == 'Indigente'],na.rm = TRUE)/sum(PONDIH,na.rm = TRUE)*100,2)) |> 
  pivot_longer(names_to = "Tasas", values_to = "val", cols = c(`Tasa Pobreza`, `Tasa Indigencia`))


ggplot(data = tasas2) + 
  geom_col(aes(x = Regiones,
      y = val,
      fill = Género),stat = "identity",
           position = "dodge2",
      width = 0.9,
           color = "black") +
  facet_wrap("Tasas") +
  theme_bw() +
  labs(title = "Gráfico 3 - Tasa Pobreza/Indigencia - 3/2023",
       subtitle = "Por género",
       caption = "Elaboración propia en base a EPH-INDEC",
       x = "Regiones",
       y = "",
       fill = "Género") +
  scale_fill_manual(values = c("deepskyblue","lightcyan3")) +
  theme(axis.text.x = element_text(size = 8,angle =45, 
                                   hjust = 0.95, 
                                   vjust=1))

Al desglosar por región, observamos que la región noreste presenta los valores máximos tanto en pobreza como indigencia en el caso de los varones; aunque debe recalcarse que en materia de pobreza, los valores resultan abrumadoramente altos en todas las regiones, siendo el valor mínimo de 36.68% para las mujeres jovenes de la región pampeana que pertenecen a este tipo de hogares.

Dinámica de la situación socioeconómica según grupo etario - 2020/2023

En este subapartado nos aproximaremos a la composición individual de hogares pobres e indigentes según grupo etario a lo largo del período consignado.

Code
tasas3 = pobreza_hogares |>
  group_by(Período, `Grupo etario`) |> 
  summarise(`Tasa Pobreza` = round(sum(PONDIH[condicion %in% c('Pobre', 'Indigente')],na.rm = TRUE)/ sum(PONDIH,na.rm = TRUE)*100,2),
            `Tasa Indigencia` = round(sum(PONDIH[condicion == 'Indigente'],na.rm = TRUE)/sum(PONDIH,na.rm = TRUE)*100,2)) |> 
  pivot_longer(names_to = "Tasas", values_to = "val", cols = c(`Tasa Pobreza`, `Tasa Indigencia`))

orden_prefijado = c("1/2020","2/2020","3/2020","4/2020","1/2021","2/2021","3/2021","4/2021","1/2022","2/2022","3/2022","4/2022","1/2023","2/2023","3/2023")


otro_orden = c("Jóvenes","Adultos","Adultos mayores")

tasas3 = mutate(tasas3, `Grupo etario`=factor(`Grupo etario`, levels = otro_orden))

tasas3 = mutate(tasas3, Período=factor(Período, levels = orden_prefijado))


ggplot(data = tasas3) +
  aes(x = Período,
      y = val,
      group = `Grupo etario`,
      color = `Grupo etario`) +
  facet_wrap("Tasas") +
  geom_line() +
  geom_point() +theme_bw() +
  theme(axis.text.x =  element_text(angle = -50,size = 9,hjust = 0)) +
  labs(title = "Gráfico 4 - Tasa Pobreza/Indigencia - 2020/2023",
       subtitle = "Según grupo etario",
       y = "",
       caption = "Elaboración propia en base a EPH-INDEC") +
  scale_color_manual(values = c("deepskyblue",
                     "lightblue",
                     "lightcyan4"))

Sorprende ver que el peso relativo esté en el lado de los jóvenes, tanto en pobreza como en indigencia, incluso superando al sector de adultos mayores -que en teoría debería estar inactivo- durante buena parte del recorte temporal abordado. En su peor etapa, es decir, durante el segundo cuatrimestre de 2020, casi 57 de cada 100 jóvenes llegó a ser pobre -o integrar un hogar pobre-, donde recién logran casi emparentarse con otro sector fuertemente golpeado -Adultos mayores- durante el tercer trimestre de 2023 donde el 43% de los jóvenes pertenecía a hogares pobres, mientras que el 42% de los Adultos Mayores se encontraba en la misma situación.

Precariedad en población joven asalariada

En el último apartado, observaremos la situación contractual de aquellos jóvenes empleados en relación de dependencia, comparando al final con la situación de los restantes grupos etarios.

Como se hizo en los anteriores ejes, comenzamos visualizando el porcentaje de varones y mujeres jóvenes que trabajan en relación de dependencia, aportantes y no aportantes al sistema previsional durante el tercer trimestre de 2023. Nos referiremos como precarizados a aquellos individuos cuyo empleador no realiza los descuentos salariales correspondientes, sea por el motivo que fuere.

Code
## NOTESE QUE EN EL GROUP BY DEBE INCORPORARSE SI O SI LAS COLUMNAS SELECCIONADOS DE TIPO VARCHAR AL PPIO DEL SELECT

situacion_contrac = dbGetQuery(conn = conexion, 
  statement = '
    SELECT 
      Género,
      CONCAT(TRIMESTRE, "/", ANO4) AS Período,
      ROUND(SUM(CASE WHEN PP07H = 2 THEN PONDERA ELSE 0 END) / SUM(PONDERA) * 100, 2) AS `Porcentaje Trabajadores Precarios`,
      ROUND(SUM(CASE WHEN PP07H = 1 THEN PONDERA ELSE 0 END) / SUM(PONDERA) * 100, 2) AS `Porcentaje Trabajadores Formales`
    FROM (
      SELECT * FROM tablaeph_2020
      UNION ALL
      SELECT * FROM tablaeph_2021
      UNION ALL
      SELECT * FROM tablaeph_2022
      UNION ALL
      SELECT * FROM tablaeph_2023
    ) AS tablaeph
    WHERE CONCAT(TRIMESTRE, "/", ANO4) = "3/2023"
    AND `Grupo etario` = "Jóvenes"
    AND CAT_OCUP = 3
    AND PP07H IN (1, 2)
    GROUP BY Género, Período
  ') |> select(1,3,4)


tabla4 = kable(situacion_contrac, align = c("c", "c","c")) |>
    kable_classic(html_font = "Arial") |>
    kable_styling(font_size = 11, full_width = TRUE) |>
    kable_paper(bootstrap_options = "striped")|>
    row_spec(0, color = "white", background = "#536795ff", bold = TRUE, font_size = 13)|> add_header_above(c("Tabla 4 - Porcentajes de asalariados jóvenes, formales y precarizados según género" = 3),align = "l", font_size = 11)

filitas = nrow(situacion_contrac)
  for (z in 1:filitas) {
    color = ifelse(z %% 2 == 1, "#E0FFFF", "#cee2eaff")
    tabla4 = tabla4 |>
      row_spec(z, background = color, font_size = 11)}

tabla4
Tabla 4 - Porcentajes de asalariados jóvenes, formales y precarizados según género
Género Porcentaje Trabajadores Precarios Porcentaje Trabajadores Formales
Mujer 50.49 49.51
Varón 53.29 46.71

Al realizar las agrupaciones o generar los subtotales por género, observamos que en los hombres jóvenes asalariados el peso de la precarización suele ser mayor que en las mujeres alcanzando una diferencia de más de 6 puntos porcentuales entre varones que tienen empleo formal.

Precarización en población joven asalariada según género y máximo nivel educativo alcanzado - Tercer trimestre de 2023

Indagamos el subtotal de varones salariados jóvenes que son contratados bajo modalidades denominadas como precarias agrupando a los mismos según género y nivel educativo; así también se realiza lo mismo con este subconjunto de mujeres.

Code
asalariados_jovenes2 = dbGetQuery(conn = conexion, 
  statement = '
    SELECT 
      Género,
      `Nivel educativo`,
      SUM(PONDERA) AS Subtotales,
      ROUND(SUM(CASE WHEN PP07H = 2 THEN PONDERA ELSE 0 END) / SUM(PONDERA) * 100, 2) AS `Porcentaje Trabajadores Precarios`,
      ROUND(SUM(CASE WHEN PP07H = 1 THEN PONDERA ELSE 0 END) / SUM(PONDERA) * 100, 2) AS `Porcentaje Trabajadores Formales`
    FROM (
      SELECT * FROM tablaeph_2020
      UNION ALL
      SELECT * FROM tablaeph_2021
      UNION ALL
      SELECT * FROM tablaeph_2022
      UNION ALL
      SELECT * FROM tablaeph_2023
    ) AS tablaeph
    WHERE CONCAT(TRIMESTRE, "/", ANO4) = "3/2023"
    AND `Grupo etario` = "Jóvenes"
    AND CAT_OCUP = 3
    AND PP07H IN (1, 2)
    GROUP BY Género, `Nivel educativo`
  ') |> pivot_wider(values_from = c(`Porcentaje Trabajadores Precarios`,`Porcentaje Trabajadores Formales`), id_cols = `Nivel educativo`, names_from = "Género") |> select(c(1,2,4,3,5)) |>
  mutate(across(everything(), ~replace_na(., 0)))



colnames(asalariados_jovenes2) = c("Nivel educativo","Trabajadores Precarios","Trabajadores Formales","Trabajadores Precarios","Trabajadores Formales")

tabla5 = kable(asalariados_jovenes2, align = c("c", "c","c", "c","c")) |>
    kable_classic(html_font = "Arial") |>
    kable_styling(font_size = 11, full_width = TRUE) |>
    kable_paper(bootstrap_options = "striped")|>
    row_spec(0, color = "white", background = "#536795ff", bold = TRUE, font_size = 13) |>add_header_above(c(" "=1, "Varón"=2, "Mujer"=2),font_size = 12) |> add_header_above(c("Tabla 5 - Porcentaje de jóvenes asalariados en situación de formalidad/precariedad - Nivel educativo" = 5),align = "l", font_size = 11)

filitas = nrow(asalariados_jovenes2)
  for (z in 1:filitas) {
    color = ifelse(z %% 2 == 1, "#E0FFFF", "#cee2eaff")
    tabla5 = tabla5 |>
      row_spec(z, background = color, font_size = 11)}

tabla5
Tabla 5 - Porcentaje de jóvenes asalariados en situación de formalidad/precariedad - Nivel educativo
Varón
Mujer
Nivel educativo Trabajadores Precarios Trabajadores Formales Trabajadores Precarios Trabajadores Formales
Superior completo 22.97 77.03 24.02 75.98
Secundaria incompleta 81.51 18.49 71.47 28.53
Secundaria completa 50.92 49.08 46.31 53.69
Superior incompleto 45.66 54.34 45.63 54.37
Primaria completa 98.36 1.64 74.74 25.26
Primaria incompleta 42.78 57.22 93.85 6.15
Sin instrucción 0.00 0.00 100.00 0.00

Con la excepción de la transición de las mujeres con primario incompleto a primario completo en lo que a la relación de trabajo formal/precario en estas subpoblaciones refiere, parece ser que el peso del trabajo formal en cada grupo se incrementa en tanto aumenta el nivel de instrucción.

Visualización del porcentaje de trabajadores jóvenes asalariados precarios/formales - Nivel regional - según género.

Visualizamos el peso relativo de estos subgrupos a nivel regional enfatizando en la regiones críticas con mayores niveles de informalidad laboral. Para esto utilizamos la consulta almacenada en el objeto pobreza_hogares.

Code
porcentajes = pobreza_hogares |> filter(Período=="3/2023" & `Grupo etario`=="Jóvenes" & CAT_OCUP==3 & (PP07H==1 | PP07H==2)) |> group_by(Género, Regiones) |> summarise(Subtotales=sum(PONDERA), `Trabajadores Precarios`=round(sum(PONDERA[PP07H==2])/sum(PONDERA)*100,2), `Trabajadores Formales`=round(sum(PONDERA[PP07H==1])/sum(PONDERA)*100,2)) |> pivot_longer(cols = c(`Trabajadores Precarios`, `Trabajadores Formales`), names_to = "Situación", values_to = "valores")

ggplot(data = porcentajes) + 
  geom_col(aes(x = Regiones,
      y = valores,
      fill = Género),stat = "identity",
           position = "dodge",
           color = "black") +
  facet_wrap("Situación") +
  theme_bw() +
  labs(title = "Gráfico 4 - Porcentaje asalariados precarios/formales - 3/2023",
       subtitle = "Según género",
       caption = "Elaboración propia en base a EPH-INDEC",
       x = "Regiones",
       y = "",
       fill = "Género") +
  scale_fill_manual(values = c("deepskyblue","lightcyan3")) +
  theme(axis.text.x = element_text(size = 8,angle =45, 
                                   hjust = 0.95, 
                                   vjust=1))

En este caso, es la región noroeste el sitio que presenta los mayores niveles de informalidad durante tal período tanto en hombres como mujeres, siendo su opuesto la región patagónica la que presenta los niveles más altos de trabajadores formales.

Dinámica del trabajo formal e informal en población asalariada según grupo etario - 2020/2023

Code
porcentajes2 = pobreza_hogares |> filter(CAT_OCUP==3 & (PP07H==1 | PP07H==2)) |> group_by(Período, `Grupo etario`) |> summarise(Subtotales=sum(PONDERA), `Trabajadores Precarios`=round(sum(PONDERA[PP07H==2])/sum(PONDERA)*100,2), `Trabajadores Formales`=round(sum(PONDERA[PP07H==1])/sum(PONDERA)*100,2)) |> pivot_longer(cols = c(`Trabajadores Precarios`, `Trabajadores Formales`), names_to = "Situación", values_to = "valores")


orden_prefijado2 = c("1/2020","2/2020","3/2020","4/2020","1/2021","2/2021","3/2021","4/2021","1/2022","2/2022","3/2022","4/2022","1/2023","2/2023","3/2023")


otro_orden2 = c("Jóvenes","Adultos","Adultos mayores")

porcentajes2 = mutate(porcentajes2, `Grupo etario`=factor(`Grupo etario`, levels = otro_orden2))

porcentajes2 = mutate(porcentajes2, Período=factor(Período, levels = orden_prefijado2))


ggplot(data = porcentajes2) +
  aes(x = Período,
      y = valores,
      group = `Grupo etario`,
      color = `Grupo etario`) +
  facet_wrap("Situación") +
  geom_line() +
  geom_point() +theme_bw() +
  theme(axis.text.x =  element_text(angle = -50,size = 9,hjust = 0)) +
  labs(title = "Gráfico 5 - Porcentaje asalariados precarios/formales - 2020/2023",
       subtitle = "Según grupo etario",
       y = "",
       caption = "Elaboración propia en base a EPH-INDEC") +
  scale_color_manual(values = c("deepskyblue",
                     "lightblue",
                     "lightcyan4"))

Sorprende ver nuevamente como los grupos más vulnerados, en este caso aquellos en cuyo subgrupo de pertenencia logra imponerse el peso relativo de la informalidad, son los adultos mayores y los jóvenes, tal cómo sucedía con los niveles de pobreza e indigencia, e incluso en este caso, se observan lapsos temporales en los que los jóvenes asalariados superan ampliamente a los adultos mayores en porcentaje de informalidad tal como sucede entre el cuarto trimestre de 2021 y el segundo cuatrimestre de 2022.

Resultados generales

A lo largo del recorrido de cada eje, pudimos tener una aproximación a la condiciones socioeconómicas de los jóvenes durante período electoral, como así también durante todo el lapso 2020/2023, a partir de la desagregación de estas subpoblaciones por algunas variables como fue el género, el nivel educativo, como así también se realizaron comparaciones por grupo etario de pertenencia.

En lo que a población joven remite, al desagregar por género, encontramos a las mujeres como la subpoblación más afectada que muestra niveles de desocupación, subocupación, pobreza e indigencia más altos que los varones, con la única excepción de las asalariadas quienes superan en una leve diferencia de puntos porcentuales a los varones.

Cuando esta subpoblación es desagregada en grupos regionales, observamos que los que peores valores arrojan son aquellos pertenecientes a las regiones Noreste y Noroeste, seguidas por el Cuyo.

Al ser comparados en los distintos apartados por grupo etario, también son los jóvenes los que se encuentran en situaciones críticas, salvo excepciones donde los adultos mayores de 65 años presentan valores similares.

Fuentes

Para la base de microdatos de EPH, si bien fue utilizada a partir de la librería que extrae los datos de la web corrspondiente, puede descargarse en el apartado de Microdatos y Documentos 2016-2023 en https://www.indec.gob.ar/indec/web/Institucional-Indec-BasesDeDatos
Para el glosario de variables de la EPH véase el Diseño de registro en el apartado de documentos metodológicos https://www.indec.gob.ar/indec/web/Institucional-Indec-BasesDeDatos
Para la obtención de los datos de Unidad de Adulto Equivalente como así también los valores de ambas canastas véase, https://www.indec.gob.ar/ftp/cuadros/sociedad/serie_cba_cbt.xls

Footnotes

  1. Para las notas metodólogicas en torno al cómputo de la línea de pobreza, indigencia, y el significado de la Unidad de Adulto Equivalente para este cómputo, puede verse en el informe técnico anteriormente mencionado, por ejemplo para el segundo semestre de 2023 https://www.indec.gob.ar/uploads/informesdeprensa/eph_pobreza_03_2442F61D046F.pdf↩︎