Procedemos a cargar la base de datos de Rotación.

data("rotacion")
rotacion
## # A tibble: 1,470 × 24
##    Rotación  Edad `Viaje de Negocios` Departamento Distancia_Casa Educación
##    <chr>    <dbl> <chr>               <chr>                 <dbl>     <dbl>
##  1 Si          41 Raramente           Ventas                    1         2
##  2 No          49 Frecuentemente      IyD                       8         1
##  3 Si          37 Raramente           IyD                       2         2
##  4 No          33 Frecuentemente      IyD                       3         4
##  5 No          27 Raramente           IyD                       2         1
##  6 No          32 Frecuentemente      IyD                       2         2
##  7 No          59 Raramente           IyD                       3         3
##  8 No          30 Raramente           IyD                      24         1
##  9 No          38 Frecuentemente      IyD                      23         3
## 10 No          36 Raramente           IyD                      27         3
## # ℹ 1,460 more rows
## # ℹ 18 more variables: Campo_Educación <chr>, Satisfacción_Ambiental <dbl>,
## #   Genero <chr>, Cargo <chr>, Satisfación_Laboral <dbl>, Estado_Civil <chr>,
## #   Ingreso_Mensual <dbl>, Trabajos_Anteriores <dbl>, Horas_Extra <chr>,
## #   Porcentaje_aumento_salarial <dbl>, Rendimiento_Laboral <dbl>,
## #   Años_Experiencia <dbl>, Capacitaciones <dbl>,
## #   Equilibrio_Trabajo_Vida <dbl>, Antigüedad <dbl>, Antigüedad_Cargo <dbl>, …
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
glimpse(rotacion)
## Rows: 1,470
## Columns: 24
## $ Rotación                    <chr> "Si", "No", "Si", "No", "No", "No", "No", …
## $ Edad                        <dbl> 41, 49, 37, 33, 27, 32, 59, 30, 38, 36, 35…
## $ `Viaje de Negocios`         <chr> "Raramente", "Frecuentemente", "Raramente"…
## $ Departamento                <chr> "Ventas", "IyD", "IyD", "IyD", "IyD", "IyD…
## $ Distancia_Casa              <dbl> 1, 8, 2, 3, 2, 2, 3, 24, 23, 27, 16, 15, 2…
## $ Educación                   <dbl> 2, 1, 2, 4, 1, 2, 3, 1, 3, 3, 3, 2, 1, 2, …
## $ Campo_Educación             <chr> "Ciencias", "Ciencias", "Otra", "Ciencias"…
## $ Satisfacción_Ambiental      <dbl> 2, 3, 4, 4, 1, 4, 3, 4, 4, 3, 1, 4, 1, 2, …
## $ Genero                      <chr> "F", "M", "M", "F", "M", "M", "F", "M", "M…
## $ Cargo                       <chr> "Ejecutivo_Ventas", "Investigador_Cientifi…
## $ Satisfación_Laboral         <dbl> 4, 2, 3, 3, 2, 4, 1, 3, 3, 3, 2, 3, 3, 4, …
## $ Estado_Civil                <chr> "Soltero", "Casado", "Soltero", "Casado", …
## $ Ingreso_Mensual             <dbl> 5993, 5130, 2090, 2909, 3468, 3068, 2670, …
## $ Trabajos_Anteriores         <dbl> 8, 1, 6, 1, 9, 0, 4, 1, 0, 6, 0, 0, 1, 0, …
## $ Horas_Extra                 <chr> "Si", "No", "Si", "Si", "No", "No", "Si", …
## $ Porcentaje_aumento_salarial <dbl> 11, 23, 15, 11, 12, 13, 20, 22, 21, 13, 13…
## $ Rendimiento_Laboral         <dbl> 3, 4, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 3, 3, …
## $ Años_Experiencia            <dbl> 8, 10, 7, 8, 6, 8, 12, 1, 10, 17, 6, 10, 5…
## $ Capacitaciones              <dbl> 0, 3, 3, 3, 3, 2, 3, 2, 2, 3, 5, 3, 1, 2, …
## $ Equilibrio_Trabajo_Vida     <dbl> 1, 3, 3, 3, 3, 2, 2, 3, 3, 2, 3, 3, 2, 3, …
## $ Antigüedad                  <dbl> 6, 10, 0, 8, 2, 7, 1, 1, 9, 7, 5, 9, 5, 2,…
## $ Antigüedad_Cargo            <dbl> 4, 7, 0, 7, 2, 7, 0, 0, 7, 7, 4, 5, 2, 2, …
## $ Años_ultima_promoción       <dbl> 0, 1, 0, 3, 2, 3, 0, 0, 1, 7, 0, 0, 4, 1, …
## $ Años_acargo_con_mismo_jefe  <dbl> 5, 7, 0, 0, 2, 6, 0, 0, 8, 7, 3, 8, 3, 2, …
str(rotacion)
## tibble [1,470 × 24] (S3: tbl_df/tbl/data.frame)
##  $ Rotación                   : chr [1:1470] "Si" "No" "Si" "No" ...
##  $ Edad                       : num [1:1470] 41 49 37 33 27 32 59 30 38 36 ...
##  $ Viaje de Negocios          : chr [1:1470] "Raramente" "Frecuentemente" "Raramente" "Frecuentemente" ...
##  $ Departamento               : chr [1:1470] "Ventas" "IyD" "IyD" "IyD" ...
##  $ Distancia_Casa             : num [1:1470] 1 8 2 3 2 2 3 24 23 27 ...
##  $ Educación                  : num [1:1470] 2 1 2 4 1 2 3 1 3 3 ...
##  $ Campo_Educación            : chr [1:1470] "Ciencias" "Ciencias" "Otra" "Ciencias" ...
##  $ Satisfacción_Ambiental     : num [1:1470] 2 3 4 4 1 4 3 4 4 3 ...
##  $ Genero                     : chr [1:1470] "F" "M" "M" "F" ...
##  $ Cargo                      : chr [1:1470] "Ejecutivo_Ventas" "Investigador_Cientifico" "Tecnico_Laboratorio" "Investigador_Cientifico" ...
##  $ Satisfación_Laboral        : num [1:1470] 4 2 3 3 2 4 1 3 3 3 ...
##  $ Estado_Civil               : chr [1:1470] "Soltero" "Casado" "Soltero" "Casado" ...
##  $ Ingreso_Mensual            : num [1:1470] 5993 5130 2090 2909 3468 ...
##  $ Trabajos_Anteriores        : num [1:1470] 8 1 6 1 9 0 4 1 0 6 ...
##  $ Horas_Extra                : chr [1:1470] "Si" "No" "Si" "Si" ...
##  $ Porcentaje_aumento_salarial: num [1:1470] 11 23 15 11 12 13 20 22 21 13 ...
##  $ Rendimiento_Laboral        : num [1:1470] 3 4 3 3 3 3 4 4 4 3 ...
##  $ Años_Experiencia           : num [1:1470] 8 10 7 8 6 8 12 1 10 17 ...
##  $ Capacitaciones             : num [1:1470] 0 3 3 3 3 2 3 2 2 3 ...
##  $ Equilibrio_Trabajo_Vida    : num [1:1470] 1 3 3 3 3 2 2 3 3 2 ...
##  $ Antigüedad                 : num [1:1470] 6 10 0 8 2 7 1 1 9 7 ...
##  $ Antigüedad_Cargo           : num [1:1470] 4 7 0 7 2 7 0 0 7 7 ...
##  $ Años_ultima_promoción      : num [1:1470] 0 1 0 3 2 3 0 0 1 7 ...
##  $ Años_acargo_con_mismo_jefe : num [1:1470] 5 7 0 0 2 6 0 0 8 7 ...

