library(readxl)
library(ggplot2)
require(tidyverse)
require(flextable)
require(moments) 
library(dplyr)
library(reshape)
library(reshape2)
library(officer)
library(plotly)
library(scales)
require(leaflet)
library(patchwork)

#Lectura de los datos
datos = read_excel(path = "Datos_Rotacion.xlsx")
names(datos)
##  [1] "Rotación"                    "Edad"                       
##  [3] "Viaje de Negocios"           "Departamento"               
##  [5] "Distancia_Casa"              "Educación"                  
##  [7] "Campo_Educación"             "Satisfacción_Ambiental"     
##  [9] "Genero"                      "Cargo"                      
## [11] "Satisfación_Laboral"         "Estado_Civil"               
## [13] "Ingreso_Mensual"             "Trabajos_Anteriores"        
## [15] "Horas_Extra"                 "Porcentaje_aumento_salarial"
## [17] "Rendimiento_Laboral"         "Años_Experiencia"           
## [19] "Capacitaciones"              "Equilibrio_Trabajo_Vida"    
## [21] "Antigüedad"                  "Antigüedad_Cargo"           
## [23] "Años_ultima_promoción"       "Años_acargo_con_mismo_jefe"

Hipotesis Planteadas

Se escogieron 3 variables categóricas y 3 variables cuantitativas con las que se plantearon las siguientes hipótesis:

  1. Las personas que presentan menores ingresos tienen una mayor probabilidad de migrar a otro empleo con la finalidad de encontrar mejores ofertas salariales
  2. Los empleados con mayor antigüedad en el cargo que estén desempeñando, presentan menores indicadores de rotación, dado a que pueden sentirse cómodos con el cargo y el empleo que están desempeñando.
  3. Los empleados que viven cerca a sus trabajos son más propensa a mantenerse en sus empleos por comodidad y economía.
  4. Las personas que realizan horas extras en el trabajo son más propensas a rotar a empleos con cargas laborales menores que les permita tener mayor tiempo de descanso.
  5. Los empleados que siente que tienen un equilibrio entre su vida laboral y personal en su trabajo actual, son menos propensos a cambiar de empleo.
  6. Las personas con cargos directivos son menos propensas a cambiar de empleo en comparación con los que presentan cargos no gerenciales

Análisis Univariado

Se realiza el análisis univariado de las variables escogidas en las hipótesis encontrando lo siguiente:

gr <- ggplot(datos, aes(x=Ingreso_Mensual))
gr <- gr + geom_histogram(position = 'identity',
                            col='black',
                            bins = 10,fill='#5F01F0')
gr <- gr + labs(title = 'Histograma del Ingreso Mensual',
                x = 'Ingreso_Mensual',
                y = 'conteos')
gr <- gr + theme_classic()
gr <- gr + theme(axis.text.x = element_text(size = 10),
                 plot.title = element_text(size = 10,
                                           face = "bold",
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 7,
                                           hjust = 0.5,
                                           color = "#696969"),
                 legend.position="left",
                 legend.text = element_text(size = 7),
                 legend.title = element_blank(),
                 strip.background = element_blank())

gr1 <- ggplot(datos, aes(x=Antigüedad_Cargo))
gr1 <- gr1 + geom_histogram(position = 'identity',
                            col='black',
                            bins = 10,fill='#5F01F0')
gr1 <- gr1 + labs(title = 'Histograma de los años de Antigüedad en el Cargo',
                  x = 'Años',
                  y = 'conteos',)
gr1 <- gr1 + theme_classic()
gr1 <- gr1 + theme(axis.text.x = element_text(size = 10),
                 plot.title = element_text(size = 10,
                                           face = "bold",
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 7,
                                           hjust = 0.5,
                                           color = "#696969"),
                 legend.position="left",
                 legend.text = element_text(size = 7),
                 legend.title = element_blank(),
                 strip.background = element_blank())


gr2 <- ggplot(datos, aes(x=Distancia_Casa))
gr2 <- gr2 + geom_histogram(position = 'identity',
                            col='black',
                            bins = 10,fill='#5F01F0')
