Instalación e importado de datos

options(repos = list(CRAN="http://cran.rstudio.com/"))
install.packages("readxl")
## Installing package into 'C:/Users/franc/AppData/Local/R/win-library/4.2'
## (as 'lib' is unspecified)
## package 'readxl' successfully unpacked and MD5 sums checked
## Warning: cannot remove prior installation of package 'readxl'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): problema al copiar C:
## \Users\franc\AppData\Local\R\win-library\4.2\00LOCK\readxl\libs\x64\readxl.dll
## a C:\Users\franc\AppData\Local\R\win-library\4.2\readxl\libs\x64\readxl.dll:
## Permission denied
## Warning: restored 'readxl'
## 
## The downloaded binary packages are in
##  C:\Users\franc\AppData\Local\Temp\Rtmpc3Jao2\downloaded_packages
library(readxl)
datos = read_excel("C:/Users/franc/OneDrive/Escritorio/Falabella/Datos_Rotacion2.xlsx")

names(datos)
##  [1] "Rotacion"                    "Edad"                       
##  [3] "Viaje de Negocios"           "Departamento"               
##  [5] "Distancia_Casa"              "Educacion"                  
##  [7] "Campo_Educacion"             "Satisfaccion_Ambiental"     
##  [9] "Genero"                      "Cargo"                      
## [11] "Satisfacion_Laboral"         "Estado_Civil"               
## [13] "Ingreso_Mensual"             "Trabajos_Anteriores"        
## [15] "Horas_Extra"                 "Porcentaje_aumento_salarial"
## [17] "Rendimiento_Laboral"         "Anios_Experiencia"          
## [19] "Capacitaciones"              "Equilibrio_Trabajo_Vida"    
## [21] "Antiguedad"                  "Antiguedad_Cargo"           
## [23] "Anios_ultima_promocion"      "Anios_acargo_con_mismo_jefe"
str(datos)
## tibble [1,470 × 24] (S3: tbl_df/tbl/data.frame)
##  $ Rotacion                   : chr [1:1470] "Si" "No" "Si" "No" ...
##  $ Edad                       : num [1:1470] 41 49 37 33 27 32 59 30 38 36 ...
##  $ Viaje de Negocios          : chr [1:1470] "Raramente" "Frecuentemente" "Raramente" "Frecuentemente" ...
##  $ Departamento               : chr [1:1470] "Ventas" "IyD" "IyD" "IyD" ...
##  $ Distancia_Casa             : num [1:1470] 1 8 2 3 2 2 3 24 23 27 ...
##  $ Educacion                  : num [1:1470] 2 1 2 4 1 2 3 1 3 3 ...
##  $ Campo_Educacion            : chr [1:1470] "Ciencias" "Ciencias" "Otra" "Ciencias" ...
##  $ Satisfaccion_Ambiental     : num [1:1470] 2 3 4 4 1 4 3 4 4 3 ...
##  $ Genero                     : chr [1:1470] "F" "M" "M" "F" ...
##  $ Cargo                      : chr [1:1470] "Ejecutivo_Ventas" "Investigador_Cientifico" "Tecnico_Laboratorio" "Investigador_Cientifico" ...
##  $ Satisfacion_Laboral        : num [1:1470] 4 2 3 3 2 4 1 3 3 3 ...
##  $ Estado_Civil               : chr [1:1470] "Soltero" "Casado" "Soltero" "Casado" ...
##  $ Ingreso_Mensual            : num [1:1470] 5993 5130 2090 2909 3468 ...
##  $ Trabajos_Anteriores        : num [1:1470] 8 1 6 1 9 0 4 1 0 6 ...
##  $ Horas_Extra                : chr [1:1470] "Si" "No" "Si" "Si" ...
##  $ Porcentaje_aumento_salarial: num [1:1470] 11 23 15 11 12 13 20 22 21 13 ...
##  $ Rendimiento_Laboral        : num [1:1470] 3 4 3 3 3 3 4 4 4 3 ...
##  $ Anios_Experiencia          : num [1:1470] 8 10 7 8 6 8 12 1 10 17 ...
##  $ Capacitaciones             : num [1:1470] 0 3 3 3 3 2 3 2 2 3 ...
##  $ Equilibrio_Trabajo_Vida    : num [1:1470] 1 3 3 3 3 2 2 3 3 2 ...
##  $ Antiguedad                 : num [1:1470] 6 10 0 8 2 7 1 1 9 7 ...
##  $ Antiguedad_Cargo           : num [1:1470] 4 7 0 7 2 7 0 0 7 7 ...
##  $ Anios_ultima_promocion     : num [1:1470] 0 1 0 3 2 3 0 0 1 7 ...
##  $ Anios_acargo_con_mismo_jefe: num [1:1470] 5 7 0 0 2 6 0 0 8 7 ...

