Introducción

En este informe se analiza la rotación de empleados en una organización, con el objetivo de comprender los factores que influyen en el cambio de cargo de los trabajadores. Se utiliza la base de datos rotacion del paquete paqueteMODELOS. La metodología empleada incluye: - Obtención y preparación de los datos: Carga y exploración de la base de datos. - Análisis univariado: Caracterización de cada variable (numéricas y categóricas). - Análisis bivariado: Relación entre la variable respuesta (rotación) y las covariables seleccionadas. - Modelado: Estimación de un modelo de regresión logística para predecir la probabilidad de rotación. - Evaluación y predicción: Evaluación del modelo mediante la curva ROC y AUC, y generación de predicciones para un empleado hipotético.

La estructura del análisis sigue los siguientes pasos, que se detallan a continuación.

1. Selección de Variables y Justificación de Hipótesis

Se han seleccionado 6 variables, 3 categóricas y 3 cuantitativas (además de la variable de respuesta Rotación), con las siguientes justificaciones:

Variables Categóricas

  1. Horas_Extra
    Hipótesis: Se espera que trabajar horas extra incremente el riesgo de rotación, pues el desgaste físico y mental podría inducir a la búsqueda de otros cargos.

    Justificación: Trabajar horas extra puede aumentar el desgaste físico y mental del empleado, lo cual a su vez puede generar insatisfacción y mayor deseo de buscar nuevas oportunidades.

  2. Departamento
    Hipótesis: Diferentes departamentos tienen culturas y cargas de trabajo distintas; por ello, algunos podrían presentar mayores índices de rotación.

    Justificación: Cada departamento puede tener diferentes entornos laborales, cargas de trabajo y oportunidades de crecimiento. Es posible que ciertos departamentos presenten condiciones que fomenten la rotación.

  3. Estado_Civil
    Hipótesis: El estado civil influye en la estabilidad personal. Se espera que empleados solteros, con menor compromiso familiar, tengan una mayor probabilidad de rotación.

    Justificación: El estado civil puede influir en la estabilidad y en la toma de decisiones laborales; las personas solteras podrían estar más dispuestas a cambiar de cargo o buscar nuevos retos.

Variables Cuantitativas

  1. Satisfacción_Laboral
    Hipótesis: Una menor satisfacción laboral se asocia con un mayor riesgo de rotación, ya que los empleados buscan mejorar su entorno laboral.

    Justificación: La satisfacción con el trabajo es uno de los factores clave de retención; a menor satisfacción, mayor predisposición a buscar otros cargos.

  2. Ingreso_Mensual
    Hipótesis: Los empleados con menores ingresos podrían estar más motivados a cambiar de cargo en búsqueda de mejores oportunidades económicas.

    Justificación: El nivel de ingresos influye en la percepción de estabilidad económica. Empleados con salarios más bajos podrían buscar cargos mejor remunerados.

  3. Antigüedad_Cargo
    Hipótesis: Una menor antigüedad en el cargo puede reflejar una etapa temprana en la carrera, asociada a una mayor probabilidad de rotación.

    Justificación: El tiempo que un empleado lleva en su cargo puede indicar el grado de experiencia y estabilidad dentro de la organización.

2. Análisis Univariado

En este apartado se caracteriza la base de datos utilizando estadísticas descriptivas y visualizaciones apropiadas según el tipo de variable.

# Se cargan las librerías necesarias
library(paqueteMODELOS)
## Loading required package: boot
## Loading required package: broom
## Loading required package: GGally
## Loading required package: ggplot2
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
## Loading required package: gridExtra
## Loading required package: knitr
## Loading required package: summarytools
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

# Se carga la base de datos "rotacion"
data("rotacion")

