1 Planteamiento del problema y selección de variables

La organización desea explicar y predecir la rotación de cargo de sus empleados. La variable respuesta se modela como binaria:

\[ Y = \begin{cases} 1, & \text{si el empleado presenta rotación},\\ 0, & \text{si el empleado no presenta rotación}. \end{cases} \]

El objetivo consiste en estimar, para un conjunto de características \(X\), la probabilidad condicional

\[ P(Y=1\mid X), \]

mediante un modelo de regresión logística. La selección de covariables se realiza antes de observar los coeficientes del modelo, de modo que el análisis pueda utilizarse para contrastar hipótesis formuladas a priori y describir patrones encontrados después del ajuste.

1.1 Entendimiento de los datos

La base utilizada contiene 1470 empleados y 24 variables: la variable objetivo, Rotación, que es binaria (Sí/No), y 23 atributos predictores. Los predictores son sociodemográficos (edad, género, estado civil, distancia al domicilio), académicos (nivel y campo de formación), laborales (departamento, cargo, horas extra, viajes de negocio, rendimiento), salariales (ingreso mensual, porcentaje de aumento), de trayectoria (años de experiencia, antigüedad en la empresa y en el cargo, años desde la última promoción y con el mismo jefe, trabajos anteriores) y de percepción, medidas en escalas ordinales de 1 a 4 (satisfacción ambiental, satisfacción laboral y equilibrio entre trabajo y vida personal). No hay valores faltantes ni registros duplicados.

1.2 Preparación de los datos

Como no había valores faltantes ni duplicados, no hizo falta imputar ni depurar registros. La preparación se limitó a recodificar la variable objetivo como indicador binario (1 = rotación), fijar las categorías de referencia de los predictores categóricos (No para horas extra, Casado para estado civil y No viaja para viajes de negocios) y expresar el ingreso mensual en miles de unidades monetarias para facilitar la interpretación de su coeficiente. Para la evaluación predictiva se reservó además un 30 % de la muestra mediante una partición estratificada (sección 5).

1.3 Variables seleccionadas e hipótesis

Variable Tipo Fundamento de la hipótesis Dirección esperada
Horas extra Categórica Una carga laboral prolongada puede asociarse con fatiga, menor conciliación y mayor intención de cambio. Se espera mayor rotación entre quienes realizan horas extra. Positiva: Sí vs No
Estado civil Categórica El estado civil puede estar relacionado con diferencias en estabilidad personal, movilidad y restricciones familiares. Como hipótesis de trabajo, puede plantearse que los empleados solteros presentan una mayor predisposición a cambiar de empleo o cargo que los empleados casados. Positiva: Soltero vs Casado
Viaje de negocios Categórica Los viajes frecuentes pueden generar mayor carga laboral, tiempo fuera del hogar y dificultades para conciliar la vida laboral y personal. Por ello, se espera que una mayor frecuencia de viajes se asocie con mayor rotación. Positiva respecto a No viaja
Edad Cuantitativa Los empleados más jóvenes pueden presentar mayor movilidad laboral y menor permanencia acumulada (arraigo), por lo que se espera que la probabilidad de rotación disminuya con la edad. Negativa
Ingreso mensual Cuantitativa Un mayor ingreso mensual (mejor compensación) puede incrementar el coste de oportunidad de abandonar la organización y estar asociado con mayor estabilidad, por lo que se espera una relación negativa entre ingreso y rotación; dicho de otro modo, se espera menor rotación con ingresos superiores. Negativa
Antigüedad en el cargo Cuantitativa Una mayor permanencia puede reflejar consolidación en el puesto y ajuste entre empleado y organización. Se espera menor rotación con mayor antigüedad. Negativa

La base de datos también contiene variables de satisfacción y equilibrio laboral (satisfacción ambiental, satisfacción laboral y equilibrio entre trabajo y vida personal). Son conceptualmente relevantes para la rotación, pero no se incorporan al modelo principal porque la actividad limita la selección a tres variables categóricas y tres cuantitativas. La selección busca cubrir carga de trabajo y movilidad, compensación y permanencia, junto con variables de contexto, evitando ampliar el modelo después de observar los resultados.

2 Análisis univariado

La base contiene 1470 registros. El análisis utiliza 1470 empleados. En esta base de trabajo se registran 237 casos de rotación y 1233 casos sin rotación.

rotacion <- rotacion %>%
  mutate(
    Rotacion = factor(Rotacion, levels = c("No", "Si")),
    Horas_Extra = factor(Horas_Extra, levels = c("No", "Si")),
    Estado_Civil = factor(
      Estado_Civil,
      levels = c("Casado", "Divorciado", "Soltero")
    ),
    Viaje_de_Negocios = factor(
      Viaje_de_Negocios,
      levels = c("No_Viaja", "Raramente", "Frecuentemente")
    ),
    Rotacion_num = if_else(Rotacion == "Si", 1L, 0L),
    Ingreso_1000 = Ingreso_Mensual / 1000
  )

2.1 Caracterización de la base completa

Antes de concentrar el análisis en las seis covariables seleccionadas, se revisa la estructura de las 24 variables disponibles. La base contiene 0 valores perdidos y 0 registros exactamente duplicados.

Caracterización de las variables de la base completa
Variable Tipo_analitico n Perdidos Valores_unicos Resumen
Rotacion Categórica nominal 1470 0 2 Niveles=2; categoría modal=No (83.9%)
Edad Cuantitativa 1470 0 43 Mediana=36; Q1=30; Q3=43; rango=[18, 60]
Viaje de Negocios Categórica nominal 1470 0 3 Niveles=3; categoría modal=Raramente (71%)
Departamento Categórica nominal 1470 0 3 Niveles=3; categoría modal=IyD (65.4%)
Distancia Casa Cuantitativa 1470 0 29 Mediana=7; Q1=2; Q3=14; rango=[1, 29]
Educacion Ordinal (escala numérica) 1470 0 5 Niveles: 1=170; 2=282; 3=572; 4=398; 5=48
Campo Educacion Categórica nominal 1470 0 6 Niveles=6; categoría modal=Ciencias (41.2%)
Satisfaccion Ambiental Ordinal (escala numérica) 1470 0 4 Niveles: 1=284; 2=287; 3=453; 4=446
Genero Categórica nominal 1470 0 2 Niveles=2; categoría modal=M (60%)
Cargo Categórica nominal 1470 0 9 Niveles=9; categoría modal=Ejecutivo_Ventas (22.2%)
Satisfacion Laboral Ordinal (escala numérica) 1470 0 4 Niveles: 1=289; 2=280; 3=442; 4=459
Estado Civil Categórica nominal 1470 0 3 Niveles=3; categoría modal=Casado (45.8%)
Ingreso Mensual Cuantitativa 1470 0 1349 Mediana=4919; Q1=2911; Q3=8379; rango=[1009, 19999]
Trabajos Anteriores Cuantitativa 1470 0 10 Mediana=2; Q1=1; Q3=4; rango=[0, 9]
Horas Extra Categórica nominal 1470 0 2 Niveles=2; categoría modal=No (71.7%)
Porcentaje aumento salarial Cuantitativa 1470 0 15 Mediana=14; Q1=12; Q3=18; rango=[11, 25]
Rendimiento Laboral Ordinal (escala numérica) 1470 0 2 Niveles: 3=1244; 4=226
Anos Experiencia Cuantitativa 1470 0 40 Mediana=10; Q1=6; Q3=15; rango=[0, 40]
Capacitaciones Cuantitativa 1470 0 7 Mediana=3; Q1=2; Q3=3; rango=[0, 6]
Equilibrio Trabajo Vida Ordinal (escala numérica) 1470 0 4 Niveles: 1=80; 2=344; 3=893; 4=153
Antiguedad Cuantitativa 1470 0 37 Mediana=5; Q1=3; Q3=9; rango=[0, 40]
Antiguedad Cargo Cuantitativa 1470 0 19 Mediana=3; Q1=2; Q3=7; rango=[0, 18]
Anos ultima promocion Cuantitativa 1470 0 16 Mediana=1; Q1=0; Q3=3; rango=[0, 15]
Anos acargo con mismo jefe Cuantitativa 1470 0 18 Mediana=3; Q1=2; Q3=7; rango=[0, 17]

La tabla distingue variables nominales, cuantitativas y escalas ordinales almacenadas numéricamente. En esta base se detectan como ordinales, de acuerdo con su nombre y baja cardinalidad: Educacion, Satisfaccion Ambiental, Satisfacion Laboral, Rendimiento Laboral, Equilibrio Trabajo Vida. La tabla completa permite documentar el conjunto disponible sin convertir el informe en una sucesión de 24 gráficos; las seis variables seleccionadas se caracterizan con mayor detalle en los apartados siguientes.

2.2 Variable respuesta: rotación