La base de datos cuenta con 1.470 observaciones y 24 variables

1. Seleccion de variables de interes

1.1. Variables Cualitativas:{Horas_Extra,Rendimiento_Laboral,Equilibrio_Trabajo}

1.2. Variables Cuantitavivas:{Edad,Años_ultima_promoción,Distancia_Casa}

1.3. Hipotesis

Hipótesis 1: Un trabajador que tienda a tener que trabajar horas extra tendra mas probabilidades de cambiar de trabajo, con el objetivo de buscar un trabajo con menor carga laboral, en comparación con un trabajador que no tenga que hacer horas extra.

Hipótesis 2: Un trabajador sin un nivel adecuado de Rendimiento_Laboral tenderá a buscar un nuevo trabajo en comparación con un trabajor que se sienta satisfecho con su rendimiento en el puesto actual.

Hipótesis 3: Un trabajador sin un nivel adecuado de equilibrio de trabajo-vida tenderá a buscar un nuevo trabajo en comparación con un trabajor que se sienta satisfecho en su puesto actual.

Hipótesis 4: Un trabajador de mayor edad tenderá a conservar su trabajo actual, debido a que la probabilidad de conseguir un nuevo trabajo tiende a tener una correlación negativa con la edad.

Hipótesis 5: Los periodos extensos entre ascensos o promociones tienen a desmotivar a los trabajadores, por lo tanto, un trabajador cuya última promoción haya sido hace mucho tiempo, tenderá a buscar un nuevo trabajo. Por ende, dicho delta de tiempo y la probabilidad de cambiar de empleo podrian tener una correlación positiva.

Hiótesis 6: La distancia entre el trabajo y el hogar puede ser determinante a la hora de buscar un nuevo empleo, por lo tanto, dicha distancia y la probabilidad de de cambiar de empleo podrian tener una correlación positiva.

2. Análisis univariado

2.1. de variables cualitativas

require(ggplot2)
## Loading required package: ggplot2
require(ggpubr)
## Loading required package: ggpubr
g1=ggplot(datos,aes(x=factor(Rendimiento_Laboral)))+geom_bar(fill ='green') + theme_bw()

g2=ggplot(datos,aes(x=`Horas_Extra`))+geom_bar(fill="blue")+theme_bw()

g3=ggplot(datos,aes(x=factor(Equilibrio_Trabajo_Vida)))+geom_bar(fill="red")+theme_bw()

ggarrange(g1, g2, g3,labels = c("A", "B", "C"),ncol = 3, nrow = 1)

Resumen descriptivo de variables cualitativas

require(table1)
## Loading required package: table1
## 
## Attaching package: 'table1'
## The following objects are masked from 'package:base':
## 
##     units, units<-
y <- table1::table1(~factor(Rendimiento_Laboral)+Horas_Extra+factor(Equilibrio_Trabajo_Vida)| Rotacion, data=datos)
y
No
(N=1233)
Si
(N=237)
Overall
(N=1470)
factor(Rendimiento_Laboral)
3 1044 (84.7%) 200 (84.4%) 1244 (84.6%)
4 189 (15.3%) 37 (15.6%) 226 (15.4%)
Horas_Extra
No 944 (76.6%) 110 (46.4%) 1054 (71.7%)
Si 289 (23.4%) 127 (53.6%) 416 (28.3%)
factor(Equilibrio_Trabajo_Vida)
1 55 (4.5%) 25 (10.5%) 80 (5.4%)
2 286 (23.2%) 58 (24.5%) 344 (23.4%)
3 766 (62.1%) 127 (53.6%) 893 (60.7%)
4 126 (10.2%) 27 (11.4%) 153 (10.4%)

2.1.1 Análisis descriptivo variables cualitativas

