1 Introducción

Texto texto texto

2 Objetivos

2.1 Objetivo general

Demostrar que en la funcion publica las mujeres son mas en cantidad pero ganan en salarios medianos menos que los hombres

2.2 Objetivos específicos

3 Antecedentes

El artículo de Maldonado and Mendez (2021) busca visibilizar y analizar la desigualdad de género en la composición del empleo público de la Administración Pública Nacional (APN). El trabajo se basa en datos del año 2020 de la Base Integrada de Empleo Público elaborada por la Secretaría de Gestión y Empleo Público de la Jefatura de Gabinete de Ministros a partir de registros administrativos. A partir esta se realiza una aproximación cuantitativa de la cantidad de empleados y empleadas en los organismos de la APN e identifica salarios, si se trata de personal civil y el tipo de administración, jurisdicción y escalafón al que pertenecen. Debe señalarse que la BIEP utiliza una codificación binaria del género de los y las empleadas. Si bien los derechos de las mujeres se encuentran vulnerados de distintas maneras dentro del mercado de trabajo, en este ensayo tomaremos tres de las principales: la segregación horizontal, los “techos de cristal” y la brecha salarial. El primero refiere a la existencia de trabajos con mayor presencia de mujeres/varones en algunos sectores, el segundo a la menor presencia de mujeres en puestos jerárquicos y el tercero a la diferencia de ingresos respecto a sus pares varones.

4 Fuente de datos

https://datos.sfp.gov.py/data/funcionarios/download

Ruta de trabajo: “G:unidad”

5 Procesamiento de datos

5.1 Carga de los archivos

# librerias necesarias

#install.packages(dplyr, tidyverse)

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.5
## ✔ ggplot2   3.5.2     ✔ stringr   1.5.1
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(data.table)
## 
## Adjuntando el paquete: 'data.table'
## 
## The following objects are masked from 'package:lubridate':
## 
##     hour, isoweek, mday, minute, month, quarter, second, wday, week,
##     yday, year
## 
## The following object is masked from 'package:purrr':
## 
##     transpose
## 
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
library(readr)
# variables=c("anio", "mes","descripcionEntidad" , "conceptoGasto", "codigoPersona", "sexo", "fechaIngreso",        "tipoPersonal",  "lugar","montoPresupuestado")
# FP2015ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2015-01.csv", select=variables )
# FP2016ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2016-01.csv", select=variables )
# FP2017ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2017-01.csv", select=variables )
# FP2018ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2018-01.csv", select=variables )
# FP2019ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2019-01.csv", select=variables )
# FP2020ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2020-01.csv", select=variables )
# FP2021ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2021-01.csv", select=variables )
# FP2022ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2022-01.csv", select=variables )
# FP2023ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2023-01.csv", select=variables )
# FP2024ene=fread( "G:/Mi unidad/FUNPUBLICOS/nomina_2024-01.csv", select=variables )
# FPcomp=bind_rows(FP2015ene, FP2016ene, FP2017ene, FP2018ene, FP2019ene, FP2020ene, FP2021ene, FP2022ene, FP2023ene, FP2024ene)
# nrow(FPcomp)
# Supongamos que tu dataframe grande se llama nominaFPcomp
#saveRDS(FPcomp, "G:/Mi unidad/FUNPUBLICOS/nominaFPcomp.rds")
#cargar la base compilada

FP=readRDS("G:/Mi unidad/FUNPUBLICOS/nominaFPcomp.rds")
names(FP)
##  [1] "anio"               "mes"                "descripcionEntidad"
##  [4] "conceptoGasto"      "codigoPersona"      "sexo"              
##  [7] "fechaIngreso"       "tipoPersonal"       "lugar"             
## [10] "montoPresupuestado"

5.2 Verificaciones minimas

table(FP$anio, FP$mes)
##       
##             1
##   2015 675462
##   2016 818260
##   2017 831389
##   2018 788311
##   2019 797796
##   2020 812335
##   2021 799352
##   2022 823671
##   2023 841450
##   2024 829138

5.3 Desduplicar la base por persona

library(dplyr)

FPcompsd <- FP %>% 
  group_by(anio, mes, codigoPersona, sexo,descripcionEntidad, fechaIngreso, tipoPersonal) %>% 
  summarize(
    salario = sum(montoPresupuestado, na.rm = TRUE),
    .groups = "drop"
  ) %>% 
  mutate(
    fecha = as.Date(paste("01", mes, anio, sep="/"), format="%d/%m/%Y")
  )