gr2 <- gr2 + labs(title = 'Histograma de la distacia entre el trabajo y la casa',
                  x = 'Distancia',
                  y = 'conteos')
gr2 <- gr2 + theme_classic()
gr2 <- gr2 + theme(axis.text.x = element_text(size = 10),
                 plot.title = element_text(size = 10,
                                           face = "bold",
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 7,
                                           hjust = 0.5,
                                           color = "#696969"),
                 legend.position="left",
                 legend.text = element_text(size = 7),
                 legend.title = element_blank(),
                 strip.background = element_blank())
(gr + gr1)/ gr2

Las distribuciones de las tres variables cuantitativas consideradas presentan una asimetría positiva, es decir, la mayor cantidad de empleados se encuentran en los rangos más pequeños de la distribución. Lo que quiere decir, por ejemplo, que la mayoría de los empleados ganan salarios bajos, o tienen antigüedades bajas en el cargo en el que actualmente desempeñan o que viven cerca del trabajo dado el comportamiento de la distribución de la distancia entre el trabajo y la casa.

## Grafica de la satisfaccion salario
gr1 <- ggplot(datos, aes(x=as.factor(Horas_Extra)))
gr1 <- gr1 + geom_bar(fill='#5F01F0', position = 'identity',
                      col='black', show.legend = F)
gr1 <- gr1 + geom_text(stat='count', 
                       aes(x = Horas_Extra, label = ..count..,
                           fontface = 'bold'),
                       position = position_stack(vjust = 0.5),
                       size = 8,
                       col = 'white')

gr1 <- gr1 + labs(title = 'Diagrmaa de barras para la variable Horas Extra',
                  x = 'Horas Extra (hr)')
gr1 <- gr1 + theme_classic()
gr1 <- gr1 + theme(axis.text.x = element_text(size = 20),
                 plot.title = element_text(size = 20,
                                           hjust = 0.5),
                 axis.title.x = element_text(size = 15),
                 plot.subtitle = element_text(size = 15,
                                           hjust = 0.5,
                                           color = "#696969"),
                 strip.background = element_blank(),
                 axis.text.y = element_blank(),
                 axis.line.y = element_line(color = "#404040"),
                 axis.ticks.y = element_blank(),
                 axis.title.y = element_blank())

### Grafica del equilibrio entre la vida y el trabajo 
gr2 <- ggplot(datos, aes(x=Equilibrio_Trabajo_Vida))
gr2 <- gr2 + geom_bar(fill='#5F01F0', position = 'identity',
                      col='black', show.legend = F)
gr2 <- gr2 + geom_text(stat='count', 
                       aes(x = Equilibrio_Trabajo_Vida, label = ..count..,
                           fontface = 'bold'),
                       position = position_stack(vjust = 0.5),
                       size = 8,
                       col = 'white')
gr2 <- gr2 + labs(title = 'Nivel de Equilibrio entre el Trabajo y Vida personal',
                  x = 'Nivel')
gr2 <- gr2 + theme_classic()
gr2 <- gr2 + theme(axis.text.x = element_text(size = 20),
                 plot.title = element_text(size = 20,
                                           hjust = 0.5),
                 axis.title.x = element_text(size = 15),
                 plot.subtitle = element_text(size = 15,
                                           hjust = 0.5,
                                           color = "#696969"),
                 strip.background = element_blank(),
                 axis.text.y = element_blank(),
                 axis.line.y = element_line(color = "#404040"),
                 axis.ticks.y = element_blank(),
                 axis.title.y = element_blank())

## Grafica del cargo 
gr3 <- ggplot(datos, aes(x = reorder (Cargo, Cargo, function (x) -length (x))))
gr3 <- gr3 + geom_bar(fill='#5F01F0', position = 'identity',col='black', show.legend = F)
gr3 <- gr3 + geom_text(stat='count', 
                       aes(x = Cargo, label = ..count..,),
                       position = position_stack(vjust = 0.5),
                       size = 8,
                       col = 'white')
gr3 <- gr3 + labs(title = 'Diagrama de barras para el Cargo',
                  x = 'Cargo')