Se puede evidenciar que el 84.6% de los trabajadores tienen un rendimiento laboral de 3, mientras que un 15.4% tienen un rendimiento de 4. Adicionalmente, la variable [Rendimiento_Laboral] cuyo dominio es {3,4}, NO presenta un comportamiento diferencial en la variable objetivo [Rotacion] en sus observaciones, esto se puede ver al analizar los datos, por ejemplo: de los tranajadores que NO ROTAN, el 84.7% es [Rendimiento_Laboral] = 3 y el 15.3% es [Rendimiento_Laboral] = 4; mientras que, de los que SI ROTAN, el 84.4% es [Rendimiento_Laboral] = 3 y el 15.6% es [Rendimiento_Laboral] = 4.Esto podría indicar que la variable de [Rendimiento_Laboral] no es significativa para determinar el el comportamiento de rotación.

Se puede ver que el 71.7% de los trabajadores NO ROTA y que el 28.3% restante SI ROTA, Sin embargo, se puede establecer que la variable [Horas_Extra] si esta relacionada con el comportamiento de la rotación, ya que el 76.6% de los trabajadores que NO ROTAN, no hacen horas extras (el 23.4% de los que NO ROTAN si hacen horas extras), pero en contraste, se puede evidenciar que de los trabajadores que SI ROTAN, solo el 46.4% no hacian horas extra, mostrando que el 53.6% de los trabajadores que SI ROTAN si hacen horas extra.

Por último, el 28.8% de los trabajadores tienen un equilibrio de trabajo-vida en {1,2}, y el 71.2% en {3,4}. En el caso de la variable [Equilibrio_Trabajo_Vida], esta relación no es tan marcada, sin embargo se puede ver que los trabajadores con niveles de equilibrio mas bajos ({1,2}), tienen a rotar mas, ya que de los trabajadores que NO ROTAN, tienen en un 27.7% un nivel de equilibrio trabajo-vida en escala {1,2}, dejando así un 72.3% con equilibrio {3,4}; para los trabajadores que SI ROTAN, esta proporción esta en 35% para {1,2} y 65% para equilibrio {3,4}.

2.2. de variables cuantitativas

require(ggplot2)
require(ggpubr)
g11=ggplot(datos,aes(x=Edad),col="red")+geom_histogram(fill="orange")+theme_bw()

g22=ggplot(datos,aes(x=Anios_ultima_promocion))+geom_histogram(fill="yellow")+theme_bw()

g33=ggplot(datos,aes(x=Distancia_Casa))+geom_histogram(fill="brown")+theme_bw()

ggarrange(g11, g22, g33,labels = c("A", "B", "C"),ncol = 3, nrow = 1)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

2.2.1. Relaciones entre variables de estudio y variable objetivo:

install.packages("table1")
## Warning: package 'table1' is in use and will not be installed
require(table1)
z <- table1::table1(~Edad+Anios_ultima_promocion+Distancia_Casa | Rotacion, data=datos)
z
No
(N=1233)
Si
(N=237)
Overall
(N=1470)
Edad
Mean (SD) 37.6 (8.89) 33.6 (9.69) 36.9 (9.14)
Median [Min, Max] 36.0 [18.0, 60.0] 32.0 [18.0, 58.0] 36.0 [18.0, 60.0]
Anios_ultima_promocion
Mean (SD) 2.23 (3.23) 1.95 (3.15) 2.19 (3.22)
Median [Min, Max] 1.00 [0, 15.0] 1.00 [0, 15.0] 1.00 [0, 15.0]
Distancia_Casa
Mean (SD) 8.92 (8.01) 10.6 (8.45) 9.19 (8.11)
Median [Min, Max] 7.00 [1.00, 29.0] 9.00 [1.00, 29.0] 7.00 [1.00, 29.0]

2.2.2. Análisis descriptivo de variables cuantitativas

El comportamiento de los indicadores de tendencia central muestra que el promedio de los trabajadores es de 36.9 años, mientras que el indicador de dispersión de desviación estandar de 9.14 años.

Por otro lado, se tiene que en promedio han pasado 2.19 años desde la última promoción, con una desviación estandar de 3.22 años, lo cual muestra unos datos en los cuales seguramente se presentaran datos atipicos, o outliers.