Distribución de la variable Rotación
Variable Categoria n Porcentaje
Rotacion No 1233 83.88
Rotacion Si 237 16.12

La prevalencia observada de rotación es 16,12%. En consecuencia, la clase positiva representa aproximadamente uno de cada 6,2 empleados. El gráfico permite apreciar de forma inmediata el desbalance de clases. La categoría No rota es claramente mayoritaria. Esta estructura condiciona la evaluación predictiva, ya que un clasificador ingenuo que asignara a todos los empleados la categoría No rota alcanzaría una exactitud aparente de 83,9% sin identificar un solo caso positivo. Por esta razón, la exactitud no se utilizará de manera aislada y posteriormente se analizarán conjuntamente sensibilidad, especificidad, precisión, F1, exactitud balanceada y AUC para evaluar la capacidad predictiva.

Vale la pena mencionar que, el 16,1% de rotación constituye además la probabilidad previa del evento en esta muestra. En este sentido, las probabilidades individuales generadas por el modelo deben interpretarse respecto a ese nivel basal; esto es, un riesgo estimado del 30%, por ejemplo, sería claramente superior a la prevalencia general aunque permanezca por debajo de 0,50.

2.3 Variables categóricas

Frecuencias de las variables categóricas
Variable Categoria n Porcentaje
Rotacion No 1233 83.88
Rotacion Si 237 16.12
Horas_Extra No 1054 71.70
Horas_Extra Si 416 28.30
Estado_Civil Casado 673 45.78
Estado_Civil Divorciado 327 22.24
Estado_Civil Soltero 470 31.97
Viaje_de_Negocios No_Viaja 150 10.20
Viaje_de_Negocios Raramente 1043 70.95
Viaje_de_Negocios Frecuentemente 277 18.84

La caracterización muestra que 28,3% de los empleados realizan horas extra, mientras que 71,7% no las realizan. Esta variable tiene suficiente representación en ambas categorías como para permitir una comparación informativa de las tasas de rotación.

En estado civil, la plantilla se distribuye entre casados (45,8%), divorciados (22,2%) y solteros (32,0%). La categoría Casado se utiliza posteriormente como referencia, por lo que los coeficientes de Divorciado y Soltero expresan diferencias frente a este grupo.

Para viajes de negocios, 10,2% no viaja, 71,0% viaja raramente y 18,8% lo hace frecuentemente. La categoría No viaja constituye la referencia del modelo. Conviene tener presente que es también el grupo menos numeroso; por ello, los contrastes que lo utilizan como referencia pueden presentar intervalos de confianza más amplios que los de categorías con mayor tamaño muestral.

En conjunto, los gráficos de frecuencias muestran que ninguna de las categorías seleccionadas está ausente o es residual, pero sí existen tamaños desiguales. Estas diferencias de frecuencia no constituyen por sí mismas evidencia de asociación con la rotación, esa cuestión se estudia en el siguiente apartado de análisis bivariado mediante tasas condicionadas y regresión logística.

2.4 Variables cuantitativas

Resumen descriptivo de las variables cuantitativas
Variable n Media Desv_Estandar Minimo Q1 Mediana Q3 Maximo
Edad 1470 36.92 9.14 18 30 36 43 60
Ingreso_Mensual 1470 6502.93 4707.96 1009 2911 4919 8379 19999
Antiguedad_Cargo 1470 4.23 3.62 0 2 3 7 18

La edad presenta una media de 36,92 años y una mediana de 36,00; la mitad de los empleados tiene entre 30 y 43 años y los valores extremos van de 18 a 60 años. Se puede apreciar que en la muestra conviven personas que empiezan su carrera con otras cercanas a la jubilación, aunque el grueso de empleados está en plena etapa productiva. La cercanía entre media y mediana indica que el centro de la distribución no está dominado por unos pocos valores extremos.

El ingreso mensual es la variable que más diferencias muestra dentro de la organización. El salario medio es de 6.502,93, pero ese promedio lo elevan unos pocos sueldos altos. El dato representativo es la mediana: la mitad de la plantilla cobra 4.919,00, y una cuarta parte, menos de 2.911. En el otro extremo, los salarios llegan hasta 19.999, casi veinte veces el mínimo (1.009). Esta estructura, con muchos sueldos bajos y pocos muy altos, responde a la jerarquía de cargos: los gerentes y los directores de investigación superan los 16.000 de mediana, mientras que técnicos de laboratorio, investigadores y representantes de ventas rondan los 2.500–3.000 (tabla siguiente). Para el negocio, lo relevante es que quienes se van ganan bastante menos (mediana de 3.202) que quienes se quedan (5.204).

Ingreso mensual por cargo
Cargo n Ingreso mediano Empleados con ingreso ≥ 18.000
Gerente 102 17454.5 43
Director Investigación 80 16510.0 26
Representante Salud 131 6811.0 0
Director Manofactura 145 6447.0 0
Ejecutivo Ventas 326 6231.0 0
Recursos Humanos 52 3093.0 0
Investigador Cientifico 292 2887.5 0
Tecnico Laboratorio 259 2886.0 0
Representante Ventas 83 2579.0 0

La media claramente superior a la mediana es consistente con una distribución asimétrica hacia valores altos, por lo que la mediana aporta una medida de posición especialmente útil.

Antigüedad en el cargo. Los empleados llevan de media 4,23 años en su puesto actual, pero la mitad lleva 3,00 años o menos. Hay personas recién incorporadas a su puesto (0 años) y otras que llevan hasta 18 años en el mismo cargo. En general, la permanencia en un mismo puesto es corta o moderada. Quienes abandonan la empresa llevan menos tiempo en su cargo (mediana de 2 años frente a 3). Esta variable permite estudiar si la consolidación en el cargo se asocia con una menor probabilidad de cambio.

Para la regresión, el ingreso se expresa en miles de unidades monetarias:

\[ Ingreso\_1000=\frac{Ingreso\ mensual}{1000}. \]

Este reescalamiento no modifica el ajuste, el valor p ni las probabilidades predichas; únicamente hace interpretable el coeficiente como el efecto asociado a 1.000 unidades monetarias adicionales.

Los histogramas aportan información adicional a las medidas resumen. La plantilla se concentra en edades intermedias: algo más de la mitad tiene entre 28 y 40 años y la edad más frecuente es 35. En cambio, los ingresos son muy desiguales. La mayoría de los empleados cobra menos de 5.000, con un grupo muy numeroso entre 2.000 y 3.000, mientras que una cúpula de apenas 69 gerentes y directores de investigación supera los 18.000. La antigüedad en el cargo tampoco sigue un patrón continuo. Se acumula en torno a los 2 años y de nuevo cerca de los 7, con pocos casos entre medias, lo que podría reflejar ciclos de promoción o reorganizaciones que los datos no permiten confirmar. Al cruzar estas tres dimensiones con la rotación aparece un perfil claro. Los empleados más propensos a irse son jóvenes, ocupan los puestos peor pagados y llevan poco tiempo en su cargo. Por ejemplo, se va más de un tercio de los menores de 25 años (39,2%) y casi 3 de cada 10 personas que acaban de asumir su puesto (29,9%), frente a en torno al 10 % entre quienes superan los 35 años (10,4%) y el 7,5% entre quienes llevan más de ocho años en su cargo (tablas siguientes). Para la empresa, la pérdida de talento se concentra en la base amplia de su estructura y en los primeros años de cada trayectoria, y ahí conviene orientar las acciones de retención.

Tasa de rotación por tramo de edad
Tramo n Tasa de rotación
Menos de 25 años 97 39,2%
25 a 35 años 632 19,3%
Más de 35 años 741 10,4%
Tasa de rotación por tramo de antigüedad en el cargo
Tramo n Tasa de rotación
0 años 244 29,9%
1 a 8 años 1052 14,4%
Más de 8 años 174 7,5%

3 Análisis bivariado

El análisis bivariado estudia cada predictor por separado mediante un modelo logístico:

\[ \operatorname{logit}(P_i)= \ln\left(\frac{P_i}{1-P_i}\right) =\beta_0+\beta_1X_i. \]

Para variables categóricas con más de dos niveles, R genera variables indicadoras respecto a una categoría de referencia. Las referencias fijadas son No para horas extra, Casado para estado civil y No viaja para viajes de negocios.

El signo de \(\beta\) informa de la dirección de la asociación en la escala logit. Para una interpretación más intuitiva se emplea

\[ OR=e^{\beta}. \]

Un \(OR>1\) implica mayores odds de rotación y un \(OR<1\) implica menores odds. El OR describe una razón de odds, no un incremento directo de la probabilidad.

3.1 Resultados de los modelos bivariados

variables_bivariadas <- c(
  "Horas_Extra", "Estado_Civil", "Viaje_de_Negocios",
  "Edad", "Ingreso_1000", "Antiguedad_Cargo"
)

