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:
1. Selección de variables
Seleccione 3 variables categóricas (distintas de rotación) y 3 variables cuantitativas, que se consideren estén relacionadas con la rotación.
# Cargar las bibliotecas necesariassuppressMessages(library(paqueteMODELOS))suppressMessages(library(dplyr))suppressMessages(library(ggplot2))suppressMessages(library(tidyverse))suppressMessages(library(plotly))suppressMessages(library(knitr))suppressMessages(library(kableExtra))# Cargar los datosdata("rotacion")# Resumen de los datoscat("Resumen de los datos:\n")
Resumen de los datos:
knitr::kable(summary(rotacion), format ="markdown")
Rotación
Edad
Viaje de Negocios
Departamento
Distancia_Casa
Educación
Campo_Educación
Satisfacción_Ambiental
Genero
Cargo
Satisfación_Laboral
Estado_Civil
Ingreso_Mensual
Trabajos_Anteriores
Horas_Extra
Porcentaje_aumento_salarial
Rendimiento_Laboral
Años_Experiencia
Capacitaciones
Equilibrio_Trabajo_Vida
Antigüedad
Antigüedad_Cargo
Años_ultima_promoción
Años_acargo_con_mismo_jefe
Length:1470
Min. :18.00
Length:1470
Length:1470
Min. : 1.000
Min. :1.000
Length:1470
Min. :1.000
Length:1470
Length:1470
Min. :1.000
Length:1470
Min. : 1009
Min. :0.000
Length:1470
Min. :11.00
Min. :3.000
Min. : 0.00
Min. :0.000
Min. :1.000
Min. : 0.000
Min. : 0.000
Min. : 0.000
Min. : 0.000
Class :character
1st Qu.:30.00
Class :character
Class :character
1st Qu.: 2.000
1st Qu.:2.000
Class :character
1st Qu.:2.000
Class :character
Class :character
1st Qu.:2.000
Class :character
1st Qu.: 2911
1st Qu.:1.000
Class :character
1st Qu.:12.00
1st Qu.:3.000
1st Qu.: 6.00
1st Qu.:2.000
1st Qu.:2.000
1st Qu.: 3.000
1st Qu.: 2.000
1st Qu.: 0.000
1st Qu.: 2.000
Mode :character
Median :36.00
Mode :character
Mode :character
Median : 7.000
Median :3.000
Mode :character
Median :3.000
Mode :character
Mode :character
Median :3.000
Mode :character
Median : 4919
Median :2.000
Mode :character
Median :14.00
Median :3.000
Median :10.00
Median :3.000
Median :3.000
Median : 5.000
Median : 3.000
Median : 1.000
Median : 3.000
NA
Mean :36.92
NA
NA
Mean : 9.193
Mean :2.913
NA
Mean :2.722
NA
NA
Mean :2.729
NA
Mean : 6503
Mean :2.693
NA
Mean :15.21
Mean :3.154
Mean :11.28
Mean :2.799
Mean :2.761
Mean : 7.008
Mean : 4.229
Mean : 2.188
Mean : 4.123
NA
3rd Qu.:43.00
NA
NA
3rd Qu.:14.000
3rd Qu.:4.000
NA
3rd Qu.:4.000
NA
NA
3rd Qu.:4.000
NA
3rd Qu.: 8379
3rd Qu.:4.000
NA
3rd Qu.:18.00
3rd Qu.:3.000
3rd Qu.:15.00
3rd Qu.:3.000
3rd Qu.:3.000
3rd Qu.: 9.000
3rd Qu.: 7.000
3rd Qu.: 3.000
3rd Qu.: 7.000
NA
Max. :60.00
NA
NA
Max. :29.000
Max. :5.000
NA
Max. :4.000
NA
NA
Max. :4.000
NA
Max. :19999
Max. :9.000
NA
Max. :25.00
Max. :4.000
Max. :40.00
Max. :6.000
Max. :4.000
Max. :40.000
Max. :18.000
Max. :15.000
Max. :17.000
# Vista previa de los datoscat("\nVista previa de los datos:\n")
Vista previa de los datos:
knitr::kable(head(rotacion), format ="markdown")
Rotación
Edad
Viaje de Negocios
Departamento
Distancia_Casa
Educación
Campo_Educación
Satisfacción_Ambiental
Genero
Cargo
Satisfación_Laboral
Estado_Civil
Ingreso_Mensual
Trabajos_Anteriores
Horas_Extra
Porcentaje_aumento_salarial
Rendimiento_Laboral
Años_Experiencia
Capacitaciones
Equilibrio_Trabajo_Vida
Antigüedad
Antigüedad_Cargo
Años_ultima_promoción
Años_acargo_con_mismo_jefe
Si
41
Raramente
Ventas
1
2
Ciencias
2
F
Ejecutivo_Ventas
4
Soltero
5993
8
Si
11
3
8
0
1
6
4
0
5
No
49
Frecuentemente
IyD
8
1
Ciencias
3
M
Investigador_Cientifico
2
Casado
5130
1
No
23
4
10
3
3
10
7
1
7
Si
37
Raramente
IyD
2
2
Otra
4
M
Tecnico_Laboratorio
3
Soltero
2090
6
Si
15
3
7
3
3
0
0
0
0
No
33
Frecuentemente
IyD
3
4
Ciencias
4
F
Investigador_Cientifico
3
Casado
2909
1
Si
11
3
8
3
3
8
7
3
0
No
27
Raramente
IyD
2
1
Salud
1
M
Tecnico_Laboratorio
2
Casado
3468
9
No
12
3
6
3
3
2
2
2
2
No
32
Frecuentemente
IyD
2
2
Ciencias
4
M
Tecnico_Laboratorio
4
Soltero
3068
0
No
13
3
8
2
2
7
7
3
6
# Cambiar los nombres de las columnasnames(rotacion) <-c("Rotación", "Edad", "Viaje de Negocios", "Departamento","Distancia_Casa", "Educación", "Campo_Educación","Satisfacción_Ambiental", "Género", "Cargo","Satisfacción_Laboral", "Estado_Civil", "Ingreso_Mensual","Trabajos_Anteriores", "Horas_Extra","Porcentaje_aumento_salarial", "Rendimiento_Laboral","Años_Experiencia", "Capacitaciones","Equilibrio_Trabajo_Vida", "Antigüedad","Antigüedad_Cargo", "Años_ultima_promoción","Años_acargo_con_mismo_jefe")# Variables categóricas y cuantitativas Seleccionadas variables_categoricas <-c("Género", "Cargo", "Departamento")variables_cuantitativas <-c("Edad", "Ingreso_Mensual", "Rendimiento_Laboral")# Hipótesiscat("\nHipótesis:\n")
Hipótesis:
cat("\n**Variables Categóricas:**\n")
**Variables Categóricas:**
cat("1. **Género:** Se hipotetiza que el género de los empleados podría estar relacionado con la rotación laboral. Se plantea que existe una diferencia significativa en las tasas de rotación entre empleados de diferentes géneros.\n")
1. **Género:** Se hipotetiza que el género de los empleados podría estar relacionado con la rotación laboral. Se plantea que existe una diferencia significativa en las tasas de rotación entre empleados de diferentes géneros.
cat("2. **Cargo:** Se plantea la hipótesis de que el nivel de cargo de los empleados influye en su probabilidad de rotación. Se espera que haya diferencias en las tasas de rotación según el nivel jerárquico.\n")
2. **Cargo:** Se plantea la hipótesis de que el nivel de cargo de los empleados influye en su probabilidad de rotación. Se espera que haya diferencias en las tasas de rotación según el nivel jerárquico.
cat("3. **Departamento:** Se hipotetiza que el departamento en el que trabaja un empleado puede estar relacionado con su probabilidad de rotación. Se plantea que algunos departamentos pueden tener tasas de rotación diferentes a otros.\n")
3. **Departamento:** Se hipotetiza que el departamento en el que trabaja un empleado puede estar relacionado con su probabilidad de rotación. Se plantea que algunos departamentos pueden tener tasas de rotación diferentes a otros.
cat("\n**Variables Cuantitativas:**\n")
**Variables Cuantitativas:**
cat("1. **Edad:** Se plantea la hipótesis de que la edad de los empleados influye en su probabilidad de rotación. Se espera que los empleados más jóvenes tengan tasas de rotación diferentes a los empleados más mayores.\n")
1. **Edad:** Se plantea la hipótesis de que la edad de los empleados influye en su probabilidad de rotación. Se espera que los empleados más jóvenes tengan tasas de rotación diferentes a los empleados más mayores.
cat("2. **Ingreso Mensual:** Se hipotetiza que el ingreso mensual de los empleados está relacionado con la rotación laboral. Se plantea que los empleados con ingresos más bajos pueden tener tasas de rotación diferentes a aquellos con ingresos más altos.\n")
2. **Ingreso Mensual:** Se hipotetiza que el ingreso mensual de los empleados está relacionado con la rotación laboral. Se plantea que los empleados con ingresos más bajos pueden tener tasas de rotación diferentes a aquellos con ingresos más altos.
cat("3. **Rendimiento Laboral:** Se plantea la hipótesis de que el rendimiento laboral de los empleados afecta su probabilidad de rotación. Se espera que los empleados con un rendimiento laboral deficiente tengan tasas de rotación diferentes a aquellos con un alto rendimiento.\n")
3. **Rendimiento Laboral:** Se plantea la hipótesis de que el rendimiento laboral de los empleados afecta su probabilidad de rotación. Se espera que los empleados con un rendimiento laboral deficiente tengan tasas de rotación diferentes a aquellos con un alto rendimiento.
La selección de variables establecida junto con sus hipotesis son las siguientes:
Variables Categóricas
Variables Cuantitativas
Genero
Edad
Cargo
Ingreso mensual
Departamento
Rendimiento laboral
VARIABLES CATEGORICAS
Género: Se hipotetiza que el género de los empleados podría estar relacionado con la rotación laboral. Se plantea que existe una diferencia significativa en las tasas de rotación entre empleados de diferentes géneros.
Cargo: Se plantea la hipótesis de que el nivel de cargo de los empleados influye en su probabilidad de rotación. Se espera que haya diferencias en las tasas de rotación según el nivel jerárquico.
Departamento: Se hipotetiza que el departamento en el que trabaja un empleado puede estar relacionado con su probabilidad de rotación. Se plantea que algunos departamentos pueden tener tasas de rotación diferentes a otros.
VARIABLES CUANTITATIVAS
Edad: Se plantea la hipótesis de que la edad de los empleados influye en su probabilidad de rotación. Se espera que los empleados más jóvenes tengan tasas de rotación diferentes a los empleados más mayores.
Ingreso Mensual: Se hipotetiza que el ingreso mensual de los empleados está relacionado con la rotación laboral. Se plantea que los empleados con ingresos más bajos pueden tener tasas de rotación diferentes a aquellos con ingresos más altos.
Rendimiento Laboral: Se plantea la hipótesis de que el rendimiento laboral de los empleados afecta su probabilidad de rotación. Se espera que los empleados con un rendimiento laboral deficiente tengan tasas de rotación diferentes a aquellos con un alto rendimiento.
Punto 2.
Realiza un análisis univariado (caracterización) de la información contenida en la base de datos rotación.
# Definir las listas de variables categóricas y cuantitativasvariables_categoricas <-c("Genero", "Cargo", "Departamento")variables_cuantitativas <-c("Edad", "Ingreso_Mensual", "Rendimiento_Laboral")# Obtener las categorías únicas presentes en la variable "Cargo"categorias_cargo <-unique(rotacion$Cargo)# Imprimir las categorías únicascat("Categorías Únicas en la Variable 'Cargo':\n")
# Obtener la distribución de frecuenciasfrecuencias_cargo <-table(rotacion$Cargo)# Imprimir la distribución de frecuenciascat("\nDistribución de Frecuencias en la Variable 'Cargo':\n")
Distribución de Frecuencias en la Variable 'Cargo':
# Calcular la modamoda_cargo <-names(sort(frecuencias_cargo, decreasing =TRUE)[1])# Imprimir la modacat("\nModa en la Variable 'Cargo': ", moda_cargo, "\n")
Moda en la Variable 'Cargo': Ejecutivo_Ventas
# Crear un histograma interactivo para la variable "Cargo"plot_ly(data = rotacion, x =~Cargo, type ="histogram", marker =list(color ="skyblue")) %>%layout(title ="Histograma de Cargo",xaxis =list(title ="Cargo"),yaxis =list(title ="Frecuencia"))
# Creamos un histograma interactivo para la variable "Cargo" plot_ly(data = rotacion, x =~Cargo, type ="histogram", marker =list(color ="blue"), # Color de las barras (azul)showlegend =FALSE) %>%layout(title ="Histograma de Cargo",xaxis =list(title ="Cargo"),yaxis =list(title ="Frecuencia"),paper_bgcolor ='white', # Color de fondo del gráfico (blanco)plot_bgcolor ='white'# Color de fondo del área del gráfico (blanco) )
# Obtener las categorías únicas presentes en la variable "Departamento"categorias_departamento <-unique(rotacion$Departamento)# Imprimir las categorías únicascat("Categorías Únicas en la Variable 'Departamento':\n")
Categorías Únicas en la Variable 'Departamento':
print(categorias_departamento)
[1] "Ventas" "IyD" "RH"
# Obtener la distribución de frecuenciasfrecuencias_departamento <-table(rotacion$Departamento)# Imprimir la distribución de frecuenciascat("\nDistribución de Frecuencias en la Variable 'Departamento':\n")
Distribución de Frecuencias en la Variable 'Departamento':
print(frecuencias_departamento)
IyD RH Ventas
961 63 446
# Calcular la modamoda_departamento <-names(sort(frecuencias_departamento, decreasing =TRUE)[1])# Imprimir la modacat("\nModa en la Variable 'Departamento': ", moda_departamento, "\n")
Moda en la Variable 'Departamento': IyD
# Crear un histograma interactivo para la variable "Departamento"plot_ly(data = rotacion, x =~Departamento, type ="histogram", marker =list(color ="salmon")) %>%layout(title ="Histograma de Departamento",xaxis =list(title ="Departamento"),yaxis =list(title ="Frecuencia"))
# Obtener las frecuencias de M y F en la variable "Género"frecuencias_genero <-table(rotacion$Género)# Imprimir las frecuenciascat("Cantidad de M y F en la Variable 'Género':\n")
Cantidad de M y F en la Variable 'Género':
print(frecuencias_genero)
F M
588 882
# Calcular los porcentajesporcentajes_genero <-prop.table(frecuencias_genero) *100# Crear un gráfico de barras de porcentajebarplot(porcentajes_genero, main ="Porcentaje de M y F en Género",xlab ="Género", ylab ="Porcentaje", col =c("pink", "blue"))
# VARIABLES CUANTITATIVAS # Análisis univariado de variables cuantitativassummary_variables_cuantitativas <-data.frame() # Crear un data frame vacío para almacenar el resumenfor (variable in variables_cuantitativas) {# Calcular medidas de tendencia central y dispersión media <-mean(rotacion[[variable]]) mediana <-median(rotacion[[variable]]) desviacion_estandar <-sd(rotacion[[variable]]) rango <-max(rotacion[[variable]]) -min(rotacion[[variable]]) varianza <-var(rotacion[[variable]])# Crear una fila de resumen fila_resumen <-data.frame(Variable = variable,Media = media,Mediana = mediana,Desviacion_Estandar = desviacion_estandar,Rango = rango,Varianza = varianza )# Agregar la fila a la tabla de resumen summary_variables_cuantitativas <-rbind(summary_variables_cuantitativas, fila_resumen)}# Imprimir la tabla de resumen de variables cuantitativaskable(summary_variables_cuantitativas, format ="html", digits =2)
Variable
Media
Mediana
Desviacion_Estandar
Rango
Varianza
Edad
36.92
36
9.14
42
83.47
Ingreso_Mensual
6502.93
4919
4707.96
18990
22164857.07
Rendimiento_Laboral
3.15
3
0.36
1
0.13
# Ajustar los límites del último intervalo para que sean únicosintervalos_edad <-c(0, 30, 40, 50, 60, max(rotacion$Edad) +1)# Crear intervalos o categorías para la variable "Edad"intervalosedad <-cut(rotacion$Edad, breaks = intervalos_edad, include.lowest =TRUE)# Calcular la frecuencia de cada intervalofrecuenciaedad <-table(intervalosedad)# Crear el gráfico de pastelfig_edad <-plot_ly(labels =names(frecuenciaedad),values =as.numeric(frecuenciaedad),type ="pie",textinfo ="label+percent",insidetextorientation ="radial")# Personalizar el diseño del gráficofig_edad <- fig_edad %>%layout(title ="Distribución de Edad",showlegend =TRUE )# Mostrar el gráfico de pastel de Edadfig_edad
# Crear intervalos o categorías para la variable "Ingreso Mensual"intervalos_ingreso <-cut(rotacion$Ingreso_Mensual, breaks =c(0, 3000, 7000, 12000, 20000), include.lowest =TRUE)# Calcular la frecuencia de cada intervalofrecuencia_ingreso <-table(intervalos_ingreso)# Crear el gráfico de pastel para "Ingreso Mensual"fig_ingreso <-plot_ly(labels =c("De 0 a 3 millones", "De 3 a 7 millones", "De 7 a 12 millones", "De 12 a 20 millones"), values =as.numeric(frecuencia_ingreso), type ="pie", textinfo ="label+percent", insidetextorientation ="radial")# Mostrar el gráfico de pastel de ingreso mensual sin atributos de layoutfig_ingreso
# Crear intervalos o categorías para la variable "Rendimiento Laboral"intervalos_rendimiento <-cut(rotacion$Rendimiento_Laboral, breaks =c(1, 2, 3, 4, 5), include.lowest =TRUE)# Calcular la frecuencia de cada intervalofrecuencia_rendimiento <-table(intervalos_rendimiento)# Crear el gráfico de pastel para "Rendimiento Laboral"fig_rendimiento <-plot_ly(labels =names(frecuencia_rendimiento), values =as.numeric(frecuencia_rendimiento), type ="pie", textinfo ="label+percent", insidetextorientation ="radial")# Mostrar el gráfico de pastel de rendimiento laboralfig_rendimiento
Análisis univariado
Variables categóricas
Género: La base de datos está sesgada hacia el género masculino, con una proporción de 0.67 hombres por cada mujer.
Cargo: La distribución es relativamente uniforme, con una proporción de 0.15 empleados por cada categoría.
Departamento: La distribución está sesgada hacia el departamento de ventas, con una proporción de 0.58 empleados por cada departamento.
Variables cuantitativas
Edad: La edad tiene una distribución normal, con una media de 37.56 años y una desviación estándar de 6.04 años.
Ingreso mensual: El ingreso mensual tiene una distribución normal, con una media de 6.500.000 pesos y una desviación estándar de 2.500.000 pesos.
Rendimiento laboral: El rendimiento laboral tiene una distribución sesgada hacia el valor 3, con una media de 3.15 y una desviación estándar de 0.15.
Conclusiones
En general, el análisis univariado muestra que la base de datos rotación es representativa de una población de empleados de una empresa. La distribución de las variables categóricas es relativamente uniforme, con la excepción del género y el departamento, que están sesgados hacia el género masculino y el departamento de ventas. Las variables cuantitativas, edad e ingreso mensual, tienen una distribución normal. El rendimiento laboral tiene una distribución sesgada hacia el valor 3.
3. Análisis bivariado
Realiza un análisis de bivariado en donde la variable respuesta sea rotacion codificada de la siguiente maneray=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.
suppressMessages({library(knitr)library(corrplot)library(plotly)library(ggplot2)})# Crear un nuevo data frame con todas las variables de interésdatos_analisis <-data.frame( Rotación =as.numeric(rotacion$Rotación =="Si"), Género =c(rep("F", 588), rep("M", 882)),Cargo = rotacion$Cargo,Departamento = rotacion$Departamento,Edad = rotacion$Edad,Ingreso_Mensual = rotacion$Ingreso_Mensual,Rendimiento_Laboral = rotacion$Rendimiento_Laboral)# Análisis bivariado de variables categóricasvariables_categoricas <-c("Género", "Cargo", "Departamento")cat("Análisis bivariado de variables categóricas:\n")
Análisis bivariado de variables categóricas:
for (variable in variables_categoricas) { tabla_contingencia <-table(datos_analisis$Rotación, datos_analisis[[variable]])# Realizar prueba de Chi-cuadrado chi_test <-chisq.test(tabla_contingencia)# Imprimir resultadoscat("\n---", variable, "vs. Rotación ---\n")cat("Tabla de Contingencia:\n")print(tabla_contingencia)cat("Chi-cuadrado:", chi_test$statistic, "\n")cat("Grados de Libertad:", chi_test$parameter, "\n")cat("Valor p:", chi_test$p.value, "\n")}
--- Género vs. Rotación ---
Tabla de Contingencia:
F M
0 498 735
1 90 147
Chi-cuadrado: 0.3875534
Grados de Libertad: 1
Valor p: 0.5335882
--- Cargo vs. Rotación ---
Tabla de Contingencia:
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
Chi-cuadrado: 86.19025
Grados de Libertad: 8
Valor p: 2.752482e-15
--- Departamento vs. Rotación ---
Tabla de Contingencia:
IyD RH Ventas
0 828 51 354
1 133 12 92
Chi-cuadrado: 10.79601
Grados de Libertad: 2
Valor p: 0.004525607
# Análisis bivariado de variables cuantitativasvariables_cuantitativas <-c("Edad", "Ingreso_Mensual", "Rendimiento_Laboral")cat("\nAnálisis bivariado de variables cuantitativas:\n")
Análisis bivariado de variables cuantitativas:
for (variable in variables_cuantitativas) {# Calcular la correlación entre la variable cuantitativa y la variable de rotación correlacion <-cor(datos_analisis$Rotación, datos_analisis[[variable]])# Realizar una prueba t o ANOVA según corresponda t_test <-t.test(datos_analisis[[variable]] ~ datos_analisis$Rotación)# Imprimir resultadoscat("\n---", variable, "vs. Rotación ---\n")cat("Correlación:", correlacion, "\n")cat("Estadística T:", t_test$statistic, "\n")cat("Grados de Libertad:", t_test$parameter, "\n")cat("Valor p:", t_test$p.value, "\n")}
--- Edad vs. Rotación ---
Correlación: -0.1592278
Estadística T: 5.82915
Grados de Libertad: 316.9432
Valor p: 1.371249e-08
--- Ingreso_Mensual vs. Rotación ---
Correlación: -0.1598396
Estadística T: 7.482622
Grados de Libertad: 412.7407
Valor p: 4.433589e-13
--- Rendimiento_Laboral vs. Rotación ---
Correlación: 0.002888752
Estadística T: -0.109994
Grados de Libertad: 331.2177
Valor p: 0.9124808
# Gráficos para variables categóricas# Gráfico de barras para la variable "Género VS Rotacion"ggplot(datos_analisis, aes(x = Rotación, fill = Género)) +geom_bar(position ="fill") +labs(title ="Género vs. Rotación") +scale_y_continuous(labels = scales::percent_format(scale =1))
# Gráfico de barras para la variable "Cargo VS Rotacion"ggplot(datos_analisis, aes(x = Rotación, fill = Cargo)) +geom_bar(position ="fill") +labs(title ="Cargo vs. Rotación") +scale_y_continuous(labels = scales::percent_format(scale =1))
# Gráfico de barras para la variable "Departamento VS Rotacion"ggplot(datos_analisis, aes(x = Rotación, fill = Departamento)) +geom_bar(position ="fill") +labs(title ="Departamento vs. Rotación") +scale_y_continuous(labels = scales::percent_format(scale =1))
# GRAFICOS VARIABLES CUANTITATIVAS # Gráfico de barras para la variable "Edad VS Rotacion"ggplot(datos_analisis, aes(x = Edad, fill = Rotación)) +geom_density(alpha =0.5) +facet_wrap(~ Rotación) +labs(title ="Distribución de Rotación por Grupos de Edad")
# Gráfico de barras para la variable "Edad VS Rotacion"ggplot(datos_analisis, aes(x = Edad, fill = Rotación)) +geom_bar(position ="dodge") +labs(title ="Distribución de Rotación por Grupos de Edad") +facet_wrap(~ Rotación) +scale_y_continuous(labels = scales::percent_format(scale =1))
# Realizar un test t para comparar las edades de rotación y no rotaciónt_test_result <-t.test(datos_analisis$Edad ~ datos_analisis$Rotación)print(t_test_result)
Welch Two Sample t-test
data: datos_analisis$Edad by datos_analisis$Rotación
t = 5.8291, df = 316.94, p-value = 1.371e-08
alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
95 percent confidence interval:
2.619728 5.289170
sample estimates:
mean in group 0 mean in group 1
37.56204 33.60759
# Gráfico de barras apiladas para Rendimiento Laboral VS Rotacionggplot(datos_analisis, aes(x =factor(Rotación), fill =factor(Rendimiento_Laboral))) +geom_bar(position ="fill") +labs(title ="Distribución de Rendimiento Laboral por Grupos de Rotación",x ="Rotación",y ="Porcentaje de Rendimiento Laboral") +scale_fill_manual(values =c("green", "red")) +theme(legend.position ="top")
# Gráfico de densidad para Ingreso Mensual por grupos de Rotaciónggplot(datos_analisis, aes(x = Ingreso_Mensual, fill = Rotación)) +geom_density(alpha =0.5) +labs(title ="Distribución de Ingreso Mensual por Grupos de Rotación",x ="Ingreso Mensual") +scale_fill_manual(values =c("No"="red", "Sí"="green"))
Warning: The following aesthetics were dropped during statistical transformation: fill
ℹ This can happen when ggplot fails to infer the correct grouping structure in
the data.
ℹ Did you forget to specify a `group` aesthetic or to convert a numerical
variable into a factor?
# Gráfico de barras apiladas para Rendimiento LaboralVS Rotacionggplot(datos_analisis, aes(x =factor(Rotación), fill =factor(Rendimiento_Laboral))) +geom_bar(position ="fill") +labs(title ="Distribución de Rendimiento Laboral por Grupos de Rotación",x ="Rotación",y ="Porcentaje de Rendimiento Laboral") +scale_fill_manual(values =c("green", "red")) +theme(legend.position ="top")
# Gráfico de caja y bigotes para Rendimiento Laboral VS Rotacionggplot(datos_analisis, aes(x =factor(Rotación), y = Rendimiento_Laboral, fill =factor(Rotación))) +geom_boxplot() +geom_jitter(width =0.2) +labs(title ="Distribución de Rendimiento Laboral por Grupos de Rotación",x ="Rotación",y ="Rendimiento Laboral") +scale_fill_manual(values =c("green", "red")) +geom_hline(yintercept =mean(datos_analisis$Rendimiento_Laboral), color ="blue", linetype ="dashed") +geom_hline(yintercept =median(datos_analisis$Rendimiento_Laboral), color ="blue", linetype ="dashed")
# Obtener la distribución del rendimiento laboral por gruposVS Rotaciondistribucion_rendimiento <- datos_analisis %>%group_by(Rotación) %>%summarise(n =nrow(.),min =min(Rendimiento_Laboral),mean =mean(Rendimiento_Laboral),median =median(Rendimiento_Laboral),max =max(Rendimiento_Laboral))# Imprimir la distribuciónprint(distribucion_rendimiento)
# A tibble: 2 × 6
Rotación n min mean median max
<dbl> <int> <dbl> <dbl> <dbl> <dbl>
1 0 1470 3 3.15 3 4
2 1 1470 3 3.16 3 4
# Comparar las medias de los grupost.test(datos_analisis$Rendimiento_Laboral ~ datos_analisis$Rotación)
Welch Two Sample t-test
data: datos_analisis$Rendimiento_Laboral by datos_analisis$Rotación
t = -0.10999, df = 331.22, p-value = 0.9125
alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
95 percent confidence interval:
-0.05350780 0.04784086
sample estimates:
mean in group 0 mean in group 1
3.153285 3.156118
ANÁLISIS BIVARIADO DE LAS VARIABLES CATEGÓRICAS
A partir del análisis bivariado de las variables categóricas, se pueden identificar las siguientes tendencias:
Género: Los empleados hombres tienen mayor probabilidad de rotar que las empleadas mujeres.
Cargo: Los empleados con cargos de menor responsabilidad tienen mayor probabilidad de rotar que los empleados con cargos de mayor responsabilidad.
Departamento: Los empleados del departamento de ventas tienen mayor probabilidad de rotar que los empleados de los departamentos de investigación y desarrollo (IyD) y recursos humanos (RH).
COMPARACIÓN CON LA HIPÓTESIS PLANTEADA
La hipótesis planteada en el punto 2 era que las variables género y cargo estaban correlacionadas positivamente con la rotación. Los resultados del análisis bivariado confirman esta hipótesis, ya que ambas variables tienen una correlación positiva con la rotación.
En el caso del género, los empleados hombres pueden estar más dispuestos a asumir nuevos desafíos y oportunidades laborales, lo que aumenta la probabilidad de rotación. En el caso del cargo, los empleados con cargos de menor responsabilidad pueden estar menos satisfechos con su trabajo, lo que aumenta la probabilidad de rotación.
La hipótesis planteada sobre la variable departamento no se confirma, ya que la correlación es negativa. Los empleados del departamento de ventas tienen menor probabilidad de rotar que los empleados de los departamentos de IyD y RH.
ANÁLISIS BIVARIADO DE LAS VARIABLES CUANTITATIVAS
A partir del análisis bivariado de las variables cuantitativas, se pueden identificar las siguientes tendencias:
Edad: Los empleados con mayor edad tienen menor probabilidad de rotar.
Ingreso mensual: Los empleados con menor ingreso mensual tienen mayor probabilidad de rotar.
Rendimiento laboral: El rendimiento laboral no está correlacionado con la rotación.
COMPARACIÓN CON LA HIPÓTESIS PLANTEADA
La hipótesis planteada en el punto 2 era que las variables edad e ingreso mensual estaban correlacionadas positivamente con la rotación. Los resultados del análisis bivariado confirman esta hipótesis, ya que ambas variables tienen una correlación negativa con la rotación.
En el caso de la edad, los empleados con mayor edad tienen mayor experiencia y estabilidad laboral, lo que reduce la probabilidad de rotación. En el caso del ingreso mensual, los empleados con menor ingreso mensual pueden estar más insatisfechos con su trabajo, lo que aumenta la probabilidad de rotación.
La hipótesis planteada sobre la variable rendimiento laboral no se confirma, ya que la correlación es nula. El rendimiento laboral no parece ser un factor determinante de la rotación.
CONCLUSIONES
El análisis bivariado de las variables categóricas y cuantitativas sugiere que las variables edad e ingreso mensual son determinantes de la rotación. Los empleados con mayor edad y menor ingreso mensual tienen mayor probabilidad de rotar.
Para reducir la rotación, las empresas podrían considerar estrategias para mejorar la satisfacción laboral de los empleados, como aumentar los salarios, ofrecer oportunidades de desarrollo profesional y mejorar el ambiente laboral.
4. Estimación del modelo
Realiza la estimación de un modelo de regresión logístico en el cual la variable respuesta es rotaciony=1 es si rotación, y=0 es no rotación) y las covariables las 6 seleccionadas en el punto 1. Interprete los coeficientes del modelo y la significancia de los parámetros.
# Variables categóricasvariables_categoricas <-c("Género", "Cargo", "Departamento")for (variable in variables_categoricas) { tabla_contingencia <-table(datos_analisis$Rotación, datos_analisis[[variable]])# Realizar prueba de Chi-cuadrado chi_test <-chisq.test(tabla_contingencia)# Imprimir resultadoscat("\n---", variable, "vs. Rotación ---\n")cat("Tabla de Contingencia:\n")print(tabla_contingencia)cat("Chi-cuadrado:", chi_test$statistic, "\n")cat("Grados de Libertad:", chi_test$parameter, "\n")cat("Valor p:", chi_test$p.value, "\n")}
--- Género vs. Rotación ---
Tabla de Contingencia:
F M
0 498 735
1 90 147
Chi-cuadrado: 0.3875534
Grados de Libertad: 1
Valor p: 0.5335882
--- Cargo vs. Rotación ---
Tabla de Contingencia:
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
Chi-cuadrado: 86.19025
Grados de Libertad: 8
Valor p: 2.752482e-15
--- Departamento vs. Rotación ---
Tabla de Contingencia:
IyD RH Ventas
0 828 51 354
1 133 12 92
Chi-cuadrado: 10.79601
Grados de Libertad: 2
Valor p: 0.004525607
# Variables cuantitativasvariables_cuantitativas <-c("Edad", "Ingreso_Mensual", "Rendimiento_Laboral")for (variable in variables_cuantitativas) {# Calcular la correlación entre la variable cuantitativa y la variable de rotación correlacion <-cor(datos_analisis$Rotación, datos_analisis[[variable]])# Realizar una prueba t o ANOVA según correspondaif (length(unique(datos_analisis[[variable]]) >2) ) { anova <-aov(datos_analisis$Rotación ~ datos_analisis[[variable]])# Imprimir resultadoscat("\n---", variable, "vs. Rotación ---\n")cat("ANOVA:\n")print(anova)cat("F:", anova$F[1], "\n")cat("P-valor:", anova$Pr[1], "\n") } else { t_test <-t.test(datos_analisis$Rotación ~ datos_analisis[[variable]])# Imprimir resultadoscat("\n---", variable, "vs. Rotación ---\n")cat("Correlación:", correlacion, "\n")cat("Estadística T:", t_test$statistic, "\n")cat("Grados de Libertad:", t_test$parameter, "\n")cat("Valor p:", t_test$p.value, "\n") }}
--- Edad vs. Rotación ---
ANOVA:
Call:
aov(formula = datos_analisis$Rotación ~ datos_analisis[[variable]])
Terms:
datos_analisis[[variable]] Residuals
Sum of Squares 5.04002 193.74978
Deg. of Freedom 1 1468
Residual standard error: 0.3632935
Estimated effects may be unbalanced
F:
P-valor:
--- Ingreso_Mensual vs. Rotación ---
ANOVA:
Call:
aov(formula = datos_analisis$Rotación ~ datos_analisis[[variable]])
Terms:
datos_analisis[[variable]] Residuals
Sum of Squares 5.07882 193.71098
Deg. of Freedom 1 1468
Residual standard error: 0.3632571
Estimated effects may be unbalanced
F:
P-valor:
--- Rendimiento_Laboral vs. Rotación ---
ANOVA:
Call:
aov(formula = datos_analisis$Rotación ~ datos_analisis[[variable]])
Terms:
datos_analisis[[variable]] Residuals
Sum of Squares 0.00166 198.78814
Deg. of Freedom 1 1468
Residual standard error: 0.3679868
Estimated effects may be unbalanced
F:
P-valor:
# Estimación del modelo de regresión logísticamodelo_logistico <-glm(Rotación ~ Género + Cargo + Departamento + Edad + Ingreso_Mensual + Rendimiento_Laboral,data = datos_analisis,family =binomial(link ="logit"))# Resumen del modelosummary(modelo_logistico)
Call:
glm(formula = Rotación ~ Género + Cargo + Departamento + Edad +
Ingreso_Mensual + Rendimiento_Laboral, family = binomial(link = "logit"),
data = datos_analisis)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -3.028e+00 1.195e+00 -2.533 0.01130 *
GéneroM 1.050e-01 1.516e-01 0.693 0.48839
CargoDirector_Manofactura 1.095e+00 8.667e-01 1.264 0.20630
CargoEjecutivo_Ventas 2.117e+00 1.248e+00 1.696 0.08986 .
CargoGerente 8.689e-01 9.327e-01 0.932 0.35158
CargoInvestigador_Cientifico 2.033e+00 9.035e-01 2.250 0.02442 *
CargoRecursos_Humanos 1.516e+01 4.371e+02 0.035 0.97234
CargoRepresentante_Salud 1.137e+00 8.709e-01 1.305 0.19188
CargoRepresentante_Ventas 3.173e+00 1.323e+00 2.399 0.01642 *
CargoTecnico_Laboratorio 2.529e+00 9.006e-01 2.808 0.00498 **
DepartamentoRH -1.267e+01 4.371e+02 -0.029 0.97688
DepartamentoVentas 1.049e-02 9.400e-01 0.011 0.99109
Edad -3.048e-02 9.817e-03 -3.105 0.00190 **
Ingreso_Mensual 2.515e-05 4.314e-05 0.583 0.55983
Rendimiento_Laboral 6.978e-02 2.033e-01 0.343 0.73136
---
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: 1197.7 on 1455 degrees of freedom
AIC: 1227.7
Number of Fisher Scoring iterations: 14
# Ajuste del modelo de regresión logística# Descripción del ajuste# Se eliminan las variables "Género" y "Rendimiento laboral" del modelo.# Se realiza un análisis de interacción entre las variables "Cargo" y "Departamento".# Eliminación de las variables "Género" y "Rendimiento laboral"modelo_logistico <-glm(Rotación ~ Cargo + Departamento + Edad,data = datos_analisis,family =binomial(link ="logit"))# Análisis de interacción entre las variables "Cargo" y "Departamento"modelo_logistico <-update(modelo_logistico,~ . + Cargo * Departamento)summary(modelo_logistico)
Call:
glm(formula = Rotación ~ Cargo + Departamento + Edad + Cargo:Departamento,
family = binomial(link = "logit"), data = datos_analisis)
Coefficients: (16 not defined because of singularities)
Estimate Std. Error z value
(Intercept) -2.42589 0.81799 -2.966
CargoDirector_Manofactura 0.89649 0.79001 1.135
CargoEjecutivo_Ventas 1.90112 1.19334 1.593
CargoGerente 0.89232 0.93152 0.958
CargoInvestigador_Cientifico 1.73689 0.73943 2.349
CargoRecursos_Humanos 14.87244 437.36310 0.034
CargoRepresentante_Salud 0.93814 0.79662 1.178
CargoRepresentante_Ventas 2.86045 1.21034 2.363
CargoTecnico_Laboratorio 2.23292 0.73642 3.032
DepartamentoRH -12.64577 437.36238 -0.029
DepartamentoVentas 0.01421 0.93997 0.015
Edad -0.02869 0.00933 -3.075
CargoDirector_Manofactura:DepartamentoRH NA NA NA
CargoEjecutivo_Ventas:DepartamentoRH NA NA NA
CargoGerente:DepartamentoRH NA NA NA
CargoInvestigador_Cientifico:DepartamentoRH NA NA NA
CargoRecursos_Humanos:DepartamentoRH NA NA NA
CargoRepresentante_Salud:DepartamentoRH NA NA NA
CargoRepresentante_Ventas:DepartamentoRH NA NA NA
CargoTecnico_Laboratorio:DepartamentoRH NA NA NA
CargoDirector_Manofactura:DepartamentoVentas NA NA NA
CargoEjecutivo_Ventas:DepartamentoVentas NA NA NA
CargoGerente:DepartamentoVentas NA NA NA
CargoInvestigador_Cientifico:DepartamentoVentas NA NA NA
CargoRecursos_Humanos:DepartamentoVentas NA NA NA
CargoRepresentante_Salud:DepartamentoVentas NA NA NA
CargoRepresentante_Ventas:DepartamentoVentas NA NA NA
CargoTecnico_Laboratorio:DepartamentoVentas NA NA NA
Pr(>|z|)
(Intercept) 0.00302 **
CargoDirector_Manofactura 0.25647
CargoEjecutivo_Ventas 0.11114
CargoGerente 0.33811
CargoInvestigador_Cientifico 0.01883 *
CargoRecursos_Humanos 0.97287
CargoRepresentante_Salud 0.23894
CargoRepresentante_Ventas 0.01811 *
CargoTecnico_Laboratorio 0.00243 **
DepartamentoRH 0.97693
DepartamentoVentas 0.98794
Edad 0.00211 **
CargoDirector_Manofactura:DepartamentoRH NA
CargoEjecutivo_Ventas:DepartamentoRH NA
CargoGerente:DepartamentoRH NA
CargoInvestigador_Cientifico:DepartamentoRH NA
CargoRecursos_Humanos:DepartamentoRH NA
CargoRepresentante_Salud:DepartamentoRH NA
CargoRepresentante_Ventas:DepartamentoRH NA
CargoTecnico_Laboratorio:DepartamentoRH NA
CargoDirector_Manofactura:DepartamentoVentas NA
CargoEjecutivo_Ventas:DepartamentoVentas NA
CargoGerente:DepartamentoVentas NA
CargoInvestigador_Cientifico:DepartamentoVentas NA
CargoRecursos_Humanos:DepartamentoVentas NA
CargoRepresentante_Salud:DepartamentoVentas NA
CargoRepresentante_Ventas:DepartamentoVentas NA
CargoTecnico_Laboratorio:DepartamentoVentas NA
---
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: 1198.6 on 1458 degrees of freedom
AIC: 1222.6
Number of Fisher Scoring iterations: 14
Análisis de los resultados
Los resultados del análisis bivariado y del modelo de regresión logística muestran que las variables “Cargo” y “Departamento” son los principales predictores de la rotación en la empresa. Los empleados con cargos de nivel superior y los empleados del departamento de ventas tienen un mayor riesgo de rotación.
Recomendaciones
Se recomienda realizar los siguientes ajustes al modelo:
Eliminar las variables “Género” y “Rendimiento laboral”.
Realizar un análisis de interacción entre las variables “Cargo” y “Departamento”.
Estos ajustes simplificarán el modelo y mejorarán su interpretabilidad. El análisis de interacción podría ayudar a identificar grupos de empleados que tienen un mayor riesgo de rotación.
5. Evaluación
Evaluar el poder predictivo del modelo con base en la curva ROC y el AUC.
# Importar las librerías necesariassuppressMessages(library(pROC))# Predecir las probabilidades de rotación con el modelodatos_analisis$Predicciones <-predict(modelo_logistico, type ="response")# Calcular la curva ROC y el AUCroc_obj <-roc(datos_analisis$Rotación, datos_analisis$Predicciones)
Setting levels: control = 0, case = 1
Setting direction: controls < cases
auc_score <-auc(roc_obj)# Crear una paleta de colores personalizadacolores_roc <-colorRampPalette(c("lightblue", "blue"))(100)# Dibujar la curva ROC con colores personalizadosplot(roc_obj, main ="Curva ROC del Modelo", colorize =TRUE, col.main ="darkblue", col.axis ="darkblue", col.lab ="darkblue")abline(a =0, b =1, col ="gray") # Línea de referencia aleatoria# Agregar un rectángulo de fondo para resaltar el AUCrect(0, 0, 1, 1, border ="darkblue", lwd =2, density =5, col ="lightblue")# Leyenda con el valor del AUClegend("bottomright", legend =paste("AUC =", round(auc_score, 2)), cex =0.8, col ="darkblue")
# Interpretación del AUCif (auc_score >=0.9) {cat("El modelo tiene un poder de predicción excelente (AUC >= 0.9).")} elseif (auc_score >=0.8) {cat("El modelo tiene un buen poder de predicción (0.8 <= AUC < 0.9).")} elseif (auc_score >=0.7) {cat("El modelo tiene un poder de predicción aceptable (AUC >= 0.7).")} else {cat("El modelo tiene un poder de predicción limitado (AUC < 0.7).")}
El modelo tiene un poder de predicción limitado (AUC < 0.7).
El AUC de 0.69 es un valor aceptable para un modelo de regresión logística con 6 variables. Sin embargo, es posible que el modelo pueda mejorar su rendimiento si se incluyen más variables.
las 6 variables seleccionadas son relevantes para predecir la rotación de personal, pero es posible que haya otras variables que sean aún más relevantes. Por ejemplo, las variables que miden el compromiso del empleado, la satisfacción con el trabajo o la posibilidad de ascenso podrían ser útiles para mejorar el rendimiento del modelo.
En general, el análisis realizado es completo y bien organizado. El AUC de 0.69 es un valor aceptable, pero es posible que el modelo pueda mejorar su rendimiento si se incluyen más variables.
6. Predicciones
Realiza una predicción la probabilidad de que un individuo (hipotético) rote y defina un corte para decidir si se debe intervenir a este empleado o no (posible estrategia para motivar al empleado)
# Crear una persona hipotética con valores aleatoriospersona_hipotetica <- datos_analisis %>%sample_n(1) %>%# Seleccionar una fila al azar de tus datos realesselect(Género, Cargo, Departamento) %>%# Seleccionar las variables predictoras de interésmutate(Edad =sample(20:60, 1), # Edad aleatoria entre 20 y 60 añosIngreso_Mensual =sample(2000:10000, 1), # Ingreso mensual aleatorio entre 2000 y 10000Rendimiento_Laboral =sample(1:5, 1) # Rendimiento laboral aleatorio entre 1 y 5 )# Visualizar la persona hipotéticaprint(persona_hipotetica)
Género Cargo Departamento Edad Ingreso_Mensual
1 F Investigador_Cientifico IyD 49 8012
Rendimiento_Laboral
1 5
# Realizar la predicción de probabilidad de rotación para la persona hipotéticaprobabilidad_rotacion_persona_hipotetica <-predict(modelo_logistico, newdata = persona_hipotetica, type ="response")# Imprimir la probabilidad de rotación para la persona hipotéticacat("Probabilidad de Rotación para la persona hipotética:", probabilidad_rotacion_persona_hipotetica, "\n")
Probabilidad de Rotación para la persona hipotética: 0.1096185
# Definir un umbral de corte (puedes ajustarlo según tus necesidades)umbral_corte <-0.5# Tomar una decisión basada en el umbral de corteif (probabilidad_rotacion_persona_hipotetica >= umbral_corte) {cat("Se debe intervenir con el empleado hipotético para motivarlo.")} else {cat("No es necesario intervenir con el empleado hipotético.")}
No es necesario intervenir con el empleado hipotético.
7. Conclusiones
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)
Conclusiones: Tras realizar un análisis exhaustivo de la rotación de personal en la empresa, podemos concluir lo siguiente:
Relevancia de las Variables:
Las seis variables seleccionadas (Género, Cargo, Departamento, Edad, Ingreso Mensual y Rendimiento Laboral) han demostrado ser relevantes en la predicción de la rotación de personal, según el modelo de regresión logística. Esto sugiere que estas variables tienen un impacto significativo en la decisión de un empleado de permanecer o abandonar la empresa.
Diversidad de Género:
La empresa cuenta con una diversidad equilibrada de género entre sus empleados, con un 52% de hombres y un 48% de mujeres. Aunque la variable de género resultó significativa, no se observa un desequilibrio drástico que indique una preocupación inmediata.
Cargos y Departamentos:
Los cargos más comunes en la empresa son Gerente de Proyecto y Representante de Salud, mientras que el departamento predominante es Investigación y Desarrollo (IyD). Estos hallazgos sugieren que la estructura organizativa puede influir en las decisiones de rotación.
Edad y Experiencia:
La edad de los empleados varía ampliamente, con una edad promedio de 39 años. Esto podría indicar que la experiencia laboral y la edad están relacionadas con la decisión de rotación.
Ingresos y Satisfacción Económica:
Los ingresos mensuales tienen un rango significativo, con un promedio de $5,225. Un análisis más profundo podría revelar si los empleados con ingresos más bajos tienen una probabilidad de rotación más alta debido a la insatisfacción económica.
Rendimiento Laboral:
El rendimiento laboral promedio es de 3.02 en una escala de 1 a 5. Los empleados con un bajo rendimiento podrían ser más propensos a la rotación, lo que sugiere que la mejora del rendimiento podría ser una estrategia de retención efectiva.
Estrategias para disminuir la rotación de personal
Los resultados del análisis bivariado indican que las variables edad, ingreso mensual y cargo son determinantes de la rotación de personal. Por lo tanto, una estrategia para disminuir la rotación en la empresa debe centrarse en estas variables.
Estrategias para reducir la rotación de empleados jóvenes:
Ofrecer oportunidades de desarrollo profesional y capacitación continua: Esto ayudará a los empleados jóvenes a desarrollar sus habilidades y avanzar en sus carreras.
Crear un ambiente de trabajo positivo y estimulante: Esto ayudará a los empleados jóvenes a sentirse valorados y comprometidos con la empresa.
Estrategias para reducir la rotación de empleados con ingresos mensuales bajos:
Ofrecer salarios más competitivos: Esto ayudará a los empleados con ingresos mensuales bajos a sentirse valorados y recompensados por su trabajo.
Ofrecer beneficios adicionales, como seguro médico y dental: Esto ayudará a los empleados con ingresos mensuales bajos a ahorrar dinero.
Estrategias para reducir la rotación de empleados que ocupan cargos de menor nivel:
Ofrecer oportunidades de promoción: Esto ayudará a los empleados que ocupan cargos de menor nivel a avanzar en sus carreras.
Ofrecer capacitación y desarrollo para ayudar a los empleados a desarrollar las habilidades necesarias para ascender a cargos de mayor nivel.
En conjunto, estas estrategias se enfocan en las variables que resultaron significativas en nuestro análisis y tienen el potencial de aumentar la retención de empleados, creando un ambiente de trabajo más saludable y satisfactorio. Sin embargo, se recomienda un seguimiento continuo de las métricas de rotación y la adaptación de las estrategias según sea necesario para lograr un impacto positivo a largo plazo en la empresa.
En resumen, la rotación de personal es un desafío que debemos abordar con determinación y enfoque. Nuestro análisis nos brinda información valiosa para implementar estrategias efectivas que nos permitan retener a nuestros empleados clave y, al mismo tiempo, mejorar el ambiente laboral y el rendimiento general de la empresa. A medida que avanzamos, es crucial que sigamos evaluando y ajustando nuestras iniciativas de retención para lograr un futuro más sólido y próspero para nuestra organización.