gr3 <- gr3 + theme_classic()
gr3 <- gr3 + theme(axis.text.x = element_text(size = 20,  angle = 90),
                 plot.title = element_text(size = 20,
                                           hjust = 0.5),
                 axis.title.x = element_text(size = 15),
                 plot.subtitle = element_text(size = 15,
                                           hjust = 0.5,
                                           color = "#696969"),
                 strip.background = element_blank(),
                 axis.text.y = element_blank(),
                 axis.line.y = element_line(color = "#404040"),
                 axis.ticks.y = element_blank(),
                 axis.title.y = element_blank())

## Grafica de la rotación
gr4 <- ggplot(datos, aes(x=Rotación))
gr4 <- gr4 + geom_bar(fill='#5F01F0', position = 'identity',col='black', show.legend = F)
gr4 <- gr4 + geom_text(stat='count', 
                       aes(x = Rotación, label = ..count..,),
                       position = position_stack(vjust = 0.5),
                       col = 'white',
                       size = 8)
gr4 <- gr4 + labs(title = 'Diagrama de barras para Rotación',
                  x = 'Rotación')
gr4 <- gr4 + theme_classic()
gr4 <- gr4 + theme(axis.text.x = element_text(size = 20),
                 plot.title = element_text(size = 20,
                                           hjust = 0.5),
                 axis.title.x = element_text(size = 15),
                 plot.subtitle = element_text(size = 15,
                                           hjust = 0.5,
                                           color = "#696969"),
                 strip.background = element_blank(),
                 axis.text.y = element_blank(),
                 axis.line.y = element_line(color = "#404040"),
                 axis.ticks.y = element_blank(),
                 axis.title.y = element_blank())


gr_final <- (gr1 + gr2)/ (gr3 + gr4)
gr_final <- gr_final + plot_annotation( title = 'Graficos descriptivos de las variables cualitativas y cuantitativas discretas',
                                        subtitle = 'Graficos de barra')
gr_final <- gr_final + theme(plot.title = element_text(size = 20,
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 15,
                                           hjust = 0.5,
                                           color = "#696969"),
                 strip.background = element_blank())


gr_final

Para las variables cualitativas consideradas, se puede observar que:

Análisis Bivariado

Una vez realizado el análisis univariado. se realiza el análisis bivariado de las variables escogidas con la variable de interés que es la rotación para analizar comportamientos y posibles relaciones que puedan tener esas variables con la de interés. Una vez realizado esto se encontró:

#names(datos)
agrupacion <- group_by(datos, Cargo,Rotación)%>%
summarise(conteo = n()) %>%
mutate(total = as.numeric(sum(conteo)))

agrupacion <- data.frame(agrupacion)
agrupacion$participacion <- agrupacion$conteo / agrupacion$total
colnames(agrupacion) <- c('Cargo',"Rotación","Conteo","Total","participacion")
agrupacion <- agrupacion[,c('Cargo', "Rotación","participacion")]
agrupacion$Cargo <- as.factor(agrupacion$Cargo)
agrupacion$Rotación <- as.factor(agrupacion$Rotación)

gr <- ggplot(data = agrupacion, aes(x = reorder(Cargo,-participacion), y = participacion, fill = as.factor(Rotación) ))
gr <- gr + geom_bar(stat = "identity",
                    position = "stack",
                    show.legend = T)
gr <- gr + geom_text(position = position_stack(vjust = 0.5),
                     size =4, 
                     show.legend = F,
                     aes(x = Cargo, y = (participacion),
                         label = percent(participacion, accuracy = 0.1),
                         colour = as.factor(Rotación)))

gr <- gr + scale_colour_manual(values = c('white','black'))
gr <- gr + theme_classic()
gr <- gr + scale_fill_manual(values = c('#5F01F0','#BC8AF0'))
gr <- gr + labs(title = 'Grafico de barras',
                subtitle = 'Cargo Vs Rotación',
                x = 'Cargo')
