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.
devtools::install_github("centromagis/paqueteMODELOS", force =TRUE)
## stringi (1.8.4 -> 1.8.7 ) [CRAN]
## rlang (1.1.4 -> 1.1.5 ) [CRAN]
## purrr (1.0.2 -> 1.0.4 ) [CRAN]
## glue (1.7.0 -> 1.8.0 ) [CRAN]
## cli (3.6.3 -> 3.6.4 ) [CRAN]
## Rcpp (1.0.13 -> 1.0.14) [CRAN]
## digest (0.6.36 -> 0.6.37) [CRAN]
## pander (0.6.5 -> 0.6.6 ) [CRAN]
## curl (5.2.3 -> 6.2.2 ) [CRAN]
## matrixStats (1.4.1 -> 1.5.0 ) [CRAN]
## magick (2.8.5 -> 2.8.6 ) [CRAN]
## lubridate (1.9.3 -> 1.9.4 ) [CRAN]
## package 'stringi' successfully unpacked and MD5 sums checked
## package 'rlang' successfully unpacked and MD5 sums checked
## package 'purrr' successfully unpacked and MD5 sums checked
## package 'glue' successfully unpacked and MD5 sums checked
## package 'cli' successfully unpacked and MD5 sums checked
## package 'Rcpp' successfully unpacked and MD5 sums checked
## package 'digest' successfully unpacked and MD5 sums checked
## package 'pander' successfully unpacked and MD5 sums checked
## package 'curl' successfully unpacked and MD5 sums checked
## package 'matrixStats' successfully unpacked and MD5 sums checked
## package 'magick' successfully unpacked and MD5 sums checked
## package 'lubridate' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\julie\AppData\Local\Temp\RtmpKMHUPn\downloaded_packages
## ── R CMD build ─────────────────────────────────────────────────────────────────
## checking for file 'C:\Users\julie\AppData\Local\Temp\RtmpKMHUPn\remotes4f5c3b8e62f5\Centromagis-paqueteMODELOS-3b06257/DESCRIPTION' ... ✔ checking for file 'C:\Users\julie\AppData\Local\Temp\RtmpKMHUPn\remotes4f5c3b8e62f5\Centromagis-paqueteMODELOS-3b06257/DESCRIPTION' (551ms)
## ─ preparing 'paqueteMODELOS':
## checking DESCRIPTION meta-information ... ✔ checking DESCRIPTION meta-information
## ─ checking for LF line-endings in source and make files and shell scripts (506ms)
## ─ checking for empty or unneeded directories
## ─ building 'paqueteMODELOS_0.1.0.tar.gz'
##
##
library(paqueteMODELOS)
data("rotacion")
library(dplyr)
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, …
#Frecuencia viajes de negocio #Justificación: Se espera que la frecuencia de viajes de negocio tenga una relación con la rotación de empleados, ya que un alto número de viajes podría generar cansancio físico y emocional, afectando el equilibrio entre la vida laboral y personal. Esto podría motivar a los empleados a buscar roles que requieran menos desplazamientos. #Hipótesis: Los empleados con mayor frecuencia de viajes de negocio tienen una mayor probabilidad de cambiar de cargo en comparación con aquellos que viajan menos.
#Cargo #Justificación: Se considera que el tipo de cargo de un empleado influye en la rotación, ya que ciertos roles pueden ser más demandantes o menos satisfactorios, empujando a los empleados a buscar alternativas más alineadas con sus intereses o expectativas laborales. #Hipótesis: Los empleados en cargos más bajos o roles operativos tienen una mayor probabilidad de rotar que aquellos en posiciones más altas o estratégicas.
#Departamento #Justificación: Se espera que el departamento al que pertenece un empleado influya en su probabilidad de rotación, ya que algunos departamentos pueden tener mayores niveles de presión, menor satisfacción laboral, o menos oportunidades de crecimiento profesional comparados con otros. #Hipótesis: Los empleados que trabajan en departamentos con altas demandas operativas o bajas posibilidades de promoción tienen una mayor probabilidad de cambiar de cargo en comparación con aquellos en departamentos estratégicos o con mejores condiciones laborales.
#Edad #Justificación: La edad podría estar relacionada con la probabilidad de rotación, ya que empleados más jóvenes pueden estar más abiertos al cambio para crecer profesionalmente, mientras que empleados mayores pueden buscar mayor estabilidad. #Hipótesis: Los empleados más jóvenes tienen una mayor probabilidad de rotar en comparación con los empleados de mayor edad.
#Distancia a casa #Justificación: Se espera que una mayor distancia entre el lugar de trabajo y la casa del empleado aumente el desgaste físico y emocional, influyendo en la rotación #Hipótesis: Los empleados que viven más lejos de la empresa tienen una mayor probabilidad de rotar que aquellos que viven cerca.
#Satisfacción laboral #Justificación: Un bajo nivel de satisfacción laboral podría ser un factor determinante en la decisión de cambiar de puesto o empresa. #Hipótesis: Los empleados con niveles más bajos de satisfacción laboral tienen una mayor probabilidad de rotación en comparación con aquellos que están satisfechos o muy satisfechos.
#Análisis univariado
#Variables numéricas
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
hist(rotacion$Edad, main = "Distribución de Edad", xlab = "Edad", col = "blue")
hist(rotacion$Distancia_Casa, main = "Distribución de Distancia a casa", xlab = "Distancia_Casa", col = "blue")
hist(rotacion$Educación, main = "Distribución de Educación", xlab = "Educación", col = "blue")
hist(rotacion$Satisfacción_Ambiental, main = "Distribución de Satisfacción Ambiental", xlab = "Satisfacción_Ambiental", col = "blue")
hist(rotacion$Satisfación_Laboral, main = "Distribución de Satisfacción Laboral", xlab = "Satisfación_Laboral", col = "blue")
hist(rotacion$Ingreso_Mensual, main = "Distribución de Ingreso Mensual", xlab = "Ingreso_Mensual", col = "blue")
hist(rotacion$Trabajos_Anteriores, main = "Distribución de Trabajos Anteriores", xlab = "Trabajos_Anteriores", col = "blue")
hist(rotacion$Porcentaje_aumento_salarial, main = "Distribución de Porcentaje aumento salarial", xlab = "POrcentaje_aumento_salarial", col = "blue")
hist(rotacion$Rendimiento_Laboral, main = "Distribución de Rendimiento Laboral", xlab = "Rendimiento_Laboral", col = "blue")
hist(rotacion$Años_Experiencia, main = "Distribución de Años de experiencia", xlab = "Años_Experiencia", col = "blue")
hist(rotacion$Capacitaciones, main = "Distribución de Capacitaciones", xlab = "Capacitaciones", col = "blue")
hist(rotacion$Equilibrio_Trabajo_Vida, main = "Distribución de Equilibrio Trabajo Vida", xlab = "Equilibrio_Trabajo_Vida", col = "blue")
hist(rotacion$Antigüedad, main = "Distribución de Antigüedad", xlab = "Antigüedad", col = "blue")
hist(rotacion$Antigüedad_Cargo, main = "Distribución de Antigüedad Cargo", xlab = "Antigüedad_Cargo", col = "blue")
hist(rotacion$Años_ultima_promoción, main = "Distribución de Años última promoción", xlab = "Años_ultima_promoción", col = "blue")
hist(rotacion$Años_acargo_con_mismo_jefe, main = "Distribución de Años acargo con mismo jefe", xlab = "Años_acargo_con_mismo_jefe", col = "blue")
boxplot(rotacion$Edad, main = "Distribución de Edad", ylab = "Edad")
boxplot(rotacion$Distancia_Casa, main = "Distribución de Distancia a casa", ylab = "Distancia_Casa")
boxplot(rotacion$Educación, main = "Distribución de Educación", ylab = "Educación")
boxplot(rotacion$Satisfacción_Ambiental, main = "Distribución de Satisfacción Ambiental", ylab = "Satisfacción_Ambiental")
boxplot(rotacion$Satisfación_Laboral, main = "Distribución de Satisfacción Laboral", ylab = "Satisfación_Laboral")
boxplot(rotacion$Ingreso_Mensual, main = "Distribución de Ingreso Mensual", ylab = "Ingreso_Mensual")
boxplot(rotacion$Trabajos_Anteriores, main = "Distribución de Trabajos Anteriores", ylab = "Trabajos_Anteriores")
boxplot(rotacion$Porcentaje_aumento_salarial, main = "Distribución de Porcentaje aumento salarial", ylab = "Porcentaje_aumento_salarial")
boxplot(rotacion$Rendimiento_Laboral, main = "Distribución de Rendimiento Laboral", ylab = "Rendimiento_Laboral")
boxplot(rotacion$Años_Experiencia, main = "Distribución de Años de experiencia", ylab = "Años_Experiencia")
boxplot(rotacion$Capacitaciones, main = "Distribución de Capacitaciones", ylab = "Capacitaciones")
boxplot(rotacion$Equilibrio_Trabajo_Vida, main = "Distribución de Equilibrio Trabajo Vida", ylab = "Equilibrio_Trabajo_Vida")
boxplot(rotacion$Antigüedad, main = "Distribución de Antigüedad", ylab = "Antigüedad")
boxplot(rotacion$Antigüedad_Cargo, main = "Distribución de Antigüedad Cargo", ylab = "Antigüedad_Cargo")
boxplot(rotacion$Años_ultima_promoción, main = "Distribución de Años última promoción", ylab = "Años_ultima_promoción")
boxplot(rotacion$Años_acargo_con_mismo_jefe, main = "Distribución de Años acargo con mismo jefe", ylab = "Años_acargo_con_mismo_jefe")
#Variables categóricas
table(rotacion$Rotación)
##
## No Si
## 1233 237
table(rotacion$`Viaje de Negocios`)
##
## Frecuentemente No_Viaja Raramente
## 277 150 1043
table(rotacion$Departamento)
##
## IyD RH Ventas
## 961 63 446
table(rotacion$Campo_Educación)
##
## Ciencias Humanidades Mercadeo Otra Salud Tecnicos
## 606 27 159 82 464 132
table(rotacion$Genero)
##
## F M
## 588 882
table(rotacion$Cargo)
##
## Director_Investigación Director_Manofactura Ejecutivo_Ventas
## 80 145 326
## Gerente Investigador_Cientifico Recursos_Humanos
## 102 292 52
## Representante_Salud Representante_Ventas Tecnico_Laboratorio
## 131 83 259
table(rotacion$Horas_Extra)
##
## No Si
## 1054 416
barplot(table(rotacion$Rotación), main = "Frecuencia por Rotación", col = "green")
barplot(table(rotacion$`Viaje de Negocios`), main = "Frecuencia por Viajes de Negocio", col = "green")
barplot(table(rotacion$Departamento), main = "Frecuencia por Departamento", col = "green")
barplot(table(rotacion$Campo_Educación), main = "Frecuencia por Campo de educación", col = "green")
barplot(table(rotacion$Genero), main = "Frecuencia por Genero", col = "green")
barplot(table(rotacion$Cargo), main = "Frecuencia por Cargo", col = "green")
barplot(table(rotacion$Horas_Extra), main = "Frecuencia por Horas extras", col = "green")
#2. Análisis bivariado
rotacion$Rotación <- ifelse(rotacion$Rotación == "Si", 1, 0)
modelo_edad <- glm(Rotación ~ Edad, data = rotacion, family = binomial)
summary(modelo_edad) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Edad, family = binomial, data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.20637 0.30597 0.674 0.5
## Edad -0.05225 0.00870 -6.006 1.9e-09 ***
## ---
## 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: 1259.1 on 1468 degrees of freedom
## AIC: 1263.1
##
## Number of Fisher Scoring iterations: 4
#El coeficiente negativo significa que, a medida que la edad del empleado aumenta, la probabilidad de rotación disminuye. Esto confirma que hay una relación inversa entre la edad y la rotación.
#El valor p para la variable es muy bajo (Pr(>z) = 1.9e-09*), indicando que la relación entre la edad y la rotación es altamente significativa. Esto respalda que la edad es una variable predictora clave para la rotación.
modelo_Dist_Casa <- glm(Rotación ~ Distancia_Casa, data = rotacion, family = binomial)
summary(modelo_Dist_Casa) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Distancia_Casa, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.890051 0.111382 -16.969 < 2e-16 ***
## Distancia_Casa 0.024710 0.008312 2.973 0.00295 **
## ---
## 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: 1290.0 on 1468 degrees of freedom
## AIC: 1294
##
## Number of Fisher Scoring iterations: 4
#El coeficiente positivo indica que, a medida que la distancia de casa al trabajo aumenta, la probabilidad de rotación también aumenta.
#El valor p para es Pr(>z) = 0.00295, lo que indica que esta variable es estadísticamente significativa (p < 0.05).
modelo_Educacion <- glm(Rotación ~ Educación, data = rotacion, family = binomial)
summary(modelo_Educacion) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Educación, family = binomial, data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.41058 0.20885 -6.754 1.44e-11 ***
## Educación -0.08273 0.06882 -1.202 0.229
## ---
## 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: 1297.1 on 1468 degrees of freedom
## AIC: 1301.1
##
## Number of Fisher Scoring iterations: 4
#El valor p de la variable es Pr(>z) = 0.229, lo que indica que esta variable no es significativa para explicar la rotación (p > 0.05). Esto implica que el nivel de educación no muestra una relación consistente o importante con la probabilidad de que un empleado rote, según este modelo.
modelo_Satis_amb <- glm(Rotación ~ Satisfacción_Ambiental, data = rotacion, family = binomial)
summary(modelo_Satis_amb) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Satisfacción_Ambiental, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.98621 0.17687 -5.576 2.46e-08 ***
## Satisfacción_Ambiental -0.25312 0.06431 -3.936 8.30e-05 ***
## ---
## 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: 1283.1 on 1468 degrees of freedom
## AIC: 1287.1
##
## Number of Fisher Scoring iterations: 4
#El coeficiente negativo indica que, a medida que aumenta la satisfacción ambiental, la probabilidad de rotación disminuye.
#El valor p para la variable es Pr(>z) = 8.30e-05, lo que demuestra que es estadísticamente significativa (p < 0.001)
modelo_Satis_lab <- glm(Rotación ~ Satisfación_Laboral, data = rotacion, family = binomial)
summary(modelo_Satis_lab) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Satisfación_Laboral, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.9903 0.1757 -5.635 1.75e-08 ***
## Satisfación_Laboral -0.2510 0.0637 -3.940 8.16e-05 ***
## ---
## 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: 1283.1 on 1468 degrees of freedom
## AIC: 1287.1
##
## Number of Fisher Scoring iterations: 4
#El coeficiente negativo indica que, a medida que aumenta la satisfacción laboral (por ejemplo, de "insatisfecho" a "satisfecho"), la probabilidad de rotación disminuye.
#El valor p de la variable es Pr(>z) = 8.16e-05, lo cual indica que esta variable es altamente significativa (p < 0.001)
modelo_Ingreso_mensual <- glm(Rotación ~ Ingreso_Mensual, data = rotacion, family = binomial)
summary(modelo_Ingreso_mensual) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Ingreso_Mensual, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -9.291e-01 1.292e-01 -7.191 6.43e-13 ***
## Ingreso_Mensual -1.271e-04 2.162e-05 -5.879 4.12e-09 ***
## ---
## 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: 1253.1 on 1468 degrees of freedom
## AIC: 1257.1
##
## Number of Fisher Scoring iterations: 5
#El coeficiente negativo indica que, a medida que aumenta el ingreso mensual, la probabilidad de rotación disminuye. Esto sugiere que los empleados con mayores ingresos tienen menos probabilidades de cambiar de cargo.
#El valor p para es Pr(>z) = 4.12e-09, lo que demuestra que esta variable es estadísticamente significativa (p < 0.001).
modelo_Trabajos_anteriores <- glm(Rotación ~ Trabajos_Anteriores, data = rotacion, family = binomial)
summary(modelo_Trabajos_anteriores) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Trabajos_Anteriores, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.77652 0.10636 -16.703 <2e-16 ***
## Trabajos_Anteriores 0.04565 0.02742 1.665 0.096 .
## ---
## 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: 1295.9 on 1468 degrees of freedom
## AIC: 1299.9
##
## Number of Fisher Scoring iterations: 4
#El coeficiente positivo sugiere que, a medida que aumenta el número de trabajos anteriores, la probabilidad de rotación también aumenta ligeramente.
#El valor p para es Pr(>z) = 0.096, lo que indica que esta variable no es estadísticamente significativa (p > 0.05).
modelo_Porcentaje_aumento <- glm(Rotación ~ Porcentaje_aumento_salarial, data = rotacion, family = binomial)
summary(modelo_Porcentaje_aumento) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Porcentaje_aumento_salarial, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.49563 0.30459 -4.910 9.09e-07 ***
## Porcentaje_aumento_salarial -0.01012 0.01959 -0.517 0.605
## ---
## 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: 1298.3 on 1468 degrees of freedom
## AIC: 1302.3
##
## Number of Fisher Scoring iterations: 3
#El coeficiente es negativo, lo que sugiere que un mayor porcentaje de aumento salarial podría disminuir la probabilidad de rotación. Sin embargo, el tamaño del coeficiente es muy pequeño, indicando un efecto marginal por cada unidad de aumento salarial.
# El valor p para es Pr(>z) = 0.605, lo que indica que esta variable no es estadísticamente significativa (p > 0.05)
modelo_Rendimiento_Laboral <- glm(Rotación ~ Rendimiento_Laboral, data = rotacion, family = binomial)
summary(modelo_Rendimiento_Laboral) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Rendimiento_Laboral, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.71750 0.62144 -2.764 0.00571 **
## Rendimiento_Laboral 0.02167 0.19564 0.111 0.91181
## ---
## 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: 1298.6 on 1468 degrees of freedom
## AIC: 1302.6
##
## Number of Fisher Scoring iterations: 3
# El valor p para es Pr(>z) = 0.911, lo que indica que esta variable no es estadísticamente significativa (p > 0.05)
modelo_Años_Experiencia <- glm(Rotación ~ Años_Experiencia, data = rotacion, family = binomial)
summary(modelo_Años_Experiencia) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Años_Experiencia, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.88306 0.12744 -6.929 4.23e-12 ***
## Años_Experiencia -0.07773 0.01217 -6.387 1.69e-10 ***
## ---
## 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: 1248.1 on 1468 degrees of freedom
## AIC: 1252.1
##
## Number of Fisher Scoring iterations: 5
#El coeficiente negativo indica que, a medida que aumentan los años de experiencia, la probabilidad de rotación disminuye. Esto sugiere que los empleados con más experiencia tienden a ser más estables en sus cargos.
#El valor p para es Pr(>z) = 1.69e-10, demostrando que esta variable es altamente significativa (p < 0.001).
modelo_Capacitaciones <- glm(Rotación ~ Capacitaciones, data = rotacion, family = binomial)
summary(modelo_Capacitaciones) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Capacitaciones, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.2948 0.1675 -7.731 1.07e-14 ***
## Capacitaciones -0.1300 0.0571 -2.276 0.0229 *
## ---
## 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: 1293.3 on 1468 degrees of freedom
## AIC: 1297.3
##
## Number of Fisher Scoring iterations: 4
#Este coeficiente indica que a medida que aumenta la cantidad de capacitaciones, la probabilidad de rotación ((y = 1)) disminuye. Es un efecto negativo.
#El valor p para es Pr(>z) = 0.0229, demostrando que esta variable es altamente significativa (p < 0.05).
modelo_Equilibrio_TV <- glm(Rotación ~ Equilibrio_Trabajo_Vida, data = rotacion, family = binomial)
summary(modelo_Equilibrio_TV) # Resumen con coeficientes y significancia
##
## Call:
## glm(formula = Rotación ~ Equilibrio_Trabajo_Vida, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.99739 0.27199 -3.667 0.000245 ***
## Equilibrio_Trabajo_Vida -0.23956 0.09796 -2.445 0.014467 *
## ---
## 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: 1292.7 on 1468 degrees of freedom
## AIC: 1296.7
##
## Number of Fisher Scoring iterations: 4
#El signo negativo del coeficiente muestra que hay una relación inversa entre esta variable y la rotación. En términos concretos, a medida que mejora el equilibrio trabajo-vida, la probabilidad de que alguien deje su empleo disminuye.#El valor p para es Pr(>z) = 0.0229, demostrando que esta variable es altamente significativa (p < 0.05).
#(p = 0.014467), lo cual es menor al umbral típico del 5%. Esto confirma que la variable tiene un impacto estadísticamente significativo en la rotación.
modelo_Antiguedad <- glm(Rotación ~ Antigüedad, data = rotacion, family = binomial)
summary(modelo_Antiguedad)
##
## Call:
## glm(formula = Rotación ~ Antigüedad, family = binomial, data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.15577 0.11137 -10.378 < 2e-16 ***
## Antigüedad -0.08076 0.01594 -5.068 4.03e-07 ***
## ---
## 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: 1266.5 on 1468 degrees of freedom
## AIC: 1270.5
##
## Number of Fisher Scoring iterations: 5
#Este coeficiente indica que la antigüedad tiene una relación negativa con la probabilidad de rotación. A medida que aumenta la antigüedad de los empleados, las probabilidades de rotación disminuyen.
# Altamente significativa ((p = 4.03e-07)), lo que confirma que la antigüedad es un factor importante en la reducción de la rotación.
modelo_Antiguedad_cargo <- glm(Rotación ~ Antigüedad_Cargo, data = rotacion, family = binomial)
summary(modelo_Antiguedad_cargo)
##
## Call:
## glm(formula = Rotación ~ Antigüedad_Cargo, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.11841 0.10380 -10.775 < 2e-16 ***
## Antigüedad_Cargo -0.14628 0.02424 -6.033 1.61e-09 ***
## ---
## 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: 1255.9 on 1468 degrees of freedom
## AIC: 1259.9
##
## Number of Fisher Scoring iterations: 5
#Este coeficiente muestra que un mayor tiempo en el cargo está asociado con una menor probabilidad de rotación.
#Altamente significativa ((p = 1.61e-09)), confirmando que "Antigüedad_Cargo" es una variable relevante y asociada a la rotación.
modelo_Años_Promocion <- glm(Rotación ~ Años_ultima_promoción, data = rotacion, family = binomial)
summary(modelo_Años_Promocion)
##
## Call:
## glm(formula = Rotación ~ Años_ultima_promoción, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.58703 0.08501 -18.670 <2e-16 ***
## Años_ultima_promoción -0.02979 0.02358 -1.263 0.206
## ---
## 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: 1296.9 on 1468 degrees of freedom
## AIC: 1300.9
##
## Number of Fisher Scoring iterations: 4
#Este coeficiente muestra que, aunque existe una tendencia negativa (mayor tiempo desde la última promoción se asocia con menor probabilidad de rotación), su impacto es pequeño.
#Al ser mayor al umbral típico ((p > 0.05)), indica que esta variable no tiene una asociación estadísticamente significativa con la rotación en este modelo. Por lo tanto, no podemos afirmar con certeza que el tiempo desde la última promoción influya en la rotación
modelo_Años_jefe<- glm(Rotación ~ Años_acargo_con_mismo_jefe, data = rotacion, family = binomial)
summary(modelo_Años_jefe)
##
## Call:
## glm(formula = Rotación ~ Años_acargo_con_mismo_jefe, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.14677 0.10244 -11.195 < 2e-16 ***
## Años_acargo_con_mismo_jefe -0.14138 0.02407 -5.874 4.26e-09 ***
## ---
## 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: 1258.7 on 1468 degrees of freedom
## AIC: 1262.7
##
## Number of Fisher Scoring iterations: 5
#Este coeficiente indica que a medida que aumenta el tiempo trabajando bajo el mismo jefe, las probabilidades de rotación disminuyen.
#Altamente significativa ((p = 4.26e-09)), confirmando que esta variable tiene un impacto estadísticamente relevante en la probabilidad de rotación.
#Análisis vibariado variables categóricas #VC: Variable Categórica #TC: Tabla de contingencia #chi2: Prueba de Chi cuadrado
VC1 <- "Viaje de Negocios"
TC1 <- table(rotacion$Rotación, rotacion[[VC1]])
print(TC1)
##
## Frecuentemente No_Viaja Raramente
## 0 208 138 887
## 1 69 12 156
chi2_TC1 <- chisq.test(TC1)
print(chi2_TC1)
##
## Pearson's Chi-squared test
##
## data: TC1
## X-squared = 24.182, df = 2, p-value = 5.609e-06
#El ( p )-valor ((5.609 \times 10^{-6})) demuestra que existe una asociación estadísticamente significativa entre los viajes de trabajo y la rotación. Esto indica que los empleados que realizan diferentes frecuencias de viajes de trabajo tienen probabilidades distintas de rotación.
VC2 <- "Departamento"
TC2 <- table(rotacion$Rotación, rotacion[[VC2]])
print(TC2)
##
## IyD RH Ventas
## 0 828 51 354
## 1 133 12 92
chi2_TC2 <- chisq.test(TC2)
print(chi2_TC2)
##
## Pearson's Chi-squared test
##
## data: TC2
## X-squared = 10.796, df = 2, p-value = 0.004526
#Este valor es menor al umbral de significancia típico ((p < 0.05)), lo que indica que hay una asociación estadísticamente significativa entre el departamento y la probabilidad de rotación.
VC3 <- "Campo_Educación"
TC3 <- table(rotacion$Rotación, rotacion[[VC3]])
print(TC3)
##
## Ciencias Humanidades Mercadeo Otra Salud Tecnicos
## 0 517 20 124 71 401 100
## 1 89 7 35 11 63 32
chi2_TC3 <- chisq.test(TC3)
## Warning in chisq.test(TC3): Chi-squared approximation may be incorrect
print(chi2_TC3)
##
## Pearson's Chi-squared test
##
## data: TC3
## X-squared = 16.025, df = 5, p-value = 0.006774
#El ( p )-valor es menor al umbral típico ((p < 0.05)), lo que confirma que existe una asociación estadísticamente significativa entre el campo de educación y la rotación.
VC4 <- "Genero"
TC4 <- table(rotacion$Rotación, rotacion[[VC4]])
print(TC4)
##
## F M
## 0 501 732
## 1 87 150
chi2_TC4 <- chisq.test(TC4)
print(chi2_TC4)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: TC4
## X-squared = 1.117, df = 1, p-value = 0.2906
#Al ser mayor que el umbral de significancia típico ((p > 0.05)), no se encuentra evidencia estadísticamente significativa de asociación entre el género y la rotación.
VC5 <- "Cargo"
TC5 <- table(rotacion$Rotación, rotacion[[VC5]])
print(TC5)
##
## Director_Investigación Director_Manofactura Ejecutivo_Ventas Gerente
## 0 78 135 269 97
## 1 2 10 57 5
##
## Investigador_Cientifico Recursos_Humanos Representante_Salud
## 0 245 40 122
## 1 47 12 9
##
## Representante_Ventas Tecnico_Laboratorio
## 0 50 197
## 1 33 62
chi2_TC5 <- chisq.test(TC5)
print(chi2_TC5)
##
## Pearson's Chi-squared test
##
## data: TC5
## X-squared = 86.19, df = 8, p-value = 2.752e-15
#Este p-valor es extremadamente bajo y mucho menor al umbral típico ((p < 0.05)), lo que confirma que la asociación entre el cargo del empleado y la rotación es estadísticamente significativa
VC6 <- "Estado_Civil"
TC6 <- table(rotacion$Rotación, rotacion[[VC6]])
print(TC6)
##
## Casado Divorciado Soltero
## 0 589 294 350
## 1 84 33 120
chi2_TC6 <- chisq.test(TC6)
print(chi2_TC6)
##
## Pearson's Chi-squared test
##
## data: TC6
## X-squared = 46.164, df = 2, p-value = 9.456e-11
#Este p-valor es extremadamente bajo ((p < 0.05)), lo que indica una asociación estadísticamente significativa entre el estado civil y la rotación
VC7 <- "Horas_Extra"
TC7 <- table(rotacion$Rotación, rotacion[[VC7]])
print(TC7)
##
## No Si
## 0 944 289
## 1 110 127
chi2_TC7 <- chisq.test(TC7)
print(chi2_TC7)
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: TC7
## X-squared = 87.564, df = 1, p-value < 2.2e-16
#Este p-valor es extremadamente bajo ((p < 0.05)), lo que indica una asociación estadísticamente significativa entre la realización de horas extra y la rotación
# Ajustar el modelo de regresión logística
modelo_logistico <- glm(Rotación ~ `Viaje de Negocios` + Departamento + Cargo + Edad + Distancia_Casa + Satisfación_Laboral,
family = binomial, data = rotacion)
# Resumen del modelo
summary(modelo_logistico)
##
## Call:
## glm(formula = Rotación ~ `Viaje de Negocios` + Departamento +
## Cargo + Edad + Distancia_Casa + Satisfación_Laboral, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.334625 0.861592 -1.549 0.121376
## `Viaje de Negocios`No_Viaja -1.395554 0.342366 -4.076 4.58e-05 ***
## `Viaje de Negocios`Raramente -0.655569 0.174147 -3.764 0.000167 ***
## DepartamentoRH -12.547957 426.102560 -0.029 0.976507
## DepartamentoVentas 0.150287 0.947455 0.159 0.873967
## CargoDirector_Manofactura 0.832644 0.795057 1.047 0.294972
## CargoEjecutivo_Ventas 1.789703 1.202480 1.488 0.136660
## CargoGerente 0.914551 0.938524 0.974 0.329830
## CargoInvestigador_Cientifico 1.769298 0.744129 2.378 0.017422 *
## CargoRecursos_Humanos 14.751913 426.103320 0.035 0.972382
## CargoRepresentante_Salud 0.915299 0.802026 1.141 0.253772
## CargoRepresentante_Ventas 2.713396 1.221847 2.221 0.026369 *
## CargoTecnico_Laboratorio 2.240984 0.741315 3.023 0.002503 **
## Edad -0.030912 0.009547 -3.238 0.001204 **
## Distancia_Casa 0.029397 0.008918 3.296 0.000979 ***
## Satisfación_Laboral -0.284281 0.067256 -4.227 2.37e-05 ***
## ---
## 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: 1149.3 on 1454 degrees of freedom
## AIC: 1181.3
##
## Number of Fisher Scoring iterations: 14
#Viajes de negocio, edad, distancia a casa, satisfacción laboral y algunos cargos específicos tienen un impacto importante en las probabilidades de rotación. #Reducir viajes frecuentes y mejorar la satisfacción laboral puede ser clave para retener a los empleados. #Considerar estrategias específicas para roles como representante de ventas, técnico de laboratorio e investigador científico, que muestran mayores probabilidades de rotación.
#AUC y ROC
library(pROC)
## Type 'citation("pROC")' for a citation.
##
## Adjuntando el paquete: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
# Obtener las probabilidades predichas por el modelo
predicciones <- predict(modelo_logistico, type = "response")
# Calcular el AUC
roc_curve <- roc(rotacion$Rotación, predicciones)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
auc_value <- auc(roc_curve)
# Mostrar el valor del AUC
print(auc_value)
## Area under the curve: 0.7323
#En este caso, el AUC de 0.7323 indica que el modelo tiene una probabilidad del 73.23% de clasificar correctamente a un empleado que rota frente a uno que no rotará al azar.
# Graficar la curva ROC
plot(roc_curve)
#Como se calculó previamente, el AUC es (0.7323). Esto indica que tu modelo tiene un desempeño aceptable para diferenciar entre empleados que rotan ((y=1)) y los que no rotan ((y=0)).
#
unique(rotacion$Rotación)
## [1] 1 0
rotacion$Rotación <- ifelse(trimws(tolower(rotacion$Rotación)) == "si", 1, 0)
rotacion <- rotacion %>% filter(!is.na(Rotación))
rotacion$Rotación <- as.numeric(rotacion$Rotación)
modelo_edad <- glm(Rotación ~ Edad, data = rotacion, family = binomial)
## Warning: glm.fit: algorithm did not converge
summary(modelo_edad)
##
## Call:
## glm(formula = Rotación ~ Edad, family = binomial, data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.657e+01 3.869e+04 -0.001 0.999
## Edad 1.709e-15 1.017e+03 0.000 1.000
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 0.0000e+00 on 1469 degrees of freedom
## Residual deviance: 8.5283e-09 on 1468 degrees of freedom
## AIC: 4
##
## Number of Fisher Scoring iterations: 25
modelo_final <- glm(Rotación ~ Edad + Distancia_Casa + Satisfación_Laboral +
Ingreso_Mensual + Años_Experiencia + Equilibrio_Trabajo_Vida +
Antigüedad + Antigüedad_Cargo + Años_acargo_con_mismo_jefe,
data = rotacion, family = binomial)
## Warning: glm.fit: algorithm did not converge
summary(modelo_final)
##
## Call:
## glm(formula = Rotación ~ Edad + Distancia_Casa + Satisfación_Laboral +
## Ingreso_Mensual + Años_Experiencia + Equilibrio_Trabajo_Vida +
## Antigüedad + Antigüedad_Cargo + Años_acargo_con_mismo_jefe,
## family = binomial, data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.657e+01 6.360e+04 0 1
## Edad 3.720e-15 1.421e+03 0 1
## Distancia_Casa -3.151e-15 1.147e+03 0 1
## Satisfación_Laboral 2.195e-14 8.438e+03 0 1
## Ingreso_Mensual 4.091e-18 3.136e+00 0 1
## Años_Experiencia -6.891e-15 2.512e+03 0 1
## Equilibrio_Trabajo_Vida -8.918e-14 1.321e+04 0 1
## Antigüedad -1.845e-15 3.030e+03 0 1
## Antigüedad_Cargo 9.536e-16 4.159e+03 0 1
## Años_acargo_con_mismo_jefe 6.328e-15 4.317e+03 0 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 0.0000e+00 on 1469 degrees of freedom
## Residual deviance: 8.5283e-09 on 1460 degrees of freedom
## AIC: 20
##
## Number of Fisher Scoring iterations: 25
empleado_nuevo <- data.frame(
Edad = 30,
Distancia_Casa = 10,
Satisfación_Laboral = 2,
Ingreso_Mensual = 5000,
Años_Experiencia = 5,
Equilibrio_Trabajo_Vida = 2,
Antigüedad = 3,
Antigüedad_Cargo = 2,
Años_acargo_con_mismo_jefe = 1
)
probabilidad_rotacion <- predict(modelo_final, newdata = empleado_nuevo, type = "response")
print(probabilidad_rotacion)
## 1
## 2.900701e-12
umbral <- 0.4 # Si la probabilidad de rotación es mayor al 40%, se recomienda intervención
intervencion <- ifelse(probabilidad_rotacion > umbral, "Intervenir", "No Intervenir")
print(intervencion)
## 1
## "No Intervenir"
Con el fin de disminuir la rotación de la empresa, utilizamos los resultados obtenidos en los puntos anteriores. Las variables utilizadas tienen un gran efecto sobre la probabilidad de renuncia de un colaborador.
A partir de los factores indispensables para minimizar la rotación, concluimos lo siguiente:
Para incrementar la satisfacción laboral (-0.288), se propone mejorar el clima organizacional a través de estrategias como flexibilidad en los horarios, lo que no implica dejar de cumplir con las horas determinadas en los contratos, hacer reconocimientos públicos por los logros alcanzados y ofrecer beneficios especiales, como algunas horas de la semana para la practica deportiva o cultural, hacer seguimiento de las cargas de trabajo y aplicar encuestas de clima laboral que realmente sean anónimas. Lo anterior, dado que a mayor satisfacción laboral, menor probabilidad de rotación.
Se debe hacer un análisis sobre el ingreso mensual (-0.0000719), si bien, el coeficiente no es grande, si permite concluir que los sueldos más altos, disminuyen la rotación. Proponemos incentivos salariales a partir de un indicador de desempeño o bonos que no constituyan salarios para evitar aumentos en los costos parafiscales, adicional, sería importante hacer un comparativo con los salarios de mercado para verificar que lo ofrecido por la compañia es competitivo.
Dado que al mejorar el equilibrio entre el trabajo y la vida personal (-0.239), disminuye la rotación, creemos que a los colaboradores se les puede ofrecer la modalidad híbrida entre trabajo presencial y virtual o para los cargos que lo permitan, trabajo remoto, también, se pueden implementar jornadas de bienestar con actividades fuera de la oficina y sesiones de soporte psicológico a bajo costo haciendo convenio con algunos profesionales de la salud.
Teniendo en cuenta que el riesgo de rotación aumenta con la antiguedad (0.0783), proponemos la creación de planes de carrera acompañados de primas por antiguedad (ejemplo: quinquenios, es decir, un salario adicional cada 5 años) y también consideramos que se debe hacer un seguimiento a los colaboradores que lleven más años en la compañia para conocer su persepción sobre los cargos que ostentan para determinar si se sienten estancados o no o si por el contrario están a gustos con las funciones que desempeñan.
Se debe considerar que cuando los colaboradores tienen que hacer trayectos más largos para llegar a la oficina, hay una mayor probabilidad de rotación (0.028), por lo que la compañia puede ofrecer rutas hacia estaciones centrales de transporte público y opciones de trabajo híbrido y en los casos en los que se pueda, trabajo remoto.
Dado que los colaboradores con más tiempo con el mismo jefe (-0.114) o en el mismo cargo (-0.111) tienen una menor rotación, proponemos capacitar a los directivos o jefes de unidad para promover la confianza y bienestar de su equipo de trabajo, por supuesto, esto no implica reducir el nivel de exigencia. Es fundamental crear una relación estable entre los jefes y los colaboradores.