# Se visualiza la estructura del dataset
str(rotacion)
## tibble [1,470 × 24] (S3: tbl_df/tbl/data.frame)
##  $ Rotación                   : chr [1:1470] "Si" "No" "Si" "No" ...
##  $ Edad                       : num [1:1470] 41 49 37 33 27 32 59 30 38 36 ...
##  $ Viaje de Negocios          : chr [1:1470] "Raramente" "Frecuentemente" "Raramente" "Frecuentemente" ...
##  $ Departamento               : chr [1:1470] "Ventas" "IyD" "IyD" "IyD" ...
##  $ Distancia_Casa             : num [1:1470] 1 8 2 3 2 2 3 24 23 27 ...
##  $ Educación                  : num [1:1470] 2 1 2 4 1 2 3 1 3 3 ...
##  $ Campo_Educación            : chr [1:1470] "Ciencias" "Ciencias" "Otra" "Ciencias" ...
##  $ Satisfacción_Ambiental     : num [1:1470] 2 3 4 4 1 4 3 4 4 3 ...
##  $ Genero                     : chr [1:1470] "F" "M" "M" "F" ...
##  $ Cargo                      : chr [1:1470] "Ejecutivo_Ventas" "Investigador_Cientifico" "Tecnico_Laboratorio" "Investigador_Cientifico" ...
##  $ Satisfación_Laboral        : num [1:1470] 4 2 3 3 2 4 1 3 3 3 ...
##  $ Estado_Civil               : chr [1:1470] "Soltero" "Casado" "Soltero" "Casado" ...
##  $ Ingreso_Mensual            : num [1:1470] 5993 5130 2090 2909 3468 ...
##  $ Trabajos_Anteriores        : num [1:1470] 8 1 6 1 9 0 4 1 0 6 ...
##  $ Horas_Extra                : chr [1:1470] "Si" "No" "Si" "Si" ...
##  $ Porcentaje_aumento_salarial: num [1:1470] 11 23 15 11 12 13 20 22 21 13 ...
##  $ Rendimiento_Laboral        : num [1:1470] 3 4 3 3 3 3 4 4 4 3 ...
##  $ Años_Experiencia           : num [1:1470] 8 10 7 8 6 8 12 1 10 17 ...
##  $ Capacitaciones             : num [1:1470] 0 3 3 3 3 2 3 2 2 3 ...
##  $ Equilibrio_Trabajo_Vida    : num [1:1470] 1 3 3 3 3 2 2 3 3 2 ...
##  $ Antigüedad                 : num [1:1470] 6 10 0 8 2 7 1 1 9 7 ...
##  $ Antigüedad_Cargo           : num [1:1470] 4 7 0 7 2 7 0 0 7 7 ...
##  $ Años_ultima_promoción      : num [1:1470] 0 1 0 3 2 3 0 0 1 7 ...
##  $ Años_acargo_con_mismo_jefe : num [1:1470] 5 7 0 0 2 6 0 0 8 7 ...
glimpse(rotacion)
## Rows: 1,470
## Columns: 24
## $ Rotación                    <chr> "Si", "No", "Si", "No", "No", "No", "No", …
## $ Edad                        <dbl> 41, 49, 37, 33, 27, 32, 59, 30, 38, 36, 35…
## $ `Viaje de Negocios`         <chr> "Raramente", "Frecuentemente", "Raramente"…
## $ Departamento                <chr> "Ventas", "IyD", "IyD", "IyD", "IyD", "IyD…
## $ Distancia_Casa              <dbl> 1, 8, 2, 3, 2, 2, 3, 24, 23, 27, 16, 15, 2…
## $ Educación                   <dbl> 2, 1, 2, 4, 1, 2, 3, 1, 3, 3, 3, 2, 1, 2, …
## $ Campo_Educación             <chr> "Ciencias", "Ciencias", "Otra", "Ciencias"…
## $ Satisfacción_Ambiental      <dbl> 2, 3, 4, 4, 1, 4, 3, 4, 4, 3, 1, 4, 1, 2, …
## $ Genero                      <chr> "F", "M", "M", "F", "M", "M", "F", "M", "M…
## $ Cargo                       <chr> "Ejecutivo_Ventas", "Investigador_Cientifi…
## $ Satisfación_Laboral         <dbl> 4, 2, 3, 3, 2, 4, 1, 3, 3, 3, 2, 3, 3, 4, …
## $ Estado_Civil                <chr> "Soltero", "Casado", "Soltero", "Casado", …
## $ Ingreso_Mensual             <dbl> 5993, 5130, 2090, 2909, 3468, 3068, 2670, …
## $ Trabajos_Anteriores         <dbl> 8, 1, 6, 1, 9, 0, 4, 1, 0, 6, 0, 0, 1, 0, …
## $ Horas_Extra                 <chr> "Si", "No", "Si", "Si", "No", "No", "Si", …
## $ Porcentaje_aumento_salarial <dbl> 11, 23, 15, 11, 12, 13, 20, 22, 21, 13, 13…
## $ Rendimiento_Laboral         <dbl> 3, 4, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 3, 3, …
## $ Años_Experiencia            <dbl> 8, 10, 7, 8, 6, 8, 12, 1, 10, 17, 6, 10, 5…
## $ Capacitaciones              <dbl> 0, 3, 3, 3, 3, 2, 3, 2, 2, 3, 5, 3, 1, 2, …
## $ Equilibrio_Trabajo_Vida     <dbl> 1, 3, 3, 3, 3, 2, 2, 3, 3, 2, 3, 3, 2, 3, …
## $ Antigüedad                  <dbl> 6, 10, 0, 8, 2, 7, 1, 1, 9, 7, 5, 9, 5, 2,…
## $ Antigüedad_Cargo            <dbl> 4, 7, 0, 7, 2, 7, 0, 0, 7, 7, 4, 5, 2, 2, …
## $ Años_ultima_promoción       <dbl> 0, 1, 0, 3, 2, 3, 0, 0, 1, 7, 0, 0, 4, 1, …
## $ Años_acargo_con_mismo_jefe  <dbl> 5, 7, 0, 0, 2, 6, 0, 0, 8, 7, 3, 8, 3, 2, …

