Problema: Rotación de cargo

En una organización, se busca comprender y prever los factores que influyen en la rotación de empleados entre distintos cargos. La empresa ha recopilado datos históricos sobre el empleo de sus trabajadores, incluyendo variables como la antigüedad en el cargo actual, el nivel de satisfacción laboral, el salario actual, edad y otros factores relevantes. La gerencia planea desarrollar un modelo de regresión logística que permita estimar la probabilidad de que un empleado cambie de cargo en el próximo período y determinar cuales factores indicen en mayor proporción a estos cambios.

Con esta información, la empresa podrá tomar medidas proactivas para retener a su talento clave, identificar áreas de mejora en la gestión de recursos humanos y fomentar un ambiente laboral más estable y tranquilo. La predicción de la probabilidad de rotación de empleados ayudará a la empresa a tomar decisiones estratégicas informadas y a mantener un equipo de trabajo comprometido y satisfecho en sus roles actuales.

A continuación se describen los pasos que la gerencia ha propuesto para el análisis:

Carga de Data

## Rows: 1,470
## Columns: 24
## $ Rotación                    <chr> "Si", "No", "Si", "No", "No", "No", "No", …
## $ Edad                        <dbl> 41, 49, 37, 33, 27, 32, 59, 30, 38, 36, 35…
## $ `Viaje de Negocios`         <chr> "Raramente", "Frecuentemente", "Raramente"…
## $ Departamento                <chr> "Ventas", "IyD", "IyD", "IyD", "IyD", "IyD…
## $ Distancia_Casa              <dbl> 1, 8, 2, 3, 2, 2, 3, 24, 23, 27, 16, 15, 2…
## $ Educación                   <dbl> 2, 1, 2, 4, 1, 2, 3, 1, 3, 3, 3, 2, 1, 2, …
## $ Campo_Educación             <chr> "Ciencias", "Ciencias", "Otra", "Ciencias"…
## $ Satisfacción_Ambiental      <dbl> 2, 3, 4, 4, 1, 4, 3, 4, 4, 3, 1, 4, 1, 2, …
## $ Genero                      <chr> "F", "M", "M", "F", "M", "M", "F", "M", "M…
## $ Cargo                       <chr> "Ejecutivo_Ventas", "Investigador_Cientifi…
## $ Satisfación_Laboral         <dbl> 4, 2, 3, 3, 2, 4, 1, 3, 3, 3, 2, 3, 3, 4, …
## $ Estado_Civil                <chr> "Soltero", "Casado", "Soltero", "Casado", …
## $ Ingreso_Mensual             <dbl> 5993, 5130, 2090, 2909, 3468, 3068, 2670, …
## $ Trabajos_Anteriores         <dbl> 8, 1, 6, 1, 9, 0, 4, 1, 0, 6, 0, 0, 1, 0, …
## $ Horas_Extra                 <chr> "Si", "No", "Si", "Si", "No", "No", "Si", …
## $ Porcentaje_aumento_salarial <dbl> 11, 23, 15, 11, 12, 13, 20, 22, 21, 13, 13…
## $ Rendimiento_Laboral         <dbl> 3, 4, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 3, 3, …
## $ Años_Experiencia            <dbl> 8, 10, 7, 8, 6, 8, 12, 1, 10, 17, 6, 10, 5…
## $ Capacitaciones              <dbl> 0, 3, 3, 3, 3, 2, 3, 2, 2, 3, 5, 3, 1, 2, …
## $ Equilibrio_Trabajo_Vida     <dbl> 1, 3, 3, 3, 3, 2, 2, 3, 3, 2, 3, 3, 2, 3, …
## $ Antigüedad                  <dbl> 6, 10, 0, 8, 2, 7, 1, 1, 9, 7, 5, 9, 5, 2,…
## $ Antigüedad_Cargo            <dbl> 4, 7, 0, 7, 2, 7, 0, 0, 7, 7, 4, 5, 2, 2, …
## $ Años_ultima_promoción       <dbl> 0, 1, 0, 3, 2, 3, 0, 0, 1, 7, 0, 0, 4, 1, …
## $ Años_acargo_con_mismo_jefe  <dbl> 5, 7, 0, 0, 2, 6, 0, 0, 8, 7, 3, 8, 3, 2, …

1. Selección de variables

Seleccione 3 variables categóricas (distintas de rotación) y 3 variables cuantitativas, que se consideren estén relacionadas con la rotación.

