library(readxl)
Datos <- read_excel("Datos_Rotación.xlsx")
head(Datos[,1:5])
| Rotación | Rotación_bin | Edad | Viaje de Negocios | Departamento |
|---|---|---|---|---|
| Si | 1 | 41 | Raramente | Ventas |
| No | 0 | 49 | Frecuentemente | IyD |
| Si | 1 | 37 | Raramente | IyD |
| No | 0 | 33 | Frecuentemente | IyD |
| No | 0 | 27 | Raramente | IyD |
| No | 0 | 32 | Frecuentemente | IyD |
dim(Datos)
## [1] 1470 25
La base de datos tiene 1470 filas y 25 columnas
summary(Datos)
## Rotación Rotación_bin Edad Viaje de Negocios
## Length:1470 Min. :0.0000 Min. :18.00 Length:1470
## Class :character 1st Qu.:0.0000 1st Qu.:30.00 Class :character
## Mode :character Median :0.0000 Median :36.00 Mode :character
## Mean :0.1612 Mean :36.92
## 3rd Qu.:0.0000 3rd Qu.:43.00
## Max. :1.0000 Max. :60.00
## Departamento Distancia_Casa Educación Campo_Educación
## Length:1470 Min. : 1.000 Min. :1.000 Length:1470
## Class :character 1st Qu.: 2.000 1st Qu.:2.000 Class :character
## Mode :character Median : 7.000 Median :3.000 Mode :character
## Mean : 9.193 Mean :2.913
## 3rd Qu.:14.000 3rd Qu.:4.000
## Max. :29.000 Max. :5.000
## Satisfacción_Ambiental Genero Cargo
## Min. :1.000 Length:1470 Length:1470
## 1st Qu.:2.000 Class :character Class :character
## Median :3.000 Mode :character Mode :character
## Mean :2.722
## 3rd Qu.:4.000
## Max. :4.000
## Satisfación_Laboral Estado_Civil Ingreso_Mensual Trabajos_Anteriores
## Min. :1.000 Length:1470 Min. : 1009 Min. :0.000
## 1st Qu.:2.000 Class :character 1st Qu.: 2911 1st Qu.:1.000
## Median :3.000 Mode :character Median : 4919 Median :2.000
## Mean :2.729 Mean : 6503 Mean :2.693
## 3rd Qu.:4.000 3rd Qu.: 8379 3rd Qu.:4.000
## Max. :4.000 Max. :19999 Max. :9.000
## Horas_Extra Porcentaje_aumento_salarial Rendimiento_Laboral
## Length:1470 Min. :11.00 Min. :3.000
## Class :character 1st Qu.:12.00 1st Qu.:3.000
## Mode :character Median :14.00 Median :3.000
## Mean :15.21 Mean :3.154
## 3rd Qu.:18.00 3rd Qu.:3.000
## Max. :25.00 Max. :4.000
## Años_Experiencia Capacitaciones Equilibrio_Trabajo_Vida Antigüedad
## Min. : 0.00 Min. :0.000 Min. :1.000 Min. : 0.000
## 1st Qu.: 6.00 1st Qu.:2.000 1st Qu.:2.000 1st Qu.: 3.000
## Median :10.00 Median :3.000 Median :3.000 Median : 5.000
## Mean :11.28 Mean :2.799 Mean :2.761 Mean : 7.008
## 3rd Qu.:15.00 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.: 9.000
## Max. :40.00 Max. :6.000 Max. :4.000 Max. :40.000
## Antigüedad_Cargo Años_ultima_promoción Años_acargo_con_mismo_jefe
## Min. : 0.000 Min. : 0.000 Min. : 0.000
## 1st Qu.: 2.000 1st Qu.: 0.000 1st Qu.: 2.000
## Median : 3.000 Median : 1.000 Median : 3.000
## Mean : 4.229 Mean : 2.188 Mean : 4.123
## 3rd Qu.: 7.000 3rd Qu.: 3.000 3rd Qu.: 7.000
## Max. :18.000 Max. :15.000 Max. :17.000
Se realiza una pequeña descripcion y exploracion parcial de la base de datos para conocer mejor las variables a trabajar.
De ese modo, se tiene para las variables cuantitativas los valores mínimo y máximos, asi como algunos cuartiles. En cambio para las variables categoricas, indica que son caracteres y la cantidad de veces que aparece.
Tiene 17 columnas con variables cuantitativas tales como: Edad, Satisfación_Laboral, Años_Experiencia, entreo otras.
En cambio tiene 8 columnas con varialbes cualitativas como por ejemplo: Rotación, Estado_Civil, Horas_Extra, entre otras.
Se priorizaron las siguentes variables cuantitativas para el analisis:
Horas extra: más horas extra mayor posibilidad de rotar.
Estado Civil: los solteros tienen más posibilidad de rotar.
Edad: los jovenes tienen más posibilidad de rotar.
Satisfación Laboral: valores más bajos en satisfacción tienden a rotar más.
Años Experiencia: valores más altos en experiencia tienden a rotar más.
Rendimiento Laboral: valores más bajos en rendimiento tienden a rotar más.
library(table1)
table1(~ Horas_Extra + Edad+ Estado_Civil, data=Datos)
| Overall (N=1470) |
|
|---|---|
| Horas_Extra | |
| No | 1054 (71.7%) |
| Si | 416 (28.3%) |
| Edad | |
| Mean (SD) | 36.9 (9.14) |
| Median [Min, Max] | 36.0 [18.0, 60.0] |
| Estado_Civil | |
| Casado | 673 (45.8%) |
| Divorciado | 327 (22.2%) |
| Soltero | 470 (32.0%) |
La tabla indica que de los 1470 trabajadores de la empresa el 28.3% trabajan horas extra, mientras que 71.7%. no trabajan horas extra. Las edades de los trabajadores oscila entre 18 y 60 años, con un promedio de 39 años. Con respecto al estado civil de los trabajadores, el 45.8% es casado, solteros tenemos 32% y divorciados 22.2%.
table1(~ Horas_Extra + Genero | Estado_Civil, data=Datos)
| Casado (N=673) |
Divorciado (N=327) |
Soltero (N=470) |
Overall (N=1470) |
|
|---|---|---|---|---|
| Horas_Extra | ||||
| No | 487 (72.4%) | 228 (69.7%) | 339 (72.1%) | 1054 (71.7%) |
| Si | 186 (27.6%) | 99 (30.3%) | 131 (27.9%) | 416 (28.3%) |
| Genero | ||||
| F | 272 (40.4%) | 117 (35.8%) | 199 (42.3%) | 588 (40.0%) |
| M | 401 (59.6%) | 210 (64.2%) | 271 (57.7%) | 882 (60.0%) |
La tabla indica que de los 1470 trabajadores el 28.3% trabaja horas extra. Ademas los porcentajes del estado civil de cada genero en los trabajadores.
table1(~ Satisfación_Laboral + Años_Experiencia| Rendimiento_Laboral, data=Datos)
## Warning in table1.formula(~Satisfación_Laboral + Años_Experiencia |
## Rendimiento_Laboral, : Terms to the right of '|' in formula 'x' define table
## columns and are expected to be factors with meaningful labels.
| 3 (N=1244) |
4 (N=226) |
Overall (N=1470) |
|
|---|---|---|---|
| Satisfación_Laboral | |||
| Mean (SD) | 2.73 (1.09) | 2.73 (1.15) | 2.73 (1.10) |
| Median [Min, Max] | 3.00 [1.00, 4.00] | 3.00 [1.00, 4.00] | 3.00 [1.00, 4.00] |
| Años_Experiencia | |||
| Mean (SD) | 11.3 (7.78) | 11.4 (7.80) | 11.3 (7.78) |
| Median [Min, Max] | 10.0 [0, 40.0] | 10.0 [1.00, 37.0] | 10.0 [0, 40.0] |
library(CGPfunctions)
PlotXTabs2(Datos, x=Horas_Extra, y= Rotación)
Como el p value es bajo (>0.05), indica que si existe una relacion entre las personas que trabajan horas extras y hacen rotacion
Se observa que el valor p de la pruebra \(X^2\) fue muy bajo (<0.001) es decir que existe una relacion entre trabajar horas extras y la ratacion. Los porcentaje nos indican que las personas que trabajn horas extras tienen un 31% de rotacion mientras que las que no tan solo 10%, soportando de esta manera la hipotesis inicial planteada
Ahora se crean varaibles compuestas productos de relacionar dos varaibles existentes.
En este primer caso se crea la variable mujer_extra compuesta por la relacion entre Horas_Extra y Genero, cuando este es Femenino.
Datos$mujer_extra=Datos$Horas_Extra=="Si" & Datos$Genero=="F"
PlotXTabs2(data = Datos, x=mujer_extra, y=Rotación)
Como el p value es bajo (>0.05), indica que si existe una relacion entre las mujeres que trabajan horas extras y hacen rotacion.
El valor p de la pruebra \(X^2\) fue muy bajo (<0.001) es decir que existe una relacion entre las variables escogidas. Donde el 26% de las mujeres con horas extras tienen rotacion.
En este segundo caso se crea la variable hombre_extra compuesta por la relacion entre Horas_Extra y Genero, cuando este es Masculino.
Datos$hombre_extra=Datos$Horas_Extra=="Si" & Datos$Genero=="M"
PlotXTabs2(data = Datos, x=hombre_extra, y=Rotación)
Como el p value es bajo (>0.05), indica que si existe una relacion entre las hombres que trabajan horas extras y hacen rotacion.
El valor p de la pruebra \(X^2\) fue muy bajo (<0.001) es decir que existe una relacion entre las variables escogidas. Donde el 34% de los hombres con horas extras tienen rotacion.
Se esocge el genero femenino para profundizar en los analisis:
Ahora creamos la variable mujer_casada_extra compuesta de las mujeres que trabajan horas extras y son casadas.
Datos$mujer_casada_extra=Datos$mujer_extra=="TRUE" & Datos$Estado_Civil=="Casado"
PlotXTabs2(data = Datos, x=mujer_casada_extra, y=Rotación)
El p value es superior a 0.05, indica que no existe relacion entre las variables evaluadas. Indica que el 19% de la mujeres casadas que trabajan horas extras tienen posibilidad de rotacion.
No existe relación entre las variables escogidas.
Se crea la variable mujer_soltera_extra compuesta de las mujeres que trabajan horas extras y son solteras.
Datos$mujer_soltera_extra=Datos$mujer_extra=="TRUE" & Datos$Estado_Civil=="Soltero"
PlotXTabs2(data = Datos, x=mujer_soltera_extra, y=Rotación)
Como el p value es bajo (>0.05), indica que si existe una relacion entre las mujeres que son solteras y trabajan horas extras y además hacen rotación
El valor p de la pruebra \(X^2\) fue muy bajo (<0.001) es decir que existe una relacion entre las variables escogidas. Donde el 41% de las mujeres solteras que trabajan tienen rotacion.
Se crea la variable mujer_divorciado_extra compuesta de las mujeres que trabajan horas extras y son divorciadas
Datos$mujer_divorciado_extra=Datos$mujer_extra=="TRUE" & Datos$Estado_Civil=="Divorciado"
PlotXTabs2(data = Datos, x=mujer_divorciado_extra, y=Rotación)
El p value es superior a 0.05, indica que no existe relacion entre las variables evaluadas. Indica que el 16% de la mujeres divorciadas que trabajan horas extras tienen posibilidad de rotacion.
No existe relación entre las variables escogidas.
library(ggpubr)
## Loading required package: ggplot2
Pruebas para medias promedio.
x <- Datos$Rotación
y <- Datos$Ingreso_Mensual
table1(~Ingreso_Mensual|Rotación, data = Datos)
| No (N=1233) |
Si (N=237) |
Overall (N=1470) |
|
|---|---|---|---|
| Ingreso_Mensual | |||
| Mean (SD) | 6830 (4820) | 4790 (3640) | 6500 (4710) |
| Median [Min, Max] | 5200 [1050, 20000] | 3200 [1010, 19900] | 4920 [1010, 20000] |
t.test(y~x)
##
## Welch Two Sample t-test
##
## data: y by x
## t = 7.4826, df = 412.74, p-value = 4.434e-13
## alternative hypothesis: true difference in means between group No and group Si is not equal to 0
## 95 percent confidence interval:
## 1508.244 2583.050
## sample estimates:
## mean in group No mean in group Si
## 6832.740 4787.093
table1(~Ingreso_Mensual | Rotación,data=Datos,
overall=F, extra.col=list(`P-value`=pvalue))
| No (N=1233) |
Si (N=237) |
P-value | |
|---|---|---|---|
| Ingreso_Mensual | |||
| Mean (SD) | 6830 (4820) | 4790 (3640) | <0.001 |
| Median [Min, Max] | 5200 [1050, 20000] | 3200 [1010, 19900] |
# Existe diferencia en el ingreso mensual de los trabajadores que hacen rotacion.
table1(~Ingreso_Mensual +Edad +Porcentaje_aumento_salarial+Genero| Rotación,data=Datos,
overall=FALSE, extra.col=list(`P-value`=pvalue))
| No (N=1233) |
Si (N=237) |
P-value | |
|---|---|---|---|
| Ingreso_Mensual | |||
| Mean (SD) | 6830 (4820) | 4790 (3640) | <0.001 |
| Median [Min, Max] | 5200 [1050, 20000] | 3200 [1010, 19900] | |
| Edad | |||
| Mean (SD) | 37.6 (8.89) | 33.6 (9.69) | <0.001 |
| Median [Min, Max] | 36.0 [18.0, 60.0] | 32.0 [18.0, 58.0] | |
| Porcentaje_aumento_salarial | |||
| Mean (SD) | 15.2 (3.64) | 15.1 (3.77) | 0.614 |
| Median [Min, Max] | 14.0 [11.0, 25.0] | 14.0 [11.0, 25.0] | |
| Genero | |||
| F | 501 (40.6%) | 87 (36.7%) | 0.291 |
| M | 732 (59.4%) | 150 (63.3%) |
Datos$mujer_soltera_Edad=cut(Datos$Edad,breaks = c(18,30,40,50,60))
table1(~mujer_extra + mujer_soltera_extra + mujer_soltera_Edad+ Satisfación_Laboral + Años_Experiencia| Rotación,data=Datos,
overall=FALSE, extra.col=list(`P-value`=pvalue))
| No (N=1233) |
Si (N=237) |
P-value | |
|---|---|---|---|
| mujer_extra | |||
| Yes | 133 (10.8%) | 47 (19.8%) | <0.001 |
| No | 1100 (89.2%) | 190 (80.2%) | |
| mujer_soltera_extra | |||
| Yes | 37 (3.0%) | 26 (11.0%) | <0.001 |
| No | 1196 (97.0%) | 211 (89.0%) | |
| mujer_soltera_Edad | |||
| (18,30] | 282 (22.9%) | 96 (40.5%) | <0.001 |
| (30,40] | 534 (43.3%) | 85 (35.9%) | |
| (40,50] | 288 (23.4%) | 34 (14.3%) | |
| (50,60] | 125 (10.1%) | 18 (7.6%) | |
| Missing | 4 (0.3%) | 4 (1.7%) | |
| Satisfación_Laboral | |||
| Mean (SD) | 2.78 (1.09) | 2.47 (1.12) | <0.001 |
| Median [Min, Max] | 3.00 [1.00, 4.00] | 3.00 [1.00, 4.00] | |
| Años_Experiencia | |||
| Mean (SD) | 11.9 (7.76) | 8.24 (7.17) | <0.001 |
| Median [Min, Max] | 10.0 [0, 38.0] | 7.00 [0, 40.0] |
Podemos concluir que las mujeres solteras que trabajan horas extras tiende a realizar más rotaciones que las mujeres casadas y divorciadas. Ademas, las mujeres con edad entre 18 y 30 años tienen mayor rotación con respecto a edades superiores de mujeres.
Se recomienda realizar un análisis más profundo de la situacion de las mujeres solteras verificando la realcion con otras variables como salario, Equilibrio_Trabajo_Vida, Satisfación_Laboral y Años_acargo_con_mismo_jefe, entre otras, para identificar mejor el fenomeno de rotación encontrado en este analisis.