Ahora procederemos a aplicar casteo en los datos para mayor eficiencia y ajustamos algunos nombres de campos

rotacion <- rotacion
rotacion$Rotacion = as.factor(rotacion$Rotación)
rotacion$Educacion = as.factor(rotacion$Educación)
rotacion$Satisfaccion_Ambiental = as.factor(rotacion$Satisfacción_Ambiental)
rotacion$Satisfacion_Laboral = as.factor(rotacion$Satisfación_Laboral)
rotacion$Viaje_Negocios = as.factor(rotacion$`Viaje de Negocios`)
rotacion$Departamento = as.factor(rotacion$Departamento)
rotacion$Campo_Educacion = as.factor(rotacion$Campo_Educación)
rotacion$Genero = as.factor(rotacion$Genero)
rotacion$Cargo = as.factor(rotacion$Cargo)
rotacion$Estado_Civil = as.factor(rotacion$Estado_Civil)
rotacion$Horas_Extra = as.factor(rotacion$Horas_Extra)
rotacion$Equilibrio_Trabajo_Vida = as.factor(rotacion$Equilibrio_Trabajo_Vida)

rotacion$Anios_Experiencia = rotacion$Años_Experiencia
rotacion$Antiguedad = rotacion$Antigüedad
rotacion$Antiguedad_Cargo = rotacion$Antigüedad_Cargo
rotacion$Anios_ultima_promocion = rotacion$Años_ultima_promoción
rotacion$Anios_acargo_con_mismo_jefe = rotacion$Años_acargo_con_mismo_jefe
str(rotacion)
## tibble [1,470 × 35] (S3: tbl_df/tbl/data.frame)
##  $ Rotación                   : chr [1:1470] "Si" "No" "Si" "No" ...
##  $ Edad                       : num [1:1470] 41 49 37 33 27 32 59 30 38 36 ...
##  $ Viaje de Negocios          : chr [1:1470] "Raramente" "Frecuentemente" "Raramente" "Frecuentemente" ...
##  $ Departamento               : Factor w/ 3 levels "IyD","RH","Ventas": 3 1 1 1 1 1 1 1 1 1 ...
##  $ Distancia_Casa             : num [1:1470] 1 8 2 3 2 2 3 24 23 27 ...
##  $ Educación                  : num [1:1470] 2 1 2 4 1 2 3 1 3 3 ...
##  $ Campo_Educación            : chr [1:1470] "Ciencias" "Ciencias" "Otra" "Ciencias" ...
##  $ Satisfacción_Ambiental     : num [1:1470] 2 3 4 4 1 4 3 4 4 3 ...
##  $ Genero                     : Factor w/ 2 levels "F","M": 1 2 2 1 2 2 1 2 2 2 ...
##  $ Cargo                      : Factor w/ 9 levels "Director_Investigación",..: 3 5 9 5 9 9 9 9 2 7 ...
##  $ Satisfación_Laboral        : num [1:1470] 4 2 3 3 2 4 1 3 3 3 ...
##  $ Estado_Civil               : Factor w/ 3 levels "Casado","Divorciado",..: 3 1 3 1 1 3 1 2 3 1 ...
##  $ Ingreso_Mensual            : num [1:1470] 5993 5130 2090 2909 3468 ...
##  $ Trabajos_Anteriores        : num [1:1470] 8 1 6 1 9 0 4 1 0 6 ...
##  $ Horas_Extra                : Factor w/ 2 levels "No","Si": 2 1 2 2 1 1 2 1 1 1 ...
##  $ Porcentaje_aumento_salarial: num [1:1470] 11 23 15 11 12 13 20 22 21 13 ...
##  $ Rendimiento_Laboral        : num [1:1470] 3 4 3 3 3 3 4 4 4 3 ...
##  $ Años_Experiencia           : num [1:1470] 8 10 7 8 6 8 12 1 10 17 ...
##  $ Capacitaciones             : num [1:1470] 0 3 3 3 3 2 3 2 2 3 ...
##  $ Equilibrio_Trabajo_Vida    : Factor w/ 4 levels "1","2","3","4": 1 3 3 3 3 2 2 3 3 2 ...
##  $ Antigüedad                 : num [1:1470] 6 10 0 8 2 7 1 1 9 7 ...
##  $ Antigüedad_Cargo           : num [1:1470] 4 7 0 7 2 7 0 0 7 7 ...
##  $ Años_ultima_promoción      : num [1:1470] 0 1 0 3 2 3 0 0 1 7 ...
##  $ Años_acargo_con_mismo_jefe : num [1:1470] 5 7 0 0 2 6 0 0 8 7 ...
##  $ Rotacion                   : Factor w/ 2 levels "No","Si": 2 1 2 1 1 1 1 1 1 1 ...
##  $ Educacion                  : Factor w/ 5 levels "1","2","3","4",..: 2 1 2 4 1 2 3 1 3 3 ...
##  $ Satisfaccion_Ambiental     : Factor w/ 4 levels "1","2","3","4": 2 3 4 4 1 4 3 4 4 3 ...
##  $ Satisfacion_Laboral        : Factor w/ 4 levels "1","2","3","4": 4 2 3 3 2 4 1 3 3 3 ...
##  $ Viaje_Negocios             : Factor w/ 3 levels "Frecuentemente",..: 3 1 3 1 3 1 3 3 1 3 ...
##  $ Campo_Educacion            : Factor w/ 6 levels "Ciencias","Humanidades",..: 1 1 4 1 5 1 5 1 1 5 ...
##  $ Anios_Experiencia          : num [1:1470] 8 10 7 8 6 8 12 1 10 17 ...
##  $ Antiguedad                 : num [1:1470] 6 10 0 8 2 7 1 1 9 7 ...
##  $ Antiguedad_Cargo           : num [1:1470] 4 7 0 7 2 7 0 0 7 7 ...
##  $ Anios_ultima_promocion     : num [1:1470] 0 1 0 3 2 3 0 0 1 7 ...
##  $ Anios_acargo_con_mismo_jefe: num [1:1470] 5 7 0 0 2 6 0 0 8 7 ...

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