modelos_bivariados <- setNames(
  purrr::map(
    variables_bivariadas,
    ~ glm(
      reformulate(.x, response = "Rotacion_num"),
      data = datos_modelo,
      family = binomial(link = "logit")
    )
  ),
  variables_bivariadas
)
Significancia global de los modelos bivariados
Variable Deviance_LR gl p_global
Horas_Extra 81.402 1 <0,001
Estado_Civil 44.000 2 <0,001
Viaje_de_Negocios 23.760 2 <0,001
Edad 39.519 1 <0,001
Ingreso_1000 45.487 1 <0,001
Antiguedad_Cargo 42.700 1 <0,001
Coeficientes de los modelos logísticos bivariados
Variable Termino Beta OR IC 95% OR p
Horas_Extra Horas_ExtraSi 1.3274 3.771 [2.83; 5.026] <0,001
Estado_Civil Estado_CivilDivorciado -0.2395 0.787 [0.514; 1.205] 0,271
Estado_Civil Estado_CivilSoltero 0.8772 2.404 [1.766; 3.273] <0,001
Viaje_de_Negocios Viaje_de_NegociosRaramente 0.7044 2.023 [1.095; 3.737] 0,025
Viaje_de_Negocios Viaje_de_NegociosFrecuentemente 1.3389 3.815 [1.992; 7.305] <0,001
Edad Edad -0.0523 0.949 [0.933; 0.965] <0,001
Ingreso_1000 Ingreso_1000 -0.1271 0.881 [0.844; 0.919] <0,001
Antiguedad_Cargo Antiguedad_Cargo -0.1463 0.864 [0.824; 0.906] <0,001

3.2 Pruebas inferenciales complementarias por tipo de variable

La regresión logística simple cuantifica la dirección y magnitud de la asociación, no obstante, se incorporan pruebas bivariadas específicas según el tipo de variable para complementar el análisis. Para las categóricas se utiliza chi-cuadrado de independencia y se informa V de Cramér como medida de intensidad de asociación. Para las cuantitativas se examina Shapiro–Wilk por grupo; dada la sensibilidad de esta prueba con muestras grandes y la asimetría observada, se adopta Mann–Whitney como contraste principal de localización y la t de Welch como análisis de respaldo.

# Categóricas
chisq.test(
  table(datos_modelo$Horas_Extra, datos_modelo$Rotacion),
  correct = FALSE
)

# Cuantitativas
shapiro.test(datos_modelo$Ingreso_Mensual[datos_modelo$Rotacion == "No"])
shapiro.test(datos_modelo$Ingreso_Mensual[datos_modelo$Rotacion == "Si"])
wilcox.test(Ingreso_Mensual ~ Rotacion, data = datos_modelo, exact = FALSE)
t.test(Ingreso_Mensual ~ Rotacion, data = datos_modelo, var.equal = FALSE)
Pruebas chi-cuadrado y V de Cramér
Variable Chi-cuadrado gl p Mín. frecuencia esperada V de Cramér
Horas Extra 89.044 1 <0,001 67.07 0.246
Estado Civil 46.164 2 <0,001 52.72 0.177
Viaje de Negocios 24.182 2 <0,001 24.18 0.128

Las pruebas chi-cuadrado confirman que Horas Extra, Estado Civil y Viaje de Negocios se asocian significativamente con la rotación (p < 0,001), con frecuencias esperadas mínimas superiores a 24 en todos los casos. Sin embargo, la magnitud de estas asociaciones es limitada: según la V de Cramér, Horas Extra muestra el efecto más relevante (V = 0,246), situado entre pequeño y mediano, mientras que Estado Civil (V = 0,177) y Viaje de Negocios (V = 0,128) presentan efectos pequeños. En términos prácticos, los empleados que realizan horas extra rotan casi tres veces más que el resto (30,5 % frente a 10,4 %), los solteros duplican la tasa de los casados y quienes viajan con frecuencia triplican la de quienes no viajan.

Shapiro-Wilk por variable cuantitativa y grupo de rotación
Variable Grupo W p
Edad No 0.9782 <0,001
Edad Si 0.9457 <0,001
Ingreso Mensual No 0.8341 <0,001
Ingreso Mensual Si 0.7799 <0,001
Antiguedad Cargo No 0.9067 <0,001
Antiguedad Cargo Si 0.8185 <0,001
Contrastes bivariados para variables cuantitativas
Variable Asimetria p Mann-Whitney t Welch gl Welch p Welch
Edad 0.413 <0,001 5.829 316.9 <0,001
Ingreso Mensual 1.370 <0,001 7.483 412.7 <0,001
Antiguedad Cargo 0.917 <0,001 6.847 366.6 <0,001

La prueba de Shapiro-Wilk rechazó la normalidad en todas las variables y grupos (p < 0,001), resultado esperable dado el tamaño muestral y la asimetría positiva observada, especialmente en el ingreso mensual (1,37). Por ello, las diferencias entre empleados que permanecen y los que abandonan la organización se evaluaron de forma paralela mediante la prueba t de Welch, que no asume igualdad de varianzas, y la prueba no paramétrica de Mann-Whitney. Ambas coincidieron en señalar diferencias significativas (p < 0,001) en las tres variables: los empleados que rotan son más jóvenes (mediana de 32 frente a 36 años), perciben menores ingresos (3.202 frente a 5.204) y acumulan menos antigüedad en su cargo (2 frente a 3 años). La magnitud de estas diferencias es de pequeña a moderada (d de Cohen entre 0,44 y 0,44; tabla siguiente), lo que indica una tendencia consistente pero con un solapamiento considerable entre ambos grupos.

Tamaño del efecto de las diferencias entre grupos
Variable d de Cohen (No rota − Sí rota)
Edad 0.438
Ingreso mensual 0.440
Antigüedad en el cargo 0.442

3.3 Lectura conjunta de los gráficos bivariados

El gráfico de tasas para las variables categóricas muestra diferencias de probabilidad observada, mientras que los OR de las regresiones posteriores cuantifican diferencias en odds. Ambas lecturas son complementarias. El gráfico compara la tasa de rotación de cada categoría con la media de la empresa (16,1 %), y deja ver con claridad qué grupos están por encima y cuáles por debajo. Tres grupos superan esa media. Los empleados que hacen horas extra rotan un 30,5 %, casi el doble de la media y el triple de quienes no las hacen (10,4 %). Los solteros llegan al 25,5 %, frente al 12,5 % de los casados y el 10,1 % de los divorciados. Quienes viajan por trabajo con frecuencia alcanzan el 24,9 %. En los viajes hay además un gradiente: la rotación crece a medida que aumenta la frecuencia de viaje (8,0 % sin viajes, 15,0 % con viajes ocasionales y 24,9 % con viajes frecuentes). Esto indica que la carga de desplazamientos está relacionada con la salida de forma progresiva. Tampoco son grupos pequeños: 416 empleados hacen horas extra, 470 son solteros y 277 viajan con frecuencia. Por eso el gráfico señala segmentos concretos y numerosos a los que dirigir las medidas de retención. Las horas extra son la palanca más clara, porque dependen directamente de decisiones de la empresa.

Asimismo, los diagramas de caja muestran que, en las tres variables, la distribución de quienes se van está desplazada hacia valores más bajos. En edad, la mitad central de quienes rotan está entre 28 y 39 años, frente a 31–43 de quienes permanecen. En ingreso la diferencia es mayor: el 50,2% de los empleados que se van cobra como máximo lo que gana el 25 % peor pagado de quienes se quedan. Además, la caja de quienes rotan termina en torno a 5.900, mientras que la de quienes permanecen llega a 8.800. La antigüedad en el cargo muestra el dato más llamativo: casi un tercio de quienes se van (30,8%) lo hace sin haber cumplido un año en su puesto, y por eso el cuartil inferior de ese grupo está en cero. Los valores atípicos también son informativos. Entre quienes permanecen, los sueldos por encima de 17.000 corresponden a la cúpula directiva. Entre quienes rotan, los pocos casos de ingreso alto, edad avanzada o larga antigüedad aparecen como atípicos, lo que confirma que la salida de perfiles senior es poco frecuente. Aun así, las cajas se solapan bastante. Estas variables marcan una tendencia, pero ninguna basta por sí sola para distinguir quién se irá.

3.4 Horas extra

La tasa observada de rotación es 10,4% entre quienes no realizan horas extra y 30,5% entre quienes sí las realizan. Por tanto, antes de introducir ningún ajuste multivariable ya se aprecia una diferencia sustantiva entre ambos grupos.

El modelo bivariado estima \(\beta=1,327\), que corresponde a un \(OR=3,77\) con IC95% [2,83, 5,03] y \(p\) < 0,001. En términos de odds, quienes realizan horas extra presentan 3,77 veces los odds de rotación de quienes no las realizan; esto equivale a unos odds aproximadamente 277,1% mayores. La dirección observada coincide con la hipótesis inicial y la asociación es estadísticamente significativa al 5%.