Variables Categóricas

  1. Departamento:

    • Justificación: Los diferentes departamentos dentro de una organización pueden tener culturas laborales, niveles de estrés y oportunidades de crecimiento muy distintos. Esto podría llevar a variaciones significativas en las tasas de rotación. Por ejemplo, un departamento con alta presión y pocas oportunidades de desarrollo podría experimentar una mayor rotación.
    • Hipótesis: Se espera que la rotación varíe significativamente entre los departamentos. Algunos departamentos tendrán tasas de rotación más altas que otros debido a factores como la carga de trabajo, la cultura del equipo y las oportunidades de crecimiento.
  2. Cargo:

    • Justificación: Los diferentes cargos dentro de una empresa conllevan distintos niveles de responsabilidad, autonomía y oportunidades de desarrollo. Los empleados en roles con menos autonomía o menor potencial de crecimiento podrían estar más inclinados a buscar nuevas oportunidades en otros lugares.
    • Hipótesis: Se espera que la rotación varíe según el cargo. Los cargos con menor autonomía, menor potencial de crecimiento o mayor estrés tendrán tasas de rotación más altas.
  3. Horas Extras:

    • Justificación: Las horas extras excesivas pueden llevar al agotamiento y la insatisfacción laboral, lo que a su vez puede aumentar la probabilidad de rotación. Los empleados que sienten que su equilibrio entre trabajo y vida personal está comprometido pueden buscar empleos con horarios más flexibles.
    • Hipótesis: Se espera que los empleados que trabajan horas extras con frecuencia tengan una mayor probabilidad de rotación.

Variables Cuantitativas

  1. Satisfacción Laboral:

    • Justificación: La satisfacción laboral es un factor clave en la retención de empleados. Los empleados que están satisfechos con su trabajo, su entorno laboral y sus oportunidades de crecimiento tienen menos probabilidades de buscar nuevas oportunidades.
    • Hipótesis: Se espera una relación negativa entre la satisfacción laboral y la rotación. A medida que disminuye la satisfacción laboral, aumenta la probabilidad de rotación.
  2. Años en el Cargo Actual (Antigüedad Cargo):

    • Justificación: Los empleados que han estado en el mismo cargo durante mucho tiempo pueden sentir que han alcanzado un estancamiento en su carrera y buscar nuevas oportunidades para crecer. Por otro lado, los empleados que han sido promovidos recientemente pueden estar más satisfechos y comprometidos.
    • Hipótesis: Se espera una relación no lineal entre los años en el cargo actual y la rotación. Los empleados con muy poca o mucha antigüedad en el mismo cargo tendrán una mayor probabilidad de rotación.
  3. Ingreso Mensual:

    • Justificación: El salario es un factor importante en la satisfacción laboral y la retención de empleados. Los empleados que sienten que no están siendo compensados adecuadamente por su trabajo pueden buscar empleos con salarios más altos.
    • Hipótesis: Se espera una relación negativa entre el ingreso mensual y la rotación. A medida que aumenta el ingreso mensual, disminuye la probabilidad de rotación.

Justificación General

Estas variables han sido seleccionadas porque se espera que tengan un impacto significativo en la decisión de un empleado de permanecer o dejar la empresa. Factores como el entorno laboral, las oportunidades de crecimiento, el equilibrio entre trabajo y vida personal y la compensación pueden influir en la satisfacción laboral y, en última instancia, en la rotación de empleados.

2. Análisis univariado

Realiza un análisis univariado (caracterización) de la información contenida en la base de datos rotacion.

Análisis de la variable “rotacion”

Primero, analizaremos la variable objetivo, “rotacion”, que es una variable categórica binaria (Sí/No).

# Tabla de frecuencias de la variable "rotacion"
tabla_rotacion <- table(rotacion$Rotación)
print(tabla_rotacion)
## 
##   No   Si 
## 1233  237
# Definir una paleta de colores (puedes cambiar los colores según prefieras)
colores <- rainbow(length(tabla_rotacion))

# Gráfico de barras de la variable "rotacion"
barplot(tabla_rotacion, 
        main = "Distribución de Rotación", 
        xlab = "Rotación", 
        ylab = "Frecuencia",
        col = colores)

# Porcentaje de rotación
porcentaje_rotacion <- prop.table(tabla_rotacion) * 100
print(porcentaje_rotacion)
## 
##       No       Si 
## 83.87755 16.12245

El análisis univariado de la variable “rotacion” revela una clara disparidad en la distribución de los empleados entre aquellos que permanecen en la empresa (No) y aquellos que se rotan (Sí). Con 1233 empleados clasificados como “No” y 237 como “Sí”, se observa que la gran mayoría de los empleados (aproximadamente el 83.88%) no se rotan, mientras que una minoría significativa (alrededor del 16.12%) sí lo hace. Esta distribución desequilibrada es importante tenerla en cuenta para futuros análisis, ya que podría influir en la construcción y evaluación de modelos predictivos. Además, el gráfico de barras refuerza visualmente esta disparidad, mostrando una barra mucho más alta para la categoría “No” en comparación con la categoría “Sí”, lo que subraya la necesidad de investigar más a fondo los factores que contribuyen a la rotación de empleados en esta organización.

3. Análisis bivariado

Realiza un análisis bivariado en donde la variable respuesta sea rotacion codificada de la siguiente manera (y = 1 es si rotación, y = 0 es no rotación). Con base en estos resultados identifique cuales son las variables determinantes de la rotación e interpretar el signo del coeficiente estimado. Compare estos resultados con la hipótesis planteada en el punto 2.