Análisis Univariado de Variables Cuantitativas Para las variables cuantitativas se utiliza el resumen estadístico y se generan gráficos de distribución. Se presentan ejemplos con las variables Edad, Ingreso_Mensual, Satisfacción_Laboral y Antigüedad_Cargo.

# Se muestran estadísticas descriptivas de algunas variables cuantitativas
summary(rotacion %>% select(Edad, Ingreso_Mensual, Satisfación_Laboral, Antigüedad_Cargo))
##       Edad       Ingreso_Mensual Satisfación_Laboral Antigüedad_Cargo
##  Min.   :18.00   Min.   : 1009   Min.   :1.000       Min.   : 0.000  
##  1st Qu.:30.00   1st Qu.: 2911   1st Qu.:2.000       1st Qu.: 2.000  
##  Median :36.00   Median : 4919   Median :3.000       Median : 3.000  
##  Mean   :36.92   Mean   : 6503   Mean   :2.729       Mean   : 4.229  
##  3rd Qu.:43.00   3rd Qu.: 8379   3rd Qu.:4.000       3rd Qu.: 7.000  
##  Max.   :60.00   Max.   :19999   Max.   :4.000       Max.   :18.000
# Histograma de la variable Ingreso_Mensual
ggplot(rotacion, aes(x = Ingreso_Mensual)) +
  geom_histogram(binwidth = 500, fill = "lightblue", color = "black") +
  labs(title = "Histograma de Ingreso Mensual", x = "Ingreso Mensual", y = "Frecuencia")

# Histograma de la variable Edad
ggplot(rotacion, aes(x = Edad)) +
  geom_histogram(binwidth = 5, fill = "lightgreen", color = "black") +
  labs(title = "Histograma de Edad", x = "Edad", y = "Frecuencia")

Estadísticas Descriptivas

De acuerdo con la salida de la función summary() para las variables seleccionadas, se observan los siguientes valores:

Edad

  • Mínimo: 18 años
  • 1er Cuartil (Q1): 30 años
  • Mediana (Q2): 36 años
  • Media: 36.92 años
  • 3er Cuartil (Q3): 43 años
  • Máximo: 60 años

Se aprecia que la edad de los empleados oscila entre 18 y 60 años, con una mediana de 36. Esto sugiere que la mayoría de los empleados se ubican en un rango de edad adulta media (30 a 43 años), concentrando el grueso de la fuerza laboral en edades productivas.

Ingreso_Mensual

  • Mínimo: 1009
  • 1er Cuartil (Q1): 2911
  • Mediana (Q2): 4919
  • Media: 6503
  • 3er Cuartil (Q3): 8379
  • Máximo: 19999

El ingreso mensual presenta una mediana de 4919, con un rango amplio (1009 a 19999). Esto indica que existe una gran dispersión en los salarios, con un sesgo hacia la derecha (algunos empleados presentan salarios significativamente más altos que la mayoría).

Satisfación_Laboral

  • Mínimo: 1
  • 1er Cuartil (Q1): 2
  • Mediana (Q2): 3
  • Media: 2.73
  • 3er Cuartil (Q3): 3
  • Máximo: 4

Esta variable se encuentra en un rango de 1 a 4, con la mayoría de los empleados reportando niveles entre 2 y 3. La mediana de 3 indica que más de la mitad de los empleados manifiestan una satisfacción laboral por encima del valor 2.5, lo cual sugiere que la satisfacción laboral, en términos generales, tiende a ser moderada a buena.

Antigüedad_Cargo

  • Mínimo: 0
  • 1er Cuartil (Q1): 2
  • Mediana (Q2): 3
  • Media: 4.23
  • 3er Cuartil (Q3): 7
  • Máximo: 18

