Rotación de cargo

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:

0.1 Punto 1

Seleccione 3 variables categóricas (distintas de rotación) y 3 variables cuantitativas, que se consideren estén relacionadas con la rotación. Nota: Debes justificar porque estas variables están relacionadas y que tipo de relación se espera entre ellas (Hipótesis).

0.1.1 Selección de variables

0.1.1.1 Variables categóricas

Rotación: esta es la variable que buscamos explicar

Genero: se plantea que por las demás obligaciones del hogar que tienen principalmente las mujeres, estas tendrían una mayor probabilidad de rotar de empleo dado que necesitan un trabajo que se adapte a sus demás compromisos.

Departamento: se plantea que departamentos como ventas tienen mayor exigencia sobre sus empelados, por tanto, estos buscan mayor rotación laboral. Caso contrario a lo ocurrido en departamentos como recursos humanos.

Estado civil: se plantea que una persona que esté casada buscará una mayor estabilidad laboral dadas sus obligaciones familiares, esto frente a una persona soltera y/o divorsiada que estaría más abierta a cambiar de empleo.

0.1.1.2 Variables cuantitativas

Ingresos mensuales: se plantea que personas con ingresos bajos tendrían mayores incentivos a rotar de trabajo en busca de mayores y mejores ingresos.

Edad: se plantea que a mayor edad las personas tienen menores incentivos en rotar de trabajo, esto dado que conocen y saben desempeñar una labor y comenzar con otra nueva puede asociarse a un riesgo alto. Caso contrario ocurriría con los jóvenes, los cuales estarían más abiertos a aprender y desempeñar diferentes roles en las empresas.

Distancia casa: se plantea que una persona que vive lejos de su sitio de trabajo tiene mayores incentivos a rotar de trabajo, dados los costo en téminos de tiempo que debe afrontar para llegar a este.

0.2 Punto 2

Realiza un análisis univariado (caracterización) de la información contenida en la base de datos rotacion.

0.2.1 Resumen de las variables de la base de datos

#devtools::install_github("dgonxalex80/paqueteMODELOS", force = TRUE)
library(paqueteMODELOS)
data("rotacion")

#Descripción general de las variables de la base de datos

summary(rotacion)
##    Rotación              Edad       Viaje de Negocios  Departamento      
##  Length:1470        Min.   :18.00   Length:1470        Length:1470       
##  Class :character   1st Qu.:30.00   Class :character   Class :character  
##  Mode  :character   Median :36.00   Mode  :character   Mode  :character  
##                     Mean   :36.92                                        
##                     3rd Qu.:43.00                                        
##                     Max.   :60.00                                        
##  Distancia_Casa     Educación     Campo_Educación    Satisfacción_Ambiental
##  Min.   : 1.000   Min.   :1.000   Length:1470        Min.   :1.000         
##  1st Qu.: 2.000   1st Qu.:2.000   Class :character   1st Qu.:2.000         
##  Median : 7.000   Median :3.000   Mode  :character   Median :3.000         
##  Mean   : 9.193   Mean   :2.913                      Mean   :2.722         
##  3rd Qu.:14.000   3rd Qu.:4.000                      3rd Qu.:4.000         
##  Max.   :29.000   Max.   :5.000                      Max.   :4.000         
##     Genero             Cargo           Satisfación_Laboral Estado_Civil      
##  Length:1470        Length:1470        Min.   :1.000       Length:1470       
##  Class :character   Class :character   1st Qu.:2.000       Class :character  
##  Mode  :character   Mode  :character   Median :3.000       Mode  :character  
##                                        Mean   :2.729                         
##                                        3rd Qu.:4.000                         
##                                        Max.   :4.000                         
##  Ingreso_Mensual Trabajos_Anteriores Horas_Extra       
##  Min.   : 1009   Min.   :0.000       Length:1470       
##  1st Qu.: 2911   1st Qu.:1.000       Class :character  
##  Median : 4919   Median :2.000       Mode  :character  
##  Mean   : 6503   Mean   :2.693                         
##  3rd Qu.: 8379   3rd Qu.:4.000                         
##  Max.   :19999   Max.   :9.000                         
##  Porcentaje_aumento_salarial Rendimiento_Laboral Años_Experiencia
##  Min.   :11.00               Min.   :3.000       Min.   : 0.00   
##  1st Qu.:12.00               1st Qu.:3.000       1st Qu.: 6.00   
##  Median :14.00               Median :3.000       Median :10.00   
##  Mean   :15.21               Mean   :3.154       Mean   :11.28   
##  3rd Qu.:18.00               3rd Qu.:3.000       3rd Qu.:15.00   
##  Max.   :25.00               Max.   :4.000       Max.   :40.00   
##  Capacitaciones  Equilibrio_Trabajo_Vida   Antigüedad     Antigüedad_Cargo
##  Min.   :0.000   Min.   :1.000           Min.   : 0.000   Min.   : 0.000  
##  1st Qu.:2.000   1st Qu.:2.000           1st Qu.: 3.000   1st Qu.: 2.000  
##  Median :3.000   Median :3.000           Median : 5.000   Median : 3.000  
##  Mean   :2.799   Mean   :2.761           Mean   : 7.008   Mean   : 4.229  
##  3rd Qu.:3.000   3rd Qu.:3.000           3rd Qu.: 9.000   3rd Qu.: 7.000  
##  Max.   :6.000   Max.   :4.000           Max.   :40.000   Max.   :18.000  
##  Años_ultima_promoción Años_acargo_con_mismo_jefe
##  Min.   : 0.000        Min.   : 0.000            
##  1st Qu.: 0.000        1st Qu.: 2.000            
##  Median : 1.000        Median : 3.000            
##  Mean   : 2.188        Mean   : 4.123            
##  3rd Qu.: 3.000        3rd Qu.: 7.000            
##  Max.   :15.000        Max.   :17.000