# Codificar la variable "rotacion" como 0 y 1 (corregido)
rotacion$Rotacion_num <- ifelse(rotacion$Rotación == "Si", 1, 0)

# Convertir variables categóricas a factores
rotacion$Departamento <- as.factor(rotacion$Departamento)
rotacion$Cargo <- as.factor(rotacion$Cargo)
rotacion$Horas_Extra <- as.factor(rotacion$Horas_Extra)
# Análisis bivariado con variables cuantitativas (diagramas de caja)
# Satisfacción laboral vs. Rotación
ggplot(rotacion, aes(x = factor(Rotacion_num), y = Satisfación_Laboral, fill = factor(Rotacion_num))) +
  geom_boxplot() +
  labs(title = "Satisfacción Laboral vs. Rotación", x = "Rotación", y = "Satisfacción Laboral") +
  scale_fill_manual(values = c("#F3FF33", "#33FF57")) + 
  theme_minimal()

El diagrama de caja revela una clara tendencia: los empleados que se rotaron (1) tienden a tener niveles de satisfacción laboral más bajos en comparación con aquellos que permanecieron en la empresa (0). La mediana de la satisfacción laboral es notablemente inferior para el grupo de rotación, y la mayor dispersión en sus datos sugiere una mayor variabilidad en sus niveles de satisfacción. Esto indica que la insatisfacción laboral podría ser un factor importante que contribuye a la rotación de empleados.

# Años en el cargo actual vs. Rotación
ggplot(rotacion, aes(x = factor(Rotacion_num), y = Antigüedad_Cargo, fill = factor(Rotacion_num))) +
  geom_boxplot() +
  labs(title = "Años en el Cargo Actual vs. Rotación", x = "Rotación", y = "Años en el Cargo Actual")+
scale_fill_manual(values = c("coral", "lightblue")) +  # Colores personalizados
  theme_minimal()

El diagrama de caja revela una relación interesante entre los años en el cargo actual y la rotación de empleados. Se observa que la mediana de los años en el cargo actual es ligeramente más baja para los empleados que se rotaron (1) en comparación con los que no (0). Sin embargo, la dispersión de los datos es mayor para el grupo de rotación, lo que indica que hay una mayor variabilidad en los años en el cargo actual de este grupo. Además, se observan valores atípicos en ambos grupos, lo que sugiere que hay algunos empleados con años en el cargo actual inusualmente altos o bajos. En general, la gráfica sugiere que tanto los empleados con pocos años en el cargo como aquellos con muchos años tienen una mayor probabilidad de rotación.

# Ingreso mensual vs. Rotación
ggplot(rotacion, aes(x = factor(Rotacion_num), y = Ingreso_Mensual, fill = factor(Rotacion_num))) +
  geom_boxplot() +
  labs(title = "Ingreso Mensual vs. Rotación", x = "Rotación", y = "Ingreso Mensual")+
scale_fill_manual(values = c("#86D0B9", "#EDF8BC")) +  # Colores personalizados
  theme_minimal()

El diagrama de caja revela una clara diferencia en la distribución del ingreso mensual entre los empleados que se rotaron (1) y los que no (0). Se observa que la mediana del ingreso mensual es notablemente más baja para los empleados que se rotaron en comparación con los que permanecieron en la empresa. Además, la dispersión de los datos es mayor para el grupo de rotación, lo que indica que hay una mayor variabilidad en los ingresos mensuales de este grupo. La presencia de valores atípicos en ambos grupos sugiere que hay algunos empleados con ingresos mensuales inusualmente altos o bajos. En general, la gráfica sugiere que los empleados con ingresos mensuales más bajos tienen una mayor probabilidad de rotación.

# Análisis bivariado con variables categóricas (proporción de rotación)
# Departamento vs. Rotación
departamento_rotacion <- rotacion %>%
  group_by(Departamento) %>%
  summarise(
    total = n(),
    rotacion_si = sum(Rotacion_num),
    proporcion_rotacion = rotacion_si / total
  )

library(RColorBrewer)

ggplot(departamento_rotacion, aes(x = Departamento, y = proporcion_rotacion, fill = Departamento)) +
  geom_bar(stat = "identity") +
  labs(title = "Proporción de Rotación por Departamento", x = "Departamento", y = "Proporción de Rotación") +
  scale_fill_brewer(palette = "Set2") +  # Puedes probar "Set1", "Dark2", "Pastel1"
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

El gráfico de barras muestra la proporción de empleados que se rotaron en cada departamento. Se observa que el departamento “Ventas” tiene la mayor proporción de rotación, seguido por el departamento “RH”. El departamento “I+D” tiene la menor proporción de rotación. Esto sugiere que el departamento puede ser un factor importante que contribuye a la rotación de empleados. Los empleados en los departamentos de “Ventas” y “RH” pueden estar expuestos a factores que aumentan su probabilidad de rotación, como una mayor presión laboral, menores oportunidades de crecimiento o una cultura laboral menos favorable.