En cuanto a la variable [Distancia_Casa], se puede ver que un trabajador se tiene que desplazar en promedio 9.19 unidades de distancia desde su hogar hacia el trabajo, con una desviación estandar de 8.11 unidades.

3. Análisis Bivariado entre variables seleccionadas y variable objetivo

A continuación, se realizará un analisis multivariado, cruzando las variables de interes con la variable objetivo [Rotación], con el objetivo de ver graficamente, si estos factores explican la variabilidad del factor objetivo.

3.1 Análisis Bivariado cualitativo

Para el análisis Bivariado de caracter cualitativo se utilizará una prueba estadistica de correlación entre variables categoricas de Chi-Cuadrado, en la cual se tendra por Hipotesis nula (ho:X=0) que cada cruce de Variable Interes vs Variable Objetivo es independiente, y por hipotesis alterna (ha:X>0) que cada cruce de Variable Interes vs Variable Objetivo es dendependiente.

Relación entre las variables [Rendimiento_Laboral] y [Rotacion]:

require(CGPfunctions)
## Loading required package: CGPfunctions
PlotXTabs2(data=datos,x=Rendimiento_Laboral,y=Rotacion)

Se puede evidenciar en los resultados de la prueba Chi-Cuadrado que se confirma la hipotesis nula (ho:X=0), lo cual infica que hay una independencia entre las variables [Rendimiento_Laboral] y [Rotacion], este resultado converge con el análisis realizado a este relación en el punto 2.

Este resultado indica que el rendimiento laboral no influye en la decisión de un trabajador a la hora de cambiar de trabajo.

Relación entre las variables [Horas_Extra] y [Rotacion]:

PlotXTabs2(data=datos,x=Horas_Extra,y=Rotacion)

El resultado de la prueba CHi-Cuadrado muestra X=87.56, lo cual desmiente la hipotesis nula (ho:X=0), y confirma la hipotesis alterna (ha:X>0), lo cual significa que estadisticamente, hay una dependencia entre las variables [Horas_Extra] y [Rotracion].

Se puede ver que solo el 10% de los trabajadores que no tienen horas extras rotaron de trabajo, frente a un 31% de los trabajadores si tienen horas extras.

Este resultado indica que los trabajadores que NO tienen horas extras tenderan a rotar menos que los que SI tienen horas extras

Relación entre las variables [Equilibrio_Trabajo_Vida] y [Rotacion]:

PlotXTabs2(data=datos,x=Equilibrio_Trabajo_Vida,y=Rotacion)

Se puede evidenciar que X= 16.33, lo cual rechaza la hipostesis nula (ho:X=0), y confirma la hipotesis alterna (ha: X>0),mostrando que si existe una relación dependiente entre las dos variables.Esto se evidencia al ver que el 31% de los trabajadores con un nivel de equilibrio = 1 rotaron de trabajo, frente a solo un 18% de los trabajadores con un nivel de equilibrio = 4.

Se puede concluir que los trabajadores con un nivel de equilibrio bajo entre el trabajo y la vida personal tenderan a rotar con mayor frecuencia de trabajo.

3.2 Análisis Bivariado cuantitativo

Para el análisis Bivariado cuantitativo se utilizarán dos técnicas de análisis, t-test para verificar diferencias estadisticas entre medias, donde la hipotesis nula dicta que las medias son iguales (ho:X1-X2=0), lo cual indicaria que las dos variables son independiente, por otro lado, se tiene la hipotesis alterna que dicta que las medias son diferentes (ha: X1-X2<>0). La segunda técnica será un box chart para mirar graficamente las diferencias entre las distribuciones de los datos para las variables cuantitativas con respecto a la rotación.

Análisis de Edad vs Rotación