0.2.2 Descripción de las variables de la base de datos

#devtools::install_github("dgonxalex80/paqueteMODELOS", force = TRUE)
library(paqueteMODELOS)
data("rotacion")

#Descripción general de las variables de la base de datos

freq(rotacion)
## Frequencies  
## rotacion$Rotación  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          No   1233     83.88          83.88     83.88          83.88
##          Si    237     16.12         100.00     16.12         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Viaje de Negocios  
## Type: Character  
## 
##                        Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## -------------------- ------ --------- -------------- --------- --------------
##       Frecuentemente    277     18.84          18.84     18.84          18.84
##             No_Viaja    150     10.20          29.05     10.20          29.05
##            Raramente   1043     70.95         100.00     70.95         100.00
##                 <NA>      0                               0.00         100.00
##                Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Departamento  
## Type: Character  
## 
##                Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ------------ ------ --------- -------------- --------- --------------
##          IyD    961     65.37          65.37     65.37          65.37
##           RH     63      4.29          69.66      4.29          69.66
##       Ventas    446     30.34         100.00     30.34         100.00
##         <NA>      0                               0.00         100.00
##        Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Educación  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           1    170     11.56          11.56     11.56          11.56
##           2    282     19.18          30.75     19.18          30.75
##           3    572     38.91          69.66     38.91          69.66
##           4    398     27.07          96.73     27.07          96.73
##           5     48      3.27         100.00      3.27         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Campo_Educación  
## Type: Character  
## 
##                     Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------- ------ --------- -------------- --------- --------------
##          Ciencias    606     41.22          41.22     41.22          41.22
##       Humanidades     27      1.84          43.06      1.84          43.06
##          Mercadeo    159     10.82          53.88     10.82          53.88
##              Otra     82      5.58          59.46      5.58          59.46
##             Salud    464     31.56          91.02     31.56          91.02
##          Tecnicos    132      8.98         100.00      8.98         100.00
##              <NA>      0                               0.00         100.00
##             Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Satisfacción_Ambiental  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           1    284     19.32          19.32     19.32          19.32
##           2    287     19.52          38.84     19.52          38.84
##           3    453     30.82          69.66     30.82          69.66
##           4    446     30.34         100.00     30.34         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Genero  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           F    588     40.00          40.00     40.00          40.00
##           M    882     60.00         100.00     60.00         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Cargo  
## Type: Character  
## 
##                                 Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------------------------- ------ --------- -------------- --------- --------------
##        Director_Investigación     80      5.44           5.44      5.44           5.44
##          Director_Manofactura    145      9.86          15.31      9.86          15.31
##              Ejecutivo_Ventas    326     22.18          37.48     22.18          37.48
##                       Gerente    102      6.94          44.42      6.94          44.42
##       Investigador_Cientifico    292     19.86          64.29     19.86          64.29
##              Recursos_Humanos     52      3.54          67.82      3.54          67.82
##           Representante_Salud    131      8.91          76.73      8.91          76.73
##          Representante_Ventas     83      5.65          82.38      5.65          82.38
##           Tecnico_Laboratorio    259     17.62         100.00     17.62         100.00
##                          <NA>      0                               0.00         100.00
##                         Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Satisfación_Laboral  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           1    289     19.66          19.66     19.66          19.66
##           2    280     19.05          38.71     19.05          38.71
##           3    442     30.07          68.78     30.07          68.78
##           4    459     31.22         100.00     31.22         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Estado_Civil  
## Type: Character  
## 
##                    Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ---------------- ------ --------- -------------- --------- --------------
##           Casado    673     45.78          45.78     45.78          45.78
##       Divorciado    327     22.24          68.03     22.24          68.03
##          Soltero    470     31.97         100.00     31.97         100.00
##             <NA>      0                               0.00         100.00
##            Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Trabajos_Anteriores  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           0    197     13.40          13.40     13.40          13.40
##           1    521     35.44          48.84     35.44          48.84
##           2    146      9.93          58.78      9.93          58.78
##           3    159     10.82          69.59     10.82          69.59
##           4    139      9.46          79.05      9.46          79.05
##           5     63      4.29          83.33      4.29          83.33
##           6     70      4.76          88.10      4.76          88.10
##           7     74      5.03          93.13      5.03          93.13
##           8     49      3.33          96.46      3.33          96.46
##           9     52      3.54         100.00      3.54         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Horas_Extra  
## Type: Character  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          No   1054     71.70          71.70     71.70          71.70
##          Si    416     28.30         100.00     28.30         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Porcentaje_aumento_salarial  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          11    210     14.29          14.29     14.29          14.29
##          12    198     13.47          27.76     13.47          27.76
##          13    209     14.22          41.97     14.22          41.97
##          14    201     13.67          55.65     13.67          55.65
##          15    101      6.87          62.52      6.87          62.52
##          16     78      5.31          67.82      5.31          67.82
##          17     82      5.58          73.40      5.58          73.40
##          18     89      6.05          79.46      6.05          79.46
##          19     76      5.17          84.63      5.17          84.63
##          20     55      3.74          88.37      3.74          88.37
##          21     48      3.27          91.63      3.27          91.63
##          22     56      3.81          95.44      3.81          95.44
##          23     28      1.90          97.35      1.90          97.35
##          24     21      1.43          98.78      1.43          98.78
##          25     18      1.22         100.00      1.22         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Rendimiento_Laboral  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           3   1244     84.63          84.63     84.63          84.63
##           4    226     15.37         100.00     15.37         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Capacitaciones  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           0     54      3.67           3.67      3.67           3.67
##           1     71      4.83           8.50      4.83           8.50
##           2    547     37.21          45.71     37.21          45.71
##           3    491     33.40          79.12     33.40          79.12
##           4    123      8.37          87.48      8.37          87.48
##           5    119      8.10          95.58      8.10          95.58
##           6     65      4.42         100.00      4.42         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Equilibrio_Trabajo_Vida  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           1     80      5.44           5.44      5.44           5.44
##           2    344     23.40          28.84     23.40          28.84
##           3    893     60.75          89.59     60.75          89.59
##           4    153     10.41         100.00     10.41         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Antigüedad_Cargo  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           0    244     16.60          16.60     16.60          16.60
##           1     57      3.88          20.48      3.88          20.48
##           2    372     25.31          45.78     25.31          45.78
##           3    135      9.18          54.97      9.18          54.97
##           4    104      7.07          62.04      7.07          62.04
##           5     36      2.45          64.49      2.45          64.49
##           6     37      2.52          67.01      2.52          67.01
##           7    222     15.10          82.11     15.10          82.11
##           8     89      6.05          88.16      6.05          88.16
##           9     67      4.56          92.72      4.56          92.72
##          10     29      1.97          94.69      1.97          94.69
##          11     22      1.50          96.19      1.50          96.19
##          12     10      0.68          96.87      0.68          96.87
##          13     14      0.95          97.82      0.95          97.82
##          14     11      0.75          98.57      0.75          98.57
##          15      8      0.54          99.12      0.54          99.12
##          16      7      0.48          99.59      0.48          99.59
##          17      4      0.27          99.86      0.27          99.86
##          18      2      0.14         100.00      0.14         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Años_ultima_promoción  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           0    581     39.52          39.52     39.52          39.52
##           1    357     24.29          63.81     24.29          63.81
##           2    159     10.82          74.63     10.82          74.63
##           3     52      3.54          78.16      3.54          78.16
##           4     61      4.15          82.31      4.15          82.31
##           5     45      3.06          85.37      3.06          85.37
##           6     32      2.18          87.55      2.18          87.55
##           7     76      5.17          92.72      5.17          92.72
##           8     18      1.22          93.95      1.22          93.95
##           9     17      1.16          95.10      1.16          95.10
##          10      6      0.41          95.51      0.41          95.51
##          11     24      1.63          97.14      1.63          97.14
##          12     10      0.68          97.82      0.68          97.82
##          13     10      0.68          98.50      0.68          98.50
##          14      9      0.61          99.12      0.61          99.12
##          15     13      0.88         100.00      0.88         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00
## 
## rotacion$Años_acargo_con_mismo_jefe  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           0    263     17.89          17.89     17.89          17.89
##           1     76      5.17          23.06      5.17          23.06
##           2    344     23.40          46.46     23.40          46.46
##           3    142      9.66          56.12      9.66          56.12
##           4     98      6.67          62.79      6.67          62.79
##           5     31      2.11          64.90      2.11          64.90
##           6     29      1.97          66.87      1.97          66.87
##           7    216     14.69          81.56     14.69          81.56
##           8    107      7.28          88.84      7.28          88.84
##           9     64      4.35          93.20      4.35          93.20
##          10     27      1.84          95.03      1.84          95.03
##          11     22      1.50          96.53      1.50          96.53
##          12     18      1.22          97.76      1.22          97.76
##          13     14      0.95          98.71      0.95          98.71
##          14      5      0.34          99.05      0.34          99.05
##          15      5      0.34          99.39      0.34          99.39
##          16      2      0.14          99.52      0.14          99.52
##          17      7      0.48         100.00      0.48         100.00
##        <NA>      0                               0.00         100.00
##       Total   1470    100.00         100.00    100.00         100.00