Categoricas

Satisfación_Laboral: Desde nuestra perspectiva, esta variable es de alta relevancia y se mide frecuentemente en encuestas de satisfacción laboral, como las realizadas por Great Place to Work.

Equilibrio_Trabajo_Vida: Desde nuestro punto de vista, esta variable es muy importante debido a que el equilibrio es esencial en muchos aspectos de la vida. Cuando somos jóvenes, puede ser por dos razones: para poder estudiar o para disfrutar de la vida. Al llegar a la adultez y tener una pareja e hijos, se requiere tiempo para dedicárselo a la familia. Finalmente, al envejecer, se comprende la importancia de tener tiempo para uno mismo.

Cargo: En nuestra opinión, esta variable es importante por varias razones. El estatus y la representación de un cargo dentro de una empresa dependen del puesto que se ocupe. Además, generalmente, cuanto más importante es el cargo, mejor es el salario. Finalmente, como empleados, siempre aspiramos a obtener promociones en nuestra vida laboral dentro de las empresas.

Cuantitativas

Porcentaje_aumento_salarial: En nuestra opinión, esta variable es muy importante debido al impacto que tiene el porcentaje de aumento salarial a lo largo del año. Este aumento está directamente relacionado con posibles promociones de cargo, mientras que otro porcentaje se vincula con el incremento anual basado en el costo de vida del país.

