Descripción del problema y sus objetivos.

Planteamiento del Problema

Actualmente, en la educación pública del país, a lo que se refiere primaria y secundaria, existe un gran ausentismo por licencias médicas de funcionarios públicos de la educación (Docentes y asistentes) que generan preocupación en la comunidad educativa y al gobierno de turno. Antes de tomar cualquier decisión sobre como abordar la problemática, se debe realizar un análisis que en cierta medida, ponga en evidencia tal situación, para llevar no solo el monitoreo mensual de las cantidades de licencias médicas, sino que también caracterizarlas a distintos niveles (comuna y provincia), con el fin de poder generar políticas públicas más direccionadas acorde a los distintos grupos (Niveles).

Objetivos Generales

Para lograr lo anterior, se realizará un análisis exploratorio, para luego describirlos o caracterizarlos a distintos niveles (Establecimiento educacional, comuna, provincia) y finalmente generar una propuesta de monitoreo mensual (evolución temporal de las cantidades de licencias médicas presentadas), para observar tendencias en distintos tramos de tiempo.

Objetivos Específicos

  • Generación de las Bases de datos.

  • Análisis de datos faltantes, duplicados y asignación de categorías.

  • Análisis Descriptivos de las variables locales.

  • Análisis Gráfico considerando la evolución temporal.

  • Conclusiones.

Extración y procesamiento de datos.

En este apartado, se detallará del como se extraen los datos para evaluar posibles sesgos, para luego poder procesar los datos con mayor razonamiento en función a los casos que podrían presentarse al analizar las licencias médicas.

La información que se registra es la siguiente:

library(readxl)
library(tidyverse)
library(lubridate)
library(openxlsx)
library(ggplot2)
library(esquisse)
library(DT)
library(kableExtra)
library(summarytools)
library(gridExtra)

lic_med <- read_excel("BBDD LM.xlsx")# 1725 registros
lic_med<- janitor::clean_names(lic_med)# ayuda con los nombres
names(lic_med)
## [1] "rut_trab"  "folio_lm"  "inicio_lm" "dias"
# Cambiar la estructura de la base de datos a través de coherción

lic_med<-lic_med %>% mutate_at(c("folio_lm", "dias"), as.integer) %>% 
  mutate(inicio_lm = ymd(inicio_lm))
Rut-Encriptado Folio Lic. Med. Fecha Inicio LM Cantidad de Días
Caracter Número Entero Fecha Número Entero
  1. El funcionario/a presenta una licencia médica: Vía electrónica (98% aprox) y Física (2% aprox)

  2. A través de la plataforma electrónica (Lic. Med. Electrónicas) y oficina de partes (para lic. Med. Físicas) se recepcionan las LM. para luego tramitarlas y registrarlas en un documento formato Excel.

  3. Se envían a al analista estadístico para generar los informes correspondientes.

De este proceso se pueden apreciar los siguientes sesgos:

  • Posible error de digitación: Duplicados, falta o error de información.

  • Licencias anuladas y rechazadas: no se contabilizan, ya que no generan ausentismo.

# Análisis de valores perdidos y duplicados

naniar::miss_var_summary(lic_med)# Tabla de distr. NAS
## # A tibble: 4 x 3
##   variable  n_miss pct_miss
##   <chr>      <int>    <dbl>
## 1 folio_lm     109   6.32  
## 2 rut_trab       3   0.174 
## 3 inicio_lm      1   0.0580
## 4 dias           0   0
lic_med<-lic_med[complete.cases(lic_med), ]# BBDD sin NAS - 1612 registros
lic_med<-unique(lic_med)# Se eliminan los duplicados - 1591 registros

Originalmente, el proceso de tratado de los valores perdidos, mayoritariamente se produce por la digitación (95% de las veces), generando así, no solo duplicados, sino que también erroneos. Finalmente, se decide eliminar los duplicados y los NAS para efectos del proyecto, ya que, se tendría que investigar junto con el o la administrativo/a que generó la base de datos y comenzar allí la búsqueda.

Con la información que se posee, no se pueden realizar profundos análisis, sin embargo, para lograr los objetivos, se debe relacionar con otras tablas de información, considerando como llave principal o primary key al rut encriptado como sigue:

