Proyecto de regresión lineal simple para estimar el efecto del absentismo laboral sobre la contratación temporal

En este post comparto el README del proyecto “Absentismo IT → contratos temporales de cobertura”, en el que se desarrolla un modelo de regresión lineal simple para estimar la relación entre absentismo laboral y contratación temporal.

👉 Puedes acceder al repositorio completo aquí: [enlace a GitHub]

A continuación se muestra el contenido completo del README tal y como está publicado en el repositorio.

Este repositorio muestra un proyecto completo de análisis de datos orientado a responder una pregunta muy concreta dentro del ámbito de recursos humanos:

¿Cuántos contratos temporales de cobertura se generan cuando aumenta el absentismo laboral por incapacidad temporal (IT)?

La idea central es construir un modelo de regresión lineal a partir de datos históricos mensuales para estimar la relación entre ambas variables y transformar esa relación en una herramienta sencilla de apoyo a la decisión.

Más que presentar solo un modelo final, este proyecto reproduce el recorrido completo de un proyecto de predicción cuantitativa: desde la formulación del problema hasta su despliegue en una pequeña aplicación web.


1. Definición del objetivo

Todo proyecto predictivo empieza con una pregunta bien formulada. En este caso, el objetivo es estimar el impacto que tiene el aumento del absentismo por IT sobre la necesidad de realizar contratos temporales de cobertura.

Pregunta del proyecto

¿Cómo varía el número de contratos temporales de cobertura cuando aumenta el volumen mensual de IT?

Variable objetivo

  • y = contratos_temporales_cobertura

Variable explicativa principal

  • X = absentismo_IT
  • En la aplicación final, esta variable podrá introducirse como número de nuevas ITs o como el indicador mensual equivalente, según cómo quede definido el dataset definitivo.

Horizonte de análisis

  • Datos históricos con frecuencia mensual
  • Modelo orientado a estimación cuantitativa y simulación de escenarios

Utilidad práctica

Este modelo puede servir como herramienta de apoyo para:

  • anticipar necesidades de contratación temporal,
  • mejorar la planificación de recursos humanos,
  • justificar decisiones organizativas con una base cuantitativa,
  • explorar escenarios de aumento o reducción del absentismo.

2. Adquisición de los datos

El siguiente paso consiste en reunir y documentar la información necesaria para construir el modelo.

En este proyecto se trabaja con un archivo CSV que contiene observaciones mensuales históricas de las dos variables principales:

  • absentismo por IT,
  • contratos temporales de cobertura.

Dataset

Archivo principal:

  • data/absentismo_contratos.csv

Estructura esperada

Cada fila representa un mes del histórico. El dataset incluirá, como mínimo, las siguientes columnas:

  • fecha
  • dias_absentismo_it
  • dias_contratos_cobertura

Ejemplo conceptual:

fecha dias_absentismo_it dias_contratos_cobertura
2021-01 125 18
2021-02 138 21
2021-03 149 24

Nota sobre el origen de los datos

The data included in absentismo_contratos.csv is fictitious.

It has been created for educational and illustrative purposes only. It does not correspond to real institutional or administrative data, although it is structured to resemble a realistic monthly workforce planning dataset.


3. Exploración de la información

Antes de entrenar ningún modelo, es necesario observar los datos y entender qué patrón contienen.

En este proyecto, el análisis exploratorio se desarrolla en el notebook:

  • notebooks/01_data_cleaning_eda.ipynb

Qué se analiza en esta fase

  • estructura general del dataset,
  • tipos de datos y valores faltantes,
  • posibles errores o registros atípicos,
  • distribución de las variables,
  • evolución temporal mensual,
  • relación entre absentismo IT y contratos de cobertura,
  • correlación lineal entre ambas variables.

Objetivo de esta fase

La finalidad del EDA es comprobar si existe una relación suficientemente clara y estable como para justificar el uso de una regresión lineal simple.

En particular, este notebook deberá terminar mostrando que:

  • existe asociación positiva entre ambas variables,
  • la nube de puntos sugiere una tendencia aproximadamente lineal,
  • el problema puede formularse como una estimación de tipo lineal interpretable.

4. Preparación del dataset

Los modelos solo funcionan bien cuando los datos están bien definidos y organizados. Por eso, antes del modelado, se realiza una fase de limpieza y preparación.

Esta fase también queda recogida en:

  • notebooks/01_data_cleaning_eda.ipynb

Tareas de preparación previstas

  • parseo y ordenación de la variable fecha,
  • revisión de duplicados,
  • tratamiento de valores nulos,
  • validación de tipos numéricos,
  • homogeneización de nombres de variables,
  • selección final de las columnas necesarias para modelar.

Dataset final para modelado

El resultado de esta fase es un conjunto de datos limpio, consistente y listo para construir el modelo de regresión.


5. Construcción del modelo

La fase de modelado se desarrolla en el notebook:

  • notebooks/02_modeling.ipynb

Aquí se entrenan y comparan dos enfoques de regresión lineal, evaluándolos con un conjunto de prueba para seleccionar el más útil.

Modelos a comparar

Modelo 1. Regresión lineal con scikit-learn

Modelo orientado a predicción práctica, entrenamiento sencillo y fácil integración posterior en una app.

Modelo 2. Regresión lineal con statsmodels (OLS)

Modelo orientado a interpretación estadística, útil para analizar coeficientes, significación y ajuste global.

Estrategia de evaluación

El notebook dividirá el histórico en:

  • train
  • test

Y comparará ambos enfoques mediante métricas como:

  • MAE
  • RMSE

Resultado esperado

Seleccionar el modelo que ofrezca el mejor equilibrio entre:

  • capacidad predictiva,
  • interpretabilidad,
  • facilidad de despliegue.

Interpretación del modelo

Uno de los principales intereses de este proyecto no es solo predecir, sino interpretar el coeficiente de la regresión.

Es decir:

estimar cuántos contratos temporales adicionales se generan, en promedio, por cada incremento unitario del absentismo IT.


6. Despliegue y monitorización

Un modelo adquiere valor real cuando se pone en uso. Por eso, este repositorio incluye una pequeña aplicación web desarrollada con Streamlit para mostrar el modelo en acción.

Archivo principal:

  • app/app.py

Funcionalidad de la aplicación

La app permitirá introducir como dato de entrada:

  • un número de nuevas ITs, o
  • el valor mensual del indicador de absentismo definido en el proyecto,

y devolverá como salida:

  • la estimación de contratos temporales de cobertura esperados.

Objetivo de la app

Transformar el modelo en una herramienta simple, comprensible y reutilizable, pensada para simulación de escenarios.

Monitorización futura

Aunque este repositorio muestra una primera versión funcional, cualquier uso real del modelo exigiría:

  • actualizar periódicamente el dataset,
  • reevaluar el ajuste del modelo,
  • comprobar si la relación entre variables se mantiene estable en el tiempo.

Estructura del repositorio

absentismo-it-contratos-regresion/
│
├── README.md
├── README_ESP.md (readme in spanish)
├── requirements.txt
├── .gitignore
│
├── data/
│   └── absentismo_contratos.csv
│
├── notebooks/
│   ├── 01_data_cleaning_eda.ipynb
│   └── 02_modeling.ipynb
│
├── app/
│   └── app.py
│
└── outputs/
    ├── figures/
    └── model/