Edad: Los empleados de mayor edad suelen tener mayor estabilidad laboral, ya que tienden a evitar cambios de trabajo debido a sus responsabilidades y al temor de no ser recontratados. Además, cuando se tiene familia, las decisiones laborales se toman considerando a las personas a su cargo. En contraste, los empleados más jóvenes suelen arriesgarse más, ya que tienen menos responsabilidades y personas a su cargo.

Ingreso_Mensual: El ingreso mensual es probablemente una de las variables más influyentes al considerar un cambio de trabajo. Todos deseamos ganar más dinero, y si descubro que en el mercado o mis compañeros con las mismas responsabilidades ganan más que yo, es muy probable que me sienta desmotivado.

Punto 2

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

table1( ~ Satisfacion_Laboral|Rotacion, data=rotacion)
No
(N=1233)
Si
(N=237)
Overall
(N=1470)
Satisfacion_Laboral
1 223 (18.1%) 66 (27.8%) 289 (19.7%)
2 234 (19.0%) 46 (19.4%) 280 (19.0%)
3 369 (29.9%) 73 (30.8%) 442 (30.1%)
4 407 (33.0%) 52 (21.9%) 459 (31.2%)
# Gráfico de barras apilado para Satisfacción Laboral vs. Rotación
ggplot(rotacion, aes(x=Satisfacion_Laboral, fill=Rotación)) +
  geom_bar(position="stack") +
  labs(title="Gráfico de Barras Apiladas de Satifación Laboral vs. Rotación", x="Equilibrio Trabajo-Vida", y="Count") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

El gráfico sugiere que un buen equilibrio entre trabajo y vida personal está relacionado con una menor rotación de empleados. Los empleados que están satisfechos con su equilibrio trabajo-vida tienden a quedarse más tiempo en la empresa.

