En una organización, se busca comprender y prever los factores que influyen en la rotación de empleados entre distintos cargos. La empresa ha recopilado datos históricos sobre el empleo de sus trabajadores, incluyendo variables como la antigüedad en el cargo actual, el nivel de satisfacción laboral, el salario actual, edad y otros factores relevantes. La gerencia planea desarrollar un modelo de regresión logística que permita estimar la probabilidad de que un empleado cambie de cargo en el próximo período y determinar cuales factores indicen en mayor proporción a estos cambios.
Con esta información, la empresa podrá tomar medidas proactivas para retener a su talento clave, identificar áreas de mejora en la gestión de recursos humanos y fomentar un ambiente laboral más estable y tranquilo. La predicción de la probabilidad de rotación de empleados ayudará a la empresa a tomar decisiones estratégicas informadas y a mantener un equipo de trabajo comprometido y satisfecho en sus roles actuales.
A continuación se describen los pasos que la gerencia ha propuesto para el análisis:
Seleccione 3 variables categóricas (distintas de rotación) y 3 variables cuantitativas, que se consideren estén relacionadas con la rotación.
Variables categóricas:
Viaje de Negocios: Los viajes de negocios pueden afectar la vida personal y laboral de los empleados. Se espera que los empleados que viajan con frecuencia puedan experimentar más estrés y desgaste, lo que podría aumentar la probabilidad de rotación.
Campo de Educación: La elección del campo de educación puede influir en las expectativas laborales y las oportunidades de carrera. Se espera que los empleados cuyo campo de educación no esté alineado con su trabajo actual puedan estar menos comprometidos y más propensos a rotar.
Horas Extra: Las horas extra pueden ser indicativas de carga laboral adicional y posiblemente de insatisfacción laboral. Se espera que los empleados que trabajan horas extra con frecuencia estén más propensos a rotar.
Variables cuantitativas:
Edad: La edad puede influir en la rotación debido a las diferencias en las perspectivas de carrera y las responsabilidades personales. Se espera que los empleados más jóvenes puedan rotar más en busca de oportunidades de crecimiento, mientras que los empleados mayores pueden buscar estabilidad.
Antigüedad: La antigüedad en la empresa puede estar relacionada con la rotación, ya que los empleados con poca antigüedad pueden estar más dispuestos a cambiar de trabajo.
Años de Experiencia: Los años de experiencia pueden influir en la percepción de oportunidades laborales y la estabilidad en el trabajo. Se espera que los empleados con más años de experiencia tengan menos probabilidades de rotar, ya que pueden valorar la estabilidad y la seguridad en el empleo.
data("rotacion")
summary(rotacion)
## Rotación Edad Viaje de Negocios Departamento
## Length:1470 Min. :18.00 Length:1470 Length:1470
## Class :character 1st Qu.:30.00 Class :character Class :character
## Mode :character Median :36.00 Mode :character Mode :character
## Mean :36.92
## 3rd Qu.:43.00
## Max. :60.00
## Distancia_Casa Educación Campo_Educación Satisfacción_Ambiental
## Min. : 1.000 Min. :1.000 Length:1470 Min. :1.000
## 1st Qu.: 2.000 1st Qu.:2.000 Class :character 1st Qu.:2.000
## Median : 7.000 Median :3.000 Mode :character Median :3.000
## Mean : 9.193 Mean :2.913 Mean :2.722
## 3rd Qu.:14.000 3rd Qu.:4.000 3rd Qu.:4.000
## Max. :29.000 Max. :5.000 Max. :4.000
## Genero Cargo Satisfación_Laboral Estado_Civil
## Length:1470 Length:1470 Min. :1.000 Length:1470
## Class :character Class :character 1st Qu.:2.000 Class :character
## Mode :character Mode :character Median :3.000 Mode :character
## Mean :2.729
## 3rd Qu.:4.000
## Max. :4.000
## Ingreso_Mensual Trabajos_Anteriores Horas_Extra
## Min. : 1009 Min. :0.000 Length:1470
## 1st Qu.: 2911 1st Qu.:1.000 Class :character
## Median : 4919 Median :2.000 Mode :character
## Mean : 6503 Mean :2.693
## 3rd Qu.: 8379 3rd Qu.:4.000
## Max. :19999 Max. :9.000
## Porcentaje_aumento_salarial Rendimiento_Laboral Años_Experiencia
## Min. :11.00 Min. :3.000 Min. : 0.00
## 1st Qu.:12.00 1st Qu.:3.000 1st Qu.: 6.00
## Median :14.00 Median :3.000 Median :10.00
## Mean :15.21 Mean :3.154 Mean :11.28
## 3rd Qu.:18.00 3rd Qu.:3.000 3rd Qu.:15.00
## Max. :25.00 Max. :4.000 Max. :40.00
## Capacitaciones Equilibrio_Trabajo_Vida Antigüedad Antigüedad_Cargo
## Min. :0.000 Min. :1.000 Min. : 0.000 Min. : 0.000
## 1st Qu.:2.000 1st Qu.:2.000 1st Qu.: 3.000 1st Qu.: 2.000
## Median :3.000 Median :3.000 Median : 5.000 Median : 3.000
## Mean :2.799 Mean :2.761 Mean : 7.008 Mean : 4.229
## 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.: 9.000 3rd Qu.: 7.000
## Max. :6.000 Max. :4.000 Max. :40.000 Max. :18.000
## Años_ultima_promoción Años_acargo_con_mismo_jefe
## Min. : 0.000 Min. : 0.000
## 1st Qu.: 0.000 1st Qu.: 2.000
## Median : 1.000 Median : 3.000
## Mean : 2.188 Mean : 4.123
## 3rd Qu.: 3.000 3rd Qu.: 7.000
## Max. :15.000 Max. :17.000
colnames(rotacion)[3] <- "Viaje_Negocios" # Acomodamos el nombre de la columna
Realiza un análisis univariado (caracterización) de la información contenida en la base de datos rotacion.
table(rotacion$Rotación)
##
## No Si
## 1233 237
table(rotacion$Viaje_Negocios)
##
## Frecuentemente No_Viaja Raramente
## 277 150 1043
table(rotacion$Campo_Educación)
##
## Ciencias Humanidades Mercadeo Otra Salud Tecnicos
## 606 27 159 82 464 132
table(rotacion$Horas_Extra)
##
## No Si
## 1054 416
Rotación: Observamos que hay más empleados que no rotaron (1233) en comparación con aquellos que sí lo hicieron (237). Esto indica que la rotación no es un fenómeno tan común en la empresa, al menos en el período de tiempo considerado.
Viaje de Negocios: La mayoría de los empleados (1043) viajan raramente por negocios, seguidos por 277 que viajan frecuentemente y 150 que no viajan. Esto sugiere que la mayoría de los empleados no están expuestos a viajes de negocios frecuentes, lo cual puede influir en su nivel de estrés y desgaste.
Campo de Educación: La mayoría de los empleados tienen educación en el campo de las ciencias (606), seguidos por la salud (464) y mercadeo (159). La educación en otros campos y en humanidades es menos común. Esta distribución puede afectar las expectativas laborales y las oportunidades de carrera de los empleados.
Horas Extra: Hay más empleados que no trabajan horas extra (856) en comparación con aquellos que sí lo hacen (614). Sin embargo, una proporción considerable de empleados aún trabaja horas extra, lo que podría influir en su satisfacción laboral y nivel de estrés.
summary(rotacion$Edad)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 30.00 36.00 36.92 43.00 60.00
hist(rotacion$Edad, col = "skyblue", xlab = "Edad", main = "Distribución de Edad")
summary(rotacion$Antigüedad)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 3.000 5.000 7.008 9.000 40.000
hist(rotacion$Antigüedad, col = "lightgreen", xlab = "Antigüedad en la empresa", main = "Distribución de Antigüedad")
summary(rotacion$Años_Experiencia)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 6.00 10.00 11.28 15.00 40.00
hist(rotacion$Años_Experiencia, col = "salmon", xlab = "Años de Experiencia", main = "Distribución de Años de Experiencia")
Edad: Observamos que la edad de los empleados varía entre 18 y 60 años, con una mediana de 36 años y una media de aproximadamente 36.92 años. Esto sugiere que la mayoría de los empleados tienen entre 30 y 43 años, con una distribución sesgada hacia la derecha, donde hay algunos empleados mayores de 60 años.
Antigüedad: La antigüedad en la empresa varía desde 0 años hasta 40 años, con una mediana de 5 años y una media de aproximadamente 7.01 años. Esto indica que la mayoría de los empleados tienen menos de 10 años de antigüedad en la empresa, pero hay algunos con una antigüedad considerablemente mayor.
Años de Experiencia: Los años de experiencia laboral oscilan entre 0 y 40 años, con una mediana de 10 años y una media de aproximadamente 11.28 años. Esto sugiere que la mayoría de los empleados tienen entre 6 y 15 años de experiencia laboral, aunque hay algunos con una experiencia significativamente mayor.
Realiza un análisis de bivariado en donde la variable respuesta sea rotacion codificada de la siguiente manera (y=1 es si rotación, y=0 es no rotación). Con base en estos resultados identifique cuales son las variables determinantes de la rotación e interpretar el signo del coeficiente estimado. Compare estos resultados con la hipotesis planteada en el punto 2.
rotacion$Rotación <- ifelse(rotacion$Rotación == "Si", 1, 0)
modelo_bivariado <- glm(Rotación ~ ., data = rotacion, family = "binomial")
summary(modelo_bivariado)
##
## Call:
## glm(formula = Rotación ~ ., family = "binomial", data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 2.613e-01 1.600e+00 0.163 0.870276
## Edad -3.655e-02 1.328e-02 -2.753 0.005899 **
## Viaje_NegociosNo_Viaja -1.763e+00 3.958e-01 -4.454 8.44e-06 ***
## Viaje_NegociosRaramente -8.215e-01 2.062e-01 -3.984 6.78e-05 ***
## DepartamentoRH -1.292e+01 3.780e+02 -0.034 0.972728
## DepartamentoVentas 1.231e-01 1.023e+00 0.120 0.904238
## Distancia_Casa 4.250e-02 1.046e-02 4.063 4.85e-05 ***
## Educación -1.149e-02 8.552e-02 -0.134 0.893169
## Campo_EducaciónHumanidades 8.342e-01 7.860e-01 1.061 0.288527
## Campo_EducaciónMercadeo 3.823e-01 3.178e-01 1.203 0.229009
## Campo_EducaciónOtra 5.979e-02 4.024e-01 0.149 0.881890
## Campo_EducaciónSalud -1.136e-01 2.121e-01 -0.536 0.592226
## Campo_EducaciónTecnicos 9.281e-01 2.970e-01 3.125 0.001779 **
## Satisfacción_Ambiental -4.424e-01 8.119e-02 -5.449 5.05e-08 ***
## GeneroM 3.248e-01 1.795e-01 1.809 0.070386 .
## CargoDirector_Manofactura 1.269e+00 9.710e-01 1.307 0.191293
## CargoEjecutivo_Ventas 1.989e+00 1.390e+00 1.431 0.152359
## CargoGerente 1.247e+00 1.032e+00 1.208 0.227061
## CargoInvestigador_Cientifico 1.643e+00 1.021e+00 1.609 0.107544
## CargoRecursos_Humanos 1.519e+01 3.780e+02 0.040 0.967950
## CargoRepresentante_Salud 1.037e+00 9.640e-01 1.076 0.282059
## CargoRepresentante_Ventas 2.962e+00 1.482e+00 1.998 0.045682 *
## CargoTecnico_Laboratorio 2.587e+00 1.018e+00 2.541 0.011041 *
## Satisfación_Laboral -4.048e-01 7.925e-02 -5.109 3.24e-07 ***
## Estado_CivilDivorciado -3.973e-01 2.530e-01 -1.570 0.116313
## Estado_CivilSoltero 1.033e+00 1.941e-01 5.323 1.02e-07 ***
## Ingreso_Mensual -9.588e-07 5.854e-05 -0.016 0.986932
## Trabajos_Anteriores 1.756e-01 3.746e-02 4.688 2.76e-06 ***
## Horas_ExtraSi 1.872e+00 1.869e-01 10.014 < 2e-16 ***
## Porcentaje_aumento_salarial -2.302e-02 3.805e-02 -0.605 0.545193
## Rendimiento_Laboral 1.702e-01 3.889e-01 0.438 0.661621
## Años_Experiencia -5.408e-02 2.782e-02 -1.944 0.051874 .
## Capacitaciones -1.828e-01 7.125e-02 -2.566 0.010301 *
## Equilibrio_Trabajo_Vida -3.654e-01 1.207e-01 -3.027 0.002470 **
## Antigüedad 9.630e-02 3.750e-02 2.568 0.010220 *
## Antigüedad_Cargo -1.414e-01 4.386e-02 -3.224 0.001264 **
## Años_ultima_promoción 1.787e-01 4.112e-02 4.345 1.39e-05 ***
## Años_acargo_con_mismo_jefe -1.563e-01 4.599e-02 -3.399 0.000677 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1298.58 on 1469 degrees of freedom
## Residual deviance: 893.23 on 1432 degrees of freedom
## AIC: 969.23
##
## Number of Fisher Scoring iterations: 14
Las variables significativamente asociadas con la rotación (con un nivel de significancia del 5%) son:
Algunas variables no mostraron una asociación significativa con la rotación, como: Departamento, Educación, Cargo, Ingreso_Mensual, Porcentaje_aumento_salarial, Rendimiento_Laboral, entre otras.
En comparación con las hipótesis planteadas en el punto 2, encontramos que algunas variables están alineadas con nuestras expectativas, como Edad, Viaje de Negocios, Campo_Educación (Tecnicos), Horas_Extra (Si), Antiguedad_Cargo.
Realice una partición en los datos de forma aleatoria donde 70% sea un set para entrenar el modelo y 30% para prueba. Estime un modelo logístico con la muestra del 70%. Muestre los resultados.
library(caret)
set.seed(123)
indice_particion <- createDataPartition(rotacion$Rotación, p = 0.7, list = FALSE)
datos_entrenamiento <- rotacion[indice_particion, ]
datos_prueba <- rotacion[-indice_particion, ]
modelo_logistico <- glm(Rotación ~ Viaje_Negocios + Campo_Educación + Horas_Extra + Edad + Antigüedad + Años_Experiencia,
data = datos_entrenamiento, family = "binomial")
summary(modelo_logistico)
##
## Call:
## glm(formula = Rotación ~ Viaje_Negocios + Campo_Educación +
## Horas_Extra + Edad + Antigüedad + Años_Experiencia, family = "binomial",
## data = datos_entrenamiento)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.48805 0.50606 0.964 0.334843
## Viaje_NegociosNo_Viaja -1.23653 0.41165 -3.004 0.002666 **
## Viaje_NegociosRaramente -0.71142 0.21338 -3.334 0.000856 ***
## Campo_EducaciónHumanidades 1.30218 0.59356 2.194 0.028247 *
## Campo_EducaciónMercadeo 0.72271 0.30976 2.333 0.019643 *
## Campo_EducaciónOtra -0.16207 0.41382 -0.392 0.695331
## Campo_EducaciónSalud -0.08515 0.23098 -0.369 0.712374
## Campo_EducaciónTecnicos 0.75495 0.29934 2.522 0.011668 *
## Horas_ExtraSi 1.36533 0.19062 7.162 7.93e-13 ***
## Edad -0.04791 0.01605 -2.985 0.002837 **
## Antigüedad -0.03424 0.02535 -1.350 0.176867
## Años_Experiencia -0.03396 0.02548 -1.333 0.182561
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 896.03 on 1028 degrees of freedom
## Residual deviance: 757.04 on 1017 degrees of freedom
## AIC: 781.04
##
## Number of Fisher Scoring iterations: 5
Intercepto: Este coeficiente representa el logaritmo de la razón de momios (odds ratio) de rotación cuando todas las demás variables predictoras son cero. En este caso, no es directamente interpretable por sí solo.
Viaje de Negocios (No_Viaja y Raramente): Los coeficientes negativos (-1.23653 para No_Viaja y -0.71142 para Raramente) indican que, en comparación con los empleados que viajan frecuentemente por negocios, los empleados que no viajan o viajan raramente tienen una menor probabilidad de rotación.
Campo de Educación (Humanidades, Mercadeo, Otra y Técnicos): Los coeficientes positivos (excepto para Otra y salud) indican que los empleados con educación en campos como humanidades, mercadeo y técnicos tienen una mayor probabilidad de rotación en comparación con los empleados con educación en ciencias (tomada como referencia).
Horas Extra: El coeficiente positivo (1.36533) indica que los empleados que trabajan horas extra tienen una mayor probabilidad de rotación en comparación con aquellos que no lo hacen.
Edad, Antigüedad y Años de Experiencia: Los coeficientes negativos (-0.04791, -0.03424 y -0.03396 respectivamente) indican que a medida que aumenta la edad, la antigüedad y los años de experiencia de un empleado, la probabilidad de rotación tiende a disminuir.
Evaluar el poder predictivo del modelo con base en la curva ROC y el AUC.
Para evaluar el poder predictivo del modelo de regresión logística, utilizamos la curva ROC (Receiver Operating Characteristic) y el AUC (Area Under the Curve). La curva ROC representa la tasa de verdaderos positivos (sensibilidad) frente a la tasa de falsos positivos (1 - especificidad) en diferentes umbrales de clasificación, mientras que el AUC es una medida de la capacidad del modelo para distinguir entre clases.
datos_prueba$prob_pred <- predict(modelo_logistico, datos_prueba, type = "response")
roc_curve <- roc(datos_prueba$Rotación, datos_prueba$prob_pred)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
auc_score <- auc(roc_curve)
plot(roc_curve, main = "Curva ROC del Modelo de Regresión Logística",
xlab = "1 - Especificidad", ylab = "Sensibilidad")
print(paste("Área bajo la curva (AUC):", round(auc_score, 3)))
## [1] "Área bajo la curva (AUC): 0.709"
El valor del área bajo la curva (AUC) obtenido es de aproximadamente 0.709. Esto indica que el modelo de regresión logística tiene un poder predictivo razonable para distinguir entre las clases de rotación y no rotación.
Una AUC de 0.709 sugiere que el modelo es capaz de clasificar correctamente el 70.9% de las observaciones en términos de su probabilidad de rotación.
En las conclusiones adicione una discución sobre cuál sería la estrategia para disminuir la rotación en la empresa (con base en las variables que resultaron significativas en el punto 3).
De acuerdo a las variables significativas, se puede deducir que aquellos empleados cuya disponibilidad para viajar es nula o raramente viajan, tienen mayor estabilidad laboral, es decir, disminuye la probabilidad de rotación frente a los empleados que deben viajar frecuentemente por sus labores. Otro factor importante, resulta ser las horas extras trabajadas, ya que, en empleados que deben dedicar horas extras para sus labores, existe mayor probabilidad de rotar frente a quienes desempeñan sus labores sin extender su jornada cotidiana. Por último, la edad presenta un papel relevante en la rotación laboral, ya que los empleados jovenes tienden a tener mayor probabilidad de rotar frente a los empleados con mayor edad.