gr <- gr + guides(color = FALSE, fill = guide_legend(nrow = 1, title = 'Rotación'))
gr <- gr + theme(axis.text.y = element_blank(),
                 axis.text.x = element_text(angle = 90),
                 axis.line.y = element_line(color = "#404040"),
                 axis.ticks.y = element_blank(),
                 plot.title = element_text(face = "bold",
                                           size = 12,
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 10,
                                           hjust = 0.5),
                 axis.title.y = element_blank(),
                 legend.position="bottom",
                 legend.title = element_text( size = 10),
                 legend.key.size = unit(0.5, "cm"),
                 legend.key.width = unit(0.5,"cm"),
                 legend.text = element_text( size = 10))


 gr

Si bien el grupo de representantes de ventas participa un 5.6% de base son los que mayor proporción de rotaciones presentan, siendo esta del 39.8% de este grupo. El grupo los técnicos de laboratorio que son el 18% de la base y recursos humanos que es el 4% también presentan proporciones mayores de rotación siendo de 23.9% y 23.1% respectivamente para cada grupo. Adicional a esto, se observa que los cargos directivos y de gerencia son los que menor rotación presentan con un porcentaje por debajo del 7%.

names(datos)
##  [1] "Rotación"                    "Edad"                       
##  [3] "Viaje de Negocios"           "Departamento"               
##  [5] "Distancia_Casa"              "Educación"                  
##  [7] "Campo_Educación"             "Satisfacción_Ambiental"     
##  [9] "Genero"                      "Cargo"                      
## [11] "Satisfación_Laboral"         "Estado_Civil"               
## [13] "Ingreso_Mensual"             "Trabajos_Anteriores"        
## [15] "Horas_Extra"                 "Porcentaje_aumento_salarial"
## [17] "Rendimiento_Laboral"         "Años_Experiencia"           
## [19] "Capacitaciones"              "Equilibrio_Trabajo_Vida"    
## [21] "Antigüedad"                  "Antigüedad_Cargo"           
## [23] "Años_ultima_promoción"       "Años_acargo_con_mismo_jefe"
agrupacion <- group_by(datos, Horas_Extra, Rotación)%>%
summarise(conteo = n()) %>%
mutate(total = as.numeric(sum(conteo)))

agrupacion <- data.frame(agrupacion)
agrupacion$participacion <- agrupacion$conteo / agrupacion$total
colnames(agrupacion) <- c('Horas_Extra',"Rotación","Conteo","Total","participacion")
agrupacion <- agrupacion[,c('Horas_Extra',"Rotación", "participacion")]
agrupacion$Horas_Extra <- as.factor(agrupacion$Horas_Extra)
agrupacion$Rotación <- as.factor(agrupacion$Rotación)

gr <- ggplot(data = agrupacion, aes(x =Horas_Extra , y = participacion, fill = as.factor(Rotación) ))
gr <- gr + geom_bar(stat = "identity",
                    position = "stack",
                    show.legend = T)
gr <- gr + geom_text(position = position_stack(vjust = 0.5),
                     size =4, 
                     show.legend = F,
                     aes(x = Horas_Extra, y = (participacion),
                         label = percent(participacion, accuracy = 0.1),
                         colour = as.factor(Rotación)))

gr <- gr + scale_colour_manual(values = c('white','black'))
gr <- gr + theme_classic()
gr <- gr + scale_fill_manual(values = c('#5F01F0','#BC8AF0'))
gr <- gr + labs(title = 'Grafico de barras',
                subtitle = 'Hace Horas Extra Vs Rotación',
                x = 'Hace Horas Extras')
gr <- gr + guides(color = FALSE, fill = guide_legend(nrow = 1, title = 'Rotación'))
gr <- gr + theme(axis.text.y = element_blank(),
                 axis.line.y = element_line(color = "#404040"),
                 axis.ticks.y = element_blank(),
                 plot.title = element_text(face = "bold",
                                           size = 12,
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 10,
                                           hjust = 0.5),
                 axis.title.y = element_blank(),
                 legend.position="bottom",
                 legend.title = element_text( size = 10),
                 legend.key.size = unit(0.5, "cm"),
                 legend.key.width = unit(0.5,"cm"),
                 legend.text = element_text( size = 10))