# Tabla de frecuencia cruzada entre Equilibrio Trabajo-Vida y Rotación
table1( ~ Equilibrio_Trabajo_Vida|Rotacion, data=rotacion)
No
(N=1233)
Si
(N=237)
Overall
(N=1470)
Equilibrio_Trabajo_Vida
1 55 (4.5%) 25 (10.5%) 80 (5.4%)
2 286 (23.2%) 58 (24.5%) 344 (23.4%)
3 766 (62.1%) 127 (53.6%) 893 (60.7%)
4 126 (10.2%) 27 (11.4%) 153 (10.4%)
# Gráfico de barras apilado para Equilibrio Trabajo-Vida vs. Rotación
ggplot(rotacion, aes(x=Equilibrio_Trabajo_Vida, fill=Rotación)) +
  geom_bar(position="stack") +
  labs(title="Gráfico de Barras Apiladas de Equilibrio Trabajo-Vida vs. Rotación", x="Equilibrio Trabajo-Vida", y="Count") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Existe una relación inversa entre el equilibrio trabajo-vida y la rotación de empleados. A medida que mejora el equilibrio trabajo-vida, la rotación de empleados tiende a disminuir.

# Tabla de frecuencia cruzada entre Cargo y Rotación

table1( ~ Cargo|Rotacion, data=rotacion)
No
(N=1233)
Si
(N=237)
Overall
(N=1470)
Cargo
Director_Investigación 78 (6.3%) 2 (0.8%) 80 (5.4%)
Director_Manofactura 135 (10.9%) 10 (4.2%) 145 (9.9%)
Ejecutivo_Ventas 269 (21.8%) 57 (24.1%) 326 (22.2%)
Gerente 97 (7.9%) 5 (2.1%) 102 (6.9%)
Investigador_Cientifico 245 (19.9%) 47 (19.8%) 292 (19.9%)
Recursos_Humanos 40 (3.2%) 12 (5.1%) 52 (3.5%)
Representante_Salud 122 (9.9%) 9 (3.8%) 131 (8.9%)
Representante_Ventas 50 (4.1%) 33 (13.9%) 83 (5.6%)
Tecnico_Laboratorio 197 (16.0%) 62 (26.2%) 259 (17.6%)
# Gráfico de barras apilado para Cargo vs. Rotación
ggplot(rotacion, aes(x=Cargo, fill=Rotación)) +
  geom_bar(position="stack") +
  labs(title="Gráfico de Barras Apiladas de Cargo vs. Rotación", x="Cargo", y="Count") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Estabilidad en Cargos Altos:

Los cargos de mayor responsabilidad, como gerentes y directores, tienden a tener una menor rotación, lo que sugiere una mayor estabilidad laboral en estos puestos.

Alta Rotación en Ventas y Técnicos:

Los cargos relacionados con ventas y técnicos muestran una mayor rotación, lo que podría indicar una mayor insatisfacción laboral o mejores oportunidades en otros lugares.

Estrategias de Retención:

Las empresas pueden utilizar esta información para desarrollar estrategias de retención específicas para cargos con alta rotación, como ejecutivos de ventas y técnicos de laboratorio.

table1( ~ Edad|Rotacion, data=rotacion)
No
(N=1233)
Si
(N=237)
Overall
(N=1470)
Edad
Mean (SD) 37.6 (8.89) 33.6 (9.69) 36.9 (9.14)
Median [Min, Max] 36.0 [18.0, 60.0] 32.0 [18.0, 58.0] 36.0 [18.0, 60.0]
# Crear un diagrama de cajas (boxplot) para la edad vs. rotación
ggplot(rotacion, aes(x=Rotación, y=Edad, fill=Rotación)) +
  geom_boxplot() +
  scale_fill_manual(values=c("Si"="red", "No"="blue")) +  # Asignar colores
  labs(title="Diagrama de Cajas de Edad vs. Rotación", x="Rotación", y="Edad")

Edad y Rotación:

Los empleados más jóvenes (mediana alrededor de 30 años) tienden a experimentar más rotación en comparación con los empleados mayores (mediana alrededor de 40 años). Esto podría deberse a que los empleados más jóvenes están en una etapa de su carrera donde buscan más oportunidades y cambios, mientras que los empleados mayores pueden buscar más estabilidad.

Rango de Edad:

La rotación es menos común entre los empleados mayores de 40 años, lo que sugiere que la estabilidad laboral aumenta con la edad.

Estrategias de Retención:

Las empresas pueden enfocarse en estrategias de retención específicas para empleados jóvenes, como oportunidades de desarrollo profesional y promociones, para reducir la rotación en este grupo de edad.

table1( ~ Ingreso_Mensual|Rotacion, data=rotacion)
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]
ggplot(rotacion, aes(x=Ingreso_Mensual, y=Porcentaje_aumento_salarial, color=Rotación)) +
  geom_point() +
  labs(title="Gráfico de Dispersión: Ingreso Mensual vs. Porcentaje de Incremento",
       x="Ingreso Mensual", y="Porcentaje de Incremento") +
  scale_color_manual(values=c("Si"="red", "No"="blue")) +
  theme_minimal()