3.5 Estado civil

Las tasas descriptivas de rotación son 12,5% en casados, 10,1% en divorciados y 25,5% en solteros. La categoría con mayor tasa observada es, por tanto, Soltero.

Respecto a los casados, los solteros presentan un \(OR=2,40\), IC95% [1,77, 3,27], \(p\) < 0,001. La comparación Soltero vs Casado respalda la hipótesis planteada. Para divorciados frente a casados, el \(OR\) es 0,79 y el resultado es no estadísticamente significativo (\(p\) = 0,271).

Para una variable categórica con tres niveles conviene distinguir entre la significancia global del predictor y la significancia de cada contraste individual. El contraste de razón de verosimilitudes para Estado civil presenta \(p\) < 0,001. La tasa de divorciados es descriptivamente algo menor que la de casados, pero el intervalo de confianza de su OR incluye 1 y el contraste individual no es significativo; por tanto, los datos no permiten sostener una diferencia específica entre ambos grupos. El contraste Divorciado vs Casado no formaba parte de la hipótesis principal y no muestra diferencias significativas. La evidencia global del estado civil está impulsada principalmente por la mayor rotación observada en solteros.

3.6 Viajes de negocios

La tasa de rotación aumenta desde 8,0% entre quienes no viajan a 15,0% entre quienes viajan raramente y 24,9% entre quienes viajan frecuentemente. Este patrón descriptivo es coherente con la dirección planteada en la hipótesis.

Frente al grupo No viaja, viajar raramente presenta un \(OR=2,02\) (\(p\) = 0,025), mientras que viajar frecuentemente presenta un \(OR=3,81\) (\(p\) < 0,001). El contraste global de la variable tiene \(p\) < 0,001. La secuencia de tasas observadas y de OR es compatible con un gradiente de mayor rotación a medida que aumenta la frecuencia de viajes. Aun así, la categoría No viaja es la menos numerosa, lo que se refleja en una incertidumbre relativamente amplia de los OR; el resultado de Raramente es estadísticamente más limítrofe que el de Frecuentemente.

3.7 Edad

Los empleados sin rotación presentan una edad media de 37,56 años (mediana 36,0), frente a 33,61 años (mediana 32,0) entre quienes rotan. La diferencia descriptiva es de 3,95 años.

El modelo bivariado estima \(\beta=-0,0523\) y \(OR=0,949\) por cada año adicional (\(p\) < 0,001). Como el OR es inferior a 1, cada año adicional se asocia con una reducción aproximada de 5,1% en los odds de rotación. Para apreciar un cambio temporal más interpretable, cinco años adicionales corresponden a \(OR^5=0,770\), es decir, una reducción acumulada aproximada de 23,0% en los odds, siempre bajo el supuesto de linealidad del logit.

3.8 Ingreso mensual

El ingreso medio es 6.832,74 entre empleados sin rotación y 4.787,09 entre quienes rotan; las medianas son 5.204,00 y 3.202,00, respectivamente. La diferencia entre media y mediana aconseja no interpretar únicamente el promedio.

El predictor se expresa por cada 1.000 unidades monetarias. El modelo bivariado produce \(OR=0,881\) por cada 1.000 unidades adicionales (\(p\) < 0,001). Esto supone una reducción aproximada de 11,9% en los odds por cada 1.000 unidades. La dirección negativa coincide con la hipótesis inicial.

3.9 Antigüedad en el cargo

La antigüedad media es 4,48 años entre quienes no rotan y 2,90 entre quienes rotan (medianas de 3 y 2 años, respectivamente). El modelo bivariado estima un \(OR=0,864\) por cada año adicional (\(p\) < 0,001). Esto representa una reducción aproximada de 13,6% en los odds de rotación por año adicional. Este resultado debe leerse como una tendencia media, ya que la distribución de la antigüedad en el cargo es irregular y es poco probable que el efecto de un año adicional sea idéntico en todo su rango.

3.10 Contraste conjunto de las hipótesis bivariadas

Contraste entre hipótesis a priori y resultados bivariados
Efecto Dirección esperada Beta OR p Coincide con hipótesis Significativo (5%)
Horas extra: Sí vs No Positiva 1.3274 3.771 <0,001 Sí Sí
Estado civil: Soltero vs Casado Positiva 0.8772 2.404 <0,001 Sí Sí
Viaje: Raramente vs No viaja Positiva 0.7044 2.023 0,025 Sí Sí
Viaje: Frecuentemente vs No viaja Positiva 1.3389 3.815 <0,001 Sí Sí
Edad (por 1 año) Negativa -0.0523 0.949 <0,001 Sí Sí
Ingreso mensual (por 1.000 unidades) Negativa -0.1271 0.881 <0,001 Sí Sí
Antigüedad en cargo (por 1 año) Negativa -0.1463 0.864 <0,001 Sí Sí

Con base en lo anterior, los modelos logísticos bivariados confirmaron la dirección esperada en los siete contrastes principales. Realizar horas extra se asocia con unos odds de rotación 3,8 veces mayores (IC 95 %: 2,83–5,03), lo que en términos de tasas observadas supone pasar del 10,4 % al 30,5 %. Los empleados solteros presentan unos odds 2,4 veces superiores a los de los casados (IC 95 %: 1,77–3,27), mientras que los divorciados, cuyo contraste no formaba parte de la hipótesis principal, no difieren significativamente de estos (OR = 0,79; p = 0,271). La frecuencia de viajes muestra un gradiente creciente respecto a quienes no viajan, con una asociación más limítrofe para los viajes ocasionales (OR = 2,02; IC 95 %: 1,10–3,74; p = 0,025) y más intensa para los frecuentes (OR = 3,81; IC 95 %: 1,99–7,31; p < 0,001). Por su parte, la edad, el ingreso y la antigüedad en el cargo se asocian negativamente con la rotación: cada año adicional de edad se asocia con una reducción del 5,1 % en los odds, cada 1.000 unidades de ingreso mensual con una del 11,9 % y cada año en el cargo con una del 13,6 %.

Los modelos bivariados permiten identificar asociaciones simples, pero sus estimaciones pueden estar afectadas por confusión, ya que parte del efecto atribuido a una variable puede deberse a otras características del empleado relacionadas con ella; por ejemplo, la edad, el ingreso y la antigüedad tienden a aumentar de forma conjunta. Por este motivo, el siguiente paso consiste en estimar un modelo logístico multivariable que incluya simultáneamente las seis covariables, de modo que el efecto de cada una se evalúe manteniendo constantes las demás. Conviene señalar que este ajuste solo controla la confusión atribuible a las variables incluidas en el modelo.

4 Modelo de regresión logística multivariable

El modelo ajustado es

\[ \begin{aligned} \operatorname{logit}(P_i)= {} & \beta_0 +\beta_1(\text{Horas extra}) +\beta_2(\text{Estado civil})\\ &+\beta_3(\text{Viajes}) +\beta_4(\text{Edad}) +\beta_5(\text{Ingreso/1000}) +\beta_6(\text{Antigüedad}). \end{aligned} \]

Estado civil y viajes de negocios se representan mediante dos variables indicadoras cada uno, respecto a sus categorías de referencia, por lo que el modelo estima ocho coeficientes además del intercepto. En este contexto, cada coeficiente representa una asociación ajustada: su interpretación se realiza manteniendo constantes las demás covariables incluidas en el modelo.

4.1 Estimación del modelo

formula_final <- Rotacion_num ~ Horas_Extra + Estado_Civil +
  Viaje_de_Negocios + Edad + Ingreso_1000 + Antiguedad_Cargo

modelo_final <- glm(
  formula_final,
  data = datos_modelo,
  family = binomial(link = "logit")
)

summary(modelo_final)

A continuación se incluye también la salida estándar de summary() para que puedan comprobarse directamente los coeficientes estimados, errores estándar, estadísticos z y valores p.