1.- Existe otra tabla de información que llamaremos Maestro institucional, que posee toda la información detallada por mes del presente año, de cada uno de los y las funcionarios/as para obtener asi las variables que se desean para es presente contexto.

Maestro_institucional <- read_excel("Maestro institucional 2022.xlsx")
Maestro_institucional <- janitor::clean_names(Maestro_institucional)
names(Maestro_institucional)
dplyr::glimpse(Maestro_institucional)
str(Maestro_institucional)

De la base de datos institucional se puede observar que tiene 33 variables, de las cuales solo nos interesan 11 de ellas:

Nombre del Campo Descripción Estructura Observación
Mes Indica el mes del registro vigente en aquel mes Fecha Número Entero
Rut_trab Rut del Funcionario/a Caracter sin observación
nombre_completo Nombre del Funcionario/a Caracter Sin observación
programa Partida dipres al que pertenece el Func. Caracter Sin observaciones
establecimiento Establecimiento educacional al que depende Caracter Sin observaciones
escalafon Categoría profesional Caracter Asistente de la ed., Técnico, Docente, etc.
tipo_de_hora Calidad juridica contractual Caracter Planta, Contrata, Cod. Trab.
Jurnada Cantidad de horas contratadas Numérico Número Entero
Isapre si pertenece a isapre o fonasa Caracter Sin observaciones
Proyecto Subvención por el cual fue contratado Caracter Sin observaciones
Monto_Recuperar Monto monetario por dia a recuperar Numérico Sin observaciones

Acto seguido, se realiza una extracción mensual del archivo Maestro institucional debido a que una persona puede estar presente en ese archivo 5 veces (de enero a mayo) o más, dependiendo si posee más de un contrato, con el fin de ir monitoriando la cantidad vigente de contrato mes a mes y asi realizar una unión de manera iterativa que vaya recopilando la información mes a mes, ej: si no esta en mayo, búsquelo en abril, si allí tampoco se encuentra, búsquelo en marzo y así sucesivamente hasta enero.

Entonces se sigue el siguiente proceso técnico:

1.- Crear un directorio llamado Maestro de remuneraciones por mes.

dir.create("Maestros de Remuneraciones por mes")

2.- Se generan los archivos correspondiente y se guardan en el directorio creado anteriormente, con las variables deseadas.

Maestro_institucional <- Maestro_institucional  %>% mutate(mes_anio = ymd(mes_anio)) %>% 
  mutate(mes = factor(month(mes_anio), levels = c(1:5),
                     labels = c("Enero","Febrero","Marzo", "Abril","Mayo"))) %>%
  rename(rut_trab = rut_dv) %>% 
  select(c("mes" ,"rut_trab","nombre_completo","programa",
           "establecimiento","escalafon","tipo_de_hora",
           "jornada","isapre","proyecto","montos_recuperar")) %>% 
  group_nest(mes) %>% 
  mutate(file = paste0("Maestros de Remuneraciones por mes/",mes, ".xlsx")) %>% 
  select(file, x = data) %>% 
  pwalk(write.xlsx)

3.- Se crea una función para la automatización del proceso de unión y limpieza de bases de datos, a través de un método iterativo utilizando las funciones join, for y bindrows.

# Función -  unión y limpieza de bases de datos

Tratamiento_union_limpieza <- function(base){
  
  archivos <- list.files("Maestros de Remuneraciones por mes/")
  archivos <- paste0("Maestros de Remuneraciones por mes/", archivos)
  Maestro <- tibble()
  Base_aux <- base
  
  for(i in seq_along(archivos)){
    Base_aux <- Base_aux %>% left_join(read_excel(archivos[i]), by ="rut_trab")
    Maestro <- Maestro %>% bind_rows(Base_aux[complete.cases(Base_aux), ])
    Base_aux <- Base_aux[!complete.cases(Base_aux), ]
    Base_aux <- Base_aux %>% select(1:4)
      }
    Maestro
}