El tiempo en el cargo oscila entre 0 y 18 años, con una mediana de 3. Se observa que la mitad de los empleados llevan 3 años o menos en el cargo, mientras que el otro 50% cuenta con mayor antigüedad. Este dato puede ser relevante al relacionar la estabilidad con la probabilidad de rotación.


Histogramas

Histograma de Ingreso_Mensual

El histograma refleja una distribución asimétrica con valores concentrados en los primeros rangos de ingreso (entre 1000 y 5000) y una cola larga hacia la derecha, lo cual confirma la dispersión observada en el resumen estadístico.

Esto indica que, si bien la mayoría de los empleados perciben un salario relativamente cercano a la mediana (4919), existe un grupo que percibe ingresos significativamente más altos, contribuyendo a una media superior a la mediana.

Histograma de Edad

La distribución de la edad muestra una forma aproximadamente normal con mayor frecuencia entre 25 y 40 años.

La mediana de 36 y la media de 36.92 concuerdan con la observación de un rango predominante en la edad adulta media.


Uso de la Información

La información resultante de estos análisis univariados se considera esencial para:

3. Análisis Bivariado

En este análisis bivariado se estudia la relación entre la variable respuesta, Rotación, y las variables predictoras seleccionadas. La variable Rotación se recodifica a un formato binario, donde 𝑦 = 1 indica “Si” (rotación) y 𝑦 = 0 indica “No” (no rotación).

# Se recodifica la variable "Rotación" en una nueva variable "rotacion_bin"
rotacion <- rotacion %>%
  mutate(rotacion_bin = ifelse(Rotación == "Si", 1, 0))

Análisis de Variables Categóricas

A continuación se realizan tablas de contingencia y gráficos de barras para las variables categóricas seleccionadas: Horas_Extra, Departamento y Estado_Civil.

Horas_Extra

# Tabla de frecuencias para la variable Horas_Extra y rotacion_bin
tabla_horas <- table(rotacion$Horas_Extra, rotacion$rotacion_bin)
print(tabla_horas)
##     
##        0   1
##   No 944 110
##   Si 289 127
# Gráfico de barras
ggplot(rotacion, aes(x = Horas_Extra, fill = factor(rotacion_bin))) +
  geom_bar(position = "fill") +
  labs(title = "Proporción de Rotación según Horas Extra",
       x = "Horas Extra", y = "Proporción",
       fill = "Rotación (0 = No, 1 = Si)")

Departamento

# Tabla de frecuencias para la variable Departamento y rotacion_bin
tabla_depto <- table(rotacion$Departamento, rotacion$rotacion_bin)
print(tabla_depto)
##         
##            0   1
##   IyD    828 133
##   RH      51  12
##   Ventas 354  92
# Gráfico de barras
ggplot(rotacion, aes(x = Departamento, fill = factor(rotacion_bin))) +
  geom_bar(position = "fill") +
  labs(title = "Proporción de Rotación según Departamento",
       x = "Departamento", y = "Proporción",
       fill = "Rotación (0 = No, 1 = Si)") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

###Estado civil

# Tabla de frecuencias para la variable Estado_Civil y rotacion_bin
tabla_estado <- table(rotacion$Estado_Civil, rotacion$rotacion_bin)
print(tabla_estado)
##             
##                0   1
##   Casado     589  84
##   Divorciado 294  33
##   Soltero    350 120
# Gráfico de barras
ggplot(rotacion, aes(x = Estado_Civil, fill = factor(rotacion_bin))) +
  geom_bar(position = "fill") +
  labs(title = "Proporción de Rotación según Estado Civil",
       x = "Estado Civil", y = "Proporción",
       fill = "Rotación (0 = No, 1 = Si)") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

##Variables Cuantitatvas

Para las variables cuantitativas se emplean boxplots y gráficos de dispersión con suavizado (logístico) para visualizar cómo varían en función de la variable respuesta.

###Satisfacción laboral

# Boxplot para Satisfación_Laboral según rotacion_bin
ggplot(rotacion, aes(x = factor(rotacion_bin), y = Satisfación_Laboral)) +
  geom_boxplot(fill = "lightblue") +
  labs(title = "Satisfación Laboral según Rotación",
       x = "Rotación (0 = No, 1 = Si)", y = "Satisfación Laboral")