summary(modelo_final)
#> 
#> Call:
#> glm(formula = formula_final, family = binomial(link = "logit"), 
#>     data = datos_modelo)
#> 
#> Coefficients:
#>                                 Estimate Std. Error z value
#> (Intercept)                     -1.42588    0.46053  -3.096
#> Horas_ExtraSi                    1.45119    0.15820   9.173
#> Estado_CivilDivorciado          -0.29127    0.22947  -1.269
#> Estado_CivilSoltero              0.79351    0.17136   4.631
#> Viaje_de_NegociosRaramente       0.67004    0.33058   2.027
#> Viaje_de_NegociosFrecuentemente  1.32461    0.35296   3.753
#> Edad                            -0.02885    0.01009  -2.860
#> Ingreso_1000                    -0.06808    0.02518  -2.703
#> Antiguedad_Cargo                -0.10412    0.02731  -3.812
#>                                             Pr(>|z|)    
#> (Intercept)                                 0.001961 ** 
#> Horas_ExtraSi                   < 0.0000000000000002 ***
#> Estado_CivilDivorciado                      0.204340    
#> Estado_CivilSoltero                       0.00000364 ***
#> Viaje_de_NegociosRaramente                  0.042676 *  
#> Viaje_de_NegociosFrecuentemente             0.000175 ***
#> Edad                                        0.004232 ** 
#> Ingreso_1000                                0.006870 ** 
#> Antiguedad_Cargo                            0.000138 ***
#> ---
#> 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: 1082.4  on 1461  degrees of freedom
#> AIC: 1100.4
#> 
#> Number of Fisher Scoring iterations: 5
Modelo logístico multivariable: coeficientes, odds ratios e IC95%
Efecto Beta Error estándar OR IC 95% OR p Significativo (5%)
Horas extra: Sí vs No 1.4512 0.1582 4.268 [3.13; 5.82] <0,001 Sí
Estado civil: Divorciado vs Casado -0.2913 0.2295 0.747 [0.477; 1.172] 0,204 No
Estado civil: Soltero vs Casado 0.7935 0.1714 2.211 [1.58; 3.094] <0,001 Sí
Viaje: Raramente vs No viaja 0.6700 0.3306 1.954 [1.022; 3.736] 0,043 Sí
Viaje: Frecuentemente vs No viaja 1.3246 0.3530 3.761 [1.883; 7.511] <0,001 Sí
Edad (por 1 año) -0.0289 0.0101 0.972 [0.953; 0.991] 0,004 Sí
Ingreso mensual (por 1.000 unidades) -0.0681 0.0252 0.934 [0.889; 0.981] 0,007 Sí
Antigüedad en el cargo (por 1 año) -0.1041 0.0273 0.901 [0.854; 0.951] <0,001 Sí
Significancia global ajustada de cada predictor (contrastes de razón de verosimilitudes)
Variable gl LRT p
Horas_Extra 1 85.412 <0,001
Estado_Civil 2 32.841 <0,001
Viaje_de_Negocios 2 20.181 <0,001
Edad 1 8.554 0,003
Ingreso_1000 1 7.906 0,005
Antiguedad_Cargo 1 15.569 <0,001

La tabla de coeficientes responde a la significancia de cada parámetro o contraste respecto a su categoría de referencia. La tabla global complementaria es especialmente importante para Estado civil y Viajes de negocios, porque estos factores ocupan más de un parámetro: permite contrastar si retirar el factor completo deterioraría significativamente el ajuste del modelo. El intercepto se mantiene en la salida de summary(), pero no se interpreta sustantivamente. Representaría el logit para las categorías de referencia cuando edad, ingreso y antigüedad fueran cero; esa combinación no constituye un perfil laboral de interés dentro del dominio observado.

Los contrastes de razón de verosimilitudes evalúan la contribución global de cada predictor comparando el modelo completo con el modelo que lo excluye. Los seis predictores resultan significativos una vez controlados los restantes (p ≤ 0,005 en todos los casos). En el caso del estado civil, el contraste global es significativo (LRT = 32,84; gl = 2; p < 0,001) aunque la comparación entre divorciados y casados no lo sea, lo que indica que su aportación se debe esencialmente a la diferencia entre solteros y casados. Algo similar ocurre con los viajes de negocio (LRT = 20,18; gl = 2; p < 0,001), cuya contribución descansa sobre todo en el contraste de viajes frecuentes. Además, la magnitud del estadístico permite comparar predictores medidos en escalas distintas: las horas extra (LRT = 85,41) son, con diferencia, la variable que más información aporta al modelo, seguida del estado civil, los viajes y la antigüedad en el cargo (LRT = 15,57), mientras que la edad (LRT = 8,55) y el ingreso (LRT = 7,91) realizan contribuciones menores.

La Figura anterior resume los OR ajustados y sus intervalos de confianza al 95 % en escala logarítmica. Es decir, muestra, para cada característica, cómo cambia la propensión a abandonar la empresa una vez tenidas en cuenta todas las demás. Cada punto es el efecto estimado y la línea horizontal que lo acompaña indica el margen de incertidumbre de esa estimación. La línea vertical discontinua, situada en el valor 1, marca el punto en que una característica no tiene relación con la rotación: los puntos a su derecha indican mayor propensión a irse y los de su izquierda, menor.

Cuando la línea horizontal de un efecto no toca la línea vertical, la relación es estadísticamente significativa; cuando la atraviesa, los datos no permiten afirmar que exista. Leído así, el gráfico muestra que hacer horas extra es el factor más asociado con la rotación: multiplica por algo más de 4 los odds de irse. Le siguen viajar con frecuencia y estar soltero. Viajar solo de vez en cuando también se asocia con más rotación, pero su línea casi toca el 1, por lo que esa evidencia es débil. Estar divorciado es el único caso cuya línea cruza el 1, de modo que no se diferencia de estar casado.

Por último, la edad, el ingreso y la antigüedad en el cargo aparecen a la izquierda y muy pegados al 1, pero no porque importen poco, sino porque el efecto está medido por cada año o por cada 1.000 unidades de salario. Acumulado, su peso es notable: diez años más de edad se asocian con una reducción de los odds de rotación en torno al 25 %, 5.000 unidades más de salario en torno al 29 % y cinco años más en el cargo en torno al 41 %.

4.2 Interpretación de los coeficientes ajustados

Horas extra. El coeficiente ajustado es \(\beta=1,451\) y el OR es 4,27 (IC95% [3,13, 5,82], \(p\) < 0,001). Manteniendo constantes estado civil, viajes, edad, ingreso y antigüedad, quienes realizan horas extra presentan 4,27 veces los odds de rotación de quienes no las realizan. En términos relativos, los odds son aproximadamente 326,8% mayores. El efecto permanece estadísticamente significativo después del ajuste, de modo que la asociación bivariada no desaparece al controlar por las otras covariables.

Estado civil. Los solteros presentan un OR ajustado de 2,21 frente a los casados (IC95% [1,58, 3,09], \(p\) < 0,001). Por tanto, el contraste Soltero vs Casado es estadísticamente significativo. Para divorciados frente a casados, el OR es 0,75 (\(p\) = 0,204), por lo que este contraste es no estadísticamente significativo. Esta diferencia ilustra por qué una variable categórica con varios niveles debe interpretarse contraste por contraste y no mediante una única cifra. En particular, un OR inferior a 1 para divorciados no debe presentarse como un “efecto protector”, porque su IC95% incluye 1 y la evidencia estadística es insuficiente para distinguirlo de los casados.

Viajes de negocios. Frente a quienes no viajan, viajar raramente presenta un OR ajustado de 1,95 (IC95% [1,02, 3,74], \(p\) = 0,043), mientras que viajar frecuentemente presenta un OR de 3,76 (IC95% [1,88, 7,51], \(p\) < 0,001). El IC95% del contraste Raramente vs No viaja queda próximo a 1 y su valor p es cercano a 0,05, por lo que su evidencia es más débil; en cambio, el contraste de viajes frecuentes es más claro, aunque su intervalo también es amplio debido al menor tamaño del grupo de referencia.

Edad. El OR ajustado por cada año adicional es 0,972 (IC95% [0,953, 0,991], \(p\) = 0,004). Cada año adicional se asocia con una reducción aproximada de 2,8% en los odds. En un intervalo de cinco años, el OR acumulado sería 0,866, lo que ayuda a apreciar que efectos pequeños por unidad pueden adquirir una magnitud relevante a lo largo de varias unidades.

Ingreso mensual. Al estar expresado en miles, el OR de 0,934 corresponde a 1.000 unidades monetarias adicionales (IC95% [0,889, 0,981], \(p\) = 0,007). Esto equivale a una reducción aproximada de 6,6% en los odds por cada 1.000 unidades, manteniendo el resto constante.

Antigüedad en el cargo. El OR ajustado por año es 0,901 (IC95% [0,854, 0,951], \(p\) < 0,001). Cada año adicional de antigüedad se asocia con una reducción aproximada de 9,9% en los odds de rotación, después de controlar por las restantes variables.

Es importante evitar dos errores de interpretación. Primero, un cambio en los odds no equivale a un cambio de la misma magnitud en la probabilidad: en horas extra, unos odds un 327 % mayores se traducen en una probabilidad media predicha que pasa del 10,6% al 30,1% (sección 4.5). Segundo, no conviene ordenar mecánicamente la “importancia” de predictores cuantitativos y categóricos comparando sus OR, porque se encuentran en escalas distintas. La magnitud debe interpretarse en función de la unidad concreta de cada variable y del contexto empresarial.

4.3 Comparación entre efectos bivariados y ajustados