t.test(datos$Edad~datos$Rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  datos$Edad by datos$Rotacion
## t = 5.828, df = 316.93, p-value = 1.38e-08
## alternative hypothesis: true difference in means between group No and group Si is not equal to 0
## 95 percent confidence interval:
##  2.618930 5.288346
## sample estimates:
## mean in group No mean in group Si 
##         37.56123         33.60759

Con un P-Value de 0.0000000138, se puede ver que es menor al alfa de la prueba del 5%, lo cual indica que la hipotesis nula (ho:X1-X2=0) se rechaza, por lo tanto, las variables [Edad] y [Rotacion] si son dependientes según el análisis de T-Student.

p <- ggplot(datos, aes(x=Rotacion, y=Edad,color=Rotacion)) + 
  geom_boxplot()
p

Si se análiza con el Box chart, se puede ver que los trabajadores que NO Rotaron tienen un promedio de edad mayor (37.6 años) al de los trabajadores que SI Rotaron (33.6), esto se puede explicar ya que al avanzar en edad, es menos problable encontrar un trabajo con iguales o mejores condiciones.

Análisis de Años Última Promoción vs Rotación

t.test(datos$Anios_ultima_promocion ~ datos$Rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  datos$Anios_ultima_promocion by datos$Rotacion
## t = 1.2879, df = 338.49, p-value = 0.1987
## alternative hypothesis: true difference in means between group No and group Si is not equal to 0
## 95 percent confidence interval:
##  -0.1525043  0.7309843
## sample estimates:
## mean in group No mean in group Si 
##         2.234388         1.945148

Con un P-Value de 0.198, se puede ver que es mayor al alfa de la prueba del 5%, lo cual indica que la hipotesis nula (ho:X1-X2=0) se acepta, por lo tanto, las variables [Anios_ultima_promocion] y [Rotacion] son independientes según el análisis de T-Student.

p <- ggplot(datos,aes(x=Rotacion, y=Anios_ultima_promocion, color=Rotacion)) + geom_boxplot()
p

Si se análiza con el Box chart, se puede ver que los trabajadores que NO Rotaron tienen un promedio de años desde última promoción de (2.23 años), mientras la de los trabajadores que SI Rotaron (1.95), se puede ver que las medias de años desde la última promoción no son estadisticamente diferentes.

Análisis de Distancia_Casa vs Rotación

t.test(datos$Distancia_Casa ~ datos$Rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  datos$Distancia_Casa by datos$Rotacion
## t = -2.8882, df = 322.72, p-value = 0.004137
## alternative hypothesis: true difference in means between group No and group Si is not equal to 0
## 95 percent confidence interval:
##  -2.8870025 -0.5475146
## sample estimates:
## mean in group No mean in group Si 
##         8.915653        10.632911

Con un P-Value de 0.0041, se puede ver que es menor al alfa de la prueba del 5%, lo cual indica que la hipotesis nula (ho:X1-X2=0) se rechaza, por lo tanto, las variables [Distancia_Casa] y [Rotacion] son dependientes según el análisis de T-Student.

p <- ggplot(datos,aes(x=Rotacion, y=Distancia_Casa, color=Rotacion)) + geom_boxplot()
p

En el box chart se puede ver que las personas que SI Rotaron tienen en promedio una mayor distancia (Distancia=10.6) entre su casa y el trabajo que los que no rotaron (Distancia= 8.92).

4. conclusiones

Se pueden extraer las siguientes conclusiones de los análisis realizados, con el objetivo de mejorar la estrategia de retención del talento humano:

  1. El comportamiento de la variable de Rotación no depende del rendimiento laboral, por lo cual, las estrategias orientadas a mejorar el rendimiento laboral no tendran repercusión alguna en la tasa de rotación.

  2. Se deben plenear mejor las asignaciones de horas extra a los trabajadores, ya que se evidencia que la probabilidad de que un trabajador cambie de trabajo aumenta si se le cargan horas extra.

  3. Se deben crear estrategias para aumentar el equilibrio de trabajo-vida en los trabajadores, ya que este factor es determinante a la hora de cambiar de empleo.

  4. Se deben crear estrategias para la retención del capital humano joven, ya que estadisticamente se demostró que son los que tienden a rotar mas, por ende, se podría pensar en un plan de incentivos mas atractivo para dicho conjunto de trabajadores.

  5. Estadisticamente no hay una relación clara entre los años desde la ultima promoción, y la rotación, por ende no se deberian realizar muchos esfuerzos en dicho tema.

  6. Teniendo en cuenta que se evidencia una relación clara entre la distancia desde el trabajo hasta la casa, y la probabilidad de rotación, por ende, se debería tener en cuenta el domicilio de los nuevos aspirantes a la hora de contratarlos, o tambien se podría pensar en un servicio de transporte tipo ruta pagado por la empresa para disminuir la rotación del personal.