La rotación de empleados dentro de una organización representa un fenómeno crítico para la gestión del talento humano, ya que impacta directamente la productividad, los costos operativos y la estabilidad organizacional. Comprender los factores que influyen en los cambios de cargo permite a las empresas anticiparse a posibles movimientos internos y diseñar estrategias orientadas a la retención y desarrollo del personal.
En este estudio se analiza una base de datos que contiene información demográfica, laboral y organizacional de los empleados, con el objetivo de identificar las variables que inciden en la rotación de cargo. Para ello, se propone el uso de un modelo de regresión logística, el cual permitirá estimar la probabilidad de rotación en función de diferentes características individuales y laborales.
El análisis se desarrollará en varias etapas, incluyendo la exploración de los datos, el análisis univariado y bivariado, la estimación del modelo y la evaluación de su capacidad predictiva. Finalmente, se plantearán conclusiones y recomendaciones estratégicas basadas en los resultados obtenidos.
Tabla 1. Dimensión del conjunto de datos
knitr::kable(
data.frame(
Concepto = c("Número de observaciones", "Número de variables"),
Valor = dim(rotacion)
),
caption = "Dimensión de la base de datos de rotación"
)
| Concepto | Valor |
|---|---|
| Número de observaciones | 1470 |
| Número de variables | 24 |
Tabla 2. Descripción de variables
tabla_variables <- tibble::tibble(
Variable = names(rotacion),
Tipo = sapply(rotacion, class),
Valores_Unicos = sapply(rotacion, n_distinct),
Nulos = sapply(rotacion, function(x) sum(is.na(x)))
)
tabla_variables %>%
kable(caption = "Caracterización de variables de la base de rotación")
| Variable | Tipo | Valores_Unicos | Nulos |
|---|---|---|---|
| Rotación | character | 2 | 0 |
| Edad | numeric | 43 | 0 |
| Viaje de Negocios | character | 3 | 0 |
| Departamento | character | 3 | 0 |
| Distancia_Casa | numeric | 29 | 0 |
| Educación | numeric | 5 | 0 |
| Campo_Educación | character | 6 | 0 |
| Satisfacción_Ambiental | numeric | 4 | 0 |
| Genero | character | 2 | 0 |
| Cargo | character | 9 | 0 |
| Satisfación_Laboral | numeric | 4 | 0 |
| Estado_Civil | character | 3 | 0 |
| Ingreso_Mensual | numeric | 1349 | 0 |
| Trabajos_Anteriores | numeric | 10 | 0 |
| Horas_Extra | character | 2 | 0 |
| Porcentaje_aumento_salarial | numeric | 15 | 0 |
| Rendimiento_Laboral | numeric | 2 | 0 |
| Años_Experiencia | numeric | 40 | 0 |
| Capacitaciones | numeric | 7 | 0 |
| Equilibrio_Trabajo_Vida | numeric | 4 | 0 |
| Antigüedad | numeric | 37 | 0 |
| Antigüedad_Cargo | numeric | 19 | 0 |
| Años_ultima_promoción | numeric | 16 | 0 |
| Años_acargo_con_mismo_jefe | numeric | 18 | 0 |
Con el fin de comprender la estructura de la base de datos, se presenta la dimensión del conjunto de datos y una caracterización de sus variables. Esta última incluye el tipo de dato, el número de valores únicos y la presencia de datos faltantes, lo cual permite identificar variables relevantes y evaluar su idoneidad para el análisis posterior.
A partir de esta exploración inicial, se procede a la selección de variables categóricas y cuantitativas que serán utilizadas en el modelo de regresión logística.
Con base en la revisión de la base de datos y el contexto organizacional, se seleccionaron tres variables categóricas y tres variables cuantitativas que se consideran potencialmente relacionadas con la rotación de empleados.
Horas_Extra
Se espera que la realización de horas extras esté asociada con la
rotación de personal, ya que pueden afectar el bienestar físico y mental
de los trabajadores. Las jornadas laborales prolongadas y repetidas
pueden contribuir al aumento del estrés laboral, el agotamiento, así
como al desequilibrio entre la vida laboral y personal. Estas
condiciones pueden generar desmotivación y una disminución en la
satisfacción laboral, lo que lleva a los empleados a buscar mejores
condiciones de trabajo y a tomar la decisión de abandonar el puesto.
Hipótesis: Los empleados que trabajan horas extra tienen mayor probabilidad de rotar.
Estado_Civil
Se considera que el estado civil es una variable relevante en el estudio de la rotación de personal, puesto que se asume que los empleados casados tienden a buscan mayor estabilidad financiera debido a las responsabilidades familiares que poseen y la necesidad de mantener ingresos constantes puede llevarlos a permanecer por más tiempo en un mismo puesto de trabajo, reduciendo su intención de abandonar el cargo y buscar nuevas oportunidades laborales.
Por otro lado, los empleados solteros tienden a buscar mejores oportunidades laborales, ya que suelen contar con mayor adaptabilidad, menos responsabilidades económicas fijas y una mayor disposición a la movilidad geográfica. Estas condiciones les permiten asumir más riesgos y cambiar de empleo con mayor frecuencia.
Hipótesis: Los empleados solteros tienen mayor probabilidad de rotar que los casados.
Satisfacción_Laboral
Se considera que la satisfacción laboral es importante en el estudio de la rotación y retención de personal en una empresa, puesto que los empleados satisfechos tienden a permanecer en sus puestos de trabajo, son menos propensos a la rotación. Cuando los empleados sienten que hay un ambiente laboral positivo, cuentan con oportunidades de desarrollo profesional, reciben reconocimiento y buena compensación, su intención de abandonar el cargo disminuye.
Por otro lado, aquellos trabajadores que se sienten insatisfechos se desempeñan en ambientes laborales hostiles, con conflictos o en malas condiciones laborales, y no se sienten valorados ni recompensados, prefieren buscar otro empleo donde se sientan cómodos, presentan mayor probabilidad de abandonar el cargo y buscar nuevas oportunidades laborales.
Hipótesis: A menor satisfacción laboral, mayor probabilidad de rotación.
Edad
Se considera que la edad puede estar relacionada con la estabilidad
laboral, ya que los empleados más jóvenes suelen estar en etapas de
exploración y consolidación de su carrera profesional. En este sentido,
tienden a cambiar de empleo o carrera con mayor frecuencia en busca de
mejores salarios, oportunidades de aprendizaje y desarrollo
profesional.
Por otro lado, los trabajadores de mayor edad suelen presentar mayor estabilidad dentro de las organizaciones, debido a su mayor antigüedad, conocimiento del funcionamiento de la empresa y acumulación de beneficios laborales. Además, factores como el apego emocional a la organización y la búsqueda de estabilidad a futuro pueden contribuir a que presenten una menor propensión a cambiar de empleo.
Hipótesis: A menor edad, mayor probabilidad de rotación.
Ingreso_Mensual
Se espera que el nivel de ingresos influye en la permanencia en el cargo, ya que cuando los trabajadores perciben un salario bajo, estancado o poco competitivo, que no es acorde a la carga laboral, ni al nivel de responsabilidad ni al esfuerzo realizado, además de no ser suficiente para cubrir sus necesidades básicas o deudas, tiende a generarse desmotivación. Por lo cual, es común que los trabajadores inicien una búsqueda activa de nuevas oportunidades laborales que les ofrezcan mejores condiciones económicas. Por ende, se considera que una proporción importante de las renuncias está relacionada con la expectativa de mejores salarios.
Hipótesis: A menor ingreso mensual, mayor probabilidad de rotación.
Distancia_casa
Se considera que la distancia entre el hogar y el lugar de trabajo es importante en el estudio de la rotación del personal. Los desplazamientos más largos pueden provocar el cambio de empleo, ya que implican mayores gastos económicos (combustible o transporte público), menos tiempo disponible para actividades personales, y la percepción de pérdida de tiempo. Asimismo, estos trayectos incrementan el cansancio, el estrés y la ansiedad, dificultan la conciliación entre la vida laboral y personal, y obligan a iniciar la jornada más temprano y finalizarla más tarde en el hogar.
Teniendo en cuenta lo anterior, se considera que a medida que aumenta la distancia del trayecto también aumenta la probabilidad de renuncia, debido al impacto negativo en la calidad de vida y es más probable que busquen oportunidades labores que se ubiquen más cerca de sus hogares.
Hipótesis: A mayor distancia de la casa, mayor probabilidad de rotación.
Gráfico 1. Rotación
ggplot(rotacion, aes(x = Rotación)) +
geom_bar(fill = "#a4b446") +
geom_text(stat = "count", aes(label = ..count..), vjust = -0.3)
La variable Rotación evidencia que la mayoría de los empleados no ha cambiado de cargo, con 1233 observaciones (83.9%), mientras que 237 empleados (16.1%) sí han rotado. Esto sugiere un comportamiento relativamente estable dentro de la organización, aunque el grupo que rota representa una proporción relevante para profundizar en su análisis.
Gráfico 2. Estado Civil
ggplot(rotacion, aes(x = Estado_Civil)) +
geom_bar(fill = "#c02525") +
geom_text(stat = "count", aes(label = ..count..), vjust = -0.3)
La mayoría de los empleados de la empresa estan casados, representando aproximadamente el 45,8% del total. En segundo lugar, se ubican los trabajadores solteros con un 32% y finalmente los divorciados con 22,2%. Lo que sugiere que predomina una población laboral con responsabildiades familiares, que se esperaria que se relacione con mayor estabilidad y permanecia en el cargo actual.
Gráfico 3. Horas Extra
ggplot(rotacion, aes(x = Horas_Extra)) +
geom_bar(fill = "steelblue") +
geom_text(stat = "count", aes(label = ..count..), vjust = -0.3)
La mayoría de los empleados no realiza horas extras, representando el 71,7% del total, mientras que el 28,3% sí las realiza. Eto indica que una parte importante de la población podría estar expuesta a mayores cargas laborales, lo cual puede tener implicaciones en aspectos como el nivel de estrés, la fatiga, el equilibrio entre la vida laboral y personal.
Gráfico 4. Satisfacción_Laboral
ggplot(rotacion, aes(x = as.factor(Satisfación_Laboral))) +
geom_bar(fill = "orange") +
geom_text(stat = "count", aes(label = ..count..), vjust = -0.3)
Para la variable Satisfacción_Laboral (Gráfico 4), se observa una mayor concentración en los niveles altos de satisfacción. En particular, el nivel 4 (muy satisfecho) presenta 459 observaciones y el nivel 3 (satisfecho) cuenta con 442, representando ambos el 61,3% del total de empleados, mientras que los niveles 1 (muy insatisfecho) y 2 (insatisfecho) registran 289 y 280 respectivamente, representando el 38,7% de empleados restante. Esto indica que, en general, los empleados presentan una percepción positiva de su trabajo, aunque existe una proporción relevante de trabajadores con niveles bajos de satisfacción, con una percepcion desfavorable de la empresa y que podría influir en decisiones de cambio de cargo.
En esta sección se analiza la distribución de las variables numericas, con el objetivo de identificar patrones, dispersión y posibles asimetrías en los datos.
Gráfico 5. Edad
ggplot(rotacion, aes(x = Edad)) +
geom_histogram(fill = "#c02525", bins = 20)
Para la variable Edad (Gráfico 5), se observa una distribución aproximadamente unimodal, con una mayor concentración de empleados entre los 30 y 40 años. La distribución presenta una ligera asimetría hacia la derecha, lo que indica la presencia de empleados de mayor edad, aunque en menor proporción. Este comportamiento sugiere que la organización cuenta principalmente con una población laboral en etapa productiva media.
Tabla 3. Resumen estadístico de la variable Edad
library(knitr)
library(kableExtra)
resumen <- summary(rotacion$Edad)
tabla <- data.frame(
Medida = names(resumen),
Valor = as.numeric(resumen)
)
kable(tabla, col.names = c("Medida", "Valor")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE)
| Medida | Valor |
|---|---|
| Min. | 18.00000 |
| 1st Qu. | 30.00000 |
| Median | 36.00000 |
| Mean | 36.92449 |
| 3rd Qu. | 43.00000 |
| Max. | 60.00000 |
La edad promedio de los trabajadores de la empresa es de aproximadamente 36,9 años, con una mediana de 36 años. El colaborador con la edad mínima tiene 18 años , mientras que el trabajador con la edad máxima alcanza los 60 años.
Gráfico 6. Ingreso_Mensual
ggplot(rotacion, aes(x = Ingreso_Mensual)) +
geom_histogram(fill = "steelblue", bins = 20)
En cuanto a la variable Ingreso_Mensual (Gráfico 6), se evidencia una distribución fuertemente asimétrica hacia la derecha. La mayoría de los empleados se concentra en niveles salariales bajos y medios, aproximadamente entre 2,000 y 6,000 unidades monetarias, mientras que un grupo reducido presenta ingresos significativamente más altos, alcanzando valores cercanos a 20,000. Esta dispersión sugiere la presencia de desigualdad salarial dentro de la organización, así como posibles valores atípicos en los niveles superiores de ingreso.
Tabla 4. Resumen estadístico de la variable Ingreso_Mensual
library(knitr)
library(kableExtra)
resumen <- summary(rotacion$Ingreso_Mensual)
tabla <- data.frame(
Medida = names(resumen),
Valor = as.numeric(resumen)
)
kable(tabla, col.names = c("Medida", "Valor")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE)
| Medida | Valor |
|---|---|
| Min. | 1009.000 |
| 1st Qu. | 2911.000 |
| Median | 4919.000 |
| Mean | 6502.931 |
| 3rd Qu. | 8379.000 |
| Max. | 19999.000 |
El ingreso mensual promedio de los trabajadores de la empresa es de aproximadamente 6502 unidades monetarias, con una mediana de 4919 unidades. El salario mínimo registrado es de 1009 unidades monetarias, mientras que el máximo alcanza las 19999 unidades.Se observa que la media es superior a la mediana, apoyando lo expresado anteriormente, que hay una distribución asimétrica, aunque existe un grupo de trabajadores con ingresos elevados, la mayoría percibe salarios por debajo del promedio.
Gráfico 7. Distancia_Casa
ggplot(rotacion, aes(x = Distancia_Casa)) +
geom_histogram(fill = "orange", bins = 20)
En cuanto a la variable Distancia_Casa (Gráfico 7), se evidencia una distribución altamente asimétrica hacia la derecha. La mayoría de los empleados reside a distancias cortas del lugar de trabajo, principalmente por debajo de los 10 kilómetros, mientras que existe un grupo reducido que vive a mayores distancias, alcanzando valores cercanos a los 30 kilómetros. Esta dispersión indica heterogeneidad en las condiciones de desplazamiento de los empleados.
Tabla 5. Resumen estadístico de la variable Distancia_Casa
library(knitr)
library(kableExtra)
resumen <- summary(rotacion$Distancia_Casa)
tabla <- data.frame(
Medida = names(resumen),
Valor = as.numeric(resumen)
)
kable(tabla, col.names = c("Medida", "Valor")) %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE)
| Medida | Valor |
|---|---|
| Min. | 1.000000 |
| 1st Qu. | 2.000000 |
| Median | 7.000000 |
| Mean | 9.192517 |
| 3rd Qu. | 14.000000 |
| Max. | 29.000000 |
La distancia promedio que deben recorrer los trabajadores para llegar a la empresa es de aproximadamente 9,19 kilómetros, con una mediana de 7 kilómetros. La distancia mínima registrada es de 1 kilómetro, mientras que la máxima alcanzada es de 29 kilómetros. Se observa que la media es superior a la mediana, apoyando lo expresado anteriormente, que hay una distribución asimétrica, sugiere que, aunque existe un grupo de trabajadores que vive a mayores distancias del trabajo, la mayoría se ubica por debajo del promedio, es decir, relativamente cerca a la empresa.
En esta sección se analiza la relación entre las variables explicativas seleccionadas y la variable respuesta rotación, la cual fue codificada como una variable binaria (1 = Sí rota, 0 = No rota). El objetivo de este análisis es evaluar el efecto individual de cada variable sobre la probabilidad de rotación, mediante el uso de gráficos comparativos y modelos de regresión logística simples.
A través de este enfoque, se busca identificar cuáles variables presentan una relación significativa con la rotación y determinar la dirección de dicha relación, con el fin de contrastar los resultados obtenidos con las hipótesis planteadas previamente.
rotacion$y <- ifelse(rotacion$Rotación == "Si", 1, 0)
Gráfico 8. Estado_Civil vs Rotación
ggplot(rotacion, aes(x = Estado_Civil, fill = factor(y))) +
geom_bar(position = "fill") +
labs(x = "Estado_Civil", y = "Proporción", fill = "Rotación")
En el Gráfico 8 se evidencia que la proporción de rotación varía según el estado civil. En particular, los empleados solteros presentan una mayor proporción de rotación en comparación con los casados y divorciados, quienes muestran niveles más bajos y similares entre sí.
Tabla 6. Modelo logístico Rotación - Estado_Civil
modelo_estado <- glm(y ~ Estado_Civil, data = rotacion, family = "binomial")
broom::tidy(modelo_estado) %>%
knitr::kable()
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | -1.9476094 | 0.1166295 | -16.699112 | 0.0000000 |
| Estado_CivilDivorciado | -0.2394628 | 0.2174897 | -1.101030 | 0.2708835 |
| Estado_CivilSoltero | 0.8771680 | 0.1574576 | 5.570819 | 0.0000000 |
En el modelo de regresión logística (Tabla 4), el coeficiente asociado a Estado_CivilSoltero es positivo (0.877), indicando que ser soltero aumenta la probabilidad de rotación frente a la categoría base (casado). Este efecto es estadísticamente significativo, dado que su p-valor es cercano a cero. Por otro lado, la categoría Divorciado presenta un coeficiente negativo (-0.239) pero no es estadísticamente significativo, ya que su p-valor es alto.
Estos resultados confirman parcialmente la hipótesis planteada, evidenciando que el estado civil puede influir en la rotación de personal y que los empleados solteros tienen una mayor tendencia a rotar en comparación con otros estados civiles.
Gráfico 9. Horas_Extra vs Rotación
ggplot(rotacion, aes(x = Horas_Extra, fill = factor(y))) +
geom_bar(position = "fill") +
labs(x = "Horas_Extra", y = "Proporción", fill = "Rotación")
En el Gráfico 9 se observa que la proporción de empleados que rota es considerablemente mayor en aquellos que realizan horas extra en comparación con quienes no las realizan. Mientras que en el grupo que no trabaja horas extra la proporción de rotación es baja, en el grupo que sí realiza horas extra esta proporción aumenta de forma notable.
Tabla 7. Modelo logístico Rotacion - Horas_Extra
modelo_hextra <- glm(y ~ Horas_Extra, data = rotacion, family = "binomial")
broom::tidy(modelo_hextra) %>%
knitr::kable()
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | -2.149646 | 0.1007431 | -21.337888 | 0 |
| Horas_ExtraSi | 1.327406 | 0.1465721 | 9.056333 | 0 |
El modelo de regresión logística (Tabla 7) muestra un coeficiente positivo para la variable Horas_ExtraSi (1.327), lo que indica que trabajar horas extra incrementa la probabilidad de rotación. Además, el p-valor asociado es prácticamente cero, lo que evidencia que este efecto es estadísticamente significativo.
Estos resultados son consistentes con la hipótesis planteada, en la cual se esperaba que una mayor carga laboral estuviera asociada a un incremento en la rotación de empleados, trabajar horas extras está influyendo en la probabilidad de rotar.
Gráfico 10. Satisfacción_Laboral vs Rotación
ggplot(rotacion, aes(x = Satisfación_Laboral, fill = factor(y))) +
geom_bar(position = "fill") +
labs(x = "Satisfación_Laboral", y = "Proporción", fill = "Rotación")
En el Gráfico 10 se evidencia que la proporción de rotación varía según el nivel de satisfacción. En particular, los empleados muy insatisfechos presentan una mayor proporción de rotación que el resto, mientras que el grupo que indicó que estaba muy satisfecho en su trabajo presentan la proporción de rotación más es baja, quienes reportaron que estan insatisfechos y satisfechos muestran niveles intermedios y similares entre sí de rotación.
Tabla 8. Modelo logístico Rotacion - Satisfacción_Laboral
rotacion$Satisfación_Laboral <- factor(rotacion$Satisfación_Laboral, levels = c(1,2,3,4))
modelo_satisf <- glm(y ~ Satisfación_Laboral,data = rotacion, family = "binomial")
broom::tidy(modelo_satisf) %>%
knitr::kable()
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | -1.2175170 | 0.1401278 | -8.688621 | 0.0000000 |
| Satisfación_Laboral2 | -0.4091627 | 0.2136549 | -1.915063 | 0.0554844 |
| Satisfación_Laboral3 | -0.4028202 | 0.1898538 | -2.121739 | 0.0338596 |
| Satisfación_Laboral4 | -0.8400524 | 0.2032800 | -4.132489 | 0.0000359 |
En el modelo de regresión logística (Tabla 8), los coeficientes asociados a Satisfación_Laboral son negativos, es decir, la probabilidad de rotación disminuye a medida que va aumentando el nivel de satisfacción en comparación con la categoría base (nivel 1: muy insatisfecho). Los efectos de los niveles 3 y 4 son estadísticamente significativos, mientras que el nivel 2 esta en el límite (0.055). Adicionalmente, los coeficientes de Satisfación_Laboral2 y Satisfación_Laboral3 son similares en magnitud frente a la categoría base, mientras que Satisfación_Labora4 presenta un efecto más pronunciado, indicado que los empleados muy satisfechos tienen menor probabilidad de rotación en comparación con aquellos muy insatisfechos, y esta reducción es mayor que la de los otros niveles de satisfacción (2 y 3).
Estos resultados confirman la hipótesis planteada, evidenciando que la satisfacción laboral es un factor determinante en la permanencia de los empleados dentro de la organización y que mayor satisfacción laboral reduce la probabilidad de rotación.
Gráfico 11. Edad vs Rotación
ggplot(rotacion, aes(x = factor(y), y = Edad)) +
geom_boxplot(fill = "lightblue") +
labs(x = "Rotación", y = "Edad")
En el Gráfico 11 se evidencia que los empleados que rotan tienden a presentar una menor edad en comparación con aquellos que no rotan. La mediana de edad es más baja en el grupo que rota, lo que sugiere una posible relación entre menor edad y mayor probabilidad de cambio de cargo.
Tabla 9. Modelo logístico Rotación - Edad
modelo_edad <- glm(y ~ Edad, data = rotacion, family = "binomial")
broom::tidy(modelo_edad) %>%
knitr::kable()
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 0.2063689 | 0.3059696 | 0.6744752 | 0.5000093 |
| Edad | -0.0522544 | 0.0086999 | -6.0063393 | 0.0000000 |
El modelo de regresión logística (Tabla 6) presenta un coeficiente negativo para la variable Edad (-0.052), lo que indica que a medida que aumenta la edad, disminuye la probabilidad de rotación. Este efecto es estadísticamente significativo, dado que su p-valor es cercano a cero.
Estos resultados son consistentes con la hipótesis planteada, en la cual se esperaba que los empleados más jóvenes presentaran una mayor tendencia a rotar dentro de la organización.
Gráfico 12. Ingreso_Mensual vs Rotación
ggplot(rotacion, aes(x = factor(y), y = Ingreso_Mensual)) +
geom_boxplot(fill = "lightblue") +
labs(x = "Rotación", y = "Ingreso_Mensual")
En el Gráfico 12 se observa que los empleados que no rotan presentan, en general, niveles de ingreso más altos en comparación con aquellos que sí rotan. La mediana de ingreso es claramente mayor en el grupo que permanece, mientras que los empleados que rotan se concentran en rangos salariales más bajos. Asimismo, se evidencian valores atípicos en ambos grupos, especialmente en los niveles superiores de ingreso.
Tabla 10. Modelo logístico Rotación - Ingreso_Mensual
modelo_ingreso <- glm(y ~ Ingreso_Mensual, data = rotacion, family = "binomial")
broom::tidy(modelo_ingreso) %>%
knitr::kable()
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | -0.9291087 | 0.1292021 | -7.191125 | 0 |
| Ingreso_Mensual | -0.0001271 | 0.0000216 | -5.879336 | 0 |
El modelo de regresión logística (Tabla 10) muestra un coeficiente negativo para la variable Ingreso_Mensual (-0.000127), lo que indica que a medida que aumenta el ingreso, disminuye la probabilidad de rotación. Este efecto es estadísticamente significativo, dado que el p-valor es cercano a cero.
Estos resultados son consistentes con la hipótesis planteada, sugiriendo que niveles salariales más altos están asociados con una menor probabilidad de rotación.
Gráfico 13. Distancia_Casa vs Rotación
ggplot(rotacion, aes(x = factor(y), y = Distancia_Casa)) +
geom_boxplot(fill = "lightblue") +
labs(x = "Rotación", y = "Distancia_Casa")
En el Gráfico 13 se observa que los empleados que no rotan presentan, en general, distancias más cortas del trabajo a la casa en comparación con aquellos que sí rotan. La mediana de la distancia casa es claramente menor en el grupo que permanece, mientras que los empleados que rotan se concentran en distancias al trabajo mayores, viven más lejos de la empresa.
Tabla 11. Modelo logístico Rotación - Distancia_Casa
modelo_ingreso <- glm(y ~ Distancia_Casa, data = rotacion, family = "binomial")
broom::tidy(modelo_ingreso) %>%
knitr::kable()
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | -1.8900508 | 0.1113819 | -16.969106 | 0.0000000 |
| Distancia_Casa | 0.0247101 | 0.0083123 | 2.972721 | 0.0029517 |
El modelo de regresión logística (Tabla 11) muestra un coeficiente positivo para la variable Distancia_Casa (0.025), lo que indica que a medida que aumenta la distancia de la casa del trabajo, aumenta la probabilidad de rotación. Este efecto es estadísticamente significativo, dado que el p-valor es cercano a cero.
Estos resultados son consistentes con la hipótesis planteada, sugiriendo que entre más lejos vivan los empleados de su puesto de trabajo mayor es la probabilidad de rotación.
En esta sección se estima un modelo de regresión logística multivariado con el objetivo de analizar el efecto conjunto de las variables explicativas seleccionadas sobre la probabilidad de rotación de los empleados. A diferencia del análisis bivariado, este modelo permite evaluar la influencia de cada variable controlando por el efecto de las demás, lo cual facilita identificar cuáles factores son realmente determinantes en la rotación.
Los coeficientes estimados se interpretan en términos de cambios del logaritmo de la razón de probabilidades de rotación, mientras que los odds ratios permiten una interpretación más intuitiva del efecto de cada variable sobre la razón de probabilidades. Asimismo, se analiza la significancia estadística de los parámetros para determinar la relevancia de cada variable dentro del modelo.
Tabla 12. Modelo logístico multivariado
modelo_final <- glm(
y ~ Horas_Extra + Estado_Civil + Satisfación_Laboral + Edad + Ingreso_Mensual + Distancia_Casa,
data = rotacion,
family = "binomial"
)
broom::tidy(modelo_final) %>%
knitr::kable()
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | -0.6097993 | 0.3849520 | -1.584092 | 0.1131729 |
| Horas_ExtraSi | 1.5312314 | 0.1593562 | 9.608858 | 0.0000000 |
| Estado_CivilDivorciado | -0.3179943 | 0.2299271 | -1.383022 | 0.1666580 |
| Estado_CivilSoltero | 0.8910784 | 0.1719667 | 5.181692 | 0.0000002 |
| Satisfación_Laboral2 | -0.4353944 | 0.2351729 | -1.851380 | 0.0641149 |
| Satisfación_Laboral3 | -0.4680219 | 0.2072977 | -2.257729 | 0.0239626 |
| Satisfación_Laboral4 | -1.0685448 | 0.2220584 | -4.811999 | 0.0000015 |
| Edad | -0.0313901 | 0.0101280 | -3.099328 | 0.0019396 |
| Ingreso_Mensual | -0.0001025 | 0.0000253 | -4.047056 | 0.0000519 |
| Distancia_Casa | 0.0311752 | 0.0092626 | 3.365714 | 0.0007635 |
Tabla 13. Odds Ratios del modelo logístico
odds_ratios <- exp(coef(modelo_final))
data.frame(
Variable = names(odds_ratios),
Odds_Ratio = round(odds_ratios, 3)
) %>%
knitr::kable()
| Variable | Odds_Ratio | |
|---|---|---|
| (Intercept) | (Intercept) | 0.543 |
| Horas_ExtraSi | Horas_ExtraSi | 4.624 |
| Estado_CivilDivorciado | Estado_CivilDivorciado | 0.728 |
| Estado_CivilSoltero | Estado_CivilSoltero | 2.438 |
| Satisfación_Laboral2 | Satisfación_Laboral2 | 0.647 |
| Satisfación_Laboral3 | Satisfación_Laboral3 | 0.626 |
| Satisfación_Laboral4 | Satisfación_Laboral4 | 0.344 |
| Edad | Edad | 0.969 |
| Ingreso_Mensual | Ingreso_Mensual | 1.000 |
| Distancia_Casa | Distancia_Casa | 1.032 |
La variable Horas_Extra presenta un coeficiente positivo (1.531) y estadísticamente significativo (p-valor cercano a cero), lo que indica que los empleados que realizan horas extra tienen una mayor probabilidad de rotación, incluso al controlar por las demás variables del modelo.
El odds ratio asociado (4.624) indica que las odds de rotación para los empleados que trabajan horas extra son aproximadamente 4.6 veces mayores en comparación con aquellos que no lo hacen. Este resultado sugiere que la carga laboral adicional es un factor relevante en la rotación.
En la variable Estado_Civil, se observa que la
categoría Soltero presenta un coeficiente positivo (0.891) y
significativo, lo que indica una mayor probabilidad de rotación de este
grupo frente a la categoría base (casado). El odds ratio de
2.438 sugiere que los empleados solteros tienen más del doble de odds de
rotación en comparación con el grupo de casados.
Por otro lado, la categoría Divorciado con rescepto a casados no resulta significativa (p-valor alto), lo que indica que no existe evidencia suficiente para afirmar que esta condición influya en la rotación.
En la variable Satisfación_Laboral, tomando como base a los empleados muy insatisfechos, se observa que Insatisfecho, Satisfecho y Muy satisfecho presentan coeficientes negativos (-0.435, -0.468 y -1.069, respectivamente), lo que indica una disminución en la probabilidad a la rotación en comparación con el grupo muy insatisfecho. En cuanto a la significancia estadística, se evidencia que las categorías Satisfecho y Muy satisfecho resultan significativas, lo que inidca que mayores niveles de satisfacción laboral están asociados con una menor rotación. Por el contrario, la categoría Insatisfecho no es estadísticamente significativa (p-valor = 0.064), por lo que no se puede afirmar con suficiente evidencia que difiera del grupo muy insatisfecho.
De acuerdo con los odds ratios los empleados Insatisfechos presentan un odds de rotación de 0.647, los Satisfechos de 0.626 y los Muy satisfechos de 0.344. Esto implica que, en comparación con los empleados muy insatisfechos, las odds de rotación disminuyen progresivamente a medida que aumenta el nivel de satisfacción laboral, siendo especialmente marcada la reducción en el grupo de muy satisfechos.
La variable Edad presenta un coeficiente negativo (-0.031) y significativo, lo que indica que a medida que aumenta la edad, disminuye la probabilidad de rotación. El odds ratio de 0.969 confirma este comportamiento, sugiriendo que cada año adicional reduce en aproximadamente un 3.1% las odds de rotación, manteniendo constantes las demás variables del modelo. Este resultado indica que los empleados más jóvenes tienen una mayor tendencia a cambiar de cargo dentro de la organización.
En la variable Ingreso_Mensual, el coeficiente negativo (-0.000103) indica que mayores niveles de ingreso están asociados con una menor probabilidad de rotación. Este efecto es estadísticamente significativo, aunque de magnitud pequeña debido a la escala en la que se mida la variable.
El odds ratio igual a 1 indica ausencia del efecto, es decir, aunque la relación es estadísticamente significativa, su impacto práctico es limitado a nivel individual, es posible que incrementos más grandes en el ingreso podrían tener un efecto acumulado más relevante.
La variable Distancia_Casa presenta un coeficiente positivo (0.031) y estadísticamente significativo (p-valor cercano a cero), lo que indica que los empleados que viven más lejos del puesto de trabajo tienen una mayor probabilidad de rotación, manteniendo constantes las demás variables del modelo.
El odds ratio asociado (1.032) indica que por cada unidad adicional de distancia, las odds de rotación aumentan en aproximadamente un 3.2%. Aunque el efecto por unidad es relativamente pequeño, su impacto puede volverse relevante ante incrementos mayores en la distancia.
En conjunto, los resultados del modelo multivariado evidencian que las variables significativas estadísticamente en la rotación son las horas extra, el estado civil (particularmente ser soltero), satisfacción laboral (especificamente 3 y 4), la edad, el ingreso mensual y la distancia casa. Estos hallazgos confirman en gran medida las hipótesis planteadas y permiten identificar factores clave sobre los cuales la organización puede intervenir para reducir la rotación de empleados.
La curva ROC (Gráfico 14) permite evaluar la capacidad del
modelo para discriminar entre los empleados que rotan y los que no
rotan. En el gráfico se observa que la curva se encuentra por encima de
la línea diagonal, lo que indica que el modelo tiene capacidad
predictiva superior a la de un clasificador aleatorio.
Gráfico 14. Curva ROC del modelo logístico
library(pROC)
# Probabilidades estimadas del modelo
probabilidades <- predict(modelo_final, type = "response")
# Objeto ROC
roc_modelo <- roc(rotacion$y, probabilidades)
# Curva ROC
plot(roc_modelo,
col = "blue",
lwd = 2,
main = "Curva ROC del modelo logístico")
abline(a = 0, b = 1, lty = 2, col = "gray")
El área bajo la curva (AUC), presentada en la Tabla 14, es de 0.7756. Este valor indica que el modelo tiene una buena capacidad de discriminación, ya que existe aproximadamente un 77.56% de probabilidad de que el modelo asigne una mayor probabilidad de rotación a un empleado que realmente rota frente a uno que no rota.
Tabla 14. Área bajo la curva (AUC)
auc_modelo <- auc(roc_modelo)
data.frame(
Medida = "AUC",
Valor = round(as.numeric(auc_modelo), 4)
) %>%
knitr::kable()
| Medida | Valor |
|---|---|
| AUC | 0.7756 |
De acuerdo con criterios comúnmente utilizados, un AUC entre 0.7 y 0.8 se considera aceptable o bueno, lo que sugiere que el modelo presenta un desempeño adecuado para fines predictivos.
En consecuencia, el modelo logístico estimado logra capturar de manera razonable los patrones asociados a la rotación de empleados, aunque aún existe margen de mejora en su capacidad predictiva.
Tabla 15. Punto de corte óptimo del modelo
# Punto de corte óptimo con criterio de Youden
corte_optimo <- coords(roc_modelo, "best", ret = c("threshold", "sensitivity", "specificity"))
data.frame(
Medida = c("Threshold", "Sensitivity", "Specificity"),
Valor = round(as.numeric(corte_optimo), 4)
) %>%
knitr::kable()
| Medida | Valor |
|---|---|
| Threshold | 0.1701 |
| Sensitivity | 0.7300 |
| Specificity | 0.7437 |
El punto de corte óptimo obtenido (0.1701) es inferior al valor convencional de 0.5 debido a la distribución de la variable respuesta, donde la proporción de empleados que rotan es relativamente baja. En estos casos, el modelo tiende a asignar probabilidades menores, por lo que un umbral más bajo permite mejorar la capacidad de detección de casos positivos (rotación).
El uso del criterio de Youden permite encontrar un equilibrio entre sensibilidad y especificidad, optimizando la capacidad predictiva del modelo. En este contexto, un valor de 0.1701 indica que probabilidades superiores al 17,01% ya representan un riesgo relevante de rotación, favoreciendo una mejor identificación de los empleados propensos a abandonar la organización
Tabla 16. Características del individuo hipotético
nuevo_empleado <- data.frame(
Horas_Extra = "Si",
Estado_Civil = "Soltero",
Satisfación_Laboral = factor(2),
Edad = 28,
Ingreso_Mensual = 3000,
Distancia_Casa = 7
)
nuevo_empleado %>%
knitr::kable()
| Horas_Extra | Estado_Civil | Satisfación_Laboral | Edad | Ingreso_Mensual | Distancia_Casa |
|---|---|---|---|---|---|
| Si | Soltero | 2 | 28 | 3000 | 7 |
En la Tabla 16 se presentan las características del individuo hipotético evaluado, el cual corresponde a un empleado que realiza horas extra, es soltero, un nivel de satisfacción laboral de 2 (insatisfecho), tiene 28 años, un ingreso mensual de 3000 y vive a 7 kilometros del trabajo.
A partir de estas características, el modelo estima una probabilidad de rotación de 0.6008 (Tabla 17), lo que indica un riesgo alto de que este empleado cambie de cargo en el próximo periodo.
Tabla 17. Predicción de probabilidad de rotación
probabilidad_rotacion <- predict(modelo_final, newdata = nuevo_empleado, type = "response")
data.frame(
Medida = "Probabilidad de rotación",
Valor = round(probabilidad_rotacion, 4)
) %>%
knitr::kable()
| Medida | Valor |
|---|---|
| Probabilidad de rotación | 0.6008 |
Al comparar esta probabilidad con el punto de corte óptimo obtenido (0.1996), se observa que la probabilidad estimada es considerablemente superior al umbral definido. En consecuencia, como se muestra en la Tabla 18, la decisión es intervenir sobre este empleado.
Tabla 18. Decisión de intervención
decision_intervencion <- ifelse(probabilidad_rotacion > corte_optimo["threshold"],
"Intervenir",
"No intervenir")
data.frame(
Probabilidad = round(probabilidad_rotacion, 4),
Punto_de_corte = round(as.numeric(corte_optimo["threshold"]), 4),
Decision = decision_intervencion
) %>%
knitr::kable()
| Probabilidad | Punto_de_corte | threshold |
|---|---|---|
| 0.6008 | 0.1701 | Intervenir |
Este resultado sugiere que el perfil analizado presenta múltiples factores de riesgo asociados a la rotación, tales como la realización de horas extra, un nivel bajo de satisfacción laboral y un ingreso relativamente bajo. Por lo tanto, se recomienda implementar estrategias de intervención orientadas a mejorar sus condiciones laborales, incrementar su satisfacción y reducir su carga de trabajo, con el fin de disminuir la probabilidad de rotación. Estrategias como por ejemplo: el diseño de programas de reconocimiento e incentivos por desempeño, la revisión de la carga laboral para reducir la dependencia de horas extra, y la implementación de planes de desarrollo profesional que permitan al empleado visualizar oportunidades de crecimiento dentro de la organización.
El análisis realizado permitió identificar los principales factores asociados a la rotación de empleados dentro de la organización, a partir de un enfoque basado en regresión logística. Tanto el análisis bivariado como el modelo multivariado evidenciaron que variables como las horas extra, el estado civil, la satisfacción laboral, la edad, el ingreso mensual y la distancia de la casa al trabajo influyen de manera significativa en la probabilidad de rotación.
En particular, se encontró que la realización de horas extra incrementa considerablemente la probabilidad de rotación, lo que sugiere que una carga laboral elevada puede generar desgaste en los empleados. Asimismo, los empleados solteros presentan una mayor tendencia a rotar, lo cual puede estar asociado a una mayor flexibilidad laboral, búsqueda de mejores oportunidades labores o menor nivel de arraigo organizacional.
Por otro lado, los empleados con mayor distancia entre el hogar y el trabajo mostraron una mayor propensión a la rotación, lo que está asociado a mayores gastos económicos, menor disponibilidad para actividades personales, así como mayores niveles más estres y cansancio.En contraste, variables como la edad, el ingreso mensual y la satisfacción laboral (especificamente satisfechos y muy satisfechos) presentan efectos negativos sobre la rotación, indicando que empleados más experimentados, mejor remunerados y con mayor satisfacción tienden a permanecer en la organización.
A partir de estos hallazgos, se pueden plantear diversas estrategias para disminuir la rotación. En primer lugar, se recomienda implementar políticas orientadas a la reducción de horas extras, mediante una mejor distribución de la carga laboral o la incorporación de personal adicional. En segundo lugar, es fundamental fortalecer las estrategias de compensación salarial, especialmente para los empleados con ingresos más bajos, con el fin de aumentar su permanencia.
Adicionalmente, se sugiere diseñar programas de mejora del clima organizacional y bienestar laboral, enfocados en incrementar la satisfacción de los empleados. Esto puede incluir iniciativas como planes de desarrollo profesional, reconocimiento al desempeño, flexibilidad laboral y fortalecimiento del liderazgo.
Finalmente, se recomienda prestar especial atención a los empleados jóvenes y con mayores distancia de la casa al trabajo, implementando estrategias específicas de retención, tales como acompañamiento en el desarrollo de carrera, incentivos por desempeño y reducción de factores de estrés laboral.
Finalmente, se recomienda prestar especial atención a los empleados jóvenes y con mayor distancia del hogar al trabajo, implementando estrategias específicas de retención, tales como acompañamiento en el desarrollo de carrera, incentivos por desempeño, reducción de factores de estrés laboral y esquemas de trabajo flexible o híbrido (cuando sea posible).
En conjunto, estas acciones permitirían a la organización reducir la rotación de empleados, mejorar la estabilidad de su talento humano y optimizar su desempeño organizacional.