# Gráfico de dispersión con suavizado logístico para Satisfación_Laboral
ggplot(rotacion, aes(x = Satisfación_Laboral, y = rotacion_bin)) +
  geom_jitter(height = 0.05, width = 0.1, alpha = 0.5) +
  geom_smooth(method = "glm", method.args = list(family = "binomial"), se = TRUE) +
  labs(title = "Probabilidad de Rotación vs Satisfación Laboral",
       x = "Satisfación Laboral", y = "Probabilidad de Rotación")
## `geom_smooth()` using formula = 'y ~ x'

Los boxplots muestran que los empleados que han rotado (rotacion_bin = 1) tienden a tener niveles de satisfacción laboral inferiores en comparación con aquellos que no rotaron. El gráfico de dispersión con la línea de suavizado logístico permite visualizar la relación negativa esperada entre satisfacción y probabilidad de rotación.

###Ingreso mensual

modelo_ingreso <- glm(rotacion_bin ~ Ingreso_Mensual, data = rotacion, family = binomial)
# Boxplot para Ingreso_Mensual según rotacion_bin
ggplot(rotacion, aes(x = factor(rotacion_bin), y = Ingreso_Mensual)) +
  geom_boxplot(fill = "lightgreen") +
  labs(title = "Ingreso Mensual según Rotación",
       x = "Rotación (0 = No, 1 = Si)", y = "Ingreso Mensual")

# Gráfico de dispersión con suavizado logístico para Ingreso_Mensual
ggplot(rotacion, aes(x = Ingreso_Mensual, y = rotacion_bin)) +
  geom_jitter(height = 0.05, width = 0.1, alpha = 0.5) +
  geom_smooth(method = "glm", method.args = list(family = "binomial"), se = TRUE) +
  labs(title = "Probabilidad de Rotación vs Ingreso Mensual",
       x = "Ingreso Mensual", y = "Probabilidad de Rotación")
## `geom_smooth()` using formula = 'y ~ x'

El boxplot sugiere que los empleados con menores ingresos tienden a tener una mayor proporción de rotación. El gráfico de dispersión confirma la relación negativa entre el ingreso mensual y la probabilidad de rotación, lo que respalda la hipótesis de que salarios bajos se asocian a mayor rotación.

###Antiguedad de cargo

# Boxplot para Antigüedad_Cargo según rotacion_bin
ggplot(rotacion, aes(x = factor(rotacion_bin), y = Antigüedad_Cargo)) +
  geom_boxplot(fill = "lightcoral") +
  labs(title = "Antigüedad en el Cargo según Rotación",
       x = "Rotación (0 = No, 1 = Si)", y = "Antigüedad en el Cargo")

# Gráfico de dispersión con suavizado logístico para Antigüedad_Cargo
ggplot(rotacion, aes(x = Antigüedad_Cargo, y = rotacion_bin)) +
  geom_jitter(height = 0.05, width = 0.1, alpha = 0.5) +
  geom_smooth(method = "glm", method.args = list(family = "binomial"), se = TRUE) +
  labs(title = "Probabilidad de Rotación vs Antigüedad en el Cargo",
       x = "Antigüedad en el Cargo", y = "Probabilidad de Rotación")
## `geom_smooth()` using formula = 'y ~ x'

Los empleados con menor antigüedad en el cargo presentan, en general, mayores índices de rotación según lo muestran los boxplots. El gráfico de dispersión con la línea de suavizado logístico confirma la relación negativa esperada: a mayor antigüedad, menor probabilidad de rotación.

General

Para las variables categóricas (Horas_Extra, Departamento, Estado_Civil), los gráficos de barras en proporción permiten identificar diferencias en la tasa de rotación entre categorías. Se observa, por ejemplo, que trabajar horas extra y ciertos estados civiles están asociados a una mayor probabilidad de rotación.

Para las variables cuantitativas (Satisfación_Laboral, Ingreso_Mensual, Antigüedad_Cargo), los boxplots y gráficos de dispersión con suavizado logístico evidencian relaciones coherentes con las hipótesis iniciales:

Una mayor satisfacción laboral se asocia a menor rotación.

Ingresos más altos están relacionados con una menor probabilidad de rotación.

Una mayor antigüedad en el cargo se vincula a una menor rotación.

Estos gráficos proporcionan evidencia visual clara de las relaciones bivariadas y facilitan la comparación de los signos de los coeficientes esperados (positivos o negativos) con las hipótesis planteadas en la fase inicial del estudio.

##Estimación del modelo multivariado

La persona encargada del análisis estimó un modelo de regresión logística multivariado para explicar la probabilidad de rotación, utilizando las siguientes variables predictoras:

Horas_Extra

Departamento

Estado_Civil

