Librerías

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)

Abrir base de datos

# file.choose()
BDD_FORM_BAJAS_2023 <- read_csv("/Users/danrwar/Desktop/Rstudio works/etapa 1/BDD_FORM_BAJAS_2023.csv")
## Rows: 279 Columns: 28
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (24): Apellidos, Nombre, Fecha de Nacimiento, Género, RFC, Fecha de Alta...
## dbl  (4): No., SD, CP, Número de Télefono
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Seleccionar las variables de Motivo de baja y Estado Civil en un nuevo data frame.

mbaja <- select(BDD_FORM_BAJAS_2023,`Motivo de Baja`,`Estado Civil`) %>% na.omit(mbaja)

Agrupar la categoría con diferentes nombres cambiando a el mismo nombre

mbaja$"Motivo de Baja"[mbaja$"Motivo de Baja" == "Inducida."] <- "Inducida"

mbaja$"Motivo de Baja"[mbaja$"Motivo de Baja" == "Inducida (Faltas)"] <- "Inducida por faltas"

mbaja$"Motivo de Baja"[mbaja$"Motivo de Baja" == "Inducida (Faltas no dio los tiempos)"] <- "Inducida"

Calcular los porcentajes por categoría y estado civil

porcentajes <- mbaja %>%
  group_by(`Estado Civil`, `Motivo de Baja`) %>%
  summarise(Frecuencia = n()) %>%
  group_by(`Estado Civil`) %>%
  mutate(Pct = scales::percent(Frecuencia / sum(Frecuencia)))
## `summarise()` has grouped output by 'Estado Civil'. You can override using the
## `.groups` argument.

Crear la gráfica de barras apliadas