agrupacion <- group_by(datos, Equilibrio_Trabajo_Vida, Rotación)%>%
summarise(conteo = n()) %>%
mutate(total = as.numeric(sum(conteo)))

agrupacion <- data.frame(agrupacion)
agrupacion$participacion <- agrupacion$conteo / agrupacion$total
colnames(agrupacion) <- c('Equilibrio_Trabajo_Vida',"Rotación","Conteo","Total","participacion")
agrupacion <- agrupacion[,c('Equilibrio_Trabajo_Vida',"Rotación", "participacion")]
agrupacion$Equilibrio_Trabajo_Vida <- as.factor(agrupacion$Equilibrio_Trabajo_Vida)
agrupacion$Rotación <- as.factor(agrupacion$Rotación)

gr1 <- ggplot(data = agrupacion, aes(x = Equilibrio_Trabajo_Vida, 
                                     y = participacion, 
                                     fill = as.factor(Rotación) ))
gr1 <- gr1 + geom_bar(stat = "identity",
                    position = "stack",
                    show.legend = T)
gr1 <- gr1 + geom_text(position = position_stack(vjust = 0.5),
                     size =4, 
                     show.legend = F,
                     aes(x =Equilibrio_Trabajo_Vida , y = (participacion),
                         label = percent(participacion, accuracy = 0.1),
                         colour = as.factor(Rotación)))

gr1 <- gr1 + scale_colour_manual(values = c('white','black'))
gr1 <- gr1 + theme_classic()
gr1 <- gr1 + scale_fill_manual(values = c('#5F01F0','#BC8AF0'))
gr1 <- gr1 + labs(title = 'Grafico de barras',
                subtitle = 'Nivel de Equilibrio entre el \n Trabajo y la Vida Vs Rotación',
                x = 'Nivel de Equilibrio entre el Trabajo y la Vida')
gr1 <- gr1 + guides(color = FALSE, 
                    fill = guide_legend(nrow = 1, 
                                        title = 'Rotación'))
gr1 <- gr1 + theme(axis.text.y = element_blank(),
                 axis.line.y = element_line(color = "#404040"),
                 axis.ticks.y = element_blank(),
                 plot.title = element_text(face = "bold",
                                           size = 12,
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 10,
                                           hjust = 0.5),
                 axis.title.y = element_blank(),
                 legend.position="bottom",
                 legend.title = element_text( size = 10),
                 legend.key.size = unit(0.5, "cm"),
                 legend.key.width = unit(0.5,"cm"),
                 legend.text = element_text( size = 10))
gr1 + gr

En cuanto al equilibrio entre el trabajo y la vida personal, aquellas personas que siente tener poco equilibrio en estos aspectos son las que mayor participación de rotación presentan (31.2%), de la misma forma aquellos empleados que realizan horas extras, teniendo una participación del 30.5% los individuos que han rotado.

## Diagrama de cajas de la distancia dada la rotacion
gr <- ggplot(datos, aes(x =  Rotación, y=Distancia_Casa, fill = factor(Rotación)))
gr <- gr + geom_boxplot(position = 'identity',
                            col='black')
gr <- gr + labs(title = 'Diagrama de caja de la Distancia del trabajo a la Casa',
                y = 'Distancia a Casa (km)',
                y = 'Rotación')
gr <- gr + scale_colour_manual(values = c('white','black'))
gr <- gr + theme_classic()
gr <- gr + scale_fill_manual(values = c('#5F01F0','#BC8AF0'))
gr <- gr + guides(color = FALSE, fill = guide_legend(nrow = 1, title = 'Rotación'))
gr <- gr + theme(axis.line.y = element_line(color = "#404040"),
                 plot.title = element_text(face = "bold",
                                           size = 12,
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 10,
                                           hjust = 0.5),
                 legend.position="bottom",
                 legend.title = element_text( size = 10),
                 legend.key.size = unit(0.5, "cm"),
                 legend.key.width = unit(0.5,"cm"),
                 legend.text = element_text( size = 10))

