print(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>, …
Departamento: Se anticipa que algunos departamentos presenten una mayor rotación de empleados en comparación con otros.
Satisfacción Laboral: Se espera que a medida que disminuye la satisfacción laboral, la tasa de rotación aumente.
Estado Civil: Las personas solteras tienden a cambiar de trabajo con mayor facilidad; por lo tanto, se esperaría que esta categoría presente una tasa de rotación más alta.
Ingreso Mensual: Existe una relación inversa entre los ingresos mensuales y la tasa de rotación: a mayores ingresos, menor es la tasa de rotación.
Antigüedad en el Cargo: Los empleados con mayor antigüedad suelen tener un mayor sentido de pertenencia, lo que se traduce en tasas de rotación más bajas.
Edad: A medida que aumenta la edad, es razonable esperar una mayor estabilidad laboral, por lo que anticipamos una menor tasa de rotación en grupos de mayor edad.
# Crear base de datos con las variables elegidad.
rotaciondf = rotacion %>%
select(Departamento, Satisfación_Laboral, Estado_Civil, Edad, Ingreso_Mensual, Antigüedad_Cargo, Rotación)
print(rotaciondf)
## # A tibble: 1,470 × 7
## Departamento Satisfación_Laboral Estado_Civil Edad Ingreso_Mensual
## <chr> <dbl> <chr> <dbl> <dbl>
## 1 Ventas 4 Soltero 41 5993
## 2 IyD 2 Casado 49 5130
## 3 IyD 3 Soltero 37 2090
## 4 IyD 3 Casado 33 2909
## 5 IyD 2 Casado 27 3468
## 6 IyD 4 Soltero 32 3068
## 7 IyD 1 Casado 59 2670
## 8 IyD 3 Divorciado 30 2693
## 9 IyD 3 Soltero 38 9526
## 10 IyD 3 Casado 36 5237
## # ℹ 1,460 more rows
## # ℹ 2 more variables: Antigüedad_Cargo <dbl>, Rotación <chr>
sapply(rotaciondf[, c("Edad", "Ingreso_Mensual", "Antigüedad_Cargo")], summary)
## Edad Ingreso_Mensual Antigüedad_Cargo
## Min. 18.00000 1009.000 0.000000
## 1st Qu. 30.00000 2911.000 2.000000
## Median 36.00000 4919.000 3.000000
## Mean 36.92449 6502.931 4.229252
## 3rd Qu. 43.00000 8379.000 7.000000
## Max. 60.00000 19999.000 18.000000
frecuencia_dep <- rotaciondf %>%
group_by(Departamento) %>%
summarise(Frecuencia = n())
# Mostrar la frecuencia
print(frecuencia_dep)
## # A tibble: 3 × 2
## Departamento Frecuencia
## <chr> <int>
## 1 IyD 961
## 2 RH 63
## 3 Ventas 446
# Calcular las frecuencias
frecuencia_SL <- rotaciondf %>%
group_by(Satisfación_Laboral) %>%
summarise(Frecuencia = n())
# Mostrar la frecuencia
print(frecuencia_SL)
## # A tibble: 4 × 2
## Satisfación_Laboral Frecuencia
## <dbl> <int>
## 1 1 289
## 2 2 280
## 3 3 442
## 4 4 459
# Calcular las frecuencias
frecuencia_EC <- rotaciondf %>%
group_by(Estado_Civil) %>%
summarise(Frecuencia = n())
# Mostrar la frecuencia
print(frecuencia_EC)
## # A tibble: 3 × 2
## Estado_Civil Frecuencia
## <chr> <int>
## 1 Casado 673
## 2 Divorciado 327
## 3 Soltero 470
g1=ggplot(rotaciondf,aes(x=Departamento))+geom_bar(fill = "cyan3")+theme_bw()
g2=ggplot(rotaciondf,aes(x=Satisfación_Laboral))+geom_bar(fill = "cyan3")+theme_bw()
g3=ggplot(rotaciondf,aes(x=Estado_Civil))+geom_bar(fill = "cyan3")+theme_bw()
g4=ggplot(rotaciondf,aes(x=Edad))+geom_histogram(fill = "cyan3")+theme_bw()
g5=ggplot(rotaciondf,aes(x=Ingreso_Mensual))+geom_histogram(fill = "cyan3")+theme_bw()
g6=ggplot(rotaciondf,aes(x=Antigüedad_Cargo))+geom_histogram(fill = "cyan3")+theme_bw()
ggarrange(g1, g2, g3, g4, g5, g6,labels = c("A", "B","C","D","E","F"),ncol = 2, nrow = 1)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## $`1`
##
## $`2`
##
## $`3`
##
## attr(,"class")
## [1] "list" "ggarrange"
El departamento con el mayor número de empleados es IyD, que cuenta con un total de 961 colaboradores. En contraste, el departamento con el menor número de empleados es HR, con solo 63. Por otro lado, el departamento de ventas tiene 446 empleados.
La mayoría de los empleados clasifican su satisfacción laboral en los niveles 3 y 4, obteniendo 442 calificaciones de “satisfecho” y 459 de “muy satisfecho”, respectivamente. En cambio, un menor número de empleados se posiciona en los niveles 1 y 2, con 289 clasificaciones de “muy insatisfecho” y 280 de “insatisfecho”.
En cuanto al estado civil, la empresa presenta un mayor número de empleados casados (673), seguidos por los solteros (470) y, en menor cantidad, los divorciados (327).
La mayoría de los empleados se encuentra en el rango de edad de 25 a 45 años. El empleado más joven tiene 18 años y el de mayor edad con 60 años.
El salario promedio es de aproximadamente 5 millones. La mayoría de los salarios se sitúan entre 1 millón y 7 millones, con un salario mínimo de 1 millón y un máximo de 20 millones.
La mayoría de los empleados tiene una antigüedad en su cargo que oscila entre 0 y 7 años, con una media de 4.2 años y un valor máximo de 18 años.
rotaciondf$Rotación <- factor(ifelse(rotacion$Rotación == "Si", 1, 0))
head(rotaciondf$Rotación)
## [1] 1 0 1 0 0 0
## Levels: 0 1
# Graficar por departamento
graficodepartamento <- ggplot(rotaciondf, aes(x = Departamento, fill = Rotación)) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
labs(title = "Gráfico por Departamento", x = "Departamento", y = "Porcentaje")
# Imprimir las gráficas
print(graficodepartamento)
# Graficar por Satisfación_Laboral
graficoSatisfación_Laboral <- ggplot(rotaciondf, aes(x = Satisfación_Laboral, fill = Rotación)) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
labs(title = "Gráfico por Satisfación_Laboral", x = "Satisfación_Laboral", y = "Porcentaje")
# Imprimir las gráficas
print(graficoSatisfación_Laboral)
# Graficar el estado civil
graficoEstado_Civil <- ggplot(rotaciondf, aes(x = Estado_Civil, fill = Rotación)) +
geom_bar(position = "fill") +
scale_y_continuous(labels = scales::percent) +
labs(title = "Gráfico de Estado Civil", x = "Estado Civil", y = "Porcentaje")
print(graficoEstado_Civil)
graficoingreso =ggplot(rotaciondf,aes(x=Rotación,y= Ingreso_Mensual,fill=Rotación))+geom_boxplot()+theme_bw()
graficoAntigüedad =ggplot(rotaciondf,aes(x=Rotación,y= Antigüedad_Cargo,fill=Rotación))+geom_boxplot()+theme_bw()
graficoedad =ggplot(rotaciondf,aes(x=Rotación,y=
Edad,fill=Rotación))+geom_boxplot()+theme_bw()
print(graficoingreso)
print(graficoAntigüedad)
print(graficoedad)