library(ggplot2)
library(readxl)
Datos_Rotacion <- read_excel("C:/Users/gabui/Downloads/Datos_Rotación (1).xlsx")
En un entorno empresarial cada vez más dinámico, la gestión estratégica del talento humano se ha convertido en un factor clave para la competitividad organizacional. La rotación de personal representa un desafío significativo para las empresas, pues impacta en la productividad, los costos operativos y el clima laboral. En este contexto, People Analytics emerge como una herramienta poderosa para transformar datos en decisiones informadas, permitiendo a las organizaciones comprender los factores que influyen en la permanencia o salida de los empleados.
Este proyecto tiene como objetivo analizar los determinantes de la rotación laboral a través de técnicas de analítica aplicada, utilizando datos categóricos y cuantitativos para identificar patrones y tendencias relevantes. A través de un enfoque basado en datos, se desarrollará un modelo predictivo que permita estimar el riesgo de rotación y proponer estrategias para mitigar sus efectos. De este modo, la empresa podrá optimizar sus políticas de retención y mejorar la gestión del talento, alineando sus decisiones con un enfoque basado en evidencia.
Se consideran tres variables categóricas y tres cuantitativas relacionadas con la rotación.
Viaje de Negocios: Indica si el empleado debe viajar frecuentemente por razones laborales. En People Analytics, los viajes constantes pueden generar desgaste físico y emocional, afectando el equilibrio entre la vida personal y laboral. Además, pueden aumentar el estrés y reducir la satisfacción en el trabajo, lo que potencialmente incrementa la rotación.
Hipótesis: Los empleados con viajes frecuentes tienen una mayor probabilidad de renunciar debido a la fatiga y la falta de estabilidad.
Género: Clasifica a los empleados según su identidad de género (masculino o femenino, en este caso). En estudios de People Analytics, se ha observado que las diferencias en la rotación pueden estar influenciadas por factores como el acceso a oportunidades de crecimiento, equilibrio entre trabajo y vida personal, y sesgos dentro de la organización.
Hipótesis: Puede haber diferencias en la tasa de rotación según el género, influenciadas por políticas organizacionales, expectativas de carrera y condiciones laborales.
Horas Extra: Indica si el empleado trabaja más allá del horario regular. La sobrecarga de trabajo es un factor clave en la satisfacción laboral y el burnout, lo que puede afectar la productividad y la retención del talento.
Hipótesis: Los empleados que trabajan muchas horas extra pueden experimentar agotamiento y estrés, aumentando la probabilidad de rotación.
Distancia Casa-Trabajo: Mide la cantidad de kilómetros que el empleado debe recorrer diariamente entre su hogar y el lugar de trabajo. En People Analytics, se ha demostrado que los largos desplazamientos pueden afectar la satisfacción laboral, la productividad y el bienestar general del empleado.
Hipótesis: A mayor distancia entre la casa y el trabajo, mayor será la insatisfacción y, por ende, la probabilidad de que el empleado renuncie.
Ingreso Mensual: Refleja el salario mensual del empleado. En estudios sobre retención de talento, el salario es un factor crucial que influye en la permanencia de los empleados, aunque no es el único determinante. Un sueldo bajo puede generar desmotivación y aumentar la rotación, especialmente si los empleados perciben mejores oportunidades en el mercado laboral.
Hipótesis: Los empleados con salarios bajos tienen una mayor tendencia a buscar oportunidades mejor remuneradas, aumentando la rotación.
Edad: Se relaciona con la estabilidad y las expectativas profesionales del empleado. Los empleados más jóvenes suelen buscar oportunidades de crecimiento y aprendizaje, lo que puede hacerlos más propensos a cambiar de empleo. En contraste, los empleados de mayor edad suelen valorar más la estabilidad y los beneficios a largo plazo.
Hipótesis: Los empleados más jóvenes tienen una mayor tasa de rotación, mientras que los empleados mayores pueden ser más propensos a permanecer en la empresa debido a la estabilidad laboral y beneficios acumulados.
library(gridExtra)
library(reshape2)
library(patchwork)
# Variables categóricas y cuantitativas
categorical_vars <- c("Viaje_Negocios", "Genero", "Horas_Extra")
quantitative_vars <- c("Distancia_Casa", "Ingreso_Mensual", "Edad")
df_cat <- melt(Datos_Rotacion, measure.vars = categorical_vars)
plot_categoricas <- ggplot(df_cat, aes(x = value, fill = value)) +
geom_bar(color = "black") +
facet_wrap(~ variable, scales = "free", ncol = 3) +
theme_minimal() +
labs(title = "Distribucion de Variables Categoricas",
x = "Categorias",
y = "Frecuencia") +
scale_fill_brewer(palette = "Set2") +
theme(legend.position = "none")
# Convertir las variables cuantitativas a formato largo
df_quant <- melt(Datos_Rotacion, measure.vars = quantitative_vars)
plot_cuantitativas <- ggplot(df_quant, aes(x = value)) +
geom_histogram(fill = "lightgreen", color = "black", bins = 20) +
facet_wrap(~ variable, scales = "free") +
theme_minimal() +
labs(title = "Distribucion de Variables Cuantitativas",
x = "Valor",
y = "Frecuencia")
final_plot <- plot_categoricas / plot_cuantitativas
print(final_plot)
En primer lugar, las variables categóricas muestran que la mayoría de los empleados rara vez realizan viajes de negocios, lo que podría indicar que la movilidad laboral no es un factor determinante en la rotación. Además, la distribución de género es relativamente equitativa, lo que sugiere que la muestra no presenta un sesgo de género significativo. Por otro lado, un número considerable de empleados realiza horas extra, lo que podría estar relacionado con la carga laboral y su impacto en la satisfacción y retención del personal.
En cuanto a las variables cuantitativas, la distribución de la distancia desde el hogar hasta el trabajo es bastante dispersa, lo que indica que algunos empleados viven muy cerca de la empresa, mientras que otros deben desplazarse distancias largas, lo que podría afectar su nivel de satisfacción y compromiso. El ingreso mensual presenta una distribución potencialmente sesgada, con una concentración en ciertos niveles salariales y algunos casos de salarios significativamente más altos. Este aspecto podría influir en la rotación, ya que diferencias salariales marcadas pueden generar insatisfacción o falta de equidad percibida. Finalmente, la distribución de la edad revela una representación variada de empleados en diferentes etapas de su carrera profesional, lo que puede influir en la retención dependiendo de factores como oportunidades de crecimiento y estabilidad laboral.
plots_categoricos <- list()
for (var in categorical_vars) {
p <- ggplot(Datos_Rotacion, aes_string(x = var, fill = "Rotacion")) +
geom_bar(position = "dodge", color = "black") +
theme_minimal() +
labs(title = paste("Rotacion por", var),
x = var,
y = "Frecuencia") +
theme(legend.position = "top") +
scale_fill_brewer(palette = "Set2")
plots_categoricos[[var]] <- p
}
plots_cuantitativos <- list()
for (var in quantitative_vars) {
p <- ggplot(Datos_Rotacion, aes_string(x = "Rotacion", y = var, fill = "Rotacion")) +
geom_boxplot(alpha = 0.7) +
theme_minimal() +
labs(title = paste("Reparto",var),
x = "Rotacion",
y = var) +
scale_fill_brewer(palette = "Set2")
plots_cuantitativos[[var]] <- p
}
grid.arrange(grobs = plots_categoricos, ncol = 3)
grid.arrange(grobs = plots_cuantitativos, ncol = 3)
Viaje de Negocios: Se observa que la mayoría de los empleados que no viajan tienen una menor tasa de rotación, mientras que aquellos que viajan con frecuencia presentan una mayor proporción de rotación. Esto sugiere que los viajes constantes pueden estar asociados con una mayor propensión a abandonar la empresa, posiblemente debido a la carga laboral o el desgaste que generan.
Género: Aunque la diferencia no es extremadamente marcada, se nota que tanto hombres como mujeres experimentan la rotación, aunque en términos absolutos hay más empleados masculinos en la muestra.
Horas Extra: Los empleados que trabajan horas extra muestran una mayor tasa de rotación en comparación con aquellos que no lo hacen. Esto puede indicar que las largas jornadas laborales están relacionadas con el desgaste y la salida de los empleados.
Distancia al Trabajo: Se aprecia que los empleados que han rotado tienden a vivir más lejos en comparación con aquellos que permanecen en la empresa. Esto sugiere que una mayor distancia al trabajo podría ser un factor de desgaste y contribuir a la decisión de rotación.
Ingreso Mensual: Existe una diferencia clara en los ingresos, donde los empleados que han rotado tienden a tener salarios más bajos en comparación con aquellos que permanecen. Esto indica que el ingreso es un factor determinante en la decisión de quedarse o irse de la empresa.
Edad: Los empleados que han rotado tienen, en promedio, una menor edad en comparación con aquellos que permanecen en la empresa. Aun así, observamos que se encuentrar en un rango de edad bastante parecido.
Para mitigar la alta rotación de empleados y fomentar un ambiente laboral más estable, es fundamental implementar estrategias que aborden los factores clave identificados en el análisis. En primer lugar, la optimización de los viajes de negocios puede ser una medida efectiva para reducir el desgaste del personal. Esto se puede lograr mediante el uso de tecnologías que permitan reuniones virtuales, evitando traslados innecesarios. Además, es recomendable que la empresa ofrezca incentivos como días de descanso compensatorios o bonificaciones para los empleados que deben viajar con frecuencia, equilibrando así la carga de trabajo y minimizando el impacto en la calidad de vida.
Por otro lado, la reducción de la carga de horas extra es un factor clave para evitar el agotamiento del personal y mejorar la satisfacción laboral. Para ello, la empresa puede redistribuir las tareas de manera más equitativa, contratar más personal en áreas con alta demanda o fomentar esquemas de trabajo flexible que permitan a los empleados gestionar mejor su tiempo. Asimismo, el uso de descansos compensatorios y la promoción de una cultura organizacional que valore el bienestar de los empleados pueden contribuir significativamente a la reducción del estrés y la fatiga laboral.
En cuanto a la política salarial, es fundamental que la empresa realice ajustes en la estructura de remuneraciones para mantenerse competitiva en el mercado. Un esquema de salarios más atractivo, acompañado de bonos por desempeño, programas de incentivos y beneficios adicionales como seguros médicos o capacitaciones pagadas, puede mejorar la percepción de estabilidad laboral y reducir el interés de los empleados en buscar oportunidades externas. Además, establecer aumentos salariales progresivos en función de la antigüedad y el rendimiento puede incentivar la permanencia en la organización.
Finalmente, las facilidades para empleados con largas distancias de traslado pueden ser una solución eficaz para disminuir la rotación. La implementación de opciones de teletrabajo o esquemas híbridos permitiría a los empleados reducir el tiempo y el costo de los desplazamientos, mejorando su satisfacción general. Asimismo, la empresa podría ofrecer subsidios de transporte o convenios con servicios de movilidad para reducir la carga financiera de los traslados. En casos donde sea viable, la reasignación o transferencia de empleados a sedes más cercanas a sus domicilios también podría ser una estrategia efectiva para aumentar la retención del talento.
Se construye un modelo de regresión logística para predecir la rotación de empleados.
Datos_Rotacion$Viaje_Negocios <- as.factor(Datos_Rotacion$Viaje_Negocios)
Datos_Rotacion$Genero <- as.factor(Datos_Rotacion$Genero)
Datos_Rotacion$Horas_Extra <- as.factor(Datos_Rotacion$Horas_Extra)
Datos_Rotacion$Rotacion <- as.factor(Datos_Rotacion$Rotacion)
modelo <- glm(Rotacion ~ Viaje_Negocios + Genero + Horas_Extra + Distancia_Casa + Ingreso_Mensual + Edad, family = binomial, data = Datos_Rotacion)
summary(modelo)
##
## Call:
## glm(formula = Rotacion ~ Viaje_Negocios + Genero + Horas_Extra +
## Distancia_Casa + Ingreso_Mensual + Edad, family = binomial,
## data = Datos_Rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.527e-01 3.753e-01 -0.407 0.684153
## Viaje_NegociosNo_Viaja -1.371e+00 3.468e-01 -3.952 7.74e-05 ***
## Viaje_NegociosRaramente -6.438e-01 1.764e-01 -3.649 0.000263 ***
## GeneroM 2.319e-01 1.577e-01 1.471 0.141391
## Horas_ExtraSi 1.421e+00 1.545e-01 9.202 < 2e-16 ***
## Distancia_Casa 2.924e-02 9.086e-03 3.218 0.001289 **
## Ingreso_Mensual -9.999e-05 2.490e-05 -4.016 5.92e-05 ***
## Edad -3.781e-02 1.014e-02 -3.730 0.000191 ***
## ---
## 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: 1120.8 on 1462 degrees of freedom
## AIC: 1136.8
##
## Number of Fisher Scoring iterations: 5
Entre los aspectos más relevantes, se encontró que los empleados que no realizan viajes de negocios tienen menor probabilidad de rotar en comparación con aquellos que viajan frecuentemente. Asimismo, los que viajan solo ocasionalmente también muestran una menor tendencia a la rotación, aunque en menor medida. Otro factor crucial es el trabajo extra, ya que los empleados que laboran horas adicionales tienen una probabilidad considerablemente mayor de renunciar, lo que indica que la carga de trabajo excesiva es un problema clave en la retención del talento.
Además, la distancia entre el hogar y el lugar de trabajo se asocia con una mayor rotación, lo que sugiere que los desplazamientos largos afectan negativamente la permanencia de los empleados. En cuanto al salario, se identificó que los trabajadores con mayores ingresos tienen menos probabilidades de renunciar, lo que confirma que los incentivos económicos desempeñan un papel fundamental en la estabilidad laboral. Por otro lado, la edad también influye en la rotación, siendo los empleados más jóvenes quienes tienden a cambiar de empleo con mayor frecuencia, probablemente en busca de mejores oportunidades o condiciones laborales.
Por otro lado, el género no resultó ser un factor significativo en la rotación, lo que indica que tanto hombres como mujeres tienen una probabilidad similar de permanecer o abandonar la empresa. Considerando estos hallazgos, es recomendable ajustar el modelo eliminando esta variable para mejorar la precisión de las predicciones.
Datos_Rotacion$Viaje_Negocios <- as.factor(Datos_Rotacion$Viaje_Negocios)
Datos_Rotacion$Genero <- as.factor(Datos_Rotacion$Genero)
Datos_Rotacion$Horas_Extra <- as.factor(Datos_Rotacion$Horas_Extra)
Datos_Rotacion$Rotacion <- as.factor(Datos_Rotacion$Rotacion)
modelo2 <- glm(Rotacion ~ Viaje_Negocios + Horas_Extra + Distancia_Casa + Ingreso_Mensual + Edad, family = binomial, data = Datos_Rotacion)
summary(modelo2)
##
## Call:
## glm(formula = Rotacion ~ Viaje_Negocios + Horas_Extra + Distancia_Casa +
## Ingreso_Mensual + Edad, family = binomial, data = Datos_Rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.0085510 0.3620638 -0.024 0.981158
## Viaje_NegociosNo_Viaja -1.3572118 0.3469411 -3.912 9.16e-05 ***
## Viaje_NegociosRaramente -0.6381507 0.1761677 -3.622 0.000292 ***
## Horas_ExtraSi 1.4094413 0.1539666 9.154 < 2e-16 ***
## Distancia_Casa 0.0292073 0.0090691 3.221 0.001280 **
## Ingreso_Mensual -0.0001009 0.0000249 -4.053 5.06e-05 ***
## Edad -0.0377120 0.0101173 -3.727 0.000193 ***
## ---
## 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: 1123.0 on 1463 degrees of freedom
## AIC: 1137
##
## Number of Fisher Scoring iterations: 5
Comparando lo establecido en la primera parte del documento observamos que la edad pueda parecer inicialmente no significativa debido a rangos similares entre grupos, el modelo glm probablemente reveló una relación no lineal o una interacción con otras variables. Sin emabargo, el genero que parecia bastante importante para nosotros en este caso, realmente no significativamente al rotar pues el genero masculino es muy similar en este aspecto a la genero femenino.
probas <- predict(modelo, type = "response")
# Convertir la variable real de rotación a numérica si es factor
real <- as.numeric(Datos_Rotacion$Rotacion) - 1
# Definir función para calcular métricas
calc_metricas <- function(umbral){
pred <- ifelse(probas > umbral, 1, 0)
tabla <- table(Real = real, Predicho = pred)
# Manejo de errores si falta alguna categoría en la matriz
if (ncol(tabla) < 2 | nrow(tabla) < 2) return(c(NA, NA, NA, NA))
desempeno <- sum(diag(tabla)) / sum(tabla) # Exactitud general
sensibilidad <- tabla[2,2] / sum(tabla[2,]) # VP / (VP + FN)
especificidad <- tabla[1,1] / sum(tabla[1,]) # VN / (VN + FP)
metrica_compuesta <- mean(c(desempeno, sensibilidad, especificidad)) # Promedio de métricas
return(c(desempeno, sensibilidad, especificidad, metrica_compuesta))
}
# Definir rango de umbrales a evaluar
umbrales <- seq(0.1, 0.9, by = 0.05)
# Aplicar la función a todos los umbrales
resultados <- t(sapply(umbrales, calc_metricas))
# Convertir en dataframe para facilitar gráficos
df_metricas <- data.frame(
Umbral = umbrales,
Desempeno = resultados[,1],
Sensibilidad = resultados[,2],
Especificidad = resultados[,3],
Metrica_Compuesta = resultados[,4]
)
# Graficar cada métrica por separado
p1 <- ggplot(df_metricas, aes(x = Umbral, y = Desempeno)) +
geom_line(color = "blue") + geom_point(color = "blue") +
ggtitle("Desempeno vs Umbral") + theme_minimal()
p2 <- ggplot(df_metricas, aes(x = Umbral, y = Sensibilidad)) +
geom_line(color = "red") + geom_point(color = "red") +
ggtitle("Sensibilidad vs Umbral") + theme_minimal()
p3 <- ggplot(df_metricas, aes(x = Umbral, y = Especificidad)) +
geom_line(color = "green") + geom_point(color = "green") +
ggtitle("Especificidad vs Umbral") + theme_minimal()
p4 <- ggplot(df_metricas, aes(x = Umbral, y = Metrica_Compuesta)) +
geom_line(color = "purple") + geom_point(color = "purple") +
ggtitle("Metrica Compuesta vs Umbral") + theme_minimal()
grid.arrange(p1, p2, p3, p4, ncol = 2)
El conjunto de gráficas presentado ofrece una visión detallada del rendimiento del modelo predictivo de rotación de empleados, con un enfoque particular en la “Métrica Compuesta vs. Umbral”. Esta métrica, que representa el promedio de la exactitud, sensibilidad y especificidad del modelo, es crucial para identificar el umbral de clasificación óptimo. Al analizar las gráficas, se observa que el desempeño del modelo, medido por la métrica compuesta, alcanza su punto máximo alrededor de un umbral de 0.3. Este pico indica que, en este punto, el modelo logra el mejor equilibrio entre la capacidad de clasificar correctamente tanto a los empleados que rotan como a los que no lo hacen. A medida que el umbral se desvía de este valor óptimo, la métrica compuesta disminuye, lo que sugiere una pérdida de eficiencia en la clasificación. Por lo tanto, para la gestión de personal, un umbral cercano a 0.3 sería el más adecuado, permitiendo a la empresa identificar con mayor precisión a los empleados en riesgo de rotación y, por ende, implementar estrategias de retención más efectivas
Escenario de Riesgo Bajo:
Este trabajador presenta un perfil de bajo riesgo de rotación. No viaja por negocios, no trabaja horas extra, vive relativamente cerca de su lugar de trabajo (5 km), tiene un ingreso mensual considerable (8000 dólares) y tiene 40 años. Estas características sugieren estabilidad y satisfacción laboral, lo que disminuye la probabilidad de que busque otras oportunidades laborales.
Escenario de Riesgo Medio:
Este trabajador muestra un riesgo moderado de rotación. Viaja raramente por negocios, trabaja horas extra, vive a una distancia moderada de su lugar de trabajo (15 km), tiene un ingreso mensual promedio (5000 dólares) y tiene 30 años. La combinación de viajes ocasionales, horas extra y una distancia moderada al trabajo podría generar cierto nivel de insatisfacción, aunque su edad y género pueden compensar parcialmente estos factores.
Escenario de Riesgo Alto:
Este trabajador presenta un perfil de alto riesgo de rotación. Viaja frecuentemente por negocios, es de género masculino, trabaja horas extra, vive lejos de su lugar de trabajo (25 km), tiene un ingreso mensual bajo (3000 dólares) y es joven (25 años). Estas características sugieren una alta probabilidad de insatisfacción y estrés laboral, lo que aumenta significativamente el riesgo de que busque otras oportunidades laborales.
nuevo_empleado_bajo <- data.frame(Viaje_Negocios = "No_Viaja", Horas_Extra = "No", Distancia_Casa = 5, Ingreso_Mensual = 8000, Edad = 40)
nuevo_empleado_medio <- data.frame(Viaje_Negocios = "Raramente", Horas_Extra = "Si", Distancia_Casa = 15, Ingreso_Mensual = 5000, Edad = 30)
nuevo_empleado_alto <- data.frame(Viaje_Negocios = "Frecuentemente", Horas_Extra = "Si", Distancia_Casa = 25, Ingreso_Mensual = 3000, Edad = 25)
prediccion_bajo <- predict(modelo2, newdata = nuevo_empleado_bajo, type = "response")
prediccion_medio <- predict(modelo2, newdata = nuevo_empleado_medio, type = "response")
prediccion_alto <- predict(modelo2, newdata = nuevo_empleado_alto, type = "response")
print(paste("Prediccion de rotación:", prediccion_bajo))
## [1] "Prediccion de rotación: 0.02831404963692"
print(paste("Prediccion de rotación:", prediccion_medio))
## [1] "Prediccion de rotación: 0.392890435912103"
print(paste("Prediccion de rotación:", prediccion_alto))
## [1] "Prediccion de rotación: 0.707954965196764"
Al identificar a aquellos con alto riesgo de abandono, se pueden implementar medidas preventivas, como ajustes en la carga de trabajo, incentivos personalizados o programas de desarrollo profesional, optimizando así las estrategias de retención. Además, el modelo facilita la planificación de la fuerza laboral, previendo necesidades de contratación y evitando la escasez de personal, especialmente en sectores con alta rotación. La personalización de programas de bienestar y desarrollo, basada en las necesidades específicas de cada grupo de empleados, mejora la satisfacción laboral y el ambiente de trabajo. Asimismo, el modelo permite evaluar el impacto de políticas y cambios organizacionales en la rotación, proporcionando información valiosa para la toma de decisiones.