# Cargo vs. Rotación
cargo_rotacion <- rotacion %>%
  group_by(Cargo) %>%
  summarise(
    total = n(),
    rotacion_si = sum(Rotacion_num),
    proporcion_rotacion = rotacion_si / total
  )

library(RColorBrewer)

ggplot(cargo_rotacion, aes(x = Cargo, y = proporcion_rotacion, fill = Cargo)) +
  geom_bar(stat = "identity") +
  labs(title = "Proporción de Rotación por Cargo", x = "Cargo", y = "Proporción de Rotación") +
  scale_fill_brewer(palette = "Set1") +  # Puedes probar "Set1", "Dark2", "Pastel1"
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

El gráfico de barras muestra la proporción de empleados que se rotaron en cada cargo. Se observa que el cargo de “Representante_Ventas” tiene la mayor proporción de rotación, seguido por el cargo de “Tecnico_Laboratorio”. Los cargos de “Director_Investigación”, “Gerente” y “Representante_Salud” tienen las menores proporciones de rotación. Esto sugiere que el cargo puede ser un factor importante que contribuye a la rotación de empleados. Los empleados en los cargos de “Representante_Ventas” y “Tecnico_Laboratorio” pueden estar expuestos a factores que aumentan su probabilidad de rotación, como una mayor presión laboral, menores oportunidades de crecimiento o una cultura laboral menos favorable.

# Horas Extra vs. Rotación
horas_extra_rotacion <- rotacion %>%
  group_by(Horas_Extra) %>%
  summarise(
    total = n(),
    rotacion_si = sum(Rotacion_num),
    proporcion_rotacion = rotacion_si / total
  )

library(RColorBrewer)

ggplot(horas_extra_rotacion, aes(x = Horas_Extra, y = proporcion_rotacion, fill = Horas_Extra)) +
  geom_bar(stat = "identity") +
  labs(title = "Proporción de Rotación por Horas Extra", x = "Horas Extra", y = "Proporción de Rotación") +
  scale_fill_brewer(palette = "Set2") +  # Puedes probar "Set1", "Pastel1", etc.
  theme_minimal()

El gráfico de barras muestra la proporción de empleados que se rotaron en función de si trabajaron horas extra o no. Se observa que la proporción de rotación es significativamente mayor para los empleados que trabajaron horas extra (“Sí”) en comparación con los que no (“No”). Esto sugiere que trabajar horas extra es un factor importante que contribuye a la rotación de empleados. Los empleados que trabajan horas extra pueden experimentar un mayor agotamiento, estrés y desequilibrio entre el trabajo y la vida personal, lo que aumenta su probabilidad de buscar nuevas oportunidades laborales.

Variables determinantes de la rotación e interpretación del signo del coeficiente estimado

  • Satisfacción laboral:

    • Como se observó en el diagrama de caja, los empleados que se rotaron tendieron a tener niveles de satisfacción laboral más bajos.
    • Se espera un coeficiente negativo en un modelo de regresión logística, ya que una menor satisfacción laboral está asociada con una mayor probabilidad de rotación.
  • Años en el cargo actual:

    • El diagrama de caja mostró que tanto los empleados con pocos años en el cargo como aquellos con muchos años tienen una mayor probabilidad de rotación.
    • Se espera una relación no lineal, lo que podría representarse mediante términos cuadráticos u otras transformaciones en un modelo de regresión logística.
  • Ingreso mensual:

    • El diagrama de caja reveló que los empleados con ingresos mensuales más bajos tienen una mayor probabilidad de rotación.
    • Se espera un coeficiente negativo, ya que un menor ingreso mensual está asociado con una mayor probabilidad de rotación.
  • Departamento:

    • El gráfico de barras mostró que algunos departamentos, como “Ventas” y “RH”, tienen una mayor proporción de rotación.
    • Se espera que los coeficientes varíen según el departamento, con coeficientes positivos para los departamentos con mayor rotación y coeficientes negativos para los departamentos con menor rotación.
  • Cargo:

    • El gráfico de barras reveló que algunos cargos, como “Representante_Ventas” y “Tecnico_Laboratorio”, tienen una mayor proporción de rotación.
    • Se espera que los coeficientes varíen según el cargo, con coeficientes positivos para los cargos con mayor rotación y coeficientes negativos para los cargos con menor rotación.
  • Horas extra:

    • El gráfico de barras mostró que los empleados que trabajaron horas extra tienen una mayor probabilidad de rotación.
    • Se espera un coeficiente positivo, ya que trabajar horas extra está asociado con una mayor probabilidad de rotación.

Comparación con las hipótesis planteadas en el punto 2

  • Los resultados del análisis bivariado respaldan en gran medida las hipótesis planteadas en el punto 2.
  • Se confirmó la relación negativa entre la satisfacción laboral y la rotación, así como la relación negativa entre el ingreso mensual y la rotación.
  • Se observó la relación no lineal entre los años en el cargo actual y la rotación.
  • Se confirmó que el departamento, el cargo y las horas extra son factores importantes que contribuyen a la rotación de empleados.