Relación entre Ingreso y Porcentaje de Incremento:

No tiene una correlación clara entre el ingreso mensual y el porcentaje de incremento en general, ya que los puntos están bastante dispersos.

Aun cuando el ejercicio solicita realizar el analisis univariado, propusimos incluir la variable rotación para ir tenienndo unas caracteristicas mas detalladas respecto a cada una de las varibales, de igual manera a continuación daremos una visual general de cada una las variables seleccionadas.

Satisfación Laboral Con los totales que evidenaciamos se peude notar que en general la satisfacción laboral es buena teniendo en cuenta que son mas el Talento Humano satisfecho y muy satisfecho que los que no estan satisfechos, de igual manera es un % representativo que puede llegar a impactar la operación.

Equilibrio Trabajo- Vida En esta variable se nota muy marcado que en general en Talento Humano persive su equilibrio vida trabajo Medio y es donde tambien existe una mayor rotación.

Cargo En esta representación grafica de esta variable notamos un comportamiento normal en cualquier empresa donde la mayor concentración de Talento Humano hace parte de los equipos operativos y de ventas.

Edad En esta variable podemos notar que existe Talento Humano con edades desde aproximadamente 28 años hasta los 43 años, lo que quiere decir que es un equipo de trabajo relativamente Joven.

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 hipótesis planteada en el punto 1.

Satisfación Laboral

# Calcular la tabla de contingencia con porcentajes

PlotXTabs2(data = rotacion, x = Satisfación_Laboral, y = Rotacion)

Relación entre Satisfacción Laboral y Rotación:

A medida que aumenta la satisfacción laboral (de la categoría 1 a la 4), el porcentaje de empleados que han experimentado rotación disminuye. Esto sugiere que los empleados más satisfechos con su trabajo tienden a quedarse más tiempo en la empresa, lo que permite comprobar la hipotesis.

Cargo

PlotXTabs2(data = rotacion, x = Cargo, y = Rotacion) +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))

Segun el grafico de cargo se puede percibir que entre el cargo es mas directivo menor es el indice de rotación caso Directores y gerentes y tambien los cargos de menor nivel como representantes de ventas y tecnicos de laboratorio son los que mas rotan

Edad

rotacion$Edad_grupo <- cut(rotacion$Edad, breaks = seq(20, 90, by = 10), labels = c("20-29", "30-39", "40-49", "50-59", "60-69", "70-79", "80+"))

PlotXTabs2(data = rotacion, x = Edad_grupo, y = Rotacion)

Segun el grafico se puede ver que la personas entre mas jovenes mayor indice de rotación tienen la edad media laboral que es la que esta entre los 30 y 50 años son las que menos rotación tienen

Porcentaje Aumento

PlotXTabs2(data = rotacion, x = Porcentaje_aumento_salarial, y = Rotacion)

Segun el grafico se puede ver que el porcentaje de aumento salarial no es concluyente en el indice de rotación , ya que se tienen aumentos pequeños con rotación alta y aumentos mas grandes con rotación alta.

Equilibrio Trabajo- Vida

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

Segun el grafico se puede ver que el Equilibrio trabajo vida influye en el indice de rotación, ya que ya que a menos equilibrio la rotación alta.

Ingresos

rotacion$Ingreso_grupo <- cut(rotacion$Ingreso_Mensual, breaks = seq(0, 20000, by = 2000), labels = c("0-2000", "2000-4000", "4000-6000", "6000-8000","8000-10000", "10000-12000", "12000-14000", "14000-16000+","16000-18000","18000-20000"))

PlotXTabs2(data = rotacion, x = Ingreso_grupo, y = Rotacion)+ theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))

Segun el grafico se puede conluir que los ingresos mas bajos son los que mas rotan , pero en salarios medios altos y altos tambien se encuentran indices de rotación , por tanto esta variable no es concluyente

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.

Binarización

rotacion$Rotacion_binaria <- ifelse(rotacion$Rotación == "Si", 1, 0)

Partición de los datos en 70% entrenamiento y 30% prueba

set.seed(123)  # semilla para obtener mismo resultados
trainIndex <- createDataPartition(rotacion$Rotacion_binaria, p = 0.7, 
                                  list = FALSE, 
                                  times = 1)

Conjuntos de entrenamiento y prueba