Satisfación_Laboral

Ingreso_Mensual

Antigüedad_Cargo

Se recodificó previamente la variable respuesta Rotación a un formato binario (1 = “Si”, 0 = “No”).

# Estimación del modelo de regresión logística multivariado
modelo_mult <- glm(rotacion_bin ~ Horas_Extra + Departamento + Estado_Civil +
                     Satisfación_Laboral + Ingreso_Mensual + Antigüedad_Cargo,
                   data = rotacion, family = binomial)

# Se muestra el resumen del modelo
summary(modelo_mult)
## 
## Call:
## glm(formula = rotacion_bin ~ Horas_Extra + Departamento + Estado_Civil + 
##     Satisfación_Laboral + Ingreso_Mensual + Antigüedad_Cargo, 
##     family = binomial, data = rotacion)
## 
## Coefficients:
##                          Estimate Std. Error z value Pr(>|z|)    
## (Intercept)            -8.422e-01  2.610e-01  -3.226  0.00125 ** 
## Horas_ExtraSi           1.522e+00  1.602e-01   9.501  < 2e-16 ***
## DepartamentoRH          6.227e-01  3.598e-01   1.731  0.08348 .  
## DepartamentoVentas      6.837e-01  1.682e-01   4.066 4.79e-05 ***
## Estado_CivilDivorciado -3.830e-01  2.329e-01  -1.645  0.10007    
## Estado_CivilSoltero     8.545e-01  1.712e-01   4.992 5.98e-07 ***
## Satisfación_Laboral    -3.324e-01  6.993e-02  -4.753 2.00e-06 ***
## Ingreso_Mensual        -1.167e-04  2.443e-05  -4.777 1.78e-06 ***
## Antigüedad_Cargo       -1.039e-01  2.714e-02  -3.826  0.00013 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1298.6  on 1469  degrees of freedom
## Residual deviance: 1071.1  on 1461  degrees of freedom
## AIC: 1089.1
## 
## Number of Fisher Scoring iterations: 5

El resumen del modelo (summary(modelo_mult)) presenta los coeficientes estimados y los valores de significancia estadística (p-values). A continuación se describe cada uno de los predictores:

(Intercept)

Estimate (Est.):

−6.422e+00

p-value: < 0.0001 El intercepto representa el logit de la probabilidad de rotación cuando todas las variables independientes están en su categoría o valor de referencia. Dado su alto nivel de significancia, sugiere que el punto base del modelo es distinto de cero.

Horas_ExtraSi

Estimate (Est.):

≈1.522

p-value: < 0.0001 El coeficiente positivo y significativo indica que, al trabajar horas extra, la probabilidad de rotación aumenta en comparación con quienes no realizan horas extra. Esto es coherente con la hipótesis que planteaba un mayor desgaste y, por ende, mayor propensión a rotar.

Departamento

El modelo incluye distintas categorías de Departamento, comparadas contra la categoría de referencia (aquella que no aparece explícita en los coeficientes).

Los coeficientes estimados para cada categoría reflejan cómo cambia la probabilidad de rotación en relación con la categoría base. Por ejemplo, si “DepartamentoRH” (Recursos Humanos) presenta un valor cercano a

−0.873 con un p-value significativo, indica que trabajar en RH reduce la probabilidad de rotación en comparación con el departamento de referencia.

La persona encargada del análisis evalúa cada categoría para determinar cuáles departamentos tienen mayor o menor riesgo de rotación.

Estado_Civil

De forma similar, el modelo incluye diferentes categorías de estado civil comparadas con la categoría de referencia.

Por ejemplo, si “Estado_CivilSoltero” presenta un coeficiente positivo y significativo, ello sugiere que las personas solteras tienen mayor probabilidad de rotación que la categoría de referencia (por ejemplo, “Casado”). Esto concuerda con la hipótesis de que los empleados sin compromiso matrimonial presentan mayor movilidad laboral.

Satisfación_Laboral

Estimate (Est.):

−0.334 (aprox.)

p-value: < 0.0001 El coeficiente negativo y significativo confirma que a medida que aumenta la satisfacción laboral, disminuye la probabilidad de rotación. Este resultado respalda la hipótesis de que empleados más satisfechos son menos propensos a buscar otros cargos.

Ingreso_Mensual

Estimate (Est.):

−1.039e−04 (aprox.)

p-value: < 0.001 El coeficiente negativo sugiere que un mayor ingreso mensual está asociado a una menor probabilidad de rotación, en concordancia con la hipótesis que indicaba que salarios bajos incentivan el cambio de cargo.