En general, el análisis bivariado proporciona evidencia sólida de que las variables seleccionadas en el punto 2 están relacionadas con la rotación de empleados.

4. Estimación del modelo

Realiza la estimación de un modelo de regresión logístico en el cual la variable respuesta es rotacion (y = 1 es si rotación, y = 0 es no rotación) y las covariables las 6 seleccionadas en el punto 1. Interprete los coeficientes del modelo y la significancia de los parámetros.

# Estimar el modelo de regresión logística
modelo <- glm(Rotacion_num ~ Satisfación_Laboral + Antigüedad_Cargo + Ingreso_Mensual + Departamento + Cargo + Horas_Extra, data = rotacion, family = "binomial")

# Resumen del modelo
summary(modelo)
## 
## Call:
## glm(formula = Rotacion_num ~ Satisfación_Laboral + Antigüedad_Cargo + 
##     Ingreso_Mensual + Departamento + Cargo + Horas_Extra, family = "binomial", 
##     data = rotacion)
## 
## Coefficients:
##                                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  -3.186e+00  1.014e+00  -3.142  0.00168 ** 
## Satisfación_Laboral          -3.055e-01  6.943e-02  -4.400 1.08e-05 ***
## Antigüedad_Cargo             -1.092e-01  2.710e-02  -4.031 5.56e-05 ***
## Ingreso_Mensual               8.075e-06  4.322e-05   0.187  0.85178    
## DepartamentoRH               -1.271e+01  4.234e+02  -0.030  0.97605    
## DepartamentoVentas            6.697e-02  9.634e-01   0.070  0.94458    
## CargoDirector_Manofactura     1.157e+00  8.912e-01   1.298  0.19422    
## CargoEjecutivo_Ventas         2.225e+00  1.287e+00   1.729  0.08373 .  
## CargoGerente                  9.746e-01  9.527e-01   1.023  0.30629    
## CargoInvestigador_Cientifico  1.957e+00  9.306e-01   2.103  0.03549 *  
## CargoRecursos_Humanos         1.526e+01  4.234e+02   0.036  0.97126    
## CargoRepresentante_Salud      1.148e+00  8.933e-01   1.285  0.19895    
## CargoRepresentante_Ventas     3.253e+00  1.365e+00   2.382  0.01720 *  
## CargoTecnico_Laboratorio      2.668e+00  9.291e-01   2.872  0.00408 ** 
## Horas_ExtraSi                 1.514e+00  1.598e-01   9.472  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1298.6  on 1469  degrees of freedom
## Residual deviance: 1080.9  on 1455  degrees of freedom
## AIC: 1110.9
## 
## Number of Fisher Scoring iterations: 14