ggplotly(gr)
# Descriptivas de la distancia entre el trabajo y la casa dado la rotacion
datos %>%   group_by(Rotación)  %>% 
  
             summarise(n = length(as.numeric(Distancia_Casa)),
             Promedio = mean(as.numeric(Distancia_Casa)),
             Mediana = median(as.numeric(Distancia_Casa)),
             Desviacion = sd(as.numeric(Distancia_Casa)),
             Minimo = min(as.numeric(Distancia_Casa)),
             Maximo = max(as.numeric(Distancia_Casa))) 
## # A tibble: 2 x 7
##   Rotación     n Promedio Mediana Desviacion Minimo Maximo
##   <chr>    <int>    <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 No        1233     8.92       7       8.01      1     29
## 2 Si         237    10.6        9       8.45      1     29

En cuanto a la relación entre la distancia del trabajo a la casa y la rotación observamos que los empleados que rotan viven un poco más alejados de su lugar de trabajo, presentando una diferencia en medianas de 2 km con los que no presentan rotación.

## Diagrama de cajas del ingreso  dado la rotacion
gr <- ggplot(datos, aes(y = Ingreso_Mensual, fill = Rotación , x = Rotación))
gr <- gr + geom_boxplot(position = 'identity',
                            col='black')
gr <- gr + labs(title = 'Diagrama de caja del Ingreso Mensual',
                y = 'Ingreso Mensual',
                x = 'Rotación')
gr <- gr + scale_colour_manual(values = c('white','black'))
gr <- gr + theme_classic()
gr <- gr + scale_fill_manual(values = c('#5F01F0','#BC8AF0'))
gr <- gr + guides(color = FALSE, fill = guide_legend(nrow = 1, title = 'Rotación'))
gr <- gr + theme(
                 axis.text.x = element_text(angle = 90),
                 axis.line.y = element_line(color = "#404040"),
                 plot.title = element_text(face = "bold",
                                           size = 12,
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 10,
                                           hjust = 0.5),
                 legend.position="bottom",
                 legend.title = element_text( size = 10),
                 legend.key.size = unit(0.5, "cm"),
                 legend.key.width = unit(0.5,"cm"),
                 legend.text = element_text( size = 10))
ggplotly(gr)
datos %>%   group_by(Rotación)  %>% 
  
             summarise(n = length(as.numeric(Ingreso_Mensual)),
             Promedio = mean(as.numeric(Ingreso_Mensual)),
             Mediana = median(as.numeric(Ingreso_Mensual)),
             Desviacion = sd(as.numeric(Ingreso_Mensual)),
             Minimo = min(as.numeric(Ingreso_Mensual)),
             Maximo = max(as.numeric(Ingreso_Mensual))) 
## # A tibble: 2 x 7
##   Rotación     n Promedio Mediana Desviacion Minimo Maximo
##   <chr>    <int>    <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 No        1233    6833.    5204      4818.   1051  19999
## 2 Si         237    4787.    3202      3640.   1009  19859

Por otro lado, en cuanto al ingreso mensual vs la rotación se observa que los empleados que rotan son aquellos que ganan menos, al observarse que el 75% de estos empleados ganan menos de 5500, el cual es un valor cercano a la mediana del otro grupo.

## Diagrama de cajas de la antiguedad en el cargo  dado la rotacion
gr <- ggplot(datos, aes(y = Antigüedad_Cargo, fill = Rotación , x = Rotación))
gr <- gr + geom_boxplot(position = 'identity',
                            col='black')
gr <- gr + labs(title = 'Diagrama de caja de la antiguedad en el cargo',
                y = 'Antiguedad (Años)',
                x = 'Rotacion')
gr <- gr + scale_colour_manual(values = c('white','black'))
gr <- gr + theme_classic()
gr <- gr + scale_fill_manual(values = c('#5F01F0','#BC8AF0'))
gr <- gr + guides(color = FALSE, fill = guide_legend(nrow = 1, title = 'Rotación'))
gr <- gr + theme(axis.line.y = element_line(color = "#404040"),
                 plot.title = element_text(face = "bold",
                                           size = 12,
                                           hjust = 0.5),
                 plot.subtitle = element_text(size = 10,
                                           hjust = 0.5),
                 legend.position="bottom",
                 legend.title = element_text( size = 10),
                 legend.key.size = unit(0.5, "cm"),
                 legend.key.width = unit(0.5,"cm"),
                 legend.text = element_text( size = 10))