La comparación entre modelos simples y el modelo conjunto permite valorar cuánto cambia cada asociación al controlar por las demás características. Horas extra pasa de un OR bivariado de 3,77 a un OR ajustado de 4,27: la asociación, lejos de atenuarse, se mantiene e incluso aumenta ligeramente. Viajes frecuentes cambia de 3,81 a 3,76, por lo que su magnitud es muy estable ante el ajuste. Viajar raramente se mantiene prácticamente igual (de 2,02 a 1,95), aunque su evidencia sigue siendo la más débil (\(p\) = 0,043). Soltero vs Casado se atenúa de 2,40 a 2,21, aunque conserva una asociación positiva y significativa.

La atenuación es más visible en los predictores cuantitativos. La edad pasa de un OR de 0,949 a 0,972 por año; el ingreso, de 0,881 a 0,934 por cada 1.000 unidades; y la antigüedad, de 0,864 a 0,901 por año. El signo negativo se conserva en los tres casos, pero el tamaño del efecto disminuye después del ajuste. Esto es compatible con que edad, ingreso y antigüedad compartan parte de la información asociada con la permanencia laboral.

Este contraste es importante porque la magnitud de una asociación simple no garantiza que se conserve al considerar simultáneamente las demás características: en este caso, las variables categóricas mantienen su efecto, mientras que las cuantitativas lo reducen de forma apreciable. El modelo multivariable responde a una pregunta distinta: cuál es la asociación de cada variable condicionada al resto de covariables incluidas.

4.4 Diagnósticos de multicolinealidad

cor(
  datos_modelo %>% select(Edad, Ingreso_1000, Antiguedad_Cargo),
  method = "spearman"
)

car::vif(modelo_final)
Correlaciones de Spearman entre predictores cuantitativos
Variable_1 Variable_2 Rho_Spearman
Antiguedad Cargo Edad 0.198
Edad Ingreso 1000 0.472
Antiguedad Cargo Ingreso 1000 0.395
Diagnóstico de multicolinealidad mediante GVIF
Variable GVIF gl GVIF^(1/(2·gl))
Horas Extra 1.030 1 1.015
Estado Civil 1.029 2 1.007
Viaje de Negocios 1.013 2 1.003
Edad 1.267 1 1.125
Ingreso 1000 1.333 1 1.155
Antiguedad Cargo 1.103 1 1.050

Para verificar que la estimación conjunta no se ve afectada por redundancia entre predictores, se examinaron las correlaciones de Spearman entre las variables cuantitativas y el factor de inflación de la varianza generalizado (GVIF). Las correlaciones son positivas y de intensidad moderada o baja: la más alta es la de la edad con el ingreso (ρ = 0,47), seguida de la antigüedad en el cargo con el ingreso (ρ = 0,40) y con la edad (ρ = 0,20). En coherencia con ello, los valores de GVIF^(1/(2·gl)), que permiten comparar predictores con distinto número de grados de libertad, se sitúan entre 1,00 y 1,16 para todos los predictores, muy próximos al mínimo teórico de 1, lo que indica que la relación entre variables apenas incrementa la incertidumbre de los coeficientes. Por tanto, no se identifica un problema relevante de multicolinealidad que impida interpretar el modelo.

Este resultado es compatible con la atenuación observada en la sección anterior. Una correlación moderada no basta para generar problemas de multicolinealidad, pero sí para que parte de la asociación simple de una variable se deba a otra relacionada con ella. Así, el coeficiente de la edad pasa de \(\beta=-0,052\) en el modelo bivariado a \(\beta=-0,032\) al incorporar únicamente el ingreso, y a \(\beta=-0,029\) en el modelo completo, lo que indica que una parte de la menor rotación de los empleados de más edad se explica por sus mayores ingresos.

4.5 Probabilidades estandarizadas para facilitar la interpretación

Los OR son la medida natural de la regresión logística, pero su escala resulta poco intuitiva para la toma de decisiones. Como complemento, se calculan probabilidades medias predichas estandarizadas, para cada empleado se mantienen sus características observadas y se fija, para toda la muestra, un nivel concreto de la variable de interés; después se promedian las probabilidades resultantes. El cálculo se centra en las horas extra y los viajes de negocio porque, a diferencia del estado civil, la edad o la antigüedad, son condiciones de trabajo sobre las que la organización puede intervenir directamente.

Probabilidades medias predichas estandarizadas
Escenario Probabilidad media predicha
Horas extra = No 10,6%
Horas extra = Sí 30,1%
Viajes = No viaja 9,0%
Viajes = Raramente 15,1%
Viajes = Frecuentemente 23,5%

Al estandarizar el resto de covariables, la probabilidad media predicha de rotación es del 10,6 % cuando se fija Horas extra = No y del 30,1 % cuando se fija Horas extra = Sí, una diferencia del orden de 19,5 puntos porcentuales. Conviene notar que la probabilidad se multiplica aproximadamente por 2,8, bastante menos de lo que sugiere su OR de 4,27, lo que ilustra por qué los odds ratios no deben leerse como cocientes de probabilidades. En el caso de los viajes, la probabilidad aumenta de forma escalonada: 9,0 % sin viajes, 15,1 % con viajes ocasionales y 23,5 % con viajes frecuentes. En ambas variables, estas probabilidades ajustadas son muy similares a las tasas observadas sin ajustar (10,4 % frente a 30,5 % en horas extra y 8,0 % frente a 24,9 % en viajes), lo que confirma que sus asociaciones apenas se explican por las demás características consideradas. Estas cifras traducen el modelo a una escala de probabilidad comprensible, pero no son efectos causales, ya que proceden de un modelo observacional y pueden reflejar confusión residual.

4.6 Ajuste global del modelo

Indicadores globales de ajuste
n AIC Deviance_nula Deviance_residual Reduccion_deviance p_LR_modelo R2_McFadden
1470 1100.376 1298.583 1082.376 216.207 <0,001 0.166

La deviance disminuye desde 1.298,58 en el modelo nulo hasta 1.082,38 en el modelo con covariables, una reducción de 216,21 unidades. El contraste de razón de verosimilitudes del modelo completo (\(\chi^2\) = 216,21; gl = 8; \(p\) < 0,001) indica que el conjunto de predictores mejora significativamente el ajuste frente al modelo que solo contiene intercepto.

El pseudo-\(R^2\) de McFadden es 0,166, lo que significa que los predictores reducen en un 16,6% la deviance del modelo nulo. Su valor indica una mejora modesta, coherente con que la rotación depende también de factores no incluidos en el modelo, como el clima del equipo, las oportunidades externas o las circunstancias personales; aun así, esto es compatible con que cada predictor mantenga una asociación clara y significativa. No debe interpretarse como el porcentaje de varianza explicada de una regresión lineal.

El AIC (1.100,38) se incluye como referencia para comparar este modelo con especificaciones alternativas estimadas sobre la misma muestra y la misma respuesta, ya que por sí solo no tiene una interpretación absoluta.

5 Evaluación del poder predictivo: ROC y AUC

La inferencia sobre los coeficientes anteriores se realizó con toda la muestra, mientras que la capacidad predictiva se evalúa en observaciones no utilizadas para entrenar el modelo. Se construye una partición estratificada 70/30, preservando aproximadamente la prevalencia de rotación en ambos subconjuntos. La semilla set.seed(123) garantiza reproducibilidad.

5.1 Código de evaluación

set.seed(123)

indices_por_clase <- split(
  seq_len(nrow(datos_modelo)),
  datos_modelo$Rotacion_num
)

indices_train <- unlist(lapply(indices_por_clase, function(idx) {
  sample(idx, size = floor(0.70 * length(idx)), replace = FALSE)
}))

train <- datos_modelo[sort(indices_train), , drop = FALSE]
test  <- datos_modelo[-sort(indices_train), , drop = FALSE]

modelo_train <- glm(
  formula_final,
  data = train,
  family = binomial(link = "logit")
)

prob_train <- predict(modelo_train, newdata = train, type = "response")
prob_test  <- predict(modelo_train, newdata = test, type = "response")

roc_train <- pROC::roc(
  response = train$Rotacion_num,
  predictor = prob_train,
  levels = c(0, 1),
  direction = "<"
)

roc_test <- pROC::roc(
  response = test$Rotacion_num,
  predictor = prob_test,
  levels = c(0, 1),
  direction = "<"
)

auc_test <- as.numeric(pROC::auc(roc_test))
pROC::ci.auc(roc_test)

El conjunto de entrenamiento contiene 1028 empleados y el conjunto de prueba 442. La prevalencia de rotación es 16,1% en entrenamiento y 16,3% en prueba, lo que confirma que la estratificación mantiene una distribución similar de la respuesta.

