ENTREGABLE 2.5 - RECURSOS HUMANOS - BAJAS
# descargar y llamar librerías
#install.packages("tidyverse")
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.5
## ✔ tibble 3.1.8 ✔ dplyr 1.0.10
## ✔ tidyr 1.2.1 ✔ stringr 1.4.1
## ✔ readr 2.1.3 ✔ forcats 0.5.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
#install.packages("foreign")
#install.packages("dplyr")
library(ggplot2)
#install.packages("psych")
library(psych)
##
## Attaching package: 'psych'
##
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
#install.packages("corrplot")
library(corrplot)
## corrplot 0.92 loaded
#install.packages("jtools")
library(jtools)
#install.packages("lmtest")
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
##
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
#install.packages("car")
library(car)
## Loading required package: carData
##
## Attaching package: 'car'
##
## The following object is masked from 'package:psych':
##
## logit
##
## The following object is masked from 'package:dplyr':
##
## recode
##
## The following object is masked from 'package:purrr':
##
## some
#install.packages("factoextra")
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
#install.packages("janitor")
library(janitor)
##
## Attaching package: 'janitor'
##
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
#install.packages("readr")
library(readr)
#install.packages("plotrix")
library(plotrix)
##
## Attaching package: 'plotrix'
##
## The following object is masked from 'package:psych':
##
## rescale
#file.choose()
rh <- read.csv("/Users/anapaulatejeda/Downloads/recursos_humanos_base_limpia.csv")
# Limpiar nombre
rh1 <- clean_names(rh)
# Visualizar base de datos
summary(rh1)
## apellidos nombre edad fecha_de_nacimiento
## Length:233 Length:233 Min. :19.00 Length:233
## Class :character Class :character 1st Qu.:23.00 Class :character
## Mode :character Mode :character Median :29.00 Mode :character
## Mean :31.08
## 3rd Qu.:37.00
## Max. :61.00
## genero rfc fecha_de_alta motivo_de_baja
## Length:233 Length:233 Length:233 Length:233
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## dias_laborados baja puesto departamento
## Min. : 0.00 Length:233 Length:233 Length:233
## 1st Qu.: 6.00 Class :character Class :character Class :character
## Median : 15.00 Mode :character Mode :character Mode :character
## Mean : 72.73
## 3rd Qu.: 47.00
## Max. :1966.00
## no_seguro_social salario_diario_imss factor_cred_infonavit
## Length:233 Min. :144.4 Length:233
## Class :character 1st Qu.:180.7 Class :character
## Mode :character Median :180.7 Mode :character
## Mean :177.9
## 3rd Qu.:180.7
## Max. :500.0
## n_credito_infonavit lugar_de_nacimiento curp calle
## Length:233 Length:233 Length:233 Length:233
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## numero_interno colonia codigo_postal municipio
## Length:233 Length:233 Length:233 Length:233
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## estado estado_civil tarjeta_o_cuenta
## Length:233 Length:233 Length:233
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
# Eliminar columnas que no se necesitan
rh2 <- subset(rh1,select = -c (apellidos, nombre, fecha_de_nacimiento, rfc, fecha_de_alta, baja, departamento,
no_seguro_social, factor_cred_infonavit, n_credito_infonavit, lugar_de_nacimiento,
curp, calle, numero_interno, colonia, codigo_postal, municipio, estado, tarjeta_o_cuenta))
summary(rh2)
## edad genero motivo_de_baja dias_laborados
## Min. :19.00 Length:233 Length:233 Min. : 0.00
## 1st Qu.:23.00 Class :character Class :character 1st Qu.: 6.00
## Median :29.00 Mode :character Mode :character Median : 15.00
## Mean :31.08 Mean : 72.73
## 3rd Qu.:37.00 3rd Qu.: 47.00
## Max. :61.00 Max. :1966.00
## puesto salario_diario_imss estado_civil
## Length:233 Min. :144.4 Length:233
## Class :character 1st Qu.:180.7 Class :character
## Mode :character Median :180.7 Mode :character
## Mean :177.9
## 3rd Qu.:180.7
## Max. :500.0
# na's en la base de datos
sum(is.na(rh2))
## [1] 0
sapply(rh2, function(x) sum(is.na(x)))
## edad genero motivo_de_baja dias_laborados
## 0 0 0 0
## puesto salario_diario_imss estado_civil
## 0 0 0
# no se encuentran NA's en la base de datos
# Convertir tipos de datos
rh2$edad <- as.numeric(rh2$edad)
rh2$genero <- as.factor(rh2$genero)
rh2$motivo_de_baja <- as.factor(rh2$motivo_de_baja)
rh2$dias_laborados <- as.numeric(rh2$dias_laborados)
rh2$puesto <- as.factor(rh2$puesto)
rh2$salario_diario_imss <- as.numeric(rh2$salario_diario_imss)
rh2$estado_civil <- as.factor(rh2$estado_civil)
summary(rh2)
## edad genero motivo_de_baja dias_laborados
## Min. :19.00 FEMENINO :137 ABANDONO : 1 Min. : 0.00
## 1st Qu.:23.00 MASCULINO: 96 BAJA POR FALTAS :139 1st Qu.: 6.00
## Median :29.00 JUBILACION : 1 Median : 15.00
## Mean :31.08 RENUNCIA VOLUNTARIA: 84 Mean : 72.73
## 3rd Qu.:37.00 TERMINO DE CONTRATO: 8 3rd Qu.: 47.00
## Max. :61.00 Max. :1966.00
##
## puesto salario_diario_imss estado_civil
## AYUDANTE GENERAL :171 Min. :144.4 divorcio : 3
## COSTURERA : 10 1st Qu.:180.7 matrimonio : 63
## SOLDADOR : 10 Median :180.7 Sin Conocer: 1
## MONTACARGUISTA : 5 Mean :177.9 Soltero :107
## AY. GENERAL : 4 3rd Qu.:180.7 Unión libre: 59
## AUXILIAR DE EMBARQUES: 3 Max. :500.0
## (Other) : 30
# Normalizar Variables
rh_edad_dias <-rh2 %>% select(salario_diario_imss, edad, dias_laborados)
rh_edad_dias_norm<-scale(rh_edad_dias[2:3])
plot(rh_edad_dias_norm)
# Número óptimo de clústers con "Elbow Plot"
fviz_nbclust(rh_edad_dias_norm, kmeans, method="wss")+
geom_vline(xintercept=6, linetype=2)+
labs(subtitle = "Elbow method")
De acuerdo al elbow method, el numero óptimo de clusters son 6 pero al momento de visualizarlo se determinó que es una elevada cantidad de clusters y no sería tan sencillo el interpretar y nombrar tantos clusters por lo que se llegó a la conclusión que se elaborarán 5 clusters.
# Visualizar Clusters
cluster1 <-kmeans(rh_edad_dias_norm,5)
cluster1
## K-means clustering with 5 clusters of sizes 43, 4, 68, 8, 110
##
## Cluster means:
## edad dias_laborados
## 1 1.5856496 -0.1730602
## 2 1.0544820 6.6446440
## 3 0.2370717 -0.2593203
## 4 0.2767222 1.9190143
## 5 -0.8248684 -0.1532302
##
## Clustering vector:
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
## 4 3 5 5 3 1 3 3 1 5 5 3 5 3 4 5 5 5 5 5
## 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
## 3 2 5 3 1 5 3 5 5 5 3 5 5 5 3 5 5 4 3 5
## 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
## 4 4 5 5 5 5 5 5 1 1 1 2 5 1 5 5 1 5 5 5
## 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
## 5 5 3 5 5 1 5 4 4 5 5 5 3 5 3 5 1 5 5 1
## 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
## 2 5 1 5 5 5 1 5 5 5 3 1 1 5 5 5 1 3 5 3
## 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
## 5 5 1 3 5 5 3 2 3 5 3 3 5 3 3 3 1 1 1 5
## 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
## 5 5 5 5 3 5 3 1 5 3 5 4 5 5 5 3 1 3 1 3
## 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
## 3 1 1 1 5 3 3 3 5 5 5 3 1 1 5 3 5 3 1 1
## 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
## 1 1 3 1 5 5 3 5 5 1 3 1 5 1 3 3 1 3 3 5
## 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
## 5 5 3 1 3 3 5 5 3 3 3 3 3 3 5 3 3 3 3 5
## 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
## 3 1 3 5 5 5 1 5 5 5 3 3 5 5 3 3 3 1 5 5
## 221 222 223 224 225 226 227 228 229 230 231 232 233
## 3 5 5 5 5 1 3 1 5 5 5 5 5
##
## Within cluster sum of squares by cluster:
## [1] 11.405375 15.799166 7.976676 7.819045 14.649008
## (between_SS / total_SS = 87.6 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
fviz_cluster(cluster1,data=rh_edad_dias_norm)
Interpretación: Cluster número 1 y 4 son de edades diferentes pero tienen días laborados similares, igual que el cluster 3 y 5 . Por otro lado, el cluster 2 son datos que no tienen días laborados similares pero tienen más días que los otros clusters y tiene un rango diferente de edades. Por lo que se concluye que los días laborados no tienen tanta relación con la edad.
# Normalizar Variables
rh_edad_sal <-rh2 %>% select(salario_diario_imss, edad, dias_laborados)
rh_edad_sal_norm<-scale(rh_edad_dias[1:2])
plot(rh_edad_sal_norm)
# Número óptimo de clústers con "Elbow Plot"
fviz_nbclust(rh_edad_sal_norm, kmeans, method="wss")+
geom_vline(xintercept=5, linetype=2)+
labs(subtitle = "Elbow method")
Se determin’o que el n’umero ’optimo es de 5 clusters
# Visualizar Clusters
cluster2 <-kmeans(rh_edad_sal_norm,5)
cluster2
## K-means clustering with 5 clusters of sizes 1, 34, 40, 63, 95
##
## Cluster means:
## salario_diario_imss edad
## 1 13.75965225 0.09524497
## 2 -0.11512539 1.83986677
## 3 0.11335568 0.74337807
## 4 -0.11750244 -0.10886552
## 5 -0.07344171 -0.90028748
##
## Clustering vector:
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
## 1 4 5 5 4 2 4 4 2 5 5 4 5 4 4 5 5 5 5 5
## 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
## 4 2 5 4 2 5 3 5 5 5 4 5 5 5 4 5 5 4 4 5
## 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
## 5 4 5 5 5 5 5 5 2 2 3 2 5 2 5 5 2 5 5 5
## 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
## 5 5 3 4 4 3 5 2 4 5 5 5 3 4 3 5 3 5 5 2
## 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
## 4 4 2 5 5 5 3 5 5 5 4 3 2 5 5 4 2 4 5 4
## 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
## 5 5 3 4 5 5 3 4 3 5 4 4 5 3 4 4 2 2 2 5
## 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
## 5 5 5 5 4 5 3 2 4 3 5 2 5 4 4 4 2 4 3 3
## 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
## 4 3 2 2 5 4 3 4 5 4 5 3 2 2 5 3 5 3 3 3
## 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
## 2 2 4 2 5 4 4 5 4 2 4 2 4 3 4 3 2 3 3 5
## 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
## 5 5 4 2 3 3 5 5 4 3 3 4 3 4 5 4 4 4 4 5
## 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
## 4 2 3 5 5 5 2 4 5 5 3 4 5 5 3 3 3 2 4 4
## 221 222 223 224 225 226 227 228 229 230 231 232 233
## 4 5 5 5 4 3 4 3 5 5 5 5 5
##
## Within cluster sum of squares by cluster:
## [1] 0.000000 13.383803 2.840067 17.829341 23.318853
## (between_SS / total_SS = 87.6 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
fviz_cluster(cluster2,data=rh_edad_sal_norm)
Interpretación: Todos tienen un salario similar sin importar la edad pero en el cluster 1 (que nomás es un punto) nos indica que hay alguien que gana más que los demás colaboradores y tienen una edad relativamente joven a comparación de los demás datos.
# Normalizar Variables
rh_dias_sal <-rh2 %>% select(salario_diario_imss, dias_laborados, edad)
rh_dias_sal_norm<-scale(rh_dias_sal[1:2])
plot(rh_dias_sal_norm)
# Número óptimo de clústers con "Elbow Plot"
fviz_nbclust(rh_dias_sal_norm, kmeans, method="wss")+
geom_vline(xintercept=5, linetype=2)+
labs(subtitle = "Elbow method")
Se determinó que el número óptimo es de 5 clusters
# Visualizar Clusters
cluster3 <-kmeans(rh_dias_sal_norm,5)
cluster3
## K-means clustering with 5 clusters of sizes 4, 1, 10, 27, 191
##
## Cluster means:
## salario_diario_imss dias_laborados
## 1 -0.3962566 6.64464404
## 2 13.7596523 2.56751686
## 3 -0.3729089 1.50771810
## 4 -1.1243505 0.03652891
## 5 0.1147221 -0.23669924
##
## Clustering vector:
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
## 2 4 4 4 4 4 4 4 4 3 4 4 5 5 3 4 4 4 4 4
## 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
## 4 1 4 4 5 5 5 5 5 5 5 5 5 5 5 5 4 3 5 5
## 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
## 3 3 5 5 5 5 5 5 5 5 5 1 3 5 5 5 5 5 5 4
## 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
## 5 5 5 5 5 5 5 3 3 4 5 5 5 5 5 5 5 5 5 5
## 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
## 1 4 4 4 4 5 5 5 5 5 5 5 5 5 5 5 4 4 5 5
## 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
## 5 5 5 5 5 5 5 1 5 5 5 5 5 5 5 5 5 5 5 5
## 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
## 5 5 5 5 5 5 5 5 5 5 5 3 5 5 5 5 5 5 5 5
## 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
## 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
## 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
## 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
## 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
## 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 3 5 5
## 221 222 223 224 225 226 227 228 229 230 231 232 233
## 5 5 5 5 5 5 5 5 5 5 5 5 5
##
## Within cluster sum of squares by cluster:
## [1] 7.839149 0.000000 6.408768 1.637196 3.455406
## (between_SS / total_SS = 95.8 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
fviz_cluster(cluster3,data=rh_dias_sal_norm)
Interpretación: Los días laborados no tienen influencia en el salario porque hay datos que indican colaboradores que trabajan más días pero tienen un salario similar a los que no tienen tantos días laborados. El cluster 2 podemos observar que es el que tiene un mayor salario pero no es el que tiene una cantidad alta de días laborados como es en el cluster 1. Por lo tanto, los días laborados no tienen relación con el salrio.
# Incluir columna que indique el cluster de cada registro
rh3 <- rh2
rh3$Clusters<-cluster2$cluster
# visualizar la máxima edad de cada cluster
rh4 <- rh3 %>% group_by(Clusters) %>% summarise(edad=max(edad)) %>% arrange(desc(edad))
# Nombrar cada cluster
rh3$nombres_clusters <- factor(rh3$Clusters,levels = c(1,2,3,4,5),
labels=c("Excepcion", "Jubilados", "Mayores", "Adultos", "Jovenes"))
# Agrupar los datos por nombre de clusters
library(dplyr)
rh5 <- rh3 %>% group_by(nombres_clusters) %>% summarize(edad_años=max(edad),
salario_imss=mean(salario_diario_imss),
Count=n())
clusters<-as.data.frame(rh5)
clusters
## nombres_clusters edad_años salario_imss Count
## 1 Excepcion 32 500.0000 1
## 2 Jubilados 61 175.2329 34
## 3 Mayores 43 180.5810 40
## 4 Adultos 36 175.1773 63
## 5 Jovenes 26 176.2086 95
ggplot(rh5,aes(x=reorder(nombres_clusters,Count),y=Count,fill=nombres_clusters)) +
geom_bar(stat="identity")
Interpretación: Los jóvenes adultos son los que representan más número de bajas y se visualiza que el orden de número de bajas est’a en el mismo orden de edad, esto significa que despu’es de los jóvenes adultos el grupo que más representa bajas es el de los adultos y de ahí siguen los mmayores y por último los jubilados. En conclusión la edad puede ser un factor importante en el número de bajas.
ggplot(rh5, aes(x=nombres_clusters,y=edad_años,fill= nombres_clusters,label=round(edad_años,digits=2))) +
geom_col() +
geom_text()
interpretación: Aquí se ve la máxima de edad de cada cluster y también muestra la razón por la que se dieron los nombres a cada cluster. Los jóvenes tienen un rango de edad de 19-26, Adultos 27-36, Mayores 37-43 y Jubilados 44-61.
library(ggplot2)
ggplot(rh3, aes(fill=genero, y=genero, x=nombres_clusters)) +
geom_bar(position="stack", stat="identity")
interpretación: En la gráfica se aprecia un número alto de género masculino en todos los clusters. En Jubilados y Mayores el género Femenino es mayor que el masculino.
ggplot(rh3, aes(factor(nombres_clusters), fill = factor(motivo_de_baja))) +
geom_bar(position = position_dodge2(preserve = "single"))
interpretación: Se puede observar que el motivo de baja mas grande en todos los grupos de edades es la baja por faltas seguido de renuncia voluntaria. En jóvenes se puede observar que hay baja por abandono mientras que en los otros clusters no hubo ninguna baja por abandono.
library(plyr)
## ------------------------------------------------------------------------------
## You have loaded plyr after dplyr - this is likely to cause problems.
## If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
## library(plyr); library(dplyr)
## ------------------------------------------------------------------------------
##
## Attaching package: 'plyr'
## The following objects are masked from 'package:dplyr':
##
## arrange, count, desc, failwith, id, mutate, rename, summarise,
## summarize
## The following object is masked from 'package:purrr':
##
## compact
count(rh3$puesto)
## x freq
## 1 ANALISTA DE NOMINAS /AUX DE R.H. 1
## 2 AUXILIAR DE EMBARQUES 3
## 3 AY. GENERAL 4
## 4 AY.GENERAL (MATERIALES) 1
## 5 AYUD.EMBARQUES 1
## 6 AYUDANTE DE EMBARQUES 3
## 7 AYUDANTE DE MTTO 1
## 8 AYUDANTE DE SOLDADOR 1
## 9 AYUDANTE GENERAL 171
## 10 AYUDANTE GENERAL DE EMBARQUES 1
## 11 CHOFER 1
## 12 CORTADOR 1
## 13 COSTURERA 10
## 14 COSTURERO 1
## 15 DISEÑO 1
## 16 ENCARGADA DE CALIDAD 1
## 17 FACTURACION 1
## 18 GUARDIA DE SEGURIDAD 2
## 19 INSPECTOR CALIDAD 1
## 20 INSPECTOR DE CALIDAD 2
## 21 INSPECTORA DE CALIDAD 1
## 22 LIMPIEZA 1
## 23 MARCADORA 1
## 24 MATERIALISTA 2
## 25 MONTACARGUISTA 5
## 26 PRACTICANTE DE MTTO 1
## 27 RESIDENTE 2
## 28 Residente Yanfeng 1
## 29 SERVICIO AL CLIENTE 1
## 30 SOLDADOR 10
proporciones <- c(176, 11, 11, 8, 26)
eti <- c("ayudante general", "ayu. soldador/soldador", "costurera", "ayu. embarque", "otros" )
pct <- round(proporciones/sum(proporciones)*100)
eti <- paste(eti, pct)
eti <- paste(eti,"%",sep="")
pie3D(proporciones,labels = eti,
col=rainbow(length(eti)),
main="Puestos de bajas")
interpretación: el puesto en el que más se presentan bajas es en ayudante general, seguido de ayudante soldador/soldador, costurera, etc. Una de las posibles razones por la que haya más bajas en ayudante general es porque en ese puesto se necesitan más colaboradores por lo que el número de bajas en ese puesto puede ser mayor o también puede ser el ambiente general que se crea en ese puesto, estás hipotésis se comprobarían con un análisis más profundo de RH.
ggplot(rh3, aes(factor(nombres_clusters), fill = factor(estado_civil))) +
geom_bar(position = position_dodge2(preserve = "single"))
proporciones1 <- c(107, 3, 59, 63)
etiquetas <- c("soltero", "divorcio", "union libre", "matrimonio")
pct <- round(proporciones1/sum(proporciones1)*100)
etiquetas <- paste(etiquetas, pct)
etiquetas <- paste(etiquetas,"%",sep="")
pie3D(proporciones1,labels = etiquetas,
col=rainbow(length(etiquetas)),
main="Estado civil de bajas")
interpretación: En el total de bajas el estado civil más común es “soltero” siendo los jóvenes los que tienen una mayor cantidad de este atributo, seguido de los adultos. Después, está el matrimonio siendo este el más presente en el grupo de adultos, seguido de los jóvenes. El divorcio no es tán común en los grupos. En conclusión se puede deducir que la mayoría de los ex-colaboradores son solteros por lo que es más fácil renunciar al no tener una extensa y/o propia familia. Ya que los solteros son la mayoría por ende los jóvenes son los más propensos en darse de baja en FORM.