plot <- ggplot(porcentajes, aes(x = `Estado Civil`, y = Frecuencia, fill = `Motivo de Baja`)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  theme(
    panel.grid.major = element_line(color = "grey", linewidth = 0.4, linetype = "dotted"),  # Líneas verticales
    panel.grid.minor = element_line(color = "grey", linewidth = 0.4, linetype = "dotted")  # Líneas horizontales
  )+
  ggtitle("Relación entre Motivo de Baja y Estado Civil")

Agregar etiquetas de porcentaje

plot + geom_text(aes(label = Pct), position = position_stack(vjust = 0.5),size=2)

Interpretación

Por lo que podemos ver en la gráfica, la gran mayoría de las bajas en todas las categorías son por separación voluntaria y realmente no se logra ver una correlación entre el estado civil de la persona y el motivo de baja, lo que podría indicar una alta rotación de empleados en los trabajos de maquila en general o podría ser un indicador de que hay varias áreas de oportunidad en cuestión de amenidades, salarios, bonos, oportunidades de crecimiento en la empresa, traslado o prestaciones que la empresa ofrece además de las básicas dictadas por la ley.

LS0tCnRpdGxlOiAiwr9DdcOhbCBlcyBsYSByZWxhY2nDs24gZW50cmUgZWwgbW90aXZvIGRlIGJhamEgeSBlbCBlc3RhZG8gY2l2aWwgZGUgbG9zIGVtcGxlYWRvcz8iCmF1dGhvcjogIlJvZ2Vpcm8gRGFuaWVsIFJhbcOtcmV6IEdhcnphIEEwMTE3Nzg3NSIKZGF0ZTogIjIwMjMtMDktMDUiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiBUUlVFCiAgICB0b2NfZmxvYXQ6IFRSVUUKICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUKICAgIHRoZW1lOiAidW5pdGVkIgotLS0KIyBMaWJyZXLDrWFzCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShnZ3Bsb3QyKQpgYGAKCiMgQWJyaXIgYmFzZSBkZSBkYXRvcwoKYGBge3J9CiMgZmlsZS5jaG9vc2UoKQpCRERfRk9STV9CQUpBU18yMDIzIDwtIHJlYWRfY3N2KCIvVXNlcnMvZGFucndhci9EZXNrdG9wL1JzdHVkaW8gd29ya3MvZXRhcGEgMS9CRERfRk9STV9CQUpBU18yMDIzLmNzdiIpCmBgYAoKIyBTZWxlY2Npb25hciBsYXMgdmFyaWFibGVzIGRlIE1vdGl2byBkZSBiYWphIHkgRXN0YWRvIENpdmlsIGVuIHVuIG51ZXZvIGRhdGEgZnJhbWUuCgpgYGB7cn0KbWJhamEgPC0gc2VsZWN0KEJERF9GT1JNX0JBSkFTXzIwMjMsYE1vdGl2byBkZSBCYWphYCxgRXN0YWRvIENpdmlsYCkgJT4lIG5hLm9taXQobWJhamEpCmBgYAoKIyBBZ3J1cGFyIGxhIGNhdGVnb3LDrWEgY29uIGRpZmVyZW50ZXMgbm9tYnJlcyBjYW1iaWFuZG8gYSBlbCBtaXNtbyBub21icmUKYGBge3J9CgptYmFqYSQiTW90aXZvIGRlIEJhamEiW21iYWphJCJNb3Rpdm8gZGUgQmFqYSIgPT0gIkluZHVjaWRhLiJdIDwtICJJbmR1Y2lkYSIKCm1iYWphJCJNb3Rpdm8gZGUgQmFqYSJbbWJhamEkIk1vdGl2byBkZSBCYWphIiA9PSAiSW5kdWNpZGEgKEZhbHRhcykiXSA8LSAiSW5kdWNpZGEgcG9yIGZhbHRhcyIKCm1iYWphJCJNb3Rpdm8gZGUgQmFqYSJbbWJhamEkIk1vdGl2byBkZSBCYWphIiA9PSAiSW5kdWNpZGEgKEZhbHRhcyBubyBkaW8gbG9zIHRpZW1wb3MpIl0gPC0gIkluZHVjaWRhIgpgYGAKCiMgQ2FsY3VsYXIgbG9zIHBvcmNlbnRhamVzIHBvciBjYXRlZ29yw61hIHkgZXN0YWRvIGNpdmlsCmBgYHtyfQpwb3JjZW50YWplcyA8LSBtYmFqYSAlPiUKICBncm91cF9ieShgRXN0YWRvIENpdmlsYCwgYE1vdGl2byBkZSBCYWphYCkgJT4lCiAgc3VtbWFyaXNlKEZyZWN1ZW5jaWEgPSBuKCkpICU+JQogIGdyb3VwX2J5KGBFc3RhZG8gQ2l2aWxgKSAlPiUKICBtdXRhdGUoUGN0ID0gc2NhbGVzOjpwZXJjZW50KEZyZWN1ZW5jaWEgLyBzdW0oRnJlY3VlbmNpYSkpKQpgYGAKCiMgQ3JlYXIgbGEgZ3LDoWZpY2EgZGUgYmFycmFzIGFwbGlhZGFzCmBgYHtyfQpwbG90IDwtIGdncGxvdChwb3JjZW50YWplcywgYWVzKHggPSBgRXN0YWRvIENpdmlsYCwgeSA9IEZyZWN1ZW5jaWEsIGZpbGwgPSBgTW90aXZvIGRlIEJhamFgKSkgKwogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZSgKICAgIHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2xpbmUoY29sb3IgPSAiZ3JleSIsIGxpbmV3aWR0aCA9IDAuNCwgbGluZXR5cGUgPSAiZG90dGVkIiksICAjIEzDrW5lYXMgdmVydGljYWxlcwogICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfbGluZShjb2xvciA9ICJncmV5IiwgbGluZXdpZHRoID0gMC40LCBsaW5ldHlwZSA9ICJkb3R0ZWQiKSAgIyBMw61uZWFzIGhvcml6b250YWxlcwogICkrCiAgZ2d0aXRsZSgiUmVsYWNpw7NuIGVudHJlIE1vdGl2byBkZSBCYWphIHkgRXN0YWRvIENpdmlsIikKCmBgYAoKIyBBZ3JlZ2FyIGV0aXF1ZXRhcyBkZSBwb3JjZW50YWplCmBgYHtyfQpwbG90ICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IFBjdCksIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAwLjUpLHNpemU9MikKYGBgCgojIEludGVycHJldGFjacOzbgojIyMjIFBvciBsbyBxdWUgcG9kZW1vcyB2ZXIgZW4gbGEgZ3LDoWZpY2EsIGxhIGdyYW4gbWF5b3LDrWEgZGUgbGFzIGJhamFzIGVuIHRvZGFzIGxhcyBjYXRlZ29yw61hcyBzb24gcG9yIHNlcGFyYWNpw7NuIHZvbHVudGFyaWEgeSByZWFsbWVudGUgbm8gc2UgbG9ncmEgdmVyIHVuYSBjb3JyZWxhY2nDs24gZW50cmUgZWwgZXN0YWRvIGNpdmlsIGRlIGxhIHBlcnNvbmEgeSBlbCBtb3Rpdm8gZGUgYmFqYSwgbG8gcXVlIHBvZHLDrWEgaW5kaWNhciB1bmEgYWx0YSByb3RhY2nDs24gZGUgZW1wbGVhZG9zIGVuIGxvcyB0cmFiYWpvcyBkZSBtYXF1aWxhIGVuIGdlbmVyYWwgbyBwb2Ryw61hIHNlciB1biBpbmRpY2Fkb3IgZGUgcXVlIGhheSB2YXJpYXMgw6FyZWFzIGRlIG9wb3J0dW5pZGFkIGVuIGN1ZXN0acOzbiBkZSBhbWVuaWRhZGVzLCBzYWxhcmlvcywgYm9ub3MsIG9wb3J0dW5pZGFkZXMgZGUgY3JlY2ltaWVudG8gZW4gbGEgZW1wcmVzYSwgdHJhc2xhZG8gbyBwcmVzdGFjaW9uZXMgcXVlIGxhIGVtcHJlc2Egb2ZyZWNlIGFkZW3DoXMgZGUgbGFzIGLDoXNpY2FzIGRpY3RhZGFzIHBvciBsYSBsZXkuCgoK