El AUC obtenido en el conjunto de prueba es 0,751, con IC95% [0,686, 0,816]. Una interpretación especialmente útil del AUC es la siguiente: si se selecciona aleatoriamente un empleado que rota y otro que no rota, el modelo asignará una probabilidad de riesgo mayor al empleado que rota en aproximadamente 75,1% de esas parejas.

Como el intervalo de confianza se sitúa completamente por encima de 0,5, valor que correspondería a una clasificación al azar (línea diagonal), el modelo tiene una capacidad real para distinguir entre ambos grupos, aunque de magnitud moderada, en coherencia con el pseudo-R² obtenido.

La amplitud del IC95% refleja la incertidumbre asociada a una muestra de prueba finita: el rendimiento poblacional compatible con los datos abarca un rango apreciable. La forma de la curva permite además valorar el coste de usar el modelo en la práctica: por ejemplo, con el umbral de Youden (sección 6) el modelo identifica al 61,1% de los empleados que rotan a costa de señalar también como casos de riesgo al 20,0% de quienes permanecen.

El uso de un único hold-out 70/30 es apropiado para este ejercicio y evita evaluar el modelo sobre las mismas observaciones utilizadas para entrenarlo. Sin embargo, el resultado depende parcialmente de la partición aleatoria. Por ello, los apartados siguientes complementan esta evaluación con validación cruzada repetida y con un análisis explícito de calibración.

Conviene señalar que el AUC resume la capacidad de ordenar a los empleados según su riesgo, pero no indica si las probabilidades predichas son precisas ni cuál es el umbral de decisión más adecuado, que dependerá del coste relativo que la organización asigne a no detectar una salida frente a intervenir innecesariamente.

5.2 Validación cruzada repetida

El hold-out 70/30 proporciona una evaluación independiente, pero depende de una sola partición. Como análisis de estabilidad se añade una validación cruzada estratificada de 10 particiones repetida 20 veces.

cv_auc <- validacion_cruzada_auc(
  datos_modelo,
  formula_final,
  k = 10,
  repeticiones = 20,
  seed = 2026
)

resumen_cv
AUC en validación cruzada estratificada repetida
AUC_media AUC_DE AUC_mediana AUC_Q1 AUC_Q3
0.767 0.058 0.769 0.723 0.808

El AUC medio en los 200 ajustes de validación cruzada es 0,767 con desviación estándar 0,058. Esta validación cruzada se presenta como análisis complementario de estabilidad sobre la base completa y no se utiliza para seleccionar variables ni ajustar el punto de corte. Su proximidad al AUC del hold-out (0,751) indica que el rendimiento observado en test no depende exclusivamente de una partición excepcionalmente favorable o desfavorable.

5.3 Calibración de las probabilidades

La discriminación responde a si el modelo ordena correctamente empleados de mayor y menor riesgo. La calibración responde a otra pregunta: si una probabilidad predicha de, por ejemplo, 30% se corresponde aproximadamente con una frecuencia observada del 30%.

brier_test <- mean((test$Rotacion_num - prob_test)^2)

modelo_calibracion <- glm(
  test$Rotacion_num ~ qlogis(pmin(pmax(prob_test, 1e-6), 1 - 1e-6)),
  family = binomial("logit")
)

coef(modelo_calibracion)
Diagnósticos de calibración en test
Indicador Valor
Brier score del modelo 0.1186
Brier score modelo nulo 0.1364
Intercepto de calibración -0.3030
Pendiente de calibración 0.7695
Hosmer-Lemeshow p 0.0095

La pendiente de calibración es 0,77. Al ser inferior a 1, sugiere que las probabilidades tienden a ser algo demasiado extremas: los riesgos altos se sobreseparan de los bajos. El contraste de Hosmer–Lemeshow produce \(p\) < 0,01: existe evidencia de discrepancia entre probabilidades predichas y frecuencias observadas en los grupos de riesgo.

Por su parte, el Brier score del modelo (0,119) es un 13,0% inferior al del modelo nulo (0,136), que asigna a todos los empleados la prevalencia media; las probabilidades del modelo aportan, por tanto, información útil respecto a esa referencia.

Hosmer–Lemeshow es sensible a la forma de agrupar y no debe usarse como único criterio. La lectura conjunta de la curva de calibración, la pendiente y el Brier score es más informativa. En este ejercicio, el modelo puede emplearse con mayor confianza para priorizar riesgos relativos que para interpretar cada porcentaje como una frecuencia futura exacta.

6 Umbral de decisión y métricas de clasificación

La curva ROC evalúa el ranking de probabilidades, pero una estrategia operativa requiere decidir a partir de qué probabilidad un empleado será marcado para intervención. Debido al desbalance de la respuesta, el corte 0,50 no debe asumirse automáticamente como óptimo.

6.1 Análisis de sensibilidad del punto de corte

En lugar de comparar únicamente tres valores aislados, se recorre el intervalo completo de umbrales entre 0,01 y 0,99. El gráfico se calcula sobre entrenamiento, de modo que la elección operativa no se optimice a partir del conjunto de prueba.

cortes_barrido <- seq(0.01, 0.99, by = 0.01)

barrido_umbral_train <- purrr::map_dfr(
  cortes_barrido,
  ~ metricas_clasificacion(
      train$Rotacion_num,
      prob_train,
      .x,
      "Barrido"
    )
)

Entre 0,15 y 0,25, la exactitud balanceada en entrenamiento se mueve entre 0,721 y 0,731. La existencia de una zona relativamente plana indica que, dentro de ese intervalo, pequeñas variaciones del umbral no producen cambios drásticos en el equilibrio global entre sensibilidad y especificidad. En ese contexto, la estadística no determina por sí sola una única frontera: la capacidad de intervención de RR. HH. y el coste relativo de falsos negativos y falsos positivos pasan a ser parte explícita de la decisión. En umbrales altos, especialmente cuando quedan muy pocos empleados clasificados como positivos, métricas como la precisión pueden fluctuar de forma marcada y no conviene sobreinterpretar pequeñas diferencias entre cortes vecinos.

6.2 Código para comparar puntos de corte

# Corte convencional
metricas_050 <- metricas_clasificacion(
  test$Rotacion_num, prob_test, 0.50, "Corte 0,50"
)

# Corte operativo orientado a aumentar sensibilidad
metricas_020 <- metricas_clasificacion(
  test$Rotacion_num, prob_test, 0.20, "Corte operativo 0,20"
)

# Alternativa intermedia
metricas_025 <- metricas_clasificacion(
  test$Rotacion_num, prob_test, 0.25, "Corte 0,25"
)

# Corte que maximiza sensibilidad + especificidad - 1.
# Se selecciona en TRAIN y después se evalúa en TEST, evitando optimizar el
# mismo conjunto usado para informar el rendimiento final.
youden_df <- as.data.frame(
  pROC::coords(
    roc_train,
    x = "best",
    best.method = "youden",
    ret = c("threshold", "sensitivity", "specificity"),
    transpose = FALSE
  )
)
umbral_youden <- as.numeric(youden_df$threshold[1])

metricas_youden <- metricas_clasificacion(
  test$Rotacion_num,
  prob_test,
  umbral_youden,
  "Índice de Youden"
)
Desempeño en test para distintos puntos de corte
Estrategia Corte TP FP TN FN Sensibilidad Especificidad Precision Exactitud F1 Exactitud_balanceada Tasa_marcados
Corte 0,50 0.500 9 10 360 63 0.125 0.973 0.474 0.835 0.198 0.549 0.043
Corte operativo 0,20 0.200 45 88 282 27 0.625 0.762 0.338 0.740 0.439 0.694 0.301
Corte 0,25 0.250 40 58 312 32 0.556 0.843 0.408 0.796 0.471 0.699 0.222
Índice de Youden 0.217 44 74 296 28 0.611 0.800 0.373 0.769 0.463 0.706 0.267

Con el corte 0,50, la sensibilidad es 12,5% y la especificidad 97,3%. El modelo detecta solo 9 de los 72 empleados con rotación del conjunto de prueba y deja escapar 63 falsos negativos. Su exactitud es 83,5%, prácticamente igual a la exactitud de 83,7% que se obtendría clasificando a todos como No rota. Este resultado demuestra por qué una exactitud alta puede ser engañosa cuando la clase positiva es minoritaria: el corte 0,50 ofrece una especificidad excelente, pero una capacidad muy pobre para identificar el evento que interesa prevenir.

Al reducir el umbral a 0,20, la sensibilidad aumenta hasta 62,5% y la especificidad desciende a 76,2%. Frente a 0,50 se recuperan 36 verdaderos positivos adicionales, a costa de 78 falsos positivos adicionales. La precisión queda en 33,8%: aproximadamente uno de cada 3,0 empleados señalados por la regla presenta rotación en test. El F1 (0,439) y la exactitud balanceada (0,694) muestran que la ganancia de sensibilidad produce una clasificación más útil para una política preventiva, aunque con mayor carga de intervenciones.