train_data <- rotacion[trainIndex, ]
test_data <- rotacion[-trainIndex, ]

Ajuste del modelo

modelo_logistico <- glm(Rotacion_binaria ~ Satisfacion_Laboral + Equilibrio_Trabajo_Vida + Cargo +
                        Porcentaje_aumento_salarial + Edad + Ingreso_Mensual, 
                        data = train_data, family = binomial)

summary(modelo_logistico)
## 
## Call:
## glm(formula = Rotacion_binaria ~ Satisfacion_Laboral + Equilibrio_Trabajo_Vida + 
##     Cargo + Porcentaje_aumento_salarial + Edad + Ingreso_Mensual, 
##     family = binomial, data = train_data)
## 
## Coefficients:
##                                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  -5.944e-01  1.414e+00  -0.420 0.674178    
## Satisfacion_Laboral2         -6.617e-01  2.836e-01  -2.333 0.019646 *  
## Satisfacion_Laboral3         -6.332e-01  2.477e-01  -2.557 0.010566 *  
## Satisfacion_Laboral4         -9.542e-01  2.552e-01  -3.739 0.000184 ***
## Equilibrio_Trabajo_Vida2     -1.145e+00  3.575e-01  -3.203 0.001359 ** 
## Equilibrio_Trabajo_Vida3     -1.421e+00  3.266e-01  -4.352 1.35e-05 ***
## Equilibrio_Trabajo_Vida4     -1.008e+00  3.931e-01  -2.564 0.010344 *  
## CargoDirector_Manofactura     1.714e+00  1.164e+00   1.473 0.140848    
## CargoEjecutivo_Ventas         2.362e+00  1.132e+00   2.087 0.036860 *  
## CargoGerente                  8.601e-01  1.176e+00   0.732 0.464372    
## CargoInvestigador_Cientifico  2.353e+00  1.225e+00   1.921 0.054728 .  
## CargoRecursos_Humanos         3.044e+00  1.242e+00   2.452 0.014208 *  
## CargoRepresentante_Salud      1.651e+00  1.177e+00   1.403 0.160590    
## CargoRepresentante_Ventas     3.777e+00  1.256e+00   3.006 0.002646 ** 
## CargoTecnico_Laboratorio      2.822e+00  1.220e+00   2.313 0.020707 *  
## Porcentaje_aumento_salarial  -1.014e-02  2.564e-02  -0.395 0.692488    
## Edad                         -4.905e-02  1.287e-02  -3.811 0.000139 ***
## Ingreso_Mensual               3.408e-05  5.535e-05   0.616 0.538145    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 896.03  on 1028  degrees of freedom
## Residual deviance: 777.87  on 1011  degrees of freedom
## AIC: 813.87
## 
## Number of Fisher Scoring iterations: 6

Interpretación del modelo

Satisfacción Laboral Los valores negativos para los niveles 2, 3 y 4 indican que a medida que la satisfacción laboral aumenta (de 1 a 4), la probabilidad de rotación disminuye. Esto respalda la hipótesis de que una mayor satisfacción laboral está asociada con menor rotación.

Equilibrio Trabajo-Vida Todos los coeficientes son negativos, indicando que un mejor equilibrio trabajo-vida se asocia con menor rotación. Esto refuerza la hipótesis planteada en el punto 1.

Cargo Varios cargos (Ejecutivo de Ventas, Recursos Humanos, Representante de Ventas, Técnico de Laboratorio) tienen coeficientes positivos significativos, sugiriendo que estos cargos están más asociados con la rotación en comparación con otros. Esto puede reflejar las características del trabajo en estos roles.

Aumento salarial Este coeficiente es negativo pero no significativo, indicando que no hay una relación clara entre el porcentaje de aumento salarial y la rotación, lo que contradice parcialmente la hipótesis.

Punto 5

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

Predecir las probabilidades

pp1 = predict.glm(modelo_logistico, newdata = test_data, type = "response")
resp = table(test_data$Rotacion, ifelse(pp1 > 0.2, 1, 0), dnn = c("observaciones", "predicciones"))
resp
##              predicciones
## observaciones   0   1
##            No 281  85
##            Si  41  34

Generar la curva ROC

roc_curve = roc(test_data$Rotacion, pp1)
## Setting levels: control = No, case = Si
## Setting direction: controls < cases
plot(roc_curve, main = "Curva ROC", col = "blue")

Forma de la Curva:

