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"

Variables

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.

Análisis univariado

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()

** Analisis bivariado **

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

** Modelo de regresión logistico **

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

Poder predictivo del modelo con base en la curva ROC y el AUC

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

Probabilidad de que un individuo (hipotetico) rote

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

Conclusiones

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.