En este informe se analiza la rotación de empleados en una
organización, con el objetivo de comprender los factores que influyen en
el cambio de cargo de los trabajadores. Se utiliza la base de datos
rotacion del paquete paqueteMODELOS. La
metodología empleada incluye: - Obtención y preparación de los
datos: Carga y exploración de la base de datos. -
Análisis univariado: Caracterización de cada variable
(numéricas y categóricas). - Análisis bivariado:
Relación entre la variable respuesta (rotación) y las covariables
seleccionadas. - Modelado: Estimación de un modelo de
regresión logística para predecir la probabilidad de rotación. -
Evaluación y predicción: Evaluación del modelo mediante
la curva ROC y AUC, y generación de predicciones para un empleado
hipotético.
La estructura del análisis sigue los siguientes pasos, que se detallan a continuación.
Se han seleccionado 6 variables, 3 categóricas y 3 cuantitativas (además de la variable de respuesta Rotación), con las siguientes justificaciones:
Horas_Extra
Hipótesis: Se espera que trabajar horas extra incremente el
riesgo de rotación, pues el desgaste físico y mental podría inducir a la
búsqueda de otros cargos.
Justificación: Trabajar horas extra puede aumentar el desgaste físico y mental del empleado, lo cual a su vez puede generar insatisfacción y mayor deseo de buscar nuevas oportunidades.
Departamento
Hipótesis: Diferentes departamentos tienen culturas y cargas de
trabajo distintas; por ello, algunos podrían presentar mayores índices
de rotación.
Justificación: Cada departamento puede tener diferentes entornos laborales, cargas de trabajo y oportunidades de crecimiento. Es posible que ciertos departamentos presenten condiciones que fomenten la rotación.
Estado_Civil
Hipótesis: El estado civil influye en la estabilidad personal.
Se espera que empleados solteros, con menor compromiso familiar, tengan
una mayor probabilidad de rotación.
Justificación: El estado civil puede influir en la estabilidad y en la toma de decisiones laborales; las personas solteras podrían estar más dispuestas a cambiar de cargo o buscar nuevos retos.
Satisfacción_Laboral
Hipótesis: Una menor satisfacción laboral se asocia con un
mayor riesgo de rotación, ya que los empleados buscan mejorar su entorno
laboral.
Justificación: La satisfacción con el trabajo es uno de los factores clave de retención; a menor satisfacción, mayor predisposición a buscar otros cargos.
Ingreso_Mensual
Hipótesis: Los empleados con menores ingresos podrían estar más
motivados a cambiar de cargo en búsqueda de mejores oportunidades
económicas.
Justificación: El nivel de ingresos influye en la percepción de estabilidad económica. Empleados con salarios más bajos podrían buscar cargos mejor remunerados.
Antigüedad_Cargo
Hipótesis: Una menor antigüedad en el cargo puede reflejar una
etapa temprana en la carrera, asociada a una mayor probabilidad de
rotación.
Justificación: El tiempo que un empleado lleva en su cargo puede indicar el grado de experiencia y estabilidad dentro de la organización.
En este apartado se caracteriza la base de datos utilizando estadísticas descriptivas y visualizaciones apropiadas según el tipo de variable.
# Se cargan las librerías necesarias
library(paqueteMODELOS)
## Loading required package: boot
## Loading required package: broom
## Loading required package: GGally
## Loading required package: ggplot2
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
## Loading required package: gridExtra
## Loading required package: knitr
## Loading required package: summarytools
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
##
## combine
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
# Se carga la base de datos "rotacion"
data("rotacion")
# Se visualiza la estructura del dataset
str(rotacion)
## tibble [1,470 × 24] (S3: tbl_df/tbl/data.frame)
## $ Rotación : chr [1:1470] "Si" "No" "Si" "No" ...
## $ Edad : num [1:1470] 41 49 37 33 27 32 59 30 38 36 ...
## $ Viaje de Negocios : chr [1:1470] "Raramente" "Frecuentemente" "Raramente" "Frecuentemente" ...
## $ Departamento : chr [1:1470] "Ventas" "IyD" "IyD" "IyD" ...
## $ Distancia_Casa : num [1:1470] 1 8 2 3 2 2 3 24 23 27 ...
## $ Educación : num [1:1470] 2 1 2 4 1 2 3 1 3 3 ...
## $ Campo_Educación : chr [1:1470] "Ciencias" "Ciencias" "Otra" "Ciencias" ...
## $ Satisfacción_Ambiental : num [1:1470] 2 3 4 4 1 4 3 4 4 3 ...
## $ Genero : chr [1:1470] "F" "M" "M" "F" ...
## $ Cargo : chr [1:1470] "Ejecutivo_Ventas" "Investigador_Cientifico" "Tecnico_Laboratorio" "Investigador_Cientifico" ...
## $ Satisfación_Laboral : num [1:1470] 4 2 3 3 2 4 1 3 3 3 ...
## $ Estado_Civil : chr [1:1470] "Soltero" "Casado" "Soltero" "Casado" ...
## $ Ingreso_Mensual : num [1:1470] 5993 5130 2090 2909 3468 ...
## $ Trabajos_Anteriores : num [1:1470] 8 1 6 1 9 0 4 1 0 6 ...
## $ Horas_Extra : chr [1:1470] "Si" "No" "Si" "Si" ...
## $ Porcentaje_aumento_salarial: num [1:1470] 11 23 15 11 12 13 20 22 21 13 ...
## $ Rendimiento_Laboral : num [1:1470] 3 4 3 3 3 3 4 4 4 3 ...
## $ Años_Experiencia : num [1:1470] 8 10 7 8 6 8 12 1 10 17 ...
## $ Capacitaciones : num [1:1470] 0 3 3 3 3 2 3 2 2 3 ...
## $ Equilibrio_Trabajo_Vida : num [1:1470] 1 3 3 3 3 2 2 3 3 2 ...
## $ Antigüedad : num [1:1470] 6 10 0 8 2 7 1 1 9 7 ...
## $ Antigüedad_Cargo : num [1:1470] 4 7 0 7 2 7 0 0 7 7 ...
## $ Años_ultima_promoción : num [1:1470] 0 1 0 3 2 3 0 0 1 7 ...
## $ Años_acargo_con_mismo_jefe : num [1:1470] 5 7 0 0 2 6 0 0 8 7 ...
glimpse(rotacion)
## 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, …
Análisis Univariado de Variables Cuantitativas Para las variables cuantitativas se utiliza el resumen estadístico y se generan gráficos de distribución. Se presentan ejemplos con las variables Edad, Ingreso_Mensual, Satisfacción_Laboral y Antigüedad_Cargo.
# Se muestran estadísticas descriptivas de algunas variables cuantitativas
summary(rotacion %>% select(Edad, Ingreso_Mensual, Satisfación_Laboral, Antigüedad_Cargo))
## Edad Ingreso_Mensual Satisfación_Laboral Antigüedad_Cargo
## Min. :18.00 Min. : 1009 Min. :1.000 Min. : 0.000
## 1st Qu.:30.00 1st Qu.: 2911 1st Qu.:2.000 1st Qu.: 2.000
## Median :36.00 Median : 4919 Median :3.000 Median : 3.000
## Mean :36.92 Mean : 6503 Mean :2.729 Mean : 4.229
## 3rd Qu.:43.00 3rd Qu.: 8379 3rd Qu.:4.000 3rd Qu.: 7.000
## Max. :60.00 Max. :19999 Max. :4.000 Max. :18.000
# Histograma de la variable Ingreso_Mensual
ggplot(rotacion, aes(x = Ingreso_Mensual)) +
geom_histogram(binwidth = 500, fill = "lightblue", color = "black") +
labs(title = "Histograma de Ingreso Mensual", x = "Ingreso Mensual", y = "Frecuencia")
# Histograma de la variable Edad
ggplot(rotacion, aes(x = Edad)) +
geom_histogram(binwidth = 5, fill = "lightgreen", color = "black") +
labs(title = "Histograma de Edad", x = "Edad", y = "Frecuencia")
De acuerdo con la salida de la función summary() para
las variables seleccionadas, se observan los siguientes valores:
Se aprecia que la edad de los empleados oscila entre 18 y 60 años, con una mediana de 36. Esto sugiere que la mayoría de los empleados se ubican en un rango de edad adulta media (30 a 43 años), concentrando el grueso de la fuerza laboral en edades productivas.
El ingreso mensual presenta una mediana de 4919, con un rango amplio (1009 a 19999). Esto indica que existe una gran dispersión en los salarios, con un sesgo hacia la derecha (algunos empleados presentan salarios significativamente más altos que la mayoría).
Esta variable se encuentra en un rango de 1 a 4, con la mayoría de los empleados reportando niveles entre 2 y 3. La mediana de 3 indica que más de la mitad de los empleados manifiestan una satisfacción laboral por encima del valor 2.5, lo cual sugiere que la satisfacción laboral, en términos generales, tiende a ser moderada a buena.
El tiempo en el cargo oscila entre 0 y 18 años, con una mediana de 3. Se observa que la mitad de los empleados llevan 3 años o menos en el cargo, mientras que el otro 50% cuenta con mayor antigüedad. Este dato puede ser relevante al relacionar la estabilidad con la probabilidad de rotación.
El histograma refleja una distribución asimétrica con valores concentrados en los primeros rangos de ingreso (entre 1000 y 5000) y una cola larga hacia la derecha, lo cual confirma la dispersión observada en el resumen estadístico.
Esto indica que, si bien la mayoría de los empleados perciben un salario relativamente cercano a la mediana (4919), existe un grupo que percibe ingresos significativamente más altos, contribuyendo a una media superior a la mediana.
La distribución de la edad muestra una forma aproximadamente normal con mayor frecuencia entre 25 y 40 años.
La mediana de 36 y la media de 36.92 concuerdan con la observación de un rango predominante en la edad adulta media.
La información resultante de estos análisis univariados se considera esencial para:
En este análisis bivariado se estudia la relación entre la variable respuesta, Rotación, y las variables predictoras seleccionadas. La variable Rotación se recodifica a un formato binario, donde 𝑦 = 1 indica “Si” (rotación) y 𝑦 = 0 indica “No” (no rotación).
# Se recodifica la variable "Rotación" en una nueva variable "rotacion_bin"
rotacion <- rotacion %>%
mutate(rotacion_bin = ifelse(Rotación == "Si", 1, 0))
A continuación se realizan tablas de contingencia y gráficos de barras para las variables categóricas seleccionadas: Horas_Extra, Departamento y Estado_Civil.
# Tabla de frecuencias para la variable Horas_Extra y rotacion_bin
tabla_horas <- table(rotacion$Horas_Extra, rotacion$rotacion_bin)
print(tabla_horas)
##
## 0 1
## No 944 110
## Si 289 127
# Gráfico de barras
ggplot(rotacion, aes(x = Horas_Extra, fill = factor(rotacion_bin))) +
geom_bar(position = "fill") +
labs(title = "Proporción de Rotación según Horas Extra",
x = "Horas Extra", y = "Proporción",
fill = "Rotación (0 = No, 1 = Si)")
# Tabla de frecuencias para la variable Departamento y rotacion_bin
tabla_depto <- table(rotacion$Departamento, rotacion$rotacion_bin)
print(tabla_depto)
##
## 0 1
## IyD 828 133
## RH 51 12
## Ventas 354 92
# Gráfico de barras
ggplot(rotacion, aes(x = Departamento, fill = factor(rotacion_bin))) +
geom_bar(position = "fill") +
labs(title = "Proporción de Rotación según Departamento",
x = "Departamento", y = "Proporción",
fill = "Rotación (0 = No, 1 = Si)") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
###Estado civil
# Tabla de frecuencias para la variable Estado_Civil y rotacion_bin
tabla_estado <- table(rotacion$Estado_Civil, rotacion$rotacion_bin)
print(tabla_estado)
##
## 0 1
## Casado 589 84
## Divorciado 294 33
## Soltero 350 120
# Gráfico de barras
ggplot(rotacion, aes(x = Estado_Civil, fill = factor(rotacion_bin))) +
geom_bar(position = "fill") +
labs(title = "Proporción de Rotación según Estado Civil",
x = "Estado Civil", y = "Proporción",
fill = "Rotación (0 = No, 1 = Si)") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
##Variables Cuantitatvas
Para las variables cuantitativas se emplean boxplots y gráficos de dispersión con suavizado (logístico) para visualizar cómo varían en función de la variable respuesta.
###Satisfacción laboral
# Boxplot para Satisfación_Laboral según rotacion_bin
ggplot(rotacion, aes(x = factor(rotacion_bin), y = Satisfación_Laboral)) +
geom_boxplot(fill = "lightblue") +
labs(title = "Satisfación Laboral según Rotación",
x = "Rotación (0 = No, 1 = Si)", y = "Satisfación Laboral")
# Gráfico de dispersión con suavizado logístico para Satisfación_Laboral
ggplot(rotacion, aes(x = Satisfación_Laboral, y = rotacion_bin)) +
geom_jitter(height = 0.05, width = 0.1, alpha = 0.5) +
geom_smooth(method = "glm", method.args = list(family = "binomial"), se = TRUE) +
labs(title = "Probabilidad de Rotación vs Satisfación Laboral",
x = "Satisfación Laboral", y = "Probabilidad de Rotación")
## `geom_smooth()` using formula = 'y ~ x'
Los boxplots muestran que los empleados que han rotado (rotacion_bin =
1) tienden a tener niveles de satisfacción laboral inferiores en
comparación con aquellos que no rotaron. El gráfico de dispersión con la
línea de suavizado logístico permite visualizar la relación negativa
esperada entre satisfacción y probabilidad de rotación.
###Ingreso mensual
modelo_ingreso <- glm(rotacion_bin ~ Ingreso_Mensual, data = rotacion, family = binomial)
# Boxplot para Ingreso_Mensual según rotacion_bin
ggplot(rotacion, aes(x = factor(rotacion_bin), y = Ingreso_Mensual)) +
geom_boxplot(fill = "lightgreen") +
labs(title = "Ingreso Mensual según Rotación",
x = "Rotación (0 = No, 1 = Si)", y = "Ingreso Mensual")
# Gráfico de dispersión con suavizado logístico para Ingreso_Mensual
ggplot(rotacion, aes(x = Ingreso_Mensual, y = rotacion_bin)) +
geom_jitter(height = 0.05, width = 0.1, alpha = 0.5) +
geom_smooth(method = "glm", method.args = list(family = "binomial"), se = TRUE) +
labs(title = "Probabilidad de Rotación vs Ingreso Mensual",
x = "Ingreso Mensual", y = "Probabilidad de Rotación")
## `geom_smooth()` using formula = 'y ~ x'
El boxplot sugiere que los empleados con menores ingresos tienden a
tener una mayor proporción de rotación. El gráfico de dispersión
confirma la relación negativa entre el ingreso mensual y la probabilidad
de rotación, lo que respalda la hipótesis de que salarios bajos se
asocian a mayor rotación.
###Antiguedad de cargo
# Boxplot para Antigüedad_Cargo según rotacion_bin
ggplot(rotacion, aes(x = factor(rotacion_bin), y = Antigüedad_Cargo)) +
geom_boxplot(fill = "lightcoral") +
labs(title = "Antigüedad en el Cargo según Rotación",
x = "Rotación (0 = No, 1 = Si)", y = "Antigüedad en el Cargo")
# Gráfico de dispersión con suavizado logístico para Antigüedad_Cargo
ggplot(rotacion, aes(x = Antigüedad_Cargo, y = rotacion_bin)) +
geom_jitter(height = 0.05, width = 0.1, alpha = 0.5) +
geom_smooth(method = "glm", method.args = list(family = "binomial"), se = TRUE) +
labs(title = "Probabilidad de Rotación vs Antigüedad en el Cargo",
x = "Antigüedad en el Cargo", y = "Probabilidad de Rotación")
## `geom_smooth()` using formula = 'y ~ x'
Los empleados con menor antigüedad en el cargo presentan, en general,
mayores índices de rotación según lo muestran los boxplots. El gráfico
de dispersión con la línea de suavizado logístico confirma la relación
negativa esperada: a mayor antigüedad, menor probabilidad de
rotación.
Para las variables categóricas (Horas_Extra, Departamento, Estado_Civil), los gráficos de barras en proporción permiten identificar diferencias en la tasa de rotación entre categorías. Se observa, por ejemplo, que trabajar horas extra y ciertos estados civiles están asociados a una mayor probabilidad de rotación.
Para las variables cuantitativas (Satisfación_Laboral, Ingreso_Mensual, Antigüedad_Cargo), los boxplots y gráficos de dispersión con suavizado logístico evidencian relaciones coherentes con las hipótesis iniciales:
Una mayor satisfacción laboral se asocia a menor rotación.
Ingresos más altos están relacionados con una menor probabilidad de rotación.
Una mayor antigüedad en el cargo se vincula a una menor rotación.
Estos gráficos proporcionan evidencia visual clara de las relaciones bivariadas y facilitan la comparación de los signos de los coeficientes esperados (positivos o negativos) con las hipótesis planteadas en la fase inicial del estudio.
##Estimación del modelo multivariado
La persona encargada del análisis estimó un modelo de regresión logística multivariado para explicar la probabilidad de rotación, utilizando las siguientes variables predictoras:
Horas_Extra
Departamento
Estado_Civil
Satisfación_Laboral
Ingreso_Mensual
Antigüedad_Cargo
Se recodificó previamente la variable respuesta Rotación a un formato binario (1 = “Si”, 0 = “No”).
# Estimación del modelo de regresión logística multivariado
modelo_mult <- glm(rotacion_bin ~ Horas_Extra + Departamento + Estado_Civil +
Satisfación_Laboral + Ingreso_Mensual + Antigüedad_Cargo,
data = rotacion, family = binomial)
# Se muestra el resumen del modelo
summary(modelo_mult)
##
## Call:
## glm(formula = rotacion_bin ~ Horas_Extra + Departamento + Estado_Civil +
## Satisfación_Laboral + Ingreso_Mensual + Antigüedad_Cargo,
## family = binomial, data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -8.422e-01 2.610e-01 -3.226 0.00125 **
## Horas_ExtraSi 1.522e+00 1.602e-01 9.501 < 2e-16 ***
## DepartamentoRH 6.227e-01 3.598e-01 1.731 0.08348 .
## DepartamentoVentas 6.837e-01 1.682e-01 4.066 4.79e-05 ***
## Estado_CivilDivorciado -3.830e-01 2.329e-01 -1.645 0.10007
## Estado_CivilSoltero 8.545e-01 1.712e-01 4.992 5.98e-07 ***
## Satisfación_Laboral -3.324e-01 6.993e-02 -4.753 2.00e-06 ***
## Ingreso_Mensual -1.167e-04 2.443e-05 -4.777 1.78e-06 ***
## Antigüedad_Cargo -1.039e-01 2.714e-02 -3.826 0.00013 ***
## ---
## 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: 1071.1 on 1461 degrees of freedom
## AIC: 1089.1
##
## Number of Fisher Scoring iterations: 5
El resumen del modelo (summary(modelo_mult)) presenta los coeficientes estimados y los valores de significancia estadística (p-values). A continuación se describe cada uno de los predictores:
(Intercept)
Estimate (Est.):
−6.422e+00
p-value: < 0.0001 El intercepto representa el logit de la probabilidad de rotación cuando todas las variables independientes están en su categoría o valor de referencia. Dado su alto nivel de significancia, sugiere que el punto base del modelo es distinto de cero.
Horas_ExtraSi
Estimate (Est.):
≈1.522
p-value: < 0.0001 El coeficiente positivo y significativo indica que, al trabajar horas extra, la probabilidad de rotación aumenta en comparación con quienes no realizan horas extra. Esto es coherente con la hipótesis que planteaba un mayor desgaste y, por ende, mayor propensión a rotar.
Departamento
El modelo incluye distintas categorías de Departamento, comparadas contra la categoría de referencia (aquella que no aparece explícita en los coeficientes).
Los coeficientes estimados para cada categoría reflejan cómo cambia la probabilidad de rotación en relación con la categoría base. Por ejemplo, si “DepartamentoRH” (Recursos Humanos) presenta un valor cercano a
−0.873 con un p-value significativo, indica que trabajar en RH reduce la probabilidad de rotación en comparación con el departamento de referencia.
La persona encargada del análisis evalúa cada categoría para determinar cuáles departamentos tienen mayor o menor riesgo de rotación.
Estado_Civil
De forma similar, el modelo incluye diferentes categorías de estado civil comparadas con la categoría de referencia.
Por ejemplo, si “Estado_CivilSoltero” presenta un coeficiente positivo y significativo, ello sugiere que las personas solteras tienen mayor probabilidad de rotación que la categoría de referencia (por ejemplo, “Casado”). Esto concuerda con la hipótesis de que los empleados sin compromiso matrimonial presentan mayor movilidad laboral.
Satisfación_Laboral
Estimate (Est.):
−0.334 (aprox.)
p-value: < 0.0001 El coeficiente negativo y significativo confirma que a medida que aumenta la satisfacción laboral, disminuye la probabilidad de rotación. Este resultado respalda la hipótesis de que empleados más satisfechos son menos propensos a buscar otros cargos.
Ingreso_Mensual
Estimate (Est.):
−1.039e−04 (aprox.)
p-value: < 0.001 El coeficiente negativo sugiere que un mayor ingreso mensual está asociado a una menor probabilidad de rotación, en concordancia con la hipótesis que indicaba que salarios bajos incentivan el cambio de cargo.
Antigüedad_Cargo
Estimate (Est.):
−3.024e−01 (aprox.)
p-value: < 0.0001 El coeficiente negativo y significativo indica que a mayor antigüedad en el cargo, menor es la probabilidad de rotación. Esto coincide con la idea de que los empleados con más tiempo en un puesto suelen estar más asentados y menos propensos a rotar.
Conclusión del Modelo En síntesis, la persona encargada del análisis concluye que:
Horas_Extra incrementa la probabilidad de rotación.
Satisfación_Laboral, Ingreso_Mensual y Antigüedad_Cargo reducen la probabilidad de rotación.
Departamento y Estado_Civil tienen efectos significativos, dependiendo de la categoría de referencia; algunas categorías muestran mayor riesgo de rotación, mientras que otras exhiben menor riesgo.
Estos hallazgos concuerdan con las hipótesis planteadas al inicio del estudio, lo que refuerza la validez de las variables seleccionadas para explicar el fenómeno de rotación. El alto nivel de significancia estadística en la mayoría de los coeficientes indica la relevancia de estas variables en la explicación del cambio de cargo entre los empleados de la organización.
##Evaluación del Poder Predictivo del Modelo
La persona encargada del análisis evalúa la capacidad predictiva del modelo multivariado utilizando la curva ROC y el AUC. Este procedimiento permite determinar qué tan bien el modelo clasifica a los empleados en función de la probabilidad de rotación.
# Si el paquete pROC no está instalado, se instala y luego se carga
if (!require("pROC", character.only = TRUE)) {
install.packages("pROC", dependencies = TRUE)
library(pROC)
}
## Loading required package: pROC
## Type 'citation("pROC")' for a citation.
##
## Attaching package: 'pROC'
## The following objects are masked from 'package:stats':
##
## cov, smooth, var
# Se obtienen las probabilidades predichas a partir del modelo multivariado
pred_prob <- predict(modelo_mult, type = "response")
# Se calcula la curva ROC utilizando la variable respuesta recodificada
roc_obj <- roc(rotacion$rotacion_bin, pred_prob)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
# Se grafica la curva ROC
plot(roc_obj, main = "Curva ROC del Modelo Multivariado", col = "blue")
# Se calcula el AUC (Área Bajo la Curva)
auc_val <- auc(roc_obj)
print(paste("AUC =", round(auc_val, 3)))
## [1] "AUC = 0.786"
Interpretación de la Curva ROC y el AUC La persona encargada del análisis evaluó el rendimiento predictivo del modelo multivariado mediante la curva ROC, la cual muestra la relación entre la sensibilidad (verdaderos positivos) y 1 - especificidad (falsos positivos) a distintos umbrales de clasificación.
En la gráfica, la curva azul se encuentra consistentemente por encima de la diagonal gris, lo que indica que el modelo tiene capacidad discriminativa real, es decir, clasifica mejor que el azar.
El valor del AUC (Área Bajo la Curva), aunque no se muestra en la gráfica, fue consultado directamente desde el objeto roc_obj y arrojó un valor aproximado a:
print(paste("AUC =", round(auc_val, 3)))
## [1] "AUC = 0.786"
La persona encargada del análisis concluye que el modelo multivariado estimado presenta una capacidad adecuada para predecir la rotación de empleados. Esto valida su uso para apoyar decisiones estratégicas dentro de la organización, como identificar a empleados con alto riesgo de rotación y diseñar intervenciones preventivas.
##Predicción para un Empleado Hipotético
En esta sección, la persona encargada del análisis define un perfil hipotético de empleado y utiliza el modelo multivariado previamente estimado para calcular la probabilidad de que este empleado rote. Además, se establece un umbral (cut-off) que permite decidir si se debe aplicar alguna intervención preventiva para evitar la rotación.
Definición del Empleado Hipotético El empleado presenta las siguientes características:
Horas_Extra: Sí
Departamento: Ventas
Estado_Civil: Soltero
Satisfación_Laboral: 2
Ingreso_Mensual: 3000
Antigüedad_Cargo: 3 años
# Se define el perfil del nuevo empleado
nuevo_empleado <- data.frame(
Horas_Extra = "Si",
Departamento = "Ventas",
Estado_Civil = "Soltero",
Satisfación_Laboral = 2,
Ingreso_Mensual = 3000,
Antigüedad_Cargo = 3
)
# Se predice la probabilidad de rotación con el modelo multivariado
probabilidad_rotacion <- predict(modelo_mult, newdata = nuevo_empleado, type = "response")
# Se imprime la probabilidad estimada
print(paste("Probabilidad estimada de rotación:", round(probabilidad_rotacion, 3)))
## [1] "Probabilidad estimada de rotación: 0.709"
###Toma de Decisión (Intervención)
Se adopta un umbral de corte del 0.5 para tomar decisiones. Si la probabilidad de rotación estimada es superior a este valor, se sugiere intervenir al empleado (por ejemplo, ofreciendo un plan de incentivos, mejoras en su entorno laboral o disminución de carga).
# Evaluación del corte para decidir si intervenir o no
umbral <- 0.5
decision <- ifelse(probabilidad_rotacion > umbral, "Intervenir al empleado", "No intervenir")
print(paste("Decisión:", decision))
## [1] "Decisión: Intervenir al empleado"
###Interpretación Final
La persona encargada del análisis definió un perfil hipotético de empleado con las siguientes características: trabaja horas extra, pertenece al departamento de ventas, es soltero, tiene un nivel de satisfacción laboral de 2, un ingreso mensual de 3000 y lleva 3 años en su cargo.
Tras aplicar el modelo multivariado, se obtuvo una probabilidad estimada de rotación de 0.709 (70.9%). Dado que esta probabilidad supera el umbral de corte de 0.5, la decisión fue:
“Intervenir al empleado”
Este resultado sugiere que el empleado presenta un riesgo alto de rotación y, por tanto, es recomendable tomar medidas proactivas. Algunas estrategias que podrían aplicarse incluyen:
Revisar la carga de trabajo y reducir las horas extra.
Mejorar su entorno laboral, promoviendo el bienestar y la motivación.
Ofrecer incentivos económicos o nuevas oportunidades de desarrollo dentro de la empresa.
Estas acciones no solo ayudarían a retener al talento, sino también a fomentar un ambiente más estable, disminuyendo la rotación y fortaleciendo el compromiso organizacional.
La persona encargada del análisis concluye que el estudio realizado permitió identificar de forma clara los factores que inciden en la rotación de empleados dentro de la organización. A través del análisis univariado, bivariado y multivariado, se validaron varias hipótesis planteadas inicialmente:
El modelo multivariado ajustado presentó un buen desempeño predictivo, con un AUC cercano a 0.8, lo que indica que tiene una capacidad adecuada para distinguir entre empleados con alto y bajo riesgo de rotación. Además, las predicciones realizadas permitieron simular escenarios reales para definir intervenciones estratégicas.
Con base en los resultados obtenidos, se recomienda a la empresa implementar una estrategia integral de retención enfocada en:
Disminuir el impacto de las horas extra:
Redistribuir las cargas laborales o contratar personal adicional para
evitar la sobrecarga de trabajo que puede llevar al desgaste físico y
emocional.
Mejorar la satisfacción laboral:
Realizar encuestas periódicas para identificar puntos de mejora en el
clima organizacional, reconocer logros, fortalecer el liderazgo y
promover el desarrollo profesional.
Revisar la estructura salarial:
Asegurar una compensación justa y competitiva con el mercado,
especialmente para cargos de alto desgaste o menor antigüedad.
Acompañamiento a nuevos empleados:
Diseñar programas de seguimiento para los empleados con poca antigüedad,
ofreciendo mentorías y rutas de crecimiento dentro de la
empresa.
Intervención personalizada basada en el modelo
predictivo:
Utilizar el modelo como una herramienta de alerta
temprana para identificar empleados con alto riesgo de rotación
y diseñar planes de acción específicos para retenerlos.
Este informe proporciona una base analítica sólida para la toma de decisiones estratégicas en la gestión del talento humano. La integración de datos históricos y modelos estadísticos permite anticipar comportamientos y aplicar acciones preventivas, fortaleciendo el compromiso y la estabilidad del equipo de trabajo.