Link presentación: https://www.canva.com/design/DAE8d8PrRM4/5TUsx3O-QZGfErRkpp74zg/view?utm_content=DAE8d8PrRM4&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton
library(readxl)
require(ggplot2)
require(ggpubr)
require(CGPfunctions)
Datos_Rotacion <- read_excel("C:/Users/Lenovo/Downloads/SEXTO SEMESTRE/ESTADISTICA AVANZADA/Rotacion/Datos_Rotacion.xlsx")
datos=Datos_Rotacion
names(datos)
## [1] "Rotación" "Edad"
## [3] "Viaje de Negocios" "Departamento"
## [5] "Distancia_Casa" "Educación"
## [7] "Campo_Educación" "Satisfacción_Ambiental"
## [9] "Genero" "Cargo"
## [11] "Satisfación_Laboral" "Estado_Civil"
## [13] "Ingreso_Mensual" "Trabajos_Anteriores"
## [15] "Horas_Extra" "Porcentaje_aumento_salarial"
## [17] "Rendimiento_Laboral" "Años_Experiencia"
## [19] "Capacitaciones" "Equilibrio_Trabajo_Vida"
## [21] "Antigüedad" "Antigüedad_Cargo"
## [23] "Años_ultima_promoción" "Años_acargo_con_mismo_jefe"
Seleccionar 3 variables categóricas (distintas de rotación) y 3 variables cuantitativas, que consideren estén relacionadas con la rotación.
Hipotesis 1: Las personas con menor satisfaccion ambiental, tienden a rotar mas que las que cuentan con mayor satisfaccion ambiental en el entorno en el que trabajan.
Hipotesis 2: Las personas que frecuentemente tengan mas viajes de negocios, tienden a rotar menos.
Hipotesis 3: Las personas solteras, tienen mas probabilidad de rotar que aquellas que son casadas o divorciadas.
Hipotesis 4: Las personas jovenes tienden a rotar mas que las personas mayores puesto que, son mas propensos a querer buscar nuevas oportunidades laborales.
Hipotesis 5: Las personas que ganen menos sueldo, tienen mayor probabilidad de rotar en comparacion con aquellos que ganan mas dado que, el pago del salario es importante.
Hipotesis 6: Las personas que vivan mas cerca al lugar de trabajo, tienden a rotar menos que las que viven mas lejos ya que estas, podrian tener mas problema para desplazarse.
En promedio la satisfacción ambiental de las personas es de 3.
Hay mayor porcentaje de personas dentro de la empresa que raramente tienen viaje de negocios. El 18.8% tiene viaje de negocios frecuentemente, mientras que el 10.2% no viaja.
El 45.8% de las personas se encuentran casad@s, el 22.2% son divorciad@s y el 32% son solter@s.
El menor ingreso mensual de los datos obtenido es de 1009 millones, el maximo es de 20000 y en promedio, el ingreso mensual fue de 6503 millones.
Graficamente, se puede identificar que hay mas cantidad de personas que viven cerca al lugar de trabajo. La distancia minima es de 1 km y la distancia maxima de 29 km sin embargo, en promedio se tiene que la distancia es de 9.1 km.
table1::table1(~ Satisfacción_Ambiental + `Viaje de Negocios` + Estado_Civil+ Edad+Ingreso_Mensual+Distancia_Casa| Rotación, data = datos)
No (N=1233) |
Si (N=237) |
Overall (N=1470) |
|
---|---|---|---|
Satisfacción_Ambiental | |||
Mean (SD) | 2.77 (1.07) | 2.46 (1.17) | 2.72 (1.09) |
Median [Min, Max] | 3.00 [1.00, 4.00] | 3.00 [1.00, 4.00] | 3.00 [1.00, 4.00] |
Viaje de Negocios | |||
Frecuentemente | 208 (16.9%) | 69 (29.1%) | 277 (18.8%) |
No_Viaja | 138 (11.2%) | 12 (5.1%) | 150 (10.2%) |
Raramente | 887 (71.9%) | 156 (65.8%) | 1043 (71.0%) |
Estado_Civil | |||
Casado | 589 (47.8%) | 84 (35.4%) | 673 (45.8%) |
Divorciado | 294 (23.8%) | 33 (13.9%) | 327 (22.2%) |
Soltero | 350 (28.4%) | 120 (50.6%) | 470 (32.0%) |
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] |
Ingreso_Mensual | |||
Mean (SD) | 6830 (4820) | 4790 (3640) | 6500 (4710) |
Median [Min, Max] | 5200 [1050, 20000] | 3200 [1010, 19900] | 4920 [1010, 20000] |
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] |
summary(datos$Edad)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 30.00 36.00 36.92 43.00 60.00
ggplot(datos,aes(x=datos$Edad))+geom_histogram()+theme_bw()
Realizar un análisis de bivariado en donde la variable respuesta sea la rotación, con base en estos resultados identifique cuales son las variables determinantes de la rotación e interpretar. Compare estos resultados con la hipotesis planteada en el punto 1.
La hipotesis 1 se cumple, el mayor porcentaje de las personas que rotaron tenian menor satisfaccion ambiental.
PlotXTabs2(data = datos,x = Satisfacción_Ambiental ,y = Rotación)
Para la hipotesis 2, se puede notar que las personas con mas rotación fueron aquellas que tenian viaje de negocios frecuentemente.
PlotXTabs2(data = datos,x = `Viaje de Negocios`,y = Rotación)
Se valida la hipotesis 3, las personas solteras rotaron mas en comparacion a las casadas y divorciadas.
PlotXTabs2(data = datos,x =Estado_Civil ,y = Rotación)
** Variable cuantitativa **
Se cumple la Hipótesis 4, hay diferencia entre la edad de los grupos que rotan y no rotan. En promedio la edad de los que no rotaron es mayor a la de los que si rotaron.
t.test(datos$Edad~datos$Rotación)
##
## Welch Two Sample t-test
##
## data: datos$Edad by datos$Rotación
## 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
Se cumple la Hipótesis 5, hay diferencia entre el ingreso mensual de los grupos que rotan y no rotan. En promedio el ingreso mensual de lo que si rotaron es menor en 2045 a los que no rotaron.
t.test(datos$Ingreso_Mensual~datos$Rotación)
##
## Welch Two Sample t-test
##
## data: datos$Ingreso_Mensual by datos$Rotación
## 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
Se cumple la Hipotesis 6, hay diferencia entre la distancia a casa de grupos que rotan y no rotan. En promedio los que rotaron viven mas lejos que los no rotaron.
t.test(datos$Distancia_Casa~datos$Rotación)
##
## Welch Two Sample t-test
##
## data: datos$Distancia_Casa by datos$Rotación
## 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
Como se puede identificar, las variables del modelo son significativas a excepción del estado civil divorciado. Si el coeficiente es negativo, se tiene que hay una relación inversamente proporcional con la rotación mientras que, si el coeficiente es positivo, existe una relación proporcional con respecto a la variable de respuesta.
Datos_Rotacion$y=as.numeric(datos$Rotación=="Si")
modelo=glm(y~Satisfacción_Ambiental+ `Estado_Civil` + `Viaje de Negocios` + Edad+Ingreso_Mensual+Distancia_Casa,data=Datos_Rotacion,family = binomial(link="logit"))
summary(modelo)
##
## Call:
## glm(formula = y ~ Satisfacción_Ambiental + Estado_Civil + `Viaje de Negocios` +
## Edad + Ingreso_Mensual + Distancia_Casa, family = binomial(link = "logit"),
## data = Datos_Rotacion)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.2933 -0.6326 -0.4553 -0.2703 3.0288
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 6.238e-01 4.130e-01 1.510 0.130955
## Satisfacción_Ambiental -2.828e-01 6.769e-02 -4.177 2.95e-05 ***
## Estado_CivilDivorciado -2.165e-01 2.241e-01 -0.966 0.333834
## Estado_CivilSoltero 8.236e-01 1.650e-01 4.993 5.94e-07 ***
## `Viaje de Negocios`No_Viaja -1.432e+00 3.446e-01 -4.155 3.25e-05 ***
## `Viaje de Negocios`Raramente -6.255e-01 1.727e-01 -3.621 0.000293 ***
## Edad -2.887e-02 9.792e-03 -2.949 0.003193 **
## Ingreso_Mensual -9.654e-05 2.451e-05 -3.939 8.18e-05 ***
## Distancia_Casa 3.063e-02 8.835e-03 3.467 0.000526 ***
## ---
## 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: 1155.7 on 1461 degrees of freedom
## AIC: 1173.7
##
## Number of Fisher Scoring iterations: 5
Vamos a evaluar el poder predictivo del modelo.
El poder de clasificación del modelo es de 72%. La sensibilidad es del 76% y hace referencia a aquellos que el modelo dice que rotan y en verdad rotan mientras que, la especificidad es de 69% y hace referencia a aquellos que el modelo dice que no van a rotar y en verdad no rotan.
#Vamos a contruir la curva ROC y AUC
require(pROC)
probabilidad_modelo=modelo$fitted.values
objroc <- roc(Datos_Rotacion$Rotación ~ probabilidad_modelo,auc=T,ci=T)
objroc
##
## Call:
## roc.formula(formula = Datos_Rotacion$Rotación ~ probabilidad_modelo, auc = T, ci = T)
##
## Data: probabilidad_modelo in 1233 controls (Datos_Rotacion$Rotación No) < 237 cases (Datos_Rotacion$Rotación Si).
## Area under the curve: 0.7258
## 95% CI: 0.6902-0.7614 (DeLong)
plot.roc(objroc,print.auc=T,print.thres = "best",col="red"
,xlab = "Specificity", ylab = "Sensitivity")
En el punto de corte, se tiene que el umbral de clasificación es del 16% es decir, que los que estén por encima de este porcentaje rotaran. La sensibilidad es del 69% mientras que, la especificidad del 66%.
#Punto de corte:
c<-coords(objroc, "best", ret=c("threshold", "specificity", "sensitivity"),
as.list=FALSE,drop=TRUE, best.model=c("closest.topleft"), transpose = FALSE)
c
## $threshold
## [1] 0.1667088
##
## $specificity
## [1] 0.6674777
##
## $sensitivity
## [1] 0.6919831
lineal=predict(modelo,list(Satisfacción_Ambiental=2,Estado_Civil='Casado',`Viaje de Negocios`='No_Viaja',Edad=46,Ingreso_Mensual=1000,Distancia_Casa = 10 ))
exp(lineal)/(1+exp(lineal))
## 1
## 0.07642599
lineal=predict(modelo,list(Satisfacción_Ambiental=2,Estado_Civil='Soltero',`Viaje de Negocios`='Frecuentemente',Edad=33,Ingreso_Mensual=1000,Distancia_Casa = 7 ))
exp(lineal)/(1+exp(lineal))
## 1
## 0.5117625
Finalmente, después de todo el análisis llevado a cabo es de vital importancia que la compañía diseñe estrategias que permitan disminuir la rotación constante de empleados dentro de ella pues, por ejemplo, la rotación genera costos, puede impactar positiva o negativamente en la productividad de la empresa y puede llegar a afectar el ambiente laboral.
Por lo anterior, es muy recomendable invertir en estrategias o programas de retención que reduzcan ese índice algunas de las que planteo son las siguientes:
• Capacitaciones para el empleado sobre las tareas a desarrollar, brindar oportunidad de crecer laboralmente y motivaciones.
• Dado que la distancia a la casa es una variable significativa dentro del modelo y que entre mas lejos viva el empleado mas probabilidad tiene de rotar sería bueno implementar una ruta que le facilite a los empleados el recorrido hacia la empresa.
• Para que la satisfacción ambiental mejore dentro de la empresa seria recomendable realizar diferentes actividades de convivencia que mejoren la relación entre cada empleado como realizar festividades corporativas o celebraciones de fin de año.
• Dado que las personas con menor ingreso tienden a rotar más, seria importante tener en cuenta lo de salarios competitivos, ayudas económicas para comprar bienes, mayores beneficios económicos fuera del salario.
• Considerar la posibilidad de realizar reunion virtuales.