ggplotly(gr)
datos %>%   group_by(Rotación)  %>% 
  
             summarise(n = length(as.numeric(Antigüedad_Cargo)),
             Promedio = mean(as.numeric(Antigüedad_Cargo)),
             Mediana = median(as.numeric(Antigüedad_Cargo)),
             Desviacion = sd(as.numeric(Antigüedad_Cargo)),
             Minimo = min(as.numeric(Antigüedad_Cargo)),
             Maximo = max(as.numeric(Antigüedad_Cargo))) 
## # A tibble: 2 x 7
##   Rotación     n Promedio Mediana Desviacion Minimo Maximo
##   <chr>    <int>    <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 No        1233     4.48       3       3.65      0     18
## 2 Si         237     2.90       2       3.17      0     15

En cuanto a la antigüedad Vs la rotación se observa que las personas que llevan desempeñando menos tiempo el cargo son las que más rotación presentan. La distribución de los que rotan presenta menor variabilidad y el 75% de los empleados que han rotado presentaban una antigüedad por debajo de los 5 años.

datos %>% filter(Cargo == c('Investigador_Cientifico','Recursos_Humanos',   'Tecnico_Laboratorio', 'Representante_Ventas')) %>%  group_by(Cargo,Rotación)  %>% 
  
             summarise(n = length(as.numeric(Ingreso_Mensual)),
             Promedio = mean(as.numeric(Ingreso_Mensual)),
             Mediana = median(as.numeric(Ingreso_Mensual)),
             Desviacion = sd(as.numeric(Ingreso_Mensual)),
             Minimo = min(as.numeric(Ingreso_Mensual)),
             Maximo = max(as.numeric(Ingreso_Mensual)))
## # A tibble: 8 x 8
## # Groups:   Cargo [4]
##   Cargo                 Rotación     n Promedio Mediana Desviacion Minimo Maximo
##   <chr>                 <chr>    <int>    <dbl>   <dbl>      <dbl>  <dbl>  <dbl>
## 1 Investigador_Cientif~ No          57    3374.   2929       1205.   1274   6646
## 2 Investigador_Cientif~ Si          12    2562.   2328.       897.   1261   4508
## 3 Recursos_Humanos      No          10    4181.   3638       1924.   2145   7988
## 4 Recursos_Humanos      Si           4    4426.   2538       4045.   2148  10482
## 5 Representante_Ventas  No           9    2611.   2329        548.   2220   3875
## 6 Representante_Ventas  Si           8    2307.   2382        632.   1118   3041
## 7 Tecnico_Laboratorio   No          49    3339.   3038       1078.   1129   5915
## 8 Tecnico_Laboratorio   Si          13    3038.   2515       1193.   2028   5381

Como análisis adicional, se analizó la relación que hay entre el cargo, la rotación y los ingresos y se encontró que una de las causas d rotación para los investigadores científicos, los de recursos humanos y los técnicos de laboratorio es la desigualdad salarial, dado que dentro de estos cargos existe una brecha salarial significativa entre los que deciden cambiar de empleo y los que no.

Conclusiones

Se plantearon inicialmente 6 hipótesis con diferentes variables con las que pudimos evidenciar diferentes grados de asociación que pudiese existir entre estas y la rotación. Evidenciamos que uno de los factores más importantes que estaría influyendo en la rotación de los empleados sería los ingresos bajos, espacialmente en cargos como los representantes de ventas, los técnicos de laboratorio, los de recursos humanos y los investigadores científicos, en donde en los últimos 3 se evidencia internamente una brecha salarial. Por tanto, se recomienda analizar la posibilidad de brindarles diferentes incentivos económicos a estos empelados con la finalidad de disminuir su deserción dado que estos perfiles representan el 46% del total de empleados analizados y el 84% de las rotaciones observadas.