Interpretación de los coeficientes del modelo y la significancia de los parámetros:

  • Satisfacción Laboral (-0.3055):
    • Interpretación: Por cada unidad de aumento en la satisfacción laboral, el logaritmo de las probabilidades (log odds) de rotación disminuye en 0.3055, manteniendo constantes las demás variables.
    • Significancia: El valor p (1.08e-05) es menor que 0.05, lo que indica que la satisfacción laboral tiene un efecto estadísticamente significativo en la probabilidad de rotación.
    • Conclusión: A mayor satisfacción laboral, menor probabilidad de rotación.
  • Años en el Cargo Actual (-0.1092):
    • Interpretación: Por cada año adicional en el cargo actual, el logaritmo de las probabilidades de rotación disminuye en 0.1092, manteniendo constantes las demás variables.
    • Significancia: El valor p (5.56e-05) es menor que 0.05, lo que indica que los años en el cargo actual tienen un efecto estadísticamente significativo en la probabilidad de rotación.
    • Conclusión: A mayor antigüedad en el cargo actual, menor probabilidad de rotación.
  • Ingreso Mensual (8.075e-06):
    • Interpretación: Por cada unidad de aumento en el ingreso mensual, el logaritmo de las probabilidades de rotación aumenta en 8.075e-06, manteniendo constantes las demás variables.
    • Significancia: El valor p (0.85178) es mayor que 0.05, lo que indica que el ingreso mensual no tiene un efecto estadísticamente significativo en la probabilidad de rotación en este modelo.
    • Conclusión: El ingreso mensual no parece ser un predictor significativo de la rotación en este modelo.
  • Departamento (RH, Ventas):
    • DepartamentoRH (-12.71):
      • Interpretación: El logaritmo de las probabilidades de rotación en el departamento de RH es 12.71 unidades menor que en el departamento de referencia (I+D), manteniendo constantes las demás variables.
      • Significancia: El valor p (0.97605) es mayor que 0.05, lo que indica que el departamento de RH no tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el departamento de referencia.
    • DepartamentoVentas (0.06697):
      • Interpretación: El logaritmo de las probabilidades de rotación en el departamento de Ventas es 0.06697 unidades mayor que en el departamento de referencia (I+D), manteniendo constantes las demás variables.
      • Significancia: El valor p (0.94458) es mayor que 0.05, lo que indica que el departamento de Ventas no tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el departamento de referencia.
    • Conclusión: El departamento no parece ser un predictor significativo de la rotación en este modelo.
  • Cargo (Director_Manofactura, Ejecutivo_Ventas, Gerente, Investigador_Científico, Recursos_Humanos, Representante_Salud, Representante_Ventas, Tecnico_Laboratorio):
    • CargoDirector_Manofactura (1.157):
      • Interpretación: El logaritmo de las probabilidades de rotación en el cargo de Director_Manofactura es 1.157 unidades mayor que en el cargo de referencia, manteniendo constantes las demás variables.
      • Significancia: El valor p (0.19422) es mayor que 0.05, lo que indica que el cargo de Director_Manofactura no tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el cargo de referencia.
    • CargoEjecutivo_Ventas (2.225):
      • Interpretación: El logaritmo de las probabilidades de rotación en el cargo de Ejecutivo_Ventas es 2.225 unidades mayor que en el cargo de referencia, manteniendo constantes las demás variables.
      • Significancia: El valor p (0.08373) es mayor que 0.05, lo que indica que el cargo de Ejecutivo_Ventas no tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el cargo de referencia.
    • CargoGerente (0.9746):
      • Interpretación: El logaritmo de las probabilidades de rotación en el cargo de Gerente es 0.9746 unidades mayor que en el cargo de referencia, manteniendo constantes las demás variables.
      • Significancia: El valor p (0.30629) es mayor que 0.05, lo que indica que el cargo de Gerente no tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el cargo de referencia.
    • CargoInvestigador_Cientifico (1.957):
      • Interpretación: El logaritmo de las probabilidades de rotación en el cargo de Investigador_Cientifico es 1.957 unidades mayor que en el cargo de referencia, manteniendo constantes las demás variables.
      • Significancia: El valor p (0.03549) es menor que 0.05, lo que indica que el cargo de Investigador_Cientifico tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el cargo de referencia.
    • CargoRecursos_Humanos (15.26):
      • Interpretación: El logaritmo de las probabilidades de rotación en el cargo de Recursos_Humanos es 15.26 unidades mayor que en el cargo de referencia, manteniendo constantes las demás variables.
      • Significancia: El valor p (0.97126) es mayor que 0.05, lo que indica que el cargo de Recursos_Humanos no tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el cargo de referencia.
    • CargoRepresentante_Salud (1.148):
      • Interpretación: El logaritmo de las probabilidades de rotación en el cargo de Representante_Salud es 1.148 unidades mayor que en el cargo de referencia, manteniendo constantes las demás variables.
      • Significancia: El valor p (0.19895) es mayor que 0.05, lo que indica que el cargo de Representante_Salud no tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el cargo de referencia.
    • CargoRepresentante_Ventas (3.253):
      • Interpretación: El logaritmo de las probabilidades de rotación en el cargo de Representante_Ventas es 3.253 unidades mayor que en el cargo de referencia, manteniendo constantes las demás variables.
      • Significancia: El valor p (0.01720) es menor que 0.05, lo que indica que el cargo de Representante_Ventas tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el cargo de referencia.
    • CargoTecnico_Laboratorio (2.668):
      • Interpretación: El logaritmo de las probabilidades de rotación en el cargo de Tecnico_Laboratorio es 2.668 unidades mayor que en el cargo de referencia, manteniendo constantes las demás variables.
      • Significancia: El valor p (0.00408) es menor que 0.05, lo que indica que el cargo de Tecnico_Laboratorio tiene un efecto estadísticamente significativo en la probabilidad de rotación en comparación con el cargo de referencia.
    • Conclusión: Los cargos de Investigador_Cientifico, Representante_Ventas y Tecnico_Laboratorio son predictores significativos de la rotación en este modelo.
  • Horas Extra (1.514):
    • Interpretación: Los empleados que trabajan horas extra tienen un logaritmo de las probabilidades de rotación 1.514 unidades mayor que los empleados que no trabajan horas extra, manteniendo constantes las demás variables.
    • Significancia: El valor p (< 2e-16) es menor que 0.05, lo que indica que trabajar horas extra tiene un efecto estadísticamente significativo en la probabilidad de rotación.
    • Conclusión: Trabajar horas extra es un predictor significativo de la rotación en este modelo.

Variables significativas:

  • Satisfacción Laboral
  • Antigüedad_Cargo
  • Cargos de Investigador_Cientifico, Representante_Ventas y Tecnico_Laboratorio
  • Horas Extra

5. Evaluación del modelo

Evaluar el poder predictivo del modelo con base en la curva ROC y el AUC.

# Calcular la curva ROC
roc_obj <- roc(rotacion$Rotacion_num, predict(modelo, type = "response"))

# Calcular el AUC
auc_value <- auc(roc_obj)