Con el corte 0,20, el modelo marca para intervención a 133 de 442 empleados (30,1%) y detecta 62,5% de los casos que rotan. Con 0,25, la fracción marcada desciende a 22,2% y la sensibilidad a 55,6%. Esta comparación cuantifica la carga operativa: elevar el corte reduce intervenciones, pero también deja sin detectar una mayor proporción de casos positivos.

El índice de Youden se selecciona en el conjunto de entrenamiento y se aplica después al conjunto de prueba, evitando elegir el corte con los mismos datos utilizados para informar su desempeño. Su umbral es 0,217, con sensibilidad 61,1%, especificidad 80,0%, F1 0,463 y exactitud balanceada 0,706. Este punto sirve como referencia estadística de equilibrio, pero no incorpora el coste relativo de falsos negativos y falsos positivos.

Para esta actividad se adopta 0,20 como umbral operativo porque el objetivo de negocio prioriza no dejar sin detectar empleados con riesgo relevante cuando la intervención es de baja intensidad —por ejemplo, conversación de seguimiento, revisión de carga o evaluación de expectativas—. Esta elección debe leerse como una decisión de utilidad y costes, no como el umbral que maximiza todas las métricas. Si el coste de intervenir fuera alto o la capacidad de RR. HH. limitada, un corte más próximo al de Youden podría ser preferible. El umbral debe revisarse si cambian la prevalencia, los costes o la capacidad operativa.

7 Predicción para un empleado hipotético

Se plantean dos perfiles. El primero combina varios factores asociados con mayor riesgo y permite comprobar el cálculo completo de logit → odds → probabilidad. El segundo se sitúa cerca de la zona de decisión y permite mostrar por qué el punto de corte importa operativamente.

7.1 Código de predicción

empleado_hipotetico <- tibble(
  Horas_Extra = factor("Si", levels = levels(datos_modelo$Horas_Extra)),
  Estado_Civil = factor("Soltero", levels = levels(datos_modelo$Estado_Civil)),
  Viaje_de_Negocios = factor(
    "Frecuentemente",
    levels = levels(datos_modelo$Viaje_de_Negocios)
  ),
  Edad = 30,
  Ingreso_1000 = 3,
  Antiguedad_Cargo = 1
)

# Predictor lineal o logit
eta_empleado <- predict(
  modelo_final,
  newdata = empleado_hipotetico,
  type = "link"
)

# Odds y probabilidad
odds_empleado <- exp(eta_empleado)
prob_empleado <- predict(
  modelo_final,
  newdata = empleado_hipotetico,
  type = "response"
)

umbral_intervencion <- 0.20

decision_empleado <- ifelse(
  prob_empleado >= umbral_intervencion,
  "Intervenir preventivamente",
  "No priorizar intervención"
)
Predicción para el empleado hipotético
Edad Horas_Extra Estado_Civil Viaje_de_Negocios Ingreso_Mensual Antiguedad_Cargo Logit Odds Probabilidad_Rotacion Umbral_Intervencion Decision
30 Si Soltero Frecuentemente 3000 1 0.9695 2.6365 0.725 0.2 Intervenir preventivamente

Una vez evaluada la especificación mediante el hold-out, la predicción ilustrativa se obtiene con modelo_final, reestimado sobre la muestra completa para aprovechar toda la información disponible en los coeficientes finales. El modelo produce un predictor lineal (logit) de 0,969. Al exponenciarlo se obtienen unos odds de 2,637: en este perfil, los odds del evento son 2,64 veces los del no-evento. La transformación logística \(p=odds/(1+odds)\) produce una probabilidad estimada de rotación de 72,5%.

Como 72,5% es superior al umbral operativo de 20%, la regla de decisión clasifica al empleado como Intervenir preventivamente. Su puntuación se sitúa aproximadamente en el percentil 99,3% de las probabilidades generadas por el modelo final en la muestra. Por ello es un caso de riesgo extremo y la decisión apenas depende del umbral elegido.

La validación de calibración anterior obliga a matizar el significado del 72,5%: debe interpretarse principalmente como riesgo muy alto en relación con la plantilla, y no como una garantía de que exactamente esa proporción de empleados con el mismo perfil vaya a rotar.

7.2 Perfil cercano al punto de corte

El segundo perfil tiene 35 años, realiza horas extra, está casado, viaja raramente, percibe 5.000 unidades mensuales y lleva 3 años en el cargo.

empleado_frontera <- tibble(
  Horas_Extra = factor("Si", levels = levels(datos_modelo$Horas_Extra)),
  Estado_Civil = factor("Casado", levels = levels(datos_modelo$Estado_Civil)),
  Viaje_de_Negocios = factor("Raramente", levels = levels(datos_modelo$Viaje_de_Negocios)),
  Edad = 35,
  Ingreso_1000 = 5,
  Antiguedad_Cargo = 3
)

predict(modelo_final, empleado_frontera, type = "response")
Perfil ilustrativo cercano a la zona de decisión
Edad Horas_Extra Estado_Civil Viaje_de_Negocios Ingreso_Mensual Antiguedad_Cargo Logit Probabilidad_Rotacion Decision_corte_020 Decision_corte_030
35 Si Casado Raramente 5000 3 -0.9673 0.2754 Intervenir No intervenir

Su probabilidad estimada es 27,5%. Con un umbral de 0,20 se prioriza para intervención, mientras que con un umbral de 0,30 dejaría de priorizarse. Este perfil muestra con mayor claridad la función del cutoff: el modelo produce una puntuación continua y la decisión final depende de una política operativa, no de una discontinuidad natural en los datos.

8 Conclusiones y estrategia para reducir la rotación

Los resultados son coherentes entre los tres niveles del análisis. Descriptivamente, la rotación afecta a 16,1% de la muestra y aparece con mayor frecuencia entre quienes realizan horas extra, los solteros y quienes viajan con mayor frecuencia; los empleados que rotan también presentan valores centrales inferiores de edad, ingreso y antigüedad. Los modelos bivariados confirman la dirección esperada en los siete contrastes principales. Al introducir simultáneamente las covariables, las asociaciones de interés conservan en general su dirección, aunque edad, ingreso y antigüedad se atenúan, lo que indica que parte de su información es compartida con otras características laborales y demográficas.

Entre las variables modificables por la organización, horas extra destaca por la magnitud y estabilidad de su asociación ajustada (OR 4,27, IC95% [3,13, 5,82]). Los viajes frecuentes también mantienen una asociación elevada frente a no viajar (OR 3,76, IC95% [1,88, 7,51]), mientras que un mayor ingreso se asocia con menores odds de rotación. La menor rotación asociada a una mayor antigüedad en el cargo sugiere, además, que los primeros años en un puesto son el periodo de mayor riesgo.

La traducción a probabilidades estandarizadas permite comunicar mejor estas magnitudes: manteniendo la distribución observada de las demás covariables, la probabilidad media predicha cambia de 10,6% con Horas extra = No a 30,1% con Horas extra = Sí. En viajes, pasa de 9,0% con No viaja a 23,5% con Frecuentemente. Estos contrastes apoyan priorizar la revisión de cargas sostenidas de horas extra, la necesidad y frecuencia de desplazamientos, la competitividad y equidad de la compensación y los mecanismos de integración y desarrollo durante los primeros años en el puesto, que concentran la mayor rotación.

El estado civil requiere una lectura más matizada, los solteros presentan mayores odds que los casados después del ajuste, mientras que el contraste entre divorciados y casados no es estadísticamente concluyente. Edad y estado civil pueden contribuir a la predicción, pero no constituyen palancas legítimas de intervención individual ni criterios para trato desfavorable. Una política de retención debería actuar sobre condiciones laborales modificables y utilizar cualquier puntuación de riesgo como apoyo a una revisión humana.

En evaluación fuera de muestra, el modelo alcanza un AUC de 0,751 (IC95% [0,686, 0,816]), lo que indica una discriminación útil pero imperfecta. El corte 0,50 resulta poco adecuado para el objetivo preventivo porque sacrifica demasiada sensibilidad y ofrece una exactitud similar a clasificar a todos como no rotación. El corte 0,20 aumenta de forma importante la detección de casos, a cambio de más falsos positivos; por ello su adopción se justifica únicamente bajo el supuesto de que las intervenciones preventivas tienen un coste bajo frente al coste de omitir empleados realmente en riesgo.

En síntesis, el modelo es útil como herramienta de priorización preventiva: combina señales individuales en una probabilidad estimada y ayuda a dirigir recursos hacia perfiles con mayor riesgo. Su uso responsable consiste en apoyar conversaciones y acciones sobre condiciones laborales modificables, manteniendo supervisión humana y evitando convertir asociaciones estadísticas en decisiones automáticas sobre las personas.