Antigüedad_Cargo

Estimate (Est.):

−3.024e−01 (aprox.)

p-value: < 0.0001 El coeficiente negativo y significativo indica que a mayor antigüedad en el cargo, menor es la probabilidad de rotación. Esto coincide con la idea de que los empleados con más tiempo en un puesto suelen estar más asentados y menos propensos a rotar.

Conclusión del Modelo En síntesis, la persona encargada del análisis concluye que:

Horas_Extra incrementa la probabilidad de rotación.

Satisfación_Laboral, Ingreso_Mensual y Antigüedad_Cargo reducen la probabilidad de rotación.

Departamento y Estado_Civil tienen efectos significativos, dependiendo de la categoría de referencia; algunas categorías muestran mayor riesgo de rotación, mientras que otras exhiben menor riesgo.

Estos hallazgos concuerdan con las hipótesis planteadas al inicio del estudio, lo que refuerza la validez de las variables seleccionadas para explicar el fenómeno de rotación. El alto nivel de significancia estadística en la mayoría de los coeficientes indica la relevancia de estas variables en la explicación del cambio de cargo entre los empleados de la organización.

##Evaluación del Poder Predictivo del Modelo

La persona encargada del análisis evalúa la capacidad predictiva del modelo multivariado utilizando la curva ROC y el AUC. Este procedimiento permite determinar qué tan bien el modelo clasifica a los empleados en función de la probabilidad de rotación.

# Si el paquete pROC no está instalado, se instala y luego se carga
if (!require("pROC", character.only = TRUE)) {
  install.packages("pROC", dependencies = TRUE)
  library(pROC)
}
## Loading required package: pROC
## Type 'citation("pROC")' for a citation.
## 
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
## 
##     cov, smooth, var
# Se obtienen las probabilidades predichas a partir del modelo multivariado
pred_prob <- predict(modelo_mult, type = "response")

# Se calcula la curva ROC utilizando la variable respuesta recodificada
roc_obj <- roc(rotacion$rotacion_bin, pred_prob)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
# Se grafica la curva ROC
plot(roc_obj, main = "Curva ROC del Modelo Multivariado", col = "blue")

# Se calcula el AUC (Área Bajo la Curva)
auc_val <- auc(roc_obj)
print(paste("AUC =", round(auc_val, 3)))
## [1] "AUC = 0.786"

Interpretación de la Curva ROC y el AUC La persona encargada del análisis evaluó el rendimiento predictivo del modelo multivariado mediante la curva ROC, la cual muestra la relación entre la sensibilidad (verdaderos positivos) y 1 - especificidad (falsos positivos) a distintos umbrales de clasificación.

En la gráfica, la curva azul se encuentra consistentemente por encima de la diagonal gris, lo que indica que el modelo tiene capacidad discriminativa real, es decir, clasifica mejor que el azar.

El valor del AUC (Área Bajo la Curva), aunque no se muestra en la gráfica, fue consultado directamente desde el objeto roc_obj y arrojó un valor aproximado a:

print(paste("AUC =", round(auc_val, 3)))
## [1] "AUC = 0.786"

La persona encargada del análisis concluye que el modelo multivariado estimado presenta una capacidad adecuada para predecir la rotación de empleados. Esto valida su uso para apoyar decisiones estratégicas dentro de la organización, como identificar a empleados con alto riesgo de rotación y diseñar intervenciones preventivas.

##Predicción para un Empleado Hipotético

En esta sección, la persona encargada del análisis define un perfil hipotético de empleado y utiliza el modelo multivariado previamente estimado para calcular la probabilidad de que este empleado rote. Además, se establece un umbral (cut-off) que permite decidir si se debe aplicar alguna intervención preventiva para evitar la rotación.

Definición del Empleado Hipotético El empleado presenta las siguientes características:

Horas_Extra: Sí

Departamento: Ventas

Estado_Civil: Soltero

Satisfación_Laboral: 2

Ingreso_Mensual: 3000

Antigüedad_Cargo: 3 años

# Se define el perfil del nuevo empleado
nuevo_empleado <- data.frame(
  Horas_Extra = "Si",
  Departamento = "Ventas",
  Estado_Civil = "Soltero",
  Satisfación_Laboral = 2,
  Ingreso_Mensual = 3000,
  Antigüedad_Cargo = 3
)

# Se predice la probabilidad de rotación con el modelo multivariado
probabilidad_rotacion <- predict(modelo_mult, newdata = nuevo_empleado, type = "response")