# Graficar la curva ROC
plot(roc_obj, col = "#1f78b4", lwd = 2, main = paste("Curva ROC (AUC =", round(auc_value, 3), ")"))

# Imprimir el AUC
cat("AUC:", auc_value)
## AUC: 0.7815951

La curva ROC muestra que el modelo de regresión logística tiene un buen poder predictivo para la rotación de empleados. La curva se eleva significativamente por encima de la línea diagonal, lo que indica que el modelo es capaz de distinguir entre empleados que se rotaron y los que no. El valor del AUC es de 0.782, lo que sugiere que el modelo tiene una probabilidad del 78.2% de clasificar correctamente a un empleado como rotado o no rotado. En general, estos resultados indican que el modelo es útil para predecir la rotación de empleados y puede ser utilizado para identificar a los empleados con mayor riesgo de rotación.

Otras Evaluaciones

# Predecir las probabilidades de rotación
prob_rotacion <- predict(modelo, type = "response")

# Definir el punto de corte (ajusta según sea necesario)
punto_corte <- 0.5

# Clasificar las predicciones como rotado o no rotado
predicciones <- ifelse(prob_rotacion > punto_corte, 1, 0)

# Crear la matriz de confusión
matriz_confusion <- confusionMatrix(factor(predicciones), factor(rotacion$Rotacion_num))

# Imprimir la matriz de confusión
print(matriz_confusion)
## Confusion Matrix and Statistics
## 
##           Reference
## Prediction    0    1
##          0 1213  197
##          1   20   40
##                                           
##                Accuracy : 0.8524          
##                  95% CI : (0.8332, 0.8701)
##     No Information Rate : 0.8388          
##     P-Value [Acc > NIR] : 0.08215         
##                                           
##                   Kappa : 0.2184          
##                                           
##  Mcnemar's Test P-Value : < 2e-16         
##                                           
##             Sensitivity : 0.9838          
##             Specificity : 0.1688          
##          Pos Pred Value : 0.8603          
##          Neg Pred Value : 0.6667          
##              Prevalence : 0.8388          
##          Detection Rate : 0.8252          
##    Detection Prevalence : 0.9592          
##       Balanced Accuracy : 0.5763          
##                                           
##        'Positive' Class : 0               
## 

Matriz de Confusión

Predicción 0 (Negativo):

- Verdaderos Negativos (TN): 1213 casos fueron clasificados correctamente como negativos (0).

- Falsos Positivos (FP): 197 casos fueron clasificados incorrectamente como negativos (0) cuando en realidad eran positivos (1).

Predicción 1 (Positivo):

- Falsos Negativos (FN): 20 casos fueron clasificados incorrectamente como positivos (1) cuando en realidad eran negativos (0).

- Verdaderos Positivos (TP): 40 casos fueron clasificados correctamente como positivos (1).

Estadísticas

Accuracy (Precisión): 0.8524 (85.24%) - El modelo clasifica correctamente el 85.24% de los casos.

95% CI (Intervalo de Confianza del 95%): (0.8332, 0.8701) - El verdadero valor de la precisión se encuentra dentro de este rango con un 95% de confianza.

No Information Rate (Tasa de No Información): 0.8388 - La precisión que se obtendría si siempre se predijera la clase mayoritaria (0 en este caso).

P-Value [Acc > NIR]: 0.08215 - La probabilidad de obtener una precisión mayor que la tasa de no información por casualidad. En este caso, no es estadísticamente significativo (p > 0.05).

Kappa: 0.2184 - Medida de la concordancia entre las predicciones y los valores reales, teniendo en cuenta el azar. Un valor cercano a 1 indica una buena concordancia.

Mcnemar’s Test P-Value: < 2e-16 - Indica si hay diferencias significativas entre los errores de clasificación. En este caso, hay diferencias significativas (p < 0.05).

Sensitivity (Sensibilidad): 0.9838 - La proporción de casos positivos (1) que fueron clasificados correctamente.

Specificity (Especificidad): 0.1688 - La proporción de casos negativos (0) que fueron clasificados correctamente.

Pos Pred Value (Valor Predictivo Positivo): 0.8603 - La proporción de casos clasificados como positivos (1) que realmente eran positivos.

Neg Pred Value (Valor Predictivo Negativo): 0.6667 - La proporción de casos clasificados como negativos (0) que realmente eran negativos.

Prevalence (Prevalencia): 0.8388 - La proporción de casos positivos (1) en el conjunto de datos.

Detection Rate (Tasa de Detección): 0.8252 - La proporción de casos positivos (1) que fueron clasificados correctamente.

Detection Prevalence (Prevalencia de Detección): 0.9592 - La proporción de casos clasificados como positivos (1).

Balanced Accuracy (Precisión Balanceada): 0.5763 - La media de la sensibilidad y la especificidad. ‘Positive’ Class: 0 - Indica que la clase positiva (1) se considera como la clase de referencia.

Interpretación General:

