El presente trabajo tiene como objetivo predecir la rotación de empleados en una empresa, utilizando variables que se consideran influyentes en este fenómeno. La rotación de personal es un desafío importante para muchas organizaciones, ya que afecta tanto los costos operativos como la moral del equipo.
Para llevar a cabo este análisis, se ha utilizado un conjunto de datos que incluye información sobre diversos aspectos de los empleados, como la edad, el campo de educación, la satisfacción laboral y la antigüedad, entre otros. A partir de este conjunto de datos, se seleccionaron las variables que se cree tienen mayor relevancia en la predicción de la rotación.
Se ha utilizado un modelo de regresión logística para evaluar la influencia de estas variables en la probabilidad de rotación.
Con el objetivo de realizar una predicción de la rotación, se procede a seleccionar las variables que pueden tener mayor influencia sobre la variable objetivo. Las variables disponibles son las siguientes:
## 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, …
Entre ellas, se eligen las siguientes:
Satisfacción Ambiental: Se selecciona esta variable asumiendo que una baja satisfacción con respecto al ambiente laboral puede aumentar la probabilidad de rotación entre los empleados de la empresa.
Estado Civil: La selección de esta variable se basa en la percepción de que las personas casadas suelen buscar mayor estabilidad laboral, lo que podría reducir la probabilidad de rotación en comparación con otros estados civiles.
Campo de Educación: Se asume que personas de ciertas áreas de educación pueden ser más propensas a la rotación laboral debido a posibles insatisfacciones en su entorno profesional.
Edad: Se plantea que las personas más jóvenes son más propensas a rotar, buscando mejores oportunidades, mientras que las personas de mayor edad tienden a buscar estabilidad en su empleo.
Antigüedad: Un mayor tiempo en la empresa puede ser indicativo de un sentido de pertenencia hacia la organización, lo que podría motivar a las personas a permanecer por más tiempo en su puesto.
Trabajos Anteriores: El número de empleos anteriores puede ser un indicador de la propensión de una persona a cambiar de trabajo. Por ello, es considerado un factor importante en la predicción de la rotación laboral.
rotacion <- rotacion[, c("Campo_Educación", "Estado_Civil", "Satisfacción_Ambiental",#"Horas_Extra",
"Edad", "Antigüedad",
"Trabajos_Anteriores", "Rotación")]A partir de este punto, se verifica si existen datos faltantes y se aplican tratamientos básicos a los datos para su posterior análisis.
captured_output <- capture.output({
md.pattern(rotacion[, 1:7], plot = TRUE, rotate.names = TRUE)
})rotacion$Rotación = as.factor(rotacion$Rotación)
rotacion$Estado_Civil = as.factor(rotacion$Estado_Civil)
rotacion$Campo_Educación = as.factor(rotacion$Campo_Educación)##
rotacion$Satisfacción_Ambiental = as.factor(rotacion$Satisfacción_Ambiental)
rotacion$Rotación <- ifelse(rotacion$Rotación == "Si", 1, 0)
summary(rotacion)## Campo_Educación Estado_Civil Satisfacción_Ambiental Edad
## Ciencias :606 Casado :673 1:284 Min. :18.00
## Humanidades: 27 Divorciado:327 2:287 1st Qu.:30.00
## Mercadeo :159 Soltero :470 3:453 Median :36.00
## Otra : 82 4:446 Mean :36.92
## Salud :464 3rd Qu.:43.00
## Tecnicos :132 Max. :60.00
## Antigüedad Trabajos_Anteriores Rotación
## Min. : 0.000 Min. :0.000 Min. :0.0000
## 1st Qu.: 3.000 1st Qu.:1.000 1st Qu.:0.0000
## Median : 5.000 Median :2.000 Median :0.0000
## Mean : 7.008 Mean :2.693 Mean :0.1612
## 3rd Qu.: 9.000 3rd Qu.:4.000 3rd Qu.:0.0000
## Max. :40.000 Max. :9.000 Max. :1.0000
En primer lugar, se realiza un análisis univariado para cada una de las variables seleccionadas.
Se observa que los datos están desbalanceados, presentando más casos de rotación igual a 0 (no rotación) que 1 (rotación), lo que podría dificultar la creación de un modelo predictivo con alta precisión. Un desbalance de clases como este puede afectar el rendimiento del modelo.
##
## 0 1
## 1233 237
Se puede observar que la mayor parte de los empleados se encuentra en las categorías más altas de satisfacción ambiental. Esto refuerza la idea de que los niveles más bajos de satisfacción ambiental podrían estar relacionados con una mayor probabilidad de rotación.
##
## 1 2 3 4
## 284 287 453 446
Aunque la distribución del estado civil es acorde a lo esperado, las diferencias entre las categorías no son tan grandes como se pensaba. Esto sugiere que, si bien la hipótesis de que las personas casadas buscan mayor estabilidad laboral podría ser válida, tal vez no sea un factor tan influyente como se esperaba.
##
## Casado Divorciado Soltero
## 673 327 470
En el análisis univariado del campo de educación, no parece haber una relación clara con la rotación. Sin embargo, se observa que las carreras relacionadas con la ciencia son la moda en los datos, lo que puede ser relevante en análisis posteriores.
##
## Ciencias Humanidades Mercadeo Otra Salud Tecnicos
## 606 27 159 82 464 132
La distribución de la edad está centrada alrededor de los 36 años, con una forma simétrica. Esto sugiere que la mayor parte de los empleados se encuentra en un rango de edad medio.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 30.00 36.00 36.92 43.00 60.00
ggplot(rotacion, aes(x = Edad)) +
geom_density(fill = "#2F7F00", alpha = 0.7) +
labs(title = "Densidad Edad",
x = "Edad",
y = "Densidad") +
theme_minimal()En cuanto a los empleos anteriores, se observa que tanto la media como la mediana están cerca de dos empleos. Sin embargo, hay algunos casos atípicos que alcanzan hasta 9 empleos anteriores, lo que genera una distribución inclinada a la derecha.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 1.000 2.000 2.693 4.000 9.000
ggplot(rotacion, aes(x = Trabajos_Anteriores)) +
geom_density(fill = "#8F7F00", alpha = 0.7) +
labs(title = "Densidad Trabajos Anteriores",
x = "Trabajos Anteriores",
y = "Densidad") +
theme_minimal()Finalmente, la distribución de la antigüedad también muestra una inclinación hacia la derecha, lo que indica que hay más empleados con pocos años en la empresa y menos con muchos años de antigüedad. Esto podría sugerir que la rotación es más común entre los empleados con menos tiempo en la empresa.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 3.000 5.000 7.008 9.000 40.000
ggplot(rotacion, aes(x = Antigüedad)) +
geom_density(fill = "#FF7F00", alpha = 0.7) +
labs(title = "Densidad Antigüedad",
x = "Antigüedad (años)",
y = "Densidad") +
theme_minimal()Posteriormente, se realiza un análisis bivariado para observar cómo se relacionan las variables con la rotación. Para ello, primero analizamos la relación con las variables categóricas a través de tablas de validación cruzada y gráficas de barras.
El análisis de la Satisfacción Ambiental muestra que hay un mayor porcentaje de rotación en los niveles más bajos de satisfacción.
ggplot(rotacion, aes(x = Satisfacción_Ambiental, fill = factor(Rotación))) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent_format()) +
labs(title = "Porcentaje de Rotación por Satisfacción Ambiental",
y = "Porcentaje", x = "Satisfacción Ambiental", fill = "Rotación")# Tabla de contingencia para Satisfacción Ambiental y Rotación
tabla_satisfaccion_ambiental <- table(rotacion$Satisfacción_Ambiental, rotacion$Rotación)
tabla_satisfaccion_ambiental##
## 0 1
## 1 212 72
## 2 244 43
## 3 391 62
## 4 386 60
En cuanto al Estado Civil, los resultados muestran el comportamiento esperado: las personas solteras presentan un mayor porcentaje de rotación. Sin embargo, un hallazgo inesperado es que las personas divorciadas son quienes muestran el menor porcentaje de rotación.
ggplot(rotacion, aes(x = Estado_Civil, fill = factor(Rotación))) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent_format()) +
labs(title = "Porcentaje de Rotación por Estado Civil",
y = "Porcentaje", x = "Estado Civil", fill = "Rotación")##
## 0 1
## Casado 589 84
## Divorciado 294 33
## Soltero 350 120
Finalmente, se observa que las personas con formación técnica, humanidades y mercadeo son quienes presentan un mayor porcentaje de rotación. Este hallazgo podría ser una métrica importante para comprender la rotación en función de esta variable.
ggplot(rotacion, aes(x = Campo_Educación, fill = factor(Rotación))) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent_format()) +
labs(title = "Porcentaje de Rotación por Campo de Educación",
y = "Porcentaje", x = "Campo de Educación", fill = "Rotación") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))##
## 0 1
## Ciencias 517 89
## Humanidades 20 7
## Mercadeo 124 35
## Otra 71 11
## Salud 401 63
## Tecnicos 100 32
Los empleados que rotan tienden a ser más jóvenes en comparación con los que no rotan. La mediana y la media son menores para los que rotan (32 años frente a 36 años). Además, el rango intercuartílico para los que no rotan es mayor, lo que indica que las edades están más dispersas en este grupo.
Estos resultados sugieren que los empleados más jóvenes pueden tener una mayor tendencia a la rotación, mientras que los empleados de mayor edad tienden a permanecer en la empresa, lo que concuerda con la hipótesis planteada en la selección de variables.
# Gráfico de boxplot para Edad
ggplot(rotacion, aes(x = factor(Rotación), y = Edad, fill = factor(Rotación))) +
geom_boxplot() +
labs(title = "Distribución de Edad por Rotación", x = "Rotación", y = "Edad", fill = "Rotación")## $`0`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 31.00 36.00 37.56 43.00 60.00
##
## $`1`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 28.00 32.00 33.61 39.00 58.00
En cuanto a la antigüedad, se puede observar que los empleados que no rotan tienden a tener mayor antigüedad en la empresa. La mediana para este grupo es de 6 años, mientras que para los que rotan es de 3 años. La media y la mediana más bajas para el grupo que rota sugieren que la antigüedad está inversamente relacionada con la rotación. Es decir, a mayor antigüedad, menor es la probabilidad de rotación, como se esperaba desde el momento de la selección de variables.
# Gráfico de boxplot para Antigüedad
ggplot(rotacion, aes(x = factor(Rotación), y = Antigüedad, fill = factor(Rotación))) +
geom_boxplot() +
labs(title = "Distribución de Antigüedad por Rotación", x = "Rotación", y = "Antigüedad", fill = "Rotación")## $`0`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 3.000 6.000 7.369 10.000 37.000
##
## $`1`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 1.000 3.000 5.131 7.000 40.000
Finalmente, se realiza un análisis sobre la cantidad de trabajos anteriores. Curiosamente, aunque la mediana para los que rotan es menor (1 empleo anterior frente a 2 para los que no rotan), la media es mayor para los que rotan (2.94 frente a 2.65). Esto sugiere que los empleados que rotan tienden a haber tenido más trabajos anteriores en promedio, lo que podría indicar una mayor predisposición al cambio de empleo.
La distribución inclinada hacia la derecha en ambos grupos muestra que, aunque la mayoría de los empleados han tenido pocos empleos anteriores, hay una minoría que ha tenido varios trabajos, lo que podría influir en la rotación.
# Gráfico de boxplot para Trabajos Anteriores
ggplot(rotacion, aes(x = factor(Rotación), y = Trabajos_Anteriores, fill = factor(Rotación))) +
geom_boxplot() +
labs(title = "Distribución de Trabajos Anteriores por Rotación", x = "Rotación", y = "Trabajos Anteriores", fill = "Rotación")## $`0`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 1.000 2.000 2.646 4.000 9.000
##
## $`1`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 1.000 1.000 2.941 5.000 9.000
Finalmente, tras realizar el análisis de las variables, se ajusta un modelo de regresión logística para determinar la probabilidad de rotación, basado en las variables seleccionadas. Para esto, se realiza una partición de los datos, utilizando el 70% de la muestra como conjunto de entrenamiento y el 30% restante como conjunto de prueba.
trainIndex <- createDataPartition(rotacion$Rotación, p = 0.7, list = FALSE)
trainData <- rotacion[trainIndex,]
testData <- rotacion[-trainIndex,]
modelo_final <- glm(Rotación ~ Satisfacción_Ambiental + Estado_Civil + Campo_Educación +
Edad + Trabajos_Anteriores + Antigüedad,
family = binomial(link = "logit"),
data = rotacion)
summary(modelo_final)##
## Call:
## glm(formula = Rotación ~ Satisfacción_Ambiental + Estado_Civil +
## Campo_Educación + Edad + Trabajos_Anteriores + Antigüedad,
## family = binomial(link = "logit"), data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.32892 0.37623 0.874 0.38198
## Satisfacción_Ambiental2 -0.66659 0.22508 -2.962 0.00306 **
## Satisfacción_Ambiental3 -0.83645 0.20468 -4.087 4.38e-05 ***
## Satisfacción_Ambiental4 -0.88083 0.20637 -4.268 1.97e-05 ***
## Estado_CivilDivorciado -0.27873 0.22417 -1.243 0.21373
## Estado_CivilSoltero 0.80518 0.16604 4.849 1.24e-06 ***
## Campo_EducaciónHumanidades 1.00446 0.47720 2.105 0.03530 *
## Campo_EducaciónMercadeo 0.66608 0.23649 2.817 0.00485 **
## Campo_EducaciónOtra -0.08197 0.35586 -0.230 0.81782
## Campo_EducaciónSalud -0.11794 0.18674 -0.632 0.52766
## Campo_EducaciónTecnicos 0.64866 0.24943 2.601 0.00931 **
## Edad -0.04845 0.00985 -4.919 8.69e-07 ***
## Trabajos_Anteriores 0.09568 0.03099 3.087 0.00202 **
## Antigüedad -0.04905 0.01712 -2.865 0.00418 **
## ---
## 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: 1160.3 on 1456 degrees of freedom
## AIC: 1188.3
##
## Number of Fisher Scoring iterations: 5
Una vez realizado el modelo se procede a realizar una interpretacion de los coeficientes obtenidos:
Edad: exp(-0.04845) ≈ 0.953. Esto
significa que, por cada año adicional de la persona, la probabilidad de
rotación disminuye en un 4.7%. Es decir, a mayor edad,
menor es la probabilidad de que el empleado rote.
Trabajos Anteriores:
exp(0.09568) ≈ 1.100. Esto indica que, por cada trabajo
anterior que haya tenido el empleado, la probabilidad de rotación
aumenta en un 10%. A más trabajos previos, mayor es la
tendencia a rotar.
Antigüedad: exp(-0.04905) ≈ 0.952.
Esto sugiere que, por cada año adicional de antigüedad en la empresa, la
probabilidad de rotación disminuye en un 4.8%. A mayor
antigüedad, menor probabilidad de rotación.
Satisfacción Ambiental: Dado que esta es una variable categórica, se elige un nivel de la variable como referencia, y se comparan los demás niveles con respecto a este. En este caso, se selecciona como valor de referencia Satisfacción Ambiental 1:
Satisfacción Ambiental 2:
exp(-0.66659) ≈ 0.513. Los empleados con una satisfacción
ambiental 2 tienen aproximadamente un 49% menor
probabilidad de rotar en comparación con aquellos con
satisfacción ambiental 1.
Satisfacción Ambiental 3:
exp(-0.83645) ≈ 0.433. Los empleados con satisfacción
ambiental 3 son un 57% menos propensos a rotar que los
empleados con satisfacción ambiental 1.
Satisfacción Ambiental 4:
exp(-0.88083) ≈ 0.414. Los empleados con satisfacción
ambiental 4 son un 59% menos propensos a rotar que
aquellos con satisfacción ambiental 1.
Estado Civil: En este caso, el estado civil “casado” se usa como referencia, por lo que los demás estados se comparan con este:
Divorciado: exp(-0.27873) ≈ 0.756.
Los empleados divorciados tienen un 24% menor
probabilidad de rotar en comparación con los empleados
casados,Sin embargo, este coeficiente no es estadísticamente
significativo en el modelo, por lo que su efecto es
incierto.
Soltero: exp(0.80518) ≈ 2.238. Los
empleados solteros tienen un 123% mayor probabilidad de
rotar en comparación con los empleados casados. Esto implica que, por
cada empleado casado que rote, es 2.23 veces más probable que una
persona soltera lo haga.
Campo de Estudio: En este caso, el campo de estudio “ciencias” se usa como referencia, y las demás categorías se interpretan en relación con este:
Humanidades: exp(1.00446) ≈ 2.730.
Los empleados con carreras en humanidades tienen 2.73 veces más
probabilidad de rotar que aquellos con formación en ciencias,
es decir, un 173% mayor probabilidad de
rotación.
Mercadeo: exp(0.66608) ≈ 1.947. Los
empleados con formación en mercadeo tienen un 94% mayor
probabilidad de rotar en comparación con los empleados con
formación en ciencias.
Otra: exp(-0.08197) ≈ 0.921. Los
empleados cuyo campo de estudio es “otra” tienen un 8% menor
probabilidad de rotar en comparación con los empleados con
formación en ciencias. Sin embargo, este coeficiente no es
estadísticamente significativo en el modelo, por lo que
su efecto es incierto.
Salud: exp(-0.11794) ≈ 0.888. Los
empleados con formación en salud tienen un 11.2% menor
probabilidad de rotar en comparación con aquellos de
ciencias.Sin embargo, este coeficiente no es estadísticamente
significativo en el modelo, por lo que su efecto es
incierto.
Técnicos: exp(0.64866) ≈ 1.913. Los
empleados con formación técnica tienen un 91% mayor
probabilidad de rotar en comparación con los empleados de
ciencias.
Una vez ajustado el modelo, se procede a su validación utilizando métricas como el AUC (Área Bajo la Curva) y la Curva ROC, además de la matriz de confusión, que permite verificar métricas como la tasa de verdaderos positivos o recall. Dado que este es un caso con datos desbalanceados, el recall es una medida apropiada para evaluar el desempeño del modelo.
valor_pronosticado <- predict(modelo_final, newdata = testData, type = "response")
curva_ROC <- roc(testData$Rotación, valor_pronosticado)## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
auc <- round(auc(curva_ROC, levels = c(0, 1), direction = "<"), 4)
ggroc(curva_ROC, colour = "#FF7F00", size = 1) +
ggtitle(paste0("Curva ROC ", "(AUC = ", auc, ")")) +
xlab("Especificidad") +
ylab("Sensibilidad")+
geom_abline(slope = 1, intercept = 1, linetype = "dashed", color = "red")El modelo muestra un AUC de 0.7546, lo que indica que el modelo tiene un rendimiento razonable en términos de separación entre clases. Sin embargo, al analizar la matriz de confusión, se observa que, aunque hay un buen porcentaje de aciertos en la clasificación, el modelo tiene dificultades para identificar los casos positivos correctamente, lo que se refleja en un mayor número de falsos negativos.
niveles_pronosticados <- ifelse(valor_pronosticado > 0.5, 1, 0)
rendimiento_data <- data.frame(observados = testData$Rotación,
predicciones = niveles_pronosticados)
VP <- sum(rendimiento_data$observados == 1 & rendimiento_data$predicciones == 1) # Verdaderos Positivos
VN <- sum(rendimiento_data$observados == 0 & rendimiento_data$predicciones == 0) # Verdaderos Negativos
FP <- sum(rendimiento_data$observados == 0 & rendimiento_data$predicciones == 1) # Falsos Positivos
FN <- sum(rendimiento_data$observados == 1 & rendimiento_data$predicciones == 0) # Falsos Negativos
matriz_confusion <- matrix(c(VP, FP, FN, VN), nrow = 2)
rownames(matriz_confusion) <- c("Real: 1 (Rotación)", "Real: 0 (No Rotación)")
colnames(matriz_confusion) <- c("Pred: 1 (Rotación)", "Pred: 0 (No Rotación)")
print(matriz_confusion)## Pred: 1 (Rotación) Pred: 0 (No Rotación)
## Real: 1 (Rotación) 13 52
## Real: 0 (No Rotación) 4 372
La matriz de confusión muestra que el modelo logra un buen accuracy (precisión global), pero debido al desbalance en los datos, presenta dificultades en la detección de casos positivos. Esto implica que el modelo tiende a producir falsos negativos (predice que no habrá rotación cuando en realidad la hay).
Finalmente, se calculan métricas de desempeño adicionales como el Accuracy y el Recall para evaluar el rendimiento del modelo en un contexto desbalanceado:
## [1] 0.8730159
## [1] 0.2
Accuracy: Mide el porcentaje total de predicciones correctas (tanto positivas como negativas) en el modelo. Dado el desbalance de clases, el accuracy puede ser alto, ya que el modelo predice correctamente muchos negativos.
Recall: Mide la capacidad del modelo para identificar correctamente los casos positivos (rotación). Un recall bajo indicaría que el modelo tiene dificultades para detectar rotaciones, lo cual es común en modelos entrenados con datos desbalanceados.
Teniendo en cuenta los resultados, las variables más significativas para predecir la rotación son la edad, la satisfacción ambiental, el estado civil, el campo de educación, la antigüedad y el número de trabajos anteriores.
Dado que la satisfacción ambiental es un factor crucial en la probabilidad de rotación, es fundamental que la empresa implemente estrategias para mejorar el ambiente laboral. Esto puede incluir proporcionar mejores condiciones de trabajo, realizar encuestas periódicas para evaluar la satisfacción y tomar medidas basadas en los resultados obtenidos.
Los empleados más jóvenes mostraron una mayor tendencia a rotar, lo que sugiere la necesidad de desarrollar programas de retención específicos para este grupo. Ofrecer oportunidades de crecimiento profesional, capacitaciones y planes de desarrollo de carrera podría ayudar a reducir la rotación entre los empleados jóvenes, que a menudo están en búsqueda de nuevas oportunidades.
Los empleados que han tenido varios trabajos anteriores son más propensos a rotar nuevamente. Para mitigar este riesgo, la empresa podría diseñar programas de mentoría y apoyo enfocados en este grupo, buscando satisfacer sus necesidades específicas y aumentar su compromiso con la organización.