nrow(FPcompsd)
## [1] 2746814
cbind(table(FPcompsd$fecha, FPcompsd$tipoPersonal))
##                    COM   CON    PER
## 2015-01-01 113592 1970 36721 207515
## 2016-01-01  35827 2282 34178 213951
## 2017-01-01  33622 2610 34467 213261
## 2018-01-01      0 2647 29915 214633
## 2019-01-01      0 2967 27085 219077
## 2020-01-01      0 2713 33247 218951
## 2021-01-01      0 2771 39952 217856
## 2022-01-01      0 2767 46704 219370
## 2023-01-01      0 2491 46625 222203
## 2024-01-01      0 1608 41086 222150

6 Resultados

6.1 Evolucion de la cantidad de funcionarios por sexo

Explorar valores extremos en los salarios

boxplot(salario ~ sexo, data = FPcompsd, col = "lightgray")

summary(FPcompsd$salario)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
##         0   2784000   4369600   5017828   6419900 553311258
library(dplyr)

tab1 <- FPcompsd %>% 
  group_by(fecha, anio, sexo, tipoPersonal) %>% 
  filter(tipoPersonal!= "COM"  & anio>2017 ) %>% 
  summarize(cantidad = n(),
    .groups = "drop"
  )
tab1
## # A tibble: 28 × 5
##    fecha       anio sexo  tipoPersonal cantidad
##    <date>     <int> <chr> <chr>           <int>
##  1 2018-01-01  2018 F     CON             16917
##  2 2018-01-01  2018 F     PER            110156
##  3 2018-01-01  2018 M     CON             12998
##  4 2018-01-01  2018 M     PER            104477
##  5 2019-01-01  2019 F     CON             15358
##  6 2019-01-01  2019 F     PER            112870
##  7 2019-01-01  2019 M     CON             11727
##  8 2019-01-01  2019 M     PER            106207
##  9 2020-01-01  2020 F     CON             19482
## 10 2020-01-01  2020 F     PER            112769
## # ℹ 18 more rows
library(ggplot2)


g1 <- ggplot(tab1, aes(x = fecha, y = cantidad, color = sexo, group = sexo)) +
  geom_line(size = 1) +
  geom_point(size = 2) +
  scale_color_manual(values = c("M" = "steelblue", "F" = "salmon")) +
  expand_limits(y = 0) +  # fuerza que todos los paneles inicien en cero
  labs(
    x = "Fecha",
    y = "Cantidad de funcionarios",
    color = "Sexo",
    title = "Evolución de la cantidad de funcionarios por sexo",
    subtitle = "Paneles con la misma escala por tipo de personal"
  ) +
  facet_wrap(~ tipoPersonal, scales = "fixed") +  # escala única en todos los paneles
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 12)
  )
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
g1

library(dplyr)

tab2 <- FPcompsd %>% 
  group_by(fecha, anio, sexo, tipoPersonal) %>% 
  filter(tipoPersonal!= "COM"  & anio>2017 ) %>% 
  summarize(salariomed = median(salario, na.rm = TRUE),
    .groups = "drop"
  )
tab2
## # A tibble: 28 × 5
##    fecha       anio sexo  tipoPersonal salariomed
##    <date>     <int> <chr> <chr>             <dbl>
##  1 2018-01-01  2018 F     CON             3570000
##  2 2018-01-01  2018 F     PER             4814990
##  3 2018-01-01  2018 M     CON             3000000
##  4 2018-01-01  2018 M     PER             5146636
##  5 2019-01-01  2019 F     CON             3600000
##  6 2019-01-01  2019 F     PER             4946103
##  7 2019-01-01  2019 M     CON             3298320
##  8 2019-01-01  2019 M     PER             5297671
##  9 2020-01-01  2020 F     CON             3650000
## 10 2020-01-01  2020 F     PER             5479788
## # ℹ 18 more rows
library(ggplot2)


g2 <- ggplot(tab2, aes(x = fecha, y = salariomed, color = sexo, group = sexo)) +
  geom_line(size = 1) +
  geom_point(size = 2) +
  scale_color_manual(values = c("M" = "steelblue", "F" = "salmon")) +
  expand_limits(y = 0) +  # fuerza que todos los paneles inicien en cero
  labs(
    x = "Fecha",
    y = "Cantidad de funcionarios",
    color = "Sexo",
    title = "Evolución del salario promedio de funcionarios por sexo",
    subtitle = "Paneles con la misma escala por tipo de personal"
  ) +
  facet_wrap(~ tipoPersonal, scales = "fixed") +  # escala única en todos los paneles
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    plot.title = element_text(face = "bold", size = 14),
    plot.subtitle = element_text(size = 12)
  )

g2

```

7 Conclusiones

8

9 Anexos

Referencias

Maldonado, Florencia, and Emanuel López Mendez. 2021. “Brechas de género y Segmentación En El Empleo público Nacional: Un análisis a Partir de La Base Integrada de Empleo público.” Márgenes. Revista de Economı́a Polı́tica 7 (7).