lic_med <- Tratamiento_union_limpieza(lic_med)# Se asigna la BBDD limpia
naniar::miss_var_summary(lic_med)
## # A tibble: 13 x 3
##    variable         n_miss pct_miss
##    <chr>             <int>    <dbl>
##  1 rut_trab              0        0
##  2 folio_lm              0        0
##  3 inicio_lm             0        0
##  4 dias                  0        0
##  5 nombre_completo       0        0
##  6 programa              0        0
##  7 establecimiento       0        0
##  8 escalafon             0        0
##  9 tipo_de_hora          0        0
## 10 jornada               0        0
## 11 isapre                0        0
## 12 proyecto              0        0
## 13 montos_recuperar      0        0

4.- Finalmente, con la base de datos sin valores perdidos ni duplicados, se realizan las asignaciones correspondientes a los factores que consideraremos en los proximos análisis.

lic_med <- lic_med %>% 
  mutate(Calidad_Juridica = factor(tipo_de_hora)) %>% 
  mutate(Salud = factor(isapre)) %>% 
  mutate(Escalafon = factor(escalafon)) %>% 
  mutate(Programa=factor(programa)) %>% 
  mutate(Proyecto = factor(proyecto)) %>% 
  mutate(montos_recuperar = montos_recuperar*dias) %>% 
  select(-c("programa","escalafon","tipo_de_hora","isapre","proyecto")) %>% 
  mutate(Mes = factor(month(inicio_lm),
                      levels = c(1,2,3,4,5,6,7,8,9,10,11,12),
                      labels = c("Enero","Febrero","Marzo","Abril",
                                 "Mayo","Junio","Julio", "Agosto",
                                 "Septiembre","Octubre","Noviembre",
                                 "Diciembre"))) %>% 
  mutate(Anio = factor(year(inicio_lm)))

dt <- lic_med[1:5, 6:12]
dt %>%
  kbl(caption = "Muestra de BBDD Licencias médicas 2022") %>%
  kable_classic(full_width = F, html_font = "Cambria")
Muestra de BBDD Licencias médicas 2022
establecimiento jornada montos_recuperar Calidad_Juridica Salud Escalafon Programa
JARDIN RAYITO DE SOL 44 137952.40 PLAZO FIJO FONASA CODIGO DEL TRABAJO JUNJI
JARDIN INFANTIL LOS GRILLITOS 44 145838.47 PLAZO FIJO FONASA CODIGO DEL TRABAJO JUNJI
LICEO PEDRO TRONCOSO MACHUCA 44 113701.23 PLAZO FIJO FONASA ASISTENTE DE LA EDUCACION P-02
JARDIN VISTA ALEGRE 44 213872.40 PLAZO FIJO FONASA CODIGO DEL TRABAJO JUNJI
LICEO POLITECNICO 44 68668.53 PLAZO FIJO FONASA ASISTENTE DE LA EDUCACION P-02

Muestra pequeña de la base de datos con la cual se trabajará. (Se omiten variables que muestran datos confidenciales). total de registros completos y sin duplicar: 1.473

Visualización, Análisis y Resúmenes numéricos.

Como primer análisis, se observará la evolución de las cantidades de licencias medicas presentada con fecha de inicio en el mes que corresponde (Ausentismo).

# Evolución de las licencias medicas en el anio 2022

lic_med<-lic_med %>% filter(Mes %in% c("Enero","Febrero", "Marzo","Abril","Mayo"))

ggplot(data = lic_med, mapping = aes(x = Mes,addlabels=TRUE))+
geom_bar(fill="Darkblue")+
labs(title = "Evolución las Licencias presentadas",
       subtitle = "De Enero a Mayo 2022",
       y = "Cantidad de Lic. Médicas",
       label = TRUE) +
geom_text(aes(label = ..count..), 
            stat = "count", vjust = 2, 
            colour = "white", lwd=4)+
theme_bw()

Claramente han ido en aumento las licencias médicas de la provincia, pero hay que destacar que de un total de 2.500 funcionarios aproximadamente, solo el mes de mayo 2022, el 28% ha presentado al menos una licencia que genera un ausentismo de un día a más.

Si observamos, la siguiente tabla:

