Jhonathan correa Valencia
Elección de las variables categóricas y cuantitativas
A continuación se escogera tres variables categóricas y tres variables cuantitativas para el desarrollo del ejercicio:
Variables Categóricas
Cargo
Estado_Civil
Equilibrio_Trabajo_Vida
Variables Cuantitativas
Ingreso_Mensual
Trabajos_Anteriores
Antigüedad_Cargo
library(readxl)
Rotacion <- read_excel("C:/Users/pocho/Desktop/Datos_Rotacion.xlsx")
est_var = Rotacion [c(10, 12, 13, 14, 20, 22, 1)]
names(est_var)
## [1] "Cargo" "Estado_Civil"
## [3] "Ingreso_Mensual" "Trabajos_Anteriores"
## [5] "Equilibrio_Trabajo_Vida" "Antigüedad_Cargo"
## [7] "Rotacion"
head(est_var)
## # A tibble: 6 x 7
## Cargo Estado_Civil Ingreso_Mensual Trabajos_Anteri~ Equilibrio_Trab~
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 Ejecutivo_Vent~ Soltero 5993 8 1
## 2 Investigador_C~ Casado 5130 1 3
## 3 Tecnico_Labora~ Soltero 2090 6 3
## 4 Investigador_C~ Casado 2909 1 3
## 5 Tecnico_Labora~ Casado 3468 9 3
## 6 Tecnico_Labora~ Soltero 3068 0 2
## # ... with 2 more variables: Antigüedad_Cargo <dbl>, Rotacion <chr>
Justificación de Variables Categóricas que influyen en la rotación y su hipótesis:
Cargo: El cargo puede estar relacionado con la rotación ya que, el nivel de cargo que tengan los trabajadores influtyan en querer encontrar otros empleos con otros perfiles y responsabilidades y el puesto actual no influya mucho en su deseo de quedarse en l puesto actual. La hipótesis propuesta:las personas con determinados cargo tienen a rotar más en la organización.
Estado_Civil: La situación familiar o sentimental puede incidir en la decisión de estar en una empresa o de estar en otra que ofrezca arandelas que benefician a los integrantes de la familia o a la interacción que pueda tener en colaborador con su trabajo y familia. La hipótesis propuesta:hay estados civiles propensos a presentar rotación.
Equilibrio_Trabajo_Vida: En la motivación laboral y la decision de permanecer en una organiación tiene gran injerencia el equilibrio que pueda tener un colaborador con respecto a su vida personal y su trabajo, que no lo absorba completamente pero pueda desarrolar sus competencias y habilidades técnicas. La hipótesis propuesta: entre menor sea el equilibrio mayor la rotación de personal.
Variables cuantitativas que influyen en la rotación y su hipótesis:
Ingreso_Mensual: Dependiendo el nivel delc argo y responsabilidad del colaborador es probable que busque organizaciones que puedan ofrecerle un mayor salario. La hipótesis propuesta:los ingresos mensuales menores pueden tener indicencia a la rotación.
Trabajos_Anteriores: Puede darse una tendencia de cambiar de empleo si en el historial laboral de la persona presenta una alta cantidad de empleos anteriores, puede interpretarse que la persona no cuenta con mayor estabilidad laboral. La hipótesis propuesta: entre mayor sea la cantidad de trabajos anteriores puede tener tendendencia a rotar en el puesto actual.
Antigüedad_Cargo: Las personas a medida que pasa el tiempo llegan a un estancamiento laboral y dominio de sus funciones lo que puede promover en ellos una búsqueda de nuevas experiencias en el mercado laboral. La hipótesis propuesta: entre mayor sea el tiempo en el puesto actual mas probabilidad hay que el colaborador rote.
Analisis Univariado de cada una de las variables
Cargo
require(ggplot2)
require(ggpubr)
require(scales)
require(plotly)
est_var <- data.frame(est_var)
tf1 =data.frame(sort(table(est_var$Cargo),decreasing = TRUE))
d1=data.frame(percent(tf1$Freq/length(est_var$Cargo)/1))
d2=data.frame(tf1,d1)
colnames(d2)= c("Cargo", "Frecuencia", "Porcentaje")
head(d2,9)
## Cargo Frecuencia Porcentaje
## 1 Ejecutivo_Ventas 326 22.18%
## 2 Investigador_Cientifico 292 19.86%
## 3 Tecnico_Laboratorio 259 17.62%
## 4 Director_Manofactura 145 9.86%
## 5 Representante_Salud 131 8.91%
## 6 Gerente 102 6.94%
## 7 Representante_Ventas 83 5.65%
## 8 Director_Investigación 80 5.44%
## 9 Recursos_Humanos 52 3.54%
g1=ggplot(d2,aes(y=Cargo,x=Frecuencia))+geom_bar(stat="identity", fill="Gray") +geom_text(aes(label=Frecuencia),hjust=0.1) + theme_bw()+ggtitle("Cargos en la compañia")
ggplotly(g1)
Estado_civil
require(ggplot2)
require(ggpubr)
require(scales)
tf2 =data.frame(sort(table(est_var$Estado_Civil),decreasing = TRUE))
d3=data.frame(percent(tf2$Freq/length(est_var$Estado_Civil)/1))
d4=data.frame(tf2,d3)
colnames(d4)= c("Estado_Civil", "Frecuencia", "Porcentaje")
head(d4,9)
## Estado_Civil Frecuencia Porcentaje
## 1 Casado 673 45.8%
## 2 Soltero 470 32.0%
## 3 Divorciado 327 22.2%
ggplot(d4,aes(x="",y=Frecuencia,fill=Estado_Civil))+geom_bar(stat="identity", color="white")+geom_text(aes(label=Porcentaje),position=position_stack(vjust=0.5),color="white",size=6)+coord_polar(theta="y")+ theme_cleveland()+ggtitle("Estado civil")
Equilibrio_Trabajo_Vida
Ya que este valor es un valor nominal, se creó la siguiente escala likert para poder interpretar los datos
u1=matrix(1:4,nrow = 4, ncol=1)
u2=matrix(c("Muy Bajo","Bajo","Medio","Alto"),nrow = 4, ncol=1)
likert=data.frame(u1,u2)
names(likert)[1:2]=c("Escala", "Descripción")
likert
## Escala Descripción
## 1 1 Muy Bajo
## 2 2 Bajo
## 3 3 Medio
## 4 4 Alto
require(ggplot2)
require(ggpubr)
require(scales)
require(plotly)
tf3 =data.frame(sort(table(est_var$Equilibrio_Trabajo_Vida),decreasing = TRUE))
pos=match(tf3$Var1,likert$Escala)
tf3$Var1=likert$Descripción[pos]
d5=data.frame(percent(tf3$Freq/length(est_var$Equilibrio_Trabajo_Vida)/1))
d6=data.frame(tf3,d5)
colnames(d6)= c("Equilibrio_Trabajo_Vida", "Frecuencia", "Porcentaje")
head(d6,9)
## Equilibrio_Trabajo_Vida Frecuencia Porcentaje
## 1 Medio 893 60.7%
## 2 Bajo 344 23.4%
## 3 Alto 153 10.4%
## 4 Muy Bajo 80 5.4%
g3=ggplot(d6,aes(x="",y=Frecuencia,fill=Equilibrio_Trabajo_Vida))+geom_bar(stat="identity", color="white")+geom_text(aes(label=Porcentaje),position=position_stack(vjust=0.5),color="white",size=3)+theme_cleveland()+ggtitle("Equilibrio_Trabajo_Vida")
ggplotly(g3)
Ahora, daremos paso a las variables cuantitativas y para ello utilizaremos una función de nos calcule el mínimo, máximo, promedio, desviación estandar y mediana, adicional a ello tambien presentaremos un summary con los datos de cuartiles y finalizará con un grafico.
Cuantitativo1=function (dc){
Minimo=min(dc)
Maximo=max(dc)
Promedio=mean(dc)
Desviacion_Estandar=sd(dc)
Mediana=median(dc)
dato=data.frame(Minimo,Maximo,Promedio,Desviacion_Estandar,Mediana)
##Gráfico
dotchart(dc,pch = 21, bg = "green", pt.cex = 0.2)
##Tabla de datos
dato
return(dato)
}
Cuantitativo2=function (dc){
a=summary(dc)
return(a)
}
Cuantitativo3=function(dc){
tfin=hist(dc,plot = FALSE)
tabla1=table.freq(tfin)
names(tabla1)[1:7]=c("lím_clase_inf","lím_clase_sup","marca_clase", "Frequencie", "Porc_%", "Frec_acum","Porc_%_acum")
return(tabla1)
}
Ingreso_Mensual
require(agricolae)
dc=est_var$Ingreso_Mensual
dc=sort(dc,decreasing = TRUE)
Cuantitativo1(dc)
## Minimo Maximo Promedio Desviacion_Estandar Mediana
## 1 1009 19999 6502.931 4707.957 4919
Cuantitativo2(dc)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1009 2911 4919 6503 8379 19999
Cuantitativo3(dc)
## lím_clase_inf lím_clase_sup marca_clase Frequencie Porc_% Frec_acum
## 1 0 2000 1000 33 2.2 33
## 2 2000 4000 3000 510 34.7 543
## 3 4000 6000 5000 371 25.2 914
## 4 6000 8000 7000 175 11.9 1089
## 5 8000 10000 9000 100 6.8 1189
## 6 10000 12000 11000 86 5.9 1275
## 7 12000 14000 13000 53 3.6 1328
## 8 14000 16000 15000 16 1.1 1344
## 9 16000 18000 17000 57 3.9 1401
## 10 18000 20000 19000 69 4.7 1470
## Porc_%_acum
## 1 2.2
## 2 36.9
## 3 62.2
## 4 74.1
## 5 80.9
## 6 86.7
## 7 90.3
## 8 91.4
## 9 95.3
## 10 100.0
Trabajos_Anteriores
require(agricolae)
dc=est_var$Trabajos_Anteriores
dc=sort(dc,decreasing = TRUE)
Cuantitativo1(dc)
## Minimo Maximo Promedio Desviacion_Estandar Mediana
## 1 0 9 2.693197 2.498009 2
Cuantitativo2(dc)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 1.000 2.000 2.693 4.000 9.000
Cuantitativo3(dc)
## lím_clase_inf lím_clase_sup marca_clase Frequencie Porc_% Frec_acum
## 1 0 1 0.5 718 48.8 718
## 2 1 2 1.5 146 9.9 864
## 3 2 3 2.5 159 10.8 1023
## 4 3 4 3.5 139 9.5 1162
## 5 4 5 4.5 63 4.3 1225
## 6 5 6 5.5 70 4.8 1295
## 7 6 7 6.5 74 5.0 1369
## 8 7 8 7.5 49 3.3 1418
## 9 8 9 8.5 52 3.5 1470
## Porc_%_acum
## 1 48.8
## 2 58.8
## 3 69.6
## 4 79.0
## 5 83.3
## 6 88.1
## 7 93.1
## 8 96.5
## 9 100.0
valor=table(est_var$Trabajos_Anteriores)
#Resumen de frecuencia independiente
valor
##
## 0 1 2 3 4 5 6 7 8 9
## 197 521 146 159 139 63 70 74 49 52
Antigüedad_Cargo
require(agricolae)
dc=est_var$Antigüedad_Cargo
dc=sort(dc,decreasing = TRUE)
Cuantitativo1(dc)
## Minimo Maximo Promedio Desviacion_Estandar Mediana
## 1 0 18 4.229252 3.623137 3
Cuantitativo2(dc)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 2.000 3.000 4.229 7.000 18.000
Cuantitativo3(dc)
## lím_clase_inf lím_clase_sup marca_clase Frequencie Porc_% Frec_acum
## 1 0 2 1 673 45.8 673
## 2 2 4 3 239 16.3 912
## 3 4 6 5 73 5.0 985
## 4 6 8 7 311 21.2 1296
## 5 8 10 9 96 6.5 1392
## 6 10 12 11 32 2.2 1424
## 7 12 14 13 25 1.7 1449
## 8 14 16 15 15 1.0 1464
## 9 16 18 17 6 0.4 1470
## Porc_%_acum
## 1 45.8
## 2 62.0
## 3 67.0
## 4 88.2
## 5 94.7
## 6 96.9
## 7 98.6
## 8 99.6
## 9 100.0
valor=table(est_var$Antigüedad_Cargo)
#Resumen de frecuencia independiente
valor
##
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
## 244 57 372 135 104 36 37 222 89 67 29 22 10 14 11 8 7 4 2
Analisis Bivariado de cada una de las variables Validación de las hipótesis con los resultados bivariados
data_hipo=function(variable){
dfh=data.frame(variable,est_var$Rotacion)
dfh=table(dfh)
return(dfh)
}
Hipotesis: Variables Categóricas y la Rotación:
Cargo:
La hipótesis propuesta:las personas con determinados cargo tienen a rotar más en la organización.
Conclusión: Efectivamenete hay cargo con mayor rotación con respecto a otros; el cargo Representante_Ventas cuenta con mayor rotacion dentro de la organización con un 40% y el cargo con menor rotación con cargo de representante es Representante_Salud con un 7%
Hay que tener en cuenta que en la base de datos los colaboradores con cargo de Representante_Ventas en total son 83 personas y no se puede comparar con Representante_Salud con una población de 131 personas o un Ejecutivo_Ventas quien tiene una poblacion mayor 326 y un % de rotación del 17%
Hay que validar cuales son las causales por las cuales este cargo presenta tan alto porcentaje de rotación a pesar de ser una de las áreas con menor cantidad de personas.
require(CGPfunctions)
variable=est_var$Cargo
data_hipo(variable)
## est_var.Rotacion
## variable No Si
## Director_Investigación 78 2
## Director_Manofactura 135 10
## Ejecutivo_Ventas 269 57
## Gerente 97 5
## Investigador_Cientifico 245 47
## Recursos_Humanos 40 12
## Representante_Salud 122 9
## Representante_Ventas 50 33
## Tecnico_Laboratorio 197 62
PlotXTabs2(est_var,Cargo,Rotacion,plottype = "percent",x.axis.orientation="vertical")
Estado_Civil
La hipótesis propuesta:hay estados civiles propensos a presentar rotación.
Conclusión: Solo el estado civil Soltero presenta una rotación del 26% a comparacion de los otros dos estados civil que mantiene su indicador en la primera decena.
Se deben de realizar verificaciones si dichas personas solteras presentan algun tipo de responsabilidad económica (hijos, deudas, hipotecas) para poder concluir mas puntualmente si los colaboradores que no cuenten con este tipo de obligaciones financieras sienten mas libertad para realizar un cambio de empleo y no sentirse atados al actual
Adicional a ello validar que condiciones laborales son propicias para estos colaboradores y generar estrategias de retención de personal.
require(CGPfunctions)
variable=est_var$Estado_Civil
data_hipo(variable)
## est_var.Rotacion
## variable No Si
## Casado 589 84
## Divorciado 294 33
## Soltero 350 120
PlotXTabs2(est_var,Estado_Civil,Rotacion,plottype = "percent",x.axis.orientation="vertical")
Equilibrio_Trabajo_Vida:
La hipótesis propuesta: entre menor sea el equilibrio mayor la rotación de personal.
Conclusión: Efectivamente las personas que mencionaron bajo equilibrio entre la vida personal y laboral, de las 80 personas que mencionaron bajo equilibrio el 31% presento rotación.
Ahora, las personas que mencionaron equilibrio medio son aquellas con indicadores 18% en rotación y estas representan el 60,7% (893 personas sobre 1470 colaboradoes de la base de datos), es decir que, en la organización un pooc mas de la mitad consideran que pueden tener ese equilibrio laboral y personal.
require(CGPfunctions)
variable=est_var$Equilibrio_Trabajo_Vida
pos=match(variable,likert$Escala)
variable=likert$Descripción[pos]
data_hipo(variable)
## est_var.Rotacion
## variable No Si
## Alto 126 27
## Bajo 286 58
## Medio 766 127
## Muy Bajo 55 25
likert
## Escala Descripción
## 1 1 Muy Bajo
## 2 2 Bajo
## 3 3 Medio
## 4 4 Alto
PlotXTabs2(est_var,Equilibrio_Trabajo_Vida,Rotacion,plottype = "percent",x.axis.orientation="vertical")
Hipotesis: Variables Cuantitativas y la Rotación:
Ingreso_Mensual:
La hipótesis propuesta:los ingresos mensuales menores pueden tener indicencia a la rotación.
Conclusión: El promedio de los salarios de aquellos que no rotan es de S6.832.740 pesos y aquellos que si rotaron fue de $4.787.093 pesos y con las gráficas se fundamenta que el salario es un indicador importante en la rotación de personal.
require(ggplot2)
require(plotly)
tapply(est_var$Ingreso_Mensual,est_var$Rotacion,mean)
## No Si
## 6832.740 4787.093
gt1=ggplot(est_var,aes(x=Rotacion,y=Ingreso_Mensual, fill=Rotacion))+geom_boxplot()+theme_light()
ggplotly(gt1)
Trabajos_Anteriores:
La hipótesis propuesta: entre mayor sea la cantidad de trabajos anteriores puede tener tendendencia a rotar en el puesto actual.
Conclusión: Las cifras de personas que han tenido otros empleos anterior que rotan es muy reducido, la cifra mas alta es 98 personas que han tenido un empleo anterior por lo cual la hipotesis no es correcta y el tener empleos anteriores no marca tendencia con respecto a la rotación
trab_rot=table(est_var$Trabajos_Anteriores,est_var$Rotacion)
trab_rot
##
## No Si
## 0 174 23
## 1 423 98
## 2 130 16
## 3 143 16
## 4 122 17
## 5 47 16
## 6 54 16
## 7 57 17
## 8 43 6
## 9 40 12
bp=barplot(trab_rot,horiz=1, las=1,col=c('yellow','white','pink','orange','brown','gray','red','black','green','blue'),legend.text = TRUE,beside = TRUE)
Antigüedad_Cargo:
La hipótesis propuesta: entre mayor sea el tiempo en el puesto actual mas probabilidad hay que el colaborador rote.
Conclusión: Verificando las cifras aquellas personas que llevan mas tiempo en su trabajo no rotan, en cambio aquellas que lo hacen son aquellas que estan en sus primeros años de contratación; es por esta razón que la hipotesis no es correcta.
require(ggplot2)
require(plotly)
tapply(est_var$Antigüedad_Cargo,est_var$Rotacion,mean)
## No Si
## 4.484185 2.902954
gt3=ggplot(est_var,aes(x=Rotacion,y=Antigüedad_Cargo, fill=Rotacion))+geom_boxplot()+theme_light()
ggplotly(gt3)
PlotXTabs2(est_var,Antigüedad_Cargo,Rotacion,plottype = "percent",x.axis.orientation="vertical")
Estratégias para disminuir la rotación
Verificar cuales son las condiciones laborales (salariales y no salariales) entre los cargos Representante_Salud y Representante_Ventas para poder reducir la elevada rotación de este cargo (Representante_Ventas), realizar entrevistas y medicion de clima laboral con este cargo para encontrar en la raíz las causas de la rotación.
incluir dentro de los beneficios no salariales actividades en las cuales los colaboradores solteros puedan sentirse especial y entender que en la actualidad existen diferentes tipos de familias e integrantes (como mascotas) que pueda tener un impacto sobre el colaborador soltero y propiciar la retenciónd el talento.
Implementar con los con líderes con personas a cargo estrategias en las cuales se busque propiciar el equilibrio de la vida laboral con la vida personal de los colaboradores (manejo de horas extras, contacto fuera del horario laboral), adicional a ello estudiar dentro de ls beneficios no salariales dias de descando por desempeño, cumpleaños, ect.).
Teniendo en cuenta las condiciones económicas y actuales de las organizaciones no es altamente probable proponer aumento de salarios para reducir la rotación pero si se puede estudiar la creación de una chequera de beneficios no salariales en los cuales el colaborador ademas de su salario y prestaciones de ley conozca los beneficios de laborar en la compañia (días libres, pago funeraria, seguro de vida, celebración de efemérides y cumpleaños, convenios de descuentos con entidades comerciales, apoyo para formación y descuento en instituciones de educación superior, plan carrera, etc.)
Reforzar el seguimiento de los colaboradores nuevos durante los primeros años en la empresa a traves de reinduccion, seguimiento en su desempeño, motivación y formación dentro de la organización que permita tener alertas tempranas que se puedan subsanar y garantizar la retención del talento.