0.3 Punto 3

Realiza un análisis de bivariado en donde la variable respuesta sea rotacion codificada de la siguiente manera (y=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.

library(paqueteMODELOS)
data("rotacion")

#Recodificar

rotacion$Rotación[rotacion$Rotación == "Si"] <- 1
rotacion$Rotación[rotacion$Rotación == "No"] <- 0

table(rotacion$Rotación)
## 
##    0    1 
## 1233  237
#Variables cuantitativas (Educación - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Educación[rotacion$Rotación==1],
     xlab="Educación (años)",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Educación[rotacion$Rotación==0],
     xlab="Educación (años)",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Educación~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Educación", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Educación,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   3.000   2.927   4.000   5.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    2.00    3.00    2.84    4.00    5.00
by(rotacion$Educación,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 2
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 2
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Educación[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Educación[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Educación~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Educación by Rotación
## t = 1.2177, df = 336.95, p-value = 0.2242
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  -0.05374319  0.22843290
## sample estimates:
## mean in group 0 mean in group 1 
##        2.927007        2.839662
#Variables cuantitativas (Satisfacción_Ambiental - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Satisfacción_Ambiental[rotacion$Rotación==1],
     xlab="Satisfacción ambiental",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Satisfacción_Ambiental  [rotacion$Rotación==0],
     xlab="Satisfacción ambiental",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Satisfacción_Ambiental~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Satisfacción_Ambiental", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Satisfacción_Ambiental,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   3.000   2.771   4.000   4.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.000   3.000   2.464   4.000   4.000
by(rotacion$Satisfacción_Ambiental,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 2
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 3
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Satisfacción_Ambiental[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Satisfacción_Ambiental[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Satisfacción_Ambiental~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Satisfacción_Ambiental by Rotación
## t = 3.7513, df = 316.62, p-value = 0.0002092
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  0.146056 0.468253
## sample estimates:
## mean in group 0 mean in group 1 
##        2.771290        2.464135
#Variables cuantitativas (Satisfacción_Laboral - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Satisfación_Laboral[rotacion$Rotación==1],
     xlab="Satisfacción laboral",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Satisfación_Laboral[rotacion$Rotación==0],
     xlab="Satisfacción laboral",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Satisfación_Laboral~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Satisfacción laboral", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Satisfación_Laboral,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   3.000   2.779   4.000   4.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   1.000   3.000   2.468   3.000   4.000
by(rotacion$Satisfación_Laboral,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 2
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 2
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Satisfación_Laboral[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Satisfación_Laboral[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Satisfación_Laboral~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Satisfación_Laboral by Rotación
## t = 3.9261, df = 328.59, p-value = 0.0001052
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  0.1547890 0.4656797
## sample estimates:
## mean in group 0 mean in group 1 
##        2.778589        2.468354
#Variables cuantitativas (Trabajos_Anteriores - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Trabajos_Anteriores[rotacion$Rotación==1],
     xlab="Trabajos Anteriores",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Trabajos_Anteriores[rotacion$Rotación==0],
     xlab="Trabajos Anteriores",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Trabajos_Anteriores~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Trabajos Anteriores", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Trabajos_Anteriores,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   2.000   2.646   4.000   9.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   1.000   2.941   5.000   9.000
by(rotacion$Trabajos_Anteriores,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 3
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 4
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Trabajos_Anteriores[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Trabajos_Anteriores[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Trabajos_Anteriores~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Trabajos_Anteriores by Rotación
## t = -1.5747, df = 317.14, p-value = 0.1163
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  -0.66437603  0.07367926
## sample estimates:
## mean in group 0 mean in group 1 
##        2.645580        2.940928
#Variables cuantitativas (Porcentaje_aumento_salarial - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Porcentaje_aumento_salarial[rotacion$Rotación==1],
     xlab="Porcentaje aumento salarial",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Porcentaje_aumento_salarial[rotacion$Rotación==0],
     xlab="Porcentaje aumento salarial",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Porcentaje_aumento_salarial~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Porcentaje aumento salarial", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Porcentaje_aumento_salarial,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   11.00   12.00   14.00   15.23   18.00   25.00 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    11.0    12.0    14.0    15.1    17.0    25.0
by(rotacion$Porcentaje_aumento_salarial,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 6
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 5
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Porcentaje_aumento_salarial[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Porcentaje_aumento_salarial[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Porcentaje_aumento_salarial~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Porcentaje_aumento_salarial by Rotación
## t = 0.50424, df = 326.11, p-value = 0.6144
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  -0.3890709  0.6572652
## sample estimates:
## mean in group 0 mean in group 1 
##        15.23114        15.09705
#Variables cuantitativas (Rendimiento_Laboral - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Rendimiento_Laboral[rotacion$Rotación==1],
     xlab="Rendimiento Laboral",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Rendimiento_Laboral[rotacion$Rotación==0],
     xlab="Rendimiento Laboral",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Rendimiento_Laboral~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Rendimiento Laboral", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Rendimiento_Laboral,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   3.000   3.000   3.000   3.153   3.000   4.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   3.000   3.000   3.000   3.156   3.000   4.000
by(rotacion$Rendimiento_Laboral,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 0
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 0
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Rendimiento_Laboral[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Rendimiento_Laboral[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Rendimiento_Laboral~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Rendimiento_Laboral by 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
#Variables cuantitativas (Capacitaciones - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Capacitaciones[rotacion$Rotación==1],
     xlab="Capacitaciones",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Capacitaciones[rotacion$Rotación==0],
     xlab="Capacitaciones",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Capacitaciones~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Capacitaciones", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Capacitaciones,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   2.833   3.000   6.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   2.000   2.624   3.000   6.000
by(rotacion$Capacitaciones,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 1
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 1
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Capacitaciones[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Capacitaciones[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Capacitaciones~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Capacitaciones by Rotación
## t = 2.3305, df = 339.56, p-value = 0.02036
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  0.03251776 0.38439273
## sample estimates:
## mean in group 0 mean in group 1 
##        2.832928        2.624473
#Variables cuantitativas (Equilibrio_Trabajo_Vida - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Equilibrio_Trabajo_Vida[rotacion$Rotación==1],
     xlab="Equilibrio_Trabajo_Vida",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Equilibrio_Trabajo_Vida[rotacion$Rotación==0],
     xlab="Equilibrio_Trabajo_Vida",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Equilibrio_Trabajo_Vida~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Equilibrio_Trabajo_Vida", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Equilibrio_Trabajo_Vida,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   3.000   2.781   3.000   4.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.000   2.000   3.000   2.658   3.000   4.000
by(rotacion$Equilibrio_Trabajo_Vida,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 1
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 1
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Equilibrio_Trabajo_Vida[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Equilibrio_Trabajo_Vida[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Equilibrio_Trabajo_Vida~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Equilibrio_Trabajo_Vida by Rotación
## t = 2.1742, df = 302.49, p-value = 0.03047
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  0.01165453 0.23393357
## sample estimates:
## mean in group 0 mean in group 1 
##        2.781022        2.658228
#Variables cuantitativas (Antigüedad_Cargo - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Antigüedad_Cargo[rotacion$Rotación==1],
     xlab="Antigüedad_Cargo",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Antigüedad_Cargo[rotacion$Rotación==0],
     xlab="Antigüedad_Cargo",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Antigüedad_Cargo~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Antigüedad_Cargo", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Antigüedad_Cargo,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   4.484   7.000  18.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   2.000   2.903   4.000  15.000
by(rotacion$Antigüedad_Cargo,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 5
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 4
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Antigüedad_Cargo[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Antigüedad_Cargo[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Antigüedad_Cargo~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Antigüedad_Cargo by Rotación
## t = 6.8471, df = 366.57, p-value = 3.187e-11
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  1.127107 2.035355
## sample estimates:
## mean in group 0 mean in group 1 
##        4.484185        2.902954
#Variables cuantitativas (Años_ultima_promoción - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Años_ultima_promoción[rotacion$Rotación==1],
     xlab="Años_ultima_promoción",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Años_ultima_promoción[rotacion$Rotación==0],
     xlab="Años_ultima_promoción",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Años_ultima_promoción~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Años_ultima_promoción", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Años_ultima_promoción,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.000   2.234   3.000  15.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   1.000   1.945   2.000  15.000
by(rotacion$Años_ultima_promoción,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 3
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 2
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Años_ultima_promoción[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Años_ultima_promoción[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Años_ultima_promoción~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Años_ultima_promoción by Rotación
## t = 1.2879, df = 338.49, p-value = 0.1987
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  -0.1525043  0.7309843
## sample estimates:
## mean in group 0 mean in group 1 
##        2.234388        1.945148
#Variables cuantitativas (Años_acargo_con_mismo_jefe - rotación)

#1. Histograma

config_grafico <- par(mfrow=c(1,2))
hist(rotacion$Años_acargo_con_mismo_jefe[rotacion$Rotación==1],
     xlab="Años_acargo_con_mismo_jefe",ylab="Densidad",
     main="Sí - rotación")
hist(rotacion$Años_acargo_con_mismo_jefe[rotacion$Rotación==0],
     xlab="Años_acargo_con_mismo_jefe",ylab="Densidad",
     main="No - rotación")

#2. gráfico de cajas

config_grafico <- par(mfrow=c(1,1))
boxplot(Años_acargo_con_mismo_jefe~Rotación,
        rotacion,
        xlab="Rotación",
        ylab="Años_acargo_con_mismo_jefe", 
        xaxt="n")
axis(1, at=1:2,
     labels=c("No rotación","Sí rotación"))

#3. medidas

by(rotacion$Años_acargo_con_mismo_jefe,rotacion$Rotación,summary)
## rotacion$Rotación: 0
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   2.000   3.000   4.367   7.000  17.000 
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.000   2.000   2.852   5.000  14.000
by(rotacion$Años_acargo_con_mismo_jefe,rotacion$Rotación,IQR)
## rotacion$Rotación: 0
## [1] 5
## ------------------------------------------------------------ 
## rotacion$Rotación: 1
## [1] 5
#Comparación de las funciones de distribución de los grupos.

plot(ecdf(rotacion$Años_acargo_con_mismo_jefe[rotacion$Rotación==1]),
     main="")
lines(ecdf(rotacion$Años_acargo_con_mismo_jefe[rotacion$Rotación==0]),
      col=2)

#Prueba de hipótesis.

t.test(Años_acargo_con_mismo_jefe~Rotación,rotacion)
## 
##  Welch Two Sample t-test
## 
## data:  Años_acargo_con_mismo_jefe by Rotación
## t = 6.6334, df = 365.1, p-value = 1.185e-10
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
##  1.065929 1.964223
## sample estimates:
## mean in group 0 mean in group 1 
##        4.367397        2.852321
########
#Variables cualitativas (viaje de negocios - rotación)

tabla1 <- table(rotacion$Rotación, rotacion$`Viaje de Negocios`)
tabla1
##    
##     Frecuentemente No_Viaja Raramente
##   0            208      138       887
##   1             69       12       156
barplot(tabla1, beside = TRUE, las=1, 
        xlab='Viaje de negocios', ylab='Rotación',
        col = c("lightblue", "mistyrose"))
legend('topleft', legend=rownames(tabla1), bty='n',
       fill=c("lightblue", "mistyrose"))

#Prueba de hipótesis

chisq.test(rotacion$Rotación, rotacion$`Viaje de Negocios`)
## 
##  Pearson's Chi-squared test
## 
## data:  rotacion$Rotación and rotacion$`Viaje de Negocios`
## X-squared = 24.182, df = 2, p-value = 5.609e-06
library(DescTools)

ContCoef(rotacion$Rotación, rotacion$`Viaje de Negocios`)
## [1] 0.1272178
CramerV(rotacion$Rotación, rotacion$`Viaje de Negocios`)
## [1] 0.12826
#Recordar lo siguiente :
  
#Más de 0.5 Alta asociación.
#0.3 a 0.5 Asociación moderada.
#0.1 a 0.3 Baja asociación.
#0 a 0.1 Muy baja (si existiese).


#Variables cualitativas (Departamento - rotación)

tabla1 <- table(rotacion$Rotación, rotacion$Departamento)
tabla1
##    
##     IyD  RH Ventas
##   0 828  51    354
##   1 133  12     92
barplot(tabla1, beside = TRUE, las=1, 
        xlab='Departamento', ylab='Rotación',
        col = c("lightblue", "mistyrose"))
legend('topleft', legend=rownames(tabla1), bty='n',
       fill=c("lightblue", "mistyrose"))

#Prueba de hipótesis

chisq.test(rotacion$Rotación, rotacion$Departamento)
## 
##  Pearson's Chi-squared test
## 
## data:  rotacion$Rotación and rotacion$Departamento
## X-squared = 10.796, df = 2, p-value = 0.004526
ContCoef(rotacion$Rotación, rotacion$Departamento)
## [1] 0.08538547
CramerV(rotacion$Rotación, rotacion$Departamento)
## [1] 0.08569844
#Recordar lo siguiente :

#Más de 0.5 Alta asociación.
#0.3 a 0.5 Asociación moderada.
#0.1 a 0.3 Baja asociación.
#0 a 0.1 Muy baja (si existiese).



#Variables cualitativas (Campo_Educación - rotación)

tabla1 <- table(rotacion$Rotación, rotacion$Campo_Educación)
tabla1
##    
##     Ciencias Humanidades Mercadeo Otra Salud Tecnicos
##   0      517          20      124   71   401      100
##   1       89           7       35   11    63       32
barplot(tabla1, beside = TRUE, las=1, 
        xlab='Campo_Educación', ylab='Rotación',
        col = c("lightblue", "mistyrose"))
legend('topleft', legend=rownames(tabla1), bty='n',
       fill=c("lightblue", "mistyrose"))

#Prueba de hipótesis

chisq.test(rotacion$Rotación, rotacion$Campo_Educación)
## 
##  Pearson's Chi-squared test
## 
## data:  rotacion$Rotación and rotacion$Campo_Educación
## X-squared = 16.025, df = 5, p-value = 0.006774
ContCoef(rotacion$Rotación, rotacion$Campo_Educación)
## [1] 0.103844
CramerV(rotacion$Rotación, rotacion$Campo_Educación)
## [1] 0.1044085
#Recordar lo siguiente :

#Más de 0.5 Alta asociación.
#0.3 a 0.5 Asociación moderada.
#0.1 a 0.3 Baja asociación.
#0 a 0.1 Muy baja (si existiese).


#Variables cualitativas (Genero - rotación)

tabla1 <- table(rotacion$Rotación, rotacion$Genero)
tabla1
##    
##       F   M
##   0 501 732
##   1  87 150
barplot(tabla1, beside = TRUE, las=1, 
        xlab='Genero', ylab='Rotación',
        col = c("lightblue", "mistyrose"))
legend('topleft', legend=rownames(tabla1), bty='n',
       fill=c("lightblue", "mistyrose"))

#Prueba de hipótesis

chisq.test(rotacion$Rotación, rotacion$Genero)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  rotacion$Rotación and rotacion$Genero
## X-squared = 1.117, df = 1, p-value = 0.2906
ContCoef(rotacion$Rotación, rotacion$Genero)
## [1] 0.02944049
CramerV(rotacion$Rotación, rotacion$Genero)
## [1] 0.02945325
#Recordar lo siguiente :

#Más de 0.5 Alta asociación.
#0.3 a 0.5 Asociación moderada.
#0.1 a 0.3 Baja asociación.
#0 a 0.1 Muy baja (si existiese).



#Variables cualitativas (Cargo - rotación)

tabla1 <- table(rotacion$Rotación, rotacion$Cargo)
tabla1
##    
##     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
barplot(tabla1, beside = TRUE, las=1, 
        xlab='Cargo', ylab='Rotación',
        col = c("lightblue", "mistyrose"))
legend('topleft', legend=rownames(tabla1), bty='n',
       fill=c("lightblue", "mistyrose"))

#Prueba de hipótesis

chisq.test(rotacion$Rotación, rotacion$Cargo)
## 
##  Pearson's Chi-squared test
## 
## data:  rotacion$Rotación and rotacion$Cargo
## X-squared = 86.19, df = 8, p-value = 2.752e-15
ContCoef(rotacion$Rotación, rotacion$Cargo)
## [1] 0.2353411
CramerV(rotacion$Rotación, rotacion$Cargo)
## [1] 0.2421422
#Recordar lo siguiente :

#Más de 0.5 Alta asociación.
#0.3 a 0.5 Asociación moderada.
#0.1 a 0.3 Baja asociación.
#0 a 0.1 Muy baja (si existiese).



#Variables cualitativas (Estado_Civil - rotación)

tabla1 <- table(rotacion$Rotación, rotacion$Estado_Civil)
tabla1
##    
##     Casado Divorciado Soltero
##   0    589        294     350
##   1     84         33     120
barplot(tabla1, beside = TRUE, las=1, 
        xlab='Estado_Civil', ylab='Rotación',
        col = c("lightblue", "mistyrose"))
legend('topleft', legend=rownames(tabla1), bty='n',
       fill=c("lightblue", "mistyrose"))

#Prueba de hipótesis

chisq.test(rotacion$Rotación, rotacion$Estado_Civil)
## 
##  Pearson's Chi-squared test
## 
## data:  rotacion$Rotación and rotacion$Estado_Civil
## X-squared = 46.164, df = 2, p-value = 9.456e-11
ContCoef(rotacion$Rotación, rotacion$Estado_Civil)
## [1] 0.1744927
CramerV(rotacion$Rotación, rotacion$Estado_Civil)
## [1] 0.1772113
#Recordar lo siguiente :

#Más de 0.5 Alta asociación.
#0.3 a 0.5 Asociación moderada.
#0.1 a 0.3 Baja asociación.
#0 a 0.1 Muy baja (si existiese).



#Variables cualitativas (Horas_Extra - rotación)

tabla1 <- table(rotacion$Rotación, rotacion$Horas_Extra)
tabla1
##    
##      No  Si
##   0 944 289
##   1 110 127
barplot(tabla1, beside = TRUE, las=1, 
        xlab='Horas_Extra', ylab='Rotación',
        col = c("lightblue", "mistyrose"))
legend('topleft', legend=rownames(tabla1), bty='n',
       fill=c("lightblue", "mistyrose"))

#Prueba de hipótesis

chisq.test(rotacion$Rotación, rotacion$Horas_Extra)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  rotacion$Rotación and rotacion$Horas_Extra
## X-squared = 87.564, df = 1, p-value < 2.2e-16
ContCoef(rotacion$Rotación, rotacion$Horas_Extra)
## [1] 0.2389862
CramerV(rotacion$Rotación, rotacion$Horas_Extra)
## [1] 0.246118
#Recordar lo siguiente :

#Más de 0.5 Alta asociación.
#0.3 a 0.5 Asociación moderada.
#0.1 a 0.3 Baja asociación.
#0 a 0.1 Muy baja (si existiese).

0.3.1 Resultados

Con base en lo planteado en el punto anterior, se identificó que:

Variables categóricas:

Las variables género y departamento, no son tan valiosas para el modelo como se pensó inicialmente. Por lo cual, estas se cambiarán por: horas extras y viajes de negocios.

Variables cuantitativas:

Con base en los resultados, la variable edad no aporta de manera significativa al modelo, por tanto, esta será reemplazada por trabajos anteriores que al parecer contribuyen en mayor medida al modelo.

0.4 Punto 4

Realice una partición en los datos de forma aleatoria donde 70% sea un set para entrenar el modelo y 30% para prueba. Estime un modelo logístico con la muestra del 70%. Muestre los resultados.

library(paqueteMODELOS)
library(ggcorrplot)
library(plotly)
library(car)
data("rotacion")

rotacion$Rotación[rotacion$Rotación == "Si"] <- 1
rotacion$Rotación[rotacion$Rotación == "No"] <- 0

rotacion$Rotación = as.numeric(rotacion$Rotación)

#Aquí sacamos una submuestra
#Dividimos los datos entre el conjunto de entrenamiento y prueba.

data.samples <- sample(1:nrow(rotacion), nrow(rotacion) * 0.7, replace = FALSE)
training.data <- rotacion[data.samples, ]
test.data <- rotacion[-data.samples, ]

#Ahora aplicamos el modelo propuesto sobre el conjunto de entrenamiento:

modelo1=glm(Rotación ~ Ingreso_Mensual + Distancia_Casa + Trabajos_Anteriores + Horas_Extra + `Viaje de Negocios` + Estado_Civil, data = training.data, family=binomial(link="logit"))

summary(modelo1)
## 
## Call:
## glm(formula = Rotación ~ Ingreso_Mensual + Distancia_Casa + 
##     Trabajos_Anteriores + Horas_Extra + `Viaje de Negocios` + 
##     Estado_Civil, family = binomial(link = "logit"), data = training.data)
## 
## Coefficients:
##                                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  -1.8411107  0.3075582  -5.986 2.15e-09 ***
## Ingreso_Mensual              -0.0001271  0.0000270  -4.707 2.51e-06 ***
## Distancia_Casa                0.0316533  0.0110651   2.861 0.004228 ** 
## Trabajos_Anteriores           0.1073309  0.0351081   3.057 0.002234 ** 
## Horas_ExtraSi                 1.1926784  0.1871865   6.372 1.87e-10 ***
## `Viaje de Negocios`No_Viaja  -1.4543871  0.4222917  -3.444 0.000573 ***
## `Viaje de Negocios`Raramente -0.5591750  0.2133442  -2.621 0.008767 ** 
## Estado_CivilDivorciado       -0.2158151  0.2766924  -0.780 0.435401    
## Estado_CivilSoltero           1.0156155  0.2034478   4.992 5.98e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 906.03  on 1028  degrees of freedom
## Residual deviance: 772.83  on 1020  degrees of freedom
## AIC: 790.83
## 
## Number of Fisher Scoring iterations: 5

0.5 Punto 5

Evaluar el poder predictivo del modelo con base en la curva ROC y el AUC en el set de datos de prueba.

0.5.1 Resultado:

La curva ROC es una representación gráfica de la sensibilidad frente a la especificidad para un sistema clasificador binario según se varía el umbral de discriminación. Otra interpretación de este gráfico es la representación de la razón o proporción de verdaderos positivos (VPR = Razón de Verdaderos Positivos) frente a la razón o proporción de falsos positivos (FPR = Razón de Falsos Positivos) también según se varía el umbral de discriminación (valor a partir del cual decidimos que un caso es un positivo).

#Coeficientes del modelo

com<-coefficients(modelo1)
com
##                  (Intercept)              Ingreso_Mensual 
##                -1.8411106497                -0.0001271159 
##               Distancia_Casa          Trabajos_Anteriores 
##                 0.0316533204                 0.1073308542 
##                Horas_ExtraSi  `Viaje de Negocios`No_Viaja 
##                 1.1926784419                -1.4543870817 
## `Viaje de Negocios`Raramente       Estado_CivilDivorciado 
##                -0.5591750229                -0.2158150893 
##          Estado_CivilSoltero 
##                 1.0156154769
#predicción del modelo

pred = predict(modelo1)
head(pred)
##         1         2         3         4         5         6 
## -2.939354 -2.637264 -1.968985 -3.301197 -2.560477 -4.163415
pred1 = predict(modelo1, type ="response")

#Intervalo de confianza de los paramétros

confint(modelo1, level=0.95)
##                                     2.5 %        97.5 %
## (Intercept)                  -2.455609737 -1.248203e+00
## Ingreso_Mensual              -0.000182758 -7.663216e-05
## Distancia_Casa                0.009825511  5.327463e-02
## Trabajos_Anteriores           0.038015447  1.758873e-01
## Horas_ExtraSi                 0.826528697  1.561268e+00
## `Viaje de Negocios`No_Viaja  -2.347871519 -6.739419e-01
## `Viaje de Negocios`Raramente -0.973580033 -1.357662e-01
## Estado_CivilDivorciado       -0.773880424  3.149856e-01
## Estado_CivilSoltero           0.620550214  1.419367e+00
# Curva ROC

library(ROCR)
library(pROC)

roc.prueba = roc(training.data$Rotación,pred1, auc= TRUE, ci=TRUE)
print(roc.prueba)
## 
## Call:
## roc.default(response = training.data$Rotación, predictor = pred1,     auc = TRUE, ci = TRUE)
## 
## Data: pred1 in 864 controls (training.data$Rotación 0) < 165 cases (training.data$Rotación 1).
## Area under the curve: 0.762
## 95% CI: 0.7208-0.8033 (DeLong)
plot.roc(roc.prueba,legacy.axes = T, print.thres = "best", print.auc = TRUE,
         auc.polygon = FALSE, max.auc.polygon = FALSE, auc.polygon.col = "gainsboro", col = 2, grid = TRUE,xlab="1-Especificidad",ylab="Sensibilidad" )

legend("bottomright", legend=c("Observados VS predichos"), col=c("2"),lwd=1,pch = c(1),cex=0.7)

De acuerdo con los resultados, podemos apreciar que para la prueba diagnóstico perímetro de cintura obtenemos un AUC de 0,775, lo que nos indica que este diagnostico tiene una probabilidad del 77,5% de clasificar a los empleados que sí rotan como tal y a los que no rotan como “no rotadores”.

0.6 Punto 6

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

0.6.1 Conclusiones

Con base en el modelo planteado se podría plantear las siguientes iniciativas para reducir la rotación en la empresa:

  1. Revisar los ingresos de los empleados. De acuerdo con el modelo, mejores ingresos de los empleados están asociados con una menor probabilidad de rotar de cargo.

  2. Crear incentivos para que los empleados puedan vivir más cerca al trabajo o poder trabajar desde sus casas, dado que a mayor distancia entre la vivienda y el sitio de trabajo mayor es la probabilidad de rotar de cargo.

  3. Revisar el historial laboral de los colaboradores. Con base en el modelo, mientras más cargos a desempeñado el empleado mayor es la probabilidad de que este quiera rotar de cargo.

  4. Validar las cargas laborales. Según el modelo, entre más horas extras trabaje un colaborador esto afecta la probabilidad de que este quiera cambiar de trabajo. Así las cosas, se deberían revisar las cargas laborales para que estas no afecten la estabilidad laboral de las personas.

  5. Revisar el volumen de viajes de trabajo. De acuerdo con el modelo, a menor cantidad de viajes de trabajo, los empleados tienen más incentivos de seguir en su trabajo actual y no rotar.

  6. Crear estrategias para cautivar a los solteros, este estado civil tiene alta probabilidad de rotar de cargo, por lo cual la empresa debería crear estrategias especiales para retener a este segmento de colaboradores.