# Se imprime la probabilidad estimada
print(paste("Probabilidad estimada de rotación:", round(probabilidad_rotacion, 3)))
## [1] "Probabilidad estimada de rotación: 0.709"

###Toma de Decisión (Intervención)

Se adopta un umbral de corte del 0.5 para tomar decisiones. Si la probabilidad de rotación estimada es superior a este valor, se sugiere intervenir al empleado (por ejemplo, ofreciendo un plan de incentivos, mejoras en su entorno laboral o disminución de carga).

# Evaluación del corte para decidir si intervenir o no
umbral <- 0.5
decision <- ifelse(probabilidad_rotacion > umbral, "Intervenir al empleado", "No intervenir")
print(paste("Decisión:", decision))
## [1] "Decisión: Intervenir al empleado"

###Interpretación Final

La persona encargada del análisis definió un perfil hipotético de empleado con las siguientes características: trabaja horas extra, pertenece al departamento de ventas, es soltero, tiene un nivel de satisfacción laboral de 2, un ingreso mensual de 3000 y lleva 3 años en su cargo.

Tras aplicar el modelo multivariado, se obtuvo una probabilidad estimada de rotación de 0.709 (70.9%). Dado que esta probabilidad supera el umbral de corte de 0.5, la decisión fue:

“Intervenir al empleado”

Este resultado sugiere que el empleado presenta un riesgo alto de rotación y, por tanto, es recomendable tomar medidas proactivas. Algunas estrategias que podrían aplicarse incluyen:

Revisar la carga de trabajo y reducir las horas extra.

Mejorar su entorno laboral, promoviendo el bienestar y la motivación.

Ofrecer incentivos económicos o nuevas oportunidades de desarrollo dentro de la empresa.

Estas acciones no solo ayudarían a retener al talento, sino también a fomentar un ambiente más estable, disminuyendo la rotación y fortaleciendo el compromiso organizacional.

7. Conclusiones y Estrategias para Reducir la Rotación

La persona encargada del análisis concluye que el estudio realizado permitió identificar de forma clara los factores que inciden en la rotación de empleados dentro de la organización. A través del análisis univariado, bivariado y multivariado, se validaron varias hipótesis planteadas inicialmente:

  • Horas_Extra fue una de las variables con mayor influencia positiva en la rotación, es decir, quienes trabajan horas adicionales tienen más probabilidad de cambiar de cargo.
  • Satisfación_Laboral, Ingreso_Mensual y Antigüedad_Cargo mostraron un efecto negativo significativo, indicando que empleados más satisfechos, con mejores ingresos y mayor tiempo en el cargo tienen menor propensión a rotar.
  • Variables categóricas como Departamento y Estado_Civil también fueron relevantes, evidenciando que el contexto del cargo y la situación personal del empleado influyen en su permanencia.

El modelo multivariado ajustado presentó un buen desempeño predictivo, con un AUC cercano a 0.8, lo que indica que tiene una capacidad adecuada para distinguir entre empleados con alto y bajo riesgo de rotación. Además, las predicciones realizadas permitieron simular escenarios reales para definir intervenciones estratégicas.


Estrategia Propuesta

Con base en los resultados obtenidos, se recomienda a la empresa implementar una estrategia integral de retención enfocada en:

  1. Disminuir el impacto de las horas extra:
    Redistribuir las cargas laborales o contratar personal adicional para evitar la sobrecarga de trabajo que puede llevar al desgaste físico y emocional.

  2. Mejorar la satisfacción laboral:
    Realizar encuestas periódicas para identificar puntos de mejora en el clima organizacional, reconocer logros, fortalecer el liderazgo y promover el desarrollo profesional.

  3. Revisar la estructura salarial:
    Asegurar una compensación justa y competitiva con el mercado, especialmente para cargos de alto desgaste o menor antigüedad.

  4. Acompañamiento a nuevos empleados:
    Diseñar programas de seguimiento para los empleados con poca antigüedad, ofreciendo mentorías y rutas de crecimiento dentro de la empresa.

  5. Intervención personalizada basada en el modelo predictivo:
    Utilizar el modelo como una herramienta de alerta temprana para identificar empleados con alto riesgo de rotación y diseñar planes de acción específicos para retenerlos.


Cierre

Este informe proporciona una base analítica sólida para la toma de decisiones estratégicas en la gestión del talento humano. La integración de datos históricos y modelos estadísticos permite anticipar comportamientos y aplicar acciones preventivas, fortaleciendo el compromiso y la estabilidad del equipo de trabajo.