El modelo tiene una buena precisión general (85.24%), pero la especificidad es muy baja (16.88%), lo que significa que tiene dificultades para clasificar correctamente los casos negativos (0). La sensibilidad es muy alta (98.38%), lo que indica que el modelo es muy bueno para clasificar correctamente los casos positivos (1).

El valor Kappa es bajo (0.2184), lo que sugiere que la concordancia entre las predicciones y los valores reales no es muy alta, teniendo en cuenta el azar.

El P-Value para la precisión no es estadísticamente significativo, lo que significa que la precisión obtenida no es significativamente diferente de la que se obtendría por casualidad.

En general, el modelo es útil para identificar casos positivos (1), pero tiene dificultades para clasificar correctamente los casos negativos (0).

# Calcular métricas adicionales
precision <- matriz_confusion$byClass["Pos Pred Value"]
recall <- matriz_confusion$byClass["Sensitivity"]
f1_score <- 2 * (precision * recall) / (precision + recall)

# Imprimir métricas adicionales
cat("Precisión:", precision, "\n")
## Precisión: 0.8602837

De todos los casos que el modelo predijo como positivos (1), el 86.03% fueron realmente positivos. En otras palabras, cuando el modelo dice que un empleado se va a rotar, tiene razón el 86.03% de las veces.

cat("Recall:", recall, "\n")
## Recall: 0.9837794

De todos los casos que realmente eran positivos (1), el modelo identificó correctamente el 98.38%. Es decir, el modelo es muy bueno para encontrar a todos los empleados que realmente se rotaron.

cat("F1-score:", f1_score, "\n")
## F1-score: 0.9178963

El F1-score es una medida que combina la precisión y el recall en un solo valor. Un F1-score de 0.9179 indica que el modelo tiene un buen equilibrio entre precisión y recall.

6. Predicciones

Realiza una predicción la probabilidad de que un individuo (hipotético) rote y defina un corte para decidir si se debe intervenir a este empleado o no (posible estrategia para motivar al empleado).

# Crear un nuevo conjunto de datos con las características del individuo hipotético
nuevo_individuo <- data.frame(
  Satisfación_Laboral = 3,
  Antigüedad_Cargo = 2,
  Ingreso_Mensual = 5000,
  Departamento = "Ventas",
  Cargo = "Representante_Ventas",
  Horas_Extra = "Si"
)

# Predecir la probabilidad de rotación
prob_rotacion <- predict(modelo, newdata = nuevo_individuo, type = "response")

# Definir el punto de corte
punto_corte <- 0.5

# Clasificar al individuo como rotado o no rotado
rotado <- ifelse(prob_rotacion > punto_corte, "Si", "No")

# Imprimir los resultados
cat("Probabilidad de rotación:", prob_rotacion, "\n")
## Probabilidad de rotación: 0.6349341
cat("Rotado:", rotado, "\n")
## Rotado: Si

El modelo de regresión logística predice que un individuo hipotético con las características especificadas (satisfacción laboral de 3, 2 años en el cargo actual, ingreso mensual de 5000, departamento de Ventas, cargo de Representante de Ventas y trabajando horas extra) tiene una probabilidad de rotación del 63.49%. Dado que esta probabilidad es mayor que el punto de corte predeterminado de 0.5, el modelo clasifica a este individuo como rotado. Esto sugiere que este empleado tiene un alto riesgo de abandonar la empresa y se beneficiaría de estrategias de intervención para mejorar su satisfacción laboral, equilibrio entre el trabajo y la vida personal, o ingreso mensual.

7. Conclusiones

En las conclusiones adicione una discusión sobre cuál sería la estrategia para disminuir la rotación en la empresa (con base en las variables que resultaron significativas en el punto 3).

Análisis de la rotación de empleados:

El análisis de la rotación de empleados reveló que la satisfacción laboral, la antigüedad en el cargo, los cargos de Investigador Científico, Representante de Ventas y Técnico de Laboratorio, así como las horas extra, son factores clave que influyen en la decisión de los empleados de abandonar la empresa. Estos resultados sugieren que la empresa debe prestar especial atención a estos factores para reducir la rotación y mejorar la retención de talento.

Estrategias para disminuir la rotación:

Para abordar estos factores, se recomienda implementar estrategias como mejorar la satisfacción laboral mediante programas de reconocimiento y desarrollo profesional, diseñar planes de carrera atractivos para aumentar la antigüedad en el cargo, y prestar especial atención a los cargos de alto riesgo mediante programas de retención específicos. Además, es fundamental reducir las horas extra mediante una mejor distribución de la carga de trabajo y la contratación de personal adicional.

Impacto de la reducción de la rotación:

La implementación de estas estrategias no solo disminuirá la rotación, sino que también generará beneficios significativos para la empresa. Se reducirán los costos de contratación y capacitación, aumentará la productividad y la eficiencia, mejorará el clima laboral y la moral de los empleados, y se retendrá el conocimiento y la experiencia valiosa dentro de la organización.