La curva ROC se acerca a la esquina superior izquierda del gráfico, lo que indica un rendimiento moderado del modelo. Cuanto más cerca esté la curva de esta esquina, mejor es el modelo para distinguir entre las clases.

AUC:

El valor del AUC es aproximadamente 0.577. Un AUC de 0.5 indica un modelo que no tiene capacidad de discriminación mejor que el azar, mientras que un AUC de 1 indica un modelo perfecto. Un AUC de 0.577 sugiere que el modelo tiene una capacidad de discriminación moderada

Calcular y mostrar el AUC

auc_value = auc(roc_curve)
cat("AUC:", auc_value, "\n")
## AUC: 0.6576685

Punto 6

Realiza una predicción la probabilidad de que un individuo (hipotético) rote y defina un corte para decidir si se debe intervenir a este empleado o no (posible estrategia para motivar al empleado).

Nuevo Empleado

Se selecciona un empleado aleatorio de la base de pruebas

indice_aleatorio <- sample(1:nrow(test_data), 1)
nuevo_empleado <- test_data[indice_aleatorio, , drop = FALSE]  # Mantén el dataframe en formato de una sola fila

Predicción

probabilidad_rotacion <- predict(modelo_logistico, newdata = nuevo_empleado, type = "response")

Probabilidad de rotación

print(paste("Probabilidad de rotación:", probabilidad_rotacion))
## [1] "Probabilidad de rotación: 0.0906863113706173"

Decisión basada en la probabilidad

# Definir el umbral
umbral <- 0.5

if (probabilidad_rotacion >= umbral) {
  print("Se debe intervenir para motivar al empleado.")
} else {
  print("No es necesario intervenir.")
}
## [1] "No es necesario intervenir."

Punto 7

En las conclusiones adicione una discusió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).

Mejora del ambiente laboral:

Crear un entorno de trabajo positivo puede tener un impacto directo en la satisfacción y la retención de los empleados. Esto puede incluir la mejora de las relaciones entre los compañeros de trabajo y los supervisores, así como promover una cultura organizacional de respeto y colaboración.

Incentivos económicos:

las variables salariales y los beneficios económicos resultaron significativas, es esencial analizar la estructura salarial, aumentar los incentivos económicos y ofrecer bonificaciones basadas en el desempeño o antigüedad. Esto motiva a los empleados a permanecer en la empresa.

Distribución adecuada de la carga laboral:

Una alta carga de trabajo puede generar estrés y agotamiento, lo que aumenta la rotación. Se puede implementar una estrategia para contratar más personal, reducir las horas extra o distribuir las tareas de manera más equitativa entre los empleados.

Flexibilidad laboral:

Si las condiciones de trabajo, como los horarios, influyen en la rotación, la empresa puede implementar políticas de flexibilidad laboral, permitiendo opciones de trabajo remoto o flexibilidad en las horas de entrada y salida.

Desarrollo profesional y formación:

Fomentar el crecimiento personal y profesional de los empleados, ofreciéndoles oportunidades de capacitación y desarrollo dentro de la empresa, puede incrementar la retención. La falta de oportunidades de crecimiento es una de las principales razones de la rotación en muchas organizaciones.

Conclusión

Luego de todo lo que hemos visto podemos concluir que una de las variables que mayor impactanla decisión de abandonar el trabajo en una empresa esta impulsada por la parte salarial, adiocional a esto nosotros estuvimos indagando con alguien de Talento Humano de la empresa donde trabaja uno de los integrantes del equipo y lo que nos comento es que no hay un factor por fuera de lo salarial que pese tanto y que tambien depende del sector en el cual laboral este telento, por ejemplo de unos años para aqui se esta viviendo una alta competencia de las personas que trabajan en temas relacionados a tecnologias digitales, las areas relaciondas a datos, como gestión de datos, estrategia y ciencia de datos, estas areas estan en un gran auge el cual implica que hay algunas empresas que su apuesta estrategica esta muy relacionada esta orientada en estos temas y por tanto estan invirtiendo en este tipo de talento humano y relizan unas ofertas laborales bastante significativas.

Al final concideramos que fue un gran ejercicio y que las variables seleccionadas aun cuando los datos no lo confirmen al 100% fueron las mas acertadas en terminos humanos y logicos, tal vez con datos de una empresa mucho mas grande y con una estructura organizacional mas amplia segurmamte el ejercicio hubiese dado un poco diferente.