summary(lic_med$dias)
summary(lic_med$montos_recuperar)
Variable Min 1er Cuartil Mediana Media 3er Cuartil Max
Días 1.00 5.00 14.00 16.49 28.00 120.00
Montos a Recuperar 13.322 150.096 314.511 506.535 649.551 6.201.724

Se aprecia que los días oscilan entre 1 y 120, en la que hay que destacar que dentro de ellas estan las licencias por embarazo las cuales corresponden a 25 licencias, el resto son psiquiátricas (un 66.6%), un 20% en enfermedades por medicina general y traumatología y Enfermedad por hijo (13.4%). además, en promedio son 16.49 días y en mediana unos 14 días.

ggplot(lic_med) +
 aes(x = Escalafon, y = dias) +
 geom_col(fill = "#1E7EDB") +
 labs(x = "Escalafon", y = "Cantidad de Días", 
 title = "Total de dias en el periodo", subtitle = "De Enero a Mayo 2022", caption = "Provincia del Huasco") +
 theme_bw()

ggplot(lic_med) +
 aes(x = Escalafon, y = dias, group = Escalafon) +
 geom_boxplot(fill = "#FF8C00") +
 labs(x = "Escalafon", y = "Cantidad de Días", title = "Boxplot de la Cantidad de Dias por LM", subtitle = "Por Escalafon", 
 caption = "Provincia del Huasco") +
 theme_bw()

Al observar el boxplot se tiende a ver aproximadamente como distribuyen y en que escala en comparación a las demás categorías, y se observa que los docentes y asistentes concentran en términos relativos la mayor cantidad de licencias médicas.

  Freq % % Cum.
JUNJI 178 12.08 12.08
P-01 31 2.10 14.19
P-02 1264 85.81 100.00
Total 1473 100.00 100.00

el programa 02 que comprende a los asistentes y docentes en conjunto, un 85.81% de las licencias emitidas, son de esta categoría.

Otro dato relevante a considerar, es el monto a recuperar por esas licencias med., sin entrar en más detalles, el monto a recuperar es de : $ 746.126.628 a la fecha. (Esto es un aproximado), lo cual genera un excedente positivo a las arcas públicas.

# por Escalafon

ggplot(lic_med) +
 aes(x = Mes, group = Escalafon) +
 geom_bar(fill = "#3805CD") +
 labs(y = "Cantidad de licencias", 
 title = "Licencias", subtitle = "de enero a mayo", caption = "Provincia del Huasco")+
 geom_text(aes(label = ..count..), 
            stat = "count", vjust = 2, 
            colour = "white", lwd=2)+
 theme_bw() +
 facet_wrap(vars(Escalafon))

# Por Programa

ggplot(lic_med) +
  aes(x = Mes) +
  geom_bar(fill = "#228B22") +
  labs(y = "Cantidad de Licencias", title = "Evolucion mensual por programa", 
       subtitle = "de Enero a Mayo 2022", caption = "Provincia del Huasco") +
  theme_bw() +
  facet_wrap(vars(Programa))

# Por Proyecto

ggplot(lic_med) +
 aes(x = Mes) +
 geom_bar(fill = "#B209DB") +
 labs(y = "Cantidad de licencias", title = "Evolución mensual por Proyecto", 
 subtitle = "de Enero a Mayo 2022", caption = "Provincia del Huasco") +
 theme_minimal() +
 facet_wrap(vars(Proyecto))

Al observar los gráficos, sigue mostrando la tendencia al alza junto con los distintas categorías que son de interés a un director del servicio publico, ademas, hay mucha mas información relevante que analizar, pero por efecto del proyecto 3, se dejo a estas categorías.

Conclusión

Finalmente ante la propuesta, se concluye que el grado de emisión de licencias medicas de la provincia son alarmantes, ya que comprenden mas del 25% de la dotación, sin embargo, es un primer paso a destacar el gran impacto que provoca el ausentismos de los profesionales y técnicos de la educación post pandemia. hoy en día se tiene que tomar las riendas del asunto, junto con analizar de manera mas exhaustiva, las posibles implicancias que a nivel provincial están sucediendo. a que nivel asociado se encuentra el ausentismo con los resultados simce y prueba de admision universitaria por ejemplo.