Actividad 3. Problema: Rotación de cargo

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

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

A continuación se lleva a cabo el respectivo análisis:

1. Selección de variables

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

Ejemplo: Se espera que las horas extra se relacionen con la rotación ya que las personas podrían desgastarse mas al trabajar horas extra y descuidan aspectos personales. La hipótesis es que las personas que trabajan horas extra tienen mayor posibilidad de rotar que las que no trabajan extra. (serian 6, una por variable).

Hipótesis para las roraciones laborales

a. Rotación por viaje de negocios

La rotación de trabajo por viajes de negocios implica que los empleados se desplacen periódicamente a distintos destinos para cumplir con sus funciones laborales. Este enfoque es común en industrias globales y empresas multinacionales. Los viajes de negocios permiten establecer relaciones con clientes, proveedores y colegas de todo el mundo, lo que fomenta la colaboración y el crecimiento empresarial. Sin embargo, también puede generar desafíos, como la fatiga y el desequilibrio entre la vida laboral y personal. La planificación cuidadosa, la gestión del tiempo y el apoyo adecuado son esenciales para que la rotación de trabajo por viajes de negocios sea eficiente y sostenible.

b. Rotación por cargo

La rotación de trabajo por cargo, implica que empleados de diferentes jerarquías dentro de una organización se desplacen de manera regular para cumplir con sus responsabilidades laborales. Los ejecutivos y gerentes de nivel superior suelen viajar para establecer alianzas estratégicas, cerrar acuerdos importantes y supervisar operaciones clave en diferentes ubicaciones. Los empleados de nivel medio a menudo viajan para representar a la empresa en reuniones y eventos, mientras que el personal de nivel inferior podría realizar viajes de rutina para tareas específicas. Esta rotación ayuda a mantener una visión global, pero requiere una gestión precisa para optimizar costos y tiempos, además de garantizar la productividad en cada nivel.

c. Rotación por cargo

La rotación de trabajo en el área educativa de negocios implica que los profesionales se desplacen dentro de distintos campos educativos relacionados con los negocios, como la formación empresarial, la consultoría en gestión o la investigación de mercados. Esta estrategia busca ampliar la experiencia y perspectiva de los individuos al exponerlos a diferentes aspectos del mundo empresarial, desde la enseñanza en aulas universitarias hasta proyectos de consultoría en empresas. Si bien esta rotación fomenta un conocimiento más amplio, también requiere una adaptación continua y la capacidad de aplicar habilidades diversas en entornos educativos y empresariales diversos, lo que puede resultar en un crecimiento profesional significativo.

d. Rotación por ingreso mensual

La rotación de trabajo por ingreso mensual en negocios implica que los empleados cambien de roles o departamentos dentro de una empresa en función de sus niveles de ingresos. Los trabajadores pueden ascender o descender en la jerarquía de la organización, lo que puede ser parte de un programa de desarrollo profesional o una respuesta a cambios en la demanda de mercado. Esta estrategia busca optimizar recursos y talentos, permitiendo que los empleados adquieran experiencia diversificada, pero también puede generar ansiedad y desafíos en la adaptación a nuevas responsabilidades y salarios. La comunicación efectiva y el apoyo son esenciales para el éxito de esta rotación.

e. Rotación por años de experiencia

La rotación de trabajo por años de experiencia en negocios es una estrategia que permite a los empleados cambiar de roles o responsabilidades en función de su trayectoria laboral. Esta práctica busca aprovechar el conocimiento acumulado y la madurez profesional de los trabajadores. Los empleados pueden asumir roles de mayor responsabilidad y liderazgo a medida que adquieren experiencia, o pueden optar por desempeñar funciones más especializadas o de mentoría a medida que avanzan en sus carreras. Esto no solo enriquece su conjunto de habilidades, sino que también promueve la retención de talento y el desarrollo interno. Sin embargo, es esencial garantizar una transición fluida y brindar capacitación y apoyo adecuados para maximizar el éxito de esta rotación.

f. Rotación por aumento salarial

La rotación de trabajo por porcentaje de aumento salarial en negocios permite a los empleados cambiar roles en función de sus incrementos salariales acumulativos. Este enfoque recompensa el rendimiento y la lealtad, alentando a los trabajadores a buscar ascensos y aumentos salariales a lo largo de sus carreras. Sin embargo, requiere una gestión transparente de criterios salariales para garantizar equidad y motivación en el equipo.

2. Pregunta 2

Realizar un análisis univariado (caracterización). Nota: Los indicadores o gráficos se usan dependiendo del tipo de variable (cuanti o cuali). Incluir interpretaciones de la rotación.

# install.packages("devtools") # solo la primera vez
# devtools::install_github("dgonxalex80/paqueteMODELOS", force =TRUE)

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

De la matriz de datos anterior correspondiente a la rotación de trabajadores se puede decir lo siguiente: + se presentan 24 variables y 1470 registros. + Se presenta la variable rotación de trabajadores de la cual, el 84% (1233) manifestaron no haber rotado mientras el 16% (237) manifestaron haberlo hecho.

base1_table = table(rotacion$Rotación)
kable(base1_table, caption = "Tabla de distribución rotación del trabajador")
Tabla de distribución rotación del trabajador
Var1 Freq
No 1233
Si 237
# Datos para el diagrama circular
datos <- c(0.84, 0.16)

categorías <- c("NO", "SI")

# Colores personalizados
colores <- c("green", "blue")

# Crear el diagrama circular con colores personalizados
pie(datos, labels = categorías, col = colores, main = "Rotación de trabajadores")

Años de experiencia

# Calculamos las medidas descriptivas de las variables
library(summarytools)
summarytools::descr(rotacion$Años_Experiencia)
## Descriptive Statistics  
## rotacion$Años_Experiencia  
## N: 1470  
## 
##                     Años_Experiencia
## ----------------- ------------------
##              Mean              11.28
##           Std.Dev               7.78
##               Min               0.00
##                Q1               6.00
##            Median              10.00
##                Q3              15.00
##               Max              40.00
##               MAD               5.93
##               IQR               9.00
##                CV               0.69
##          Skewness               1.11
##       SE.Skewness               0.06
##          Kurtosis               0.91
##           N.Valid            1470.00
##         Pct.Valid             100.00

A partir de los resultados que arroja el programa podemos concluir: el promedio de años de experiencia de los trabajadores fue de 11.28 años, con desviación estándar de 7.8, el valor mínimo de años de experiencia es de 0, el valor máximo de años de experiencia es de 40, el 50% de las observaciones(735) presentaron años de experiencia entre 0 y 10, mientras que el restante 50% (735) presento años de experiencia entre 10 y 40, el coeficiente de asimetría fue de 1.11 presentando una asimetría positiva, además el coeficiente de curtosis fue de 0.91, indicando que la distribución es levemente leptocurtica.

par(mfrow=c(1,2)) #Para dividir el área del gráfico en dos partes (una fila y dos columnas)

dplot<-density(rotacion$Años_Experiencia) #Creando un objeto llamado dplot que recibe un Density_Plot de los residuos

plot(dplot, #Graficando el objeto dplot
      main="Curva de densidad observada años de experiencia", #Título principal de la gráfica
      xlab = "años de experiencia", #Etiqueta del eje x
      ylab = "Densidad") #Etiqueta del eje y

polygon(dplot, #Añadiendo el poligono
        col = "green", #Definiendo el color del poligono
        border = "black") #Color del borde del poligono



mtext(side=3, at=par("usr")[1], adj=0.7, cex=0.6, col="gray40", line=-21, #Posición del texto
      text=paste("Jairo Enrique  --", #Texto
                 format(Sys.time(), 
                "%d/%m/%Y %H:%M:%S --"), #Fecha y Hora
                 R.version.string)) #Versión de R
boxplot(rotacion$Años_Experiencia, col = c("red"), ylab = "años de experiencia", main="Años de experiencia")

Ingreso Mensual

# Calculamos las medidas descriptivas de las variables
library(summarytools)
summarytools::descr(rotacion$Ingreso_Mensual)
## Descriptive Statistics  
## rotacion$Ingreso_Mensual  
## N: 1470  
## 
##                     Ingreso_Mensual
## ----------------- -----------------
##              Mean           6502.93
##           Std.Dev           4707.96
##               Min           1009.00
##                Q1           2911.00
##            Median           4919.00
##                Q3           8380.00
##               Max          19999.00
##               MAD           3260.24
##               IQR           5468.00
##                CV              0.72
##          Skewness              1.37
##       SE.Skewness              0.06
##          Kurtosis              0.99
##           N.Valid           1470.00
##         Pct.Valid            100.00

A partir de los resultados que arroja el programa podemos concluir: el promedio de ingreso mensual de los trabajadores fue de 6502.93 años, con desviación estándar de 4707.96, el valor mínimo de ingreso mensual es de 1009, el valor máximo de años de ingreso mensual es de 19999, el 50% de las observaciones(735) presentaron ingreso mensual entre 1009 y 4919, mientras que el restante 50% (735) presento ingreso mensual entre 4919 y 19999, el coeficiente de asimetría fue de 1.37 presentando una asimetría positiva, además el coeficiente de curtosis fue de -0,37, indicando que la distribución es levemente platicúrtica.

par(mfrow=c(1,2)) #Para dividir el área del gráfico en dos partes (una fila y dos columnas)

dplot1<-density(rotacion$Ingreso_Mensual) #Creando un objeto llamado dplot que recibe un Density_Plot de los residuos

plot(dplot1, #Graficando el objeto dplot
      main="Densidad observada Ingreso Mensual", #Título principal de la gráfica
      xlab = "Ingreso Mensual", #Etiqueta del eje x
      ylab = "Densidad") #Etiqueta del eje y

polygon(dplot1, #Añadiendo el poligono
        col = "green", #Definiendo el color del poligono
        border = "black") #Color del borde del poligono



mtext(side=3, at=par("usr")[1], adj=0.7, cex=0.6, col="gray40", line=-21, #Posición del texto
      text=paste("Jairo Enrique  --", #Texto
                 format(Sys.time(), 
                "%d/%m/%Y %H:%M:%S --"), #Fecha y Hora
                 R.version.string)) #Versión de R
boxplot(rotacion$Ingreso_Mensual, col = c("red"), ylab = "Ingreso Mensual", main=" Ingreso Mensual")

Porcentaje aumento salarial

# Calculamos las medidas descriptivas de las variables
library(summarytools)
summarytools::descr(rotacion$Porcentaje_aumento_salarial)
## Descriptive Statistics  
## rotacion$Porcentaje_aumento_salarial  
## N: 1470  
## 
##                     Porcentaje_aumento_salarial
## ----------------- -----------------------------
##              Mean                         15.21
##           Std.Dev                          3.66
##               Min                         11.00
##                Q1                         12.00
##            Median                         14.00
##                Q3                         18.00
##               Max                         25.00
##               MAD                          2.97
##               IQR                          6.00
##                CV                          0.24
##          Skewness                          0.82
##       SE.Skewness                          0.06
##          Kurtosis                         -0.31
##           N.Valid                       1470.00
##         Pct.Valid                        100.00

A partir de los resultados que arroja el programa podemos concluir: el promedio del Porcentaje aumento salarial de los trabajadores fue de 15.2 años, con desviación estándar de 3.66, el valor mínimo de Porcentaje aumento salarial es de 11, el valor máximo de Porcentaje aumento salarial es de 25, el 50% de las observaciones(735) presentaron ingreso mensual entre 11 y 14, mientras que el restante 50% (735) presento ingreso mensual entre 14 y 25, el coeficiente de asimetría fue de 0.82 presentando una asimetría positiva, además el coeficiente de curtosis fue de -0,31, indicando que la distribución es levemente platicúrtica.

par(mfrow=c(1,2)) #Para dividir el área del gráfico en dos partes (una fila y dos columnas)

dplot2<-density(rotacion$Porcentaje_aumento_salarial) #Creando un objeto llamado dplot que recibe un Density_Plot de los residuos

plot(dplot2, #Graficando el objeto dplot
      main="Densidad observada Ingreso Mensual", #Título principal de la gráfica
      xlab = "Ingreso Mensual", #Etiqueta del eje x
      ylab = "Densidad") #Etiqueta del eje y

polygon(dplot2, #Añadiendo el poligono
        col = "green", #Definiendo el color del poligono
        border = "black") #Color del borde del poligono



mtext(side=3, at=par("usr")[1], adj=0.7, cex=0.6, col="gray40", line=-21, #Posición del texto
      text=paste("Jairo Enrique  --", #Texto
                 format(Sys.time(), 
                "%d/%m/%Y %H:%M:%S --"), #Fecha y Hora
                 R.version.string)) #Versión de R
boxplot(rotacion$Porcentaje_aumento_salarial, col = c("red"), ylab = "Ingreso Mensual", main=" Porcentaje_aumento_salarial")

Viaje de Negocios

base1_viaje = table(rotacion$`Viaje de Negocios`)
kable(base1_viaje, caption = "Tabla de distribución viaje de negocios")
Tabla de distribución viaje de negocios
Var1 Freq
Frecuentemente 277
No_Viaja 150
Raramente 1043

Con respecto a los viajes de negocios que realizan los empleados, el 19%(277) manifiestan viajar frecuentemente, el 10%(150) manifiesta no viajar, mientras el 71% (1043) dice viajar raramente. Lo cual lo visualizamos en la siguiente gráfica

# Crear un vector de categorías
categorias <- c("Frecuentemente", "No viaja", "Raramente")
colores <- c("red", "blue", "green")

# Crear un vector de frecuencias
frecuencias <- c(0.19, 0.10, 0.71)

# Crear un diagrama de barras
barplot(frecuencias, names.arg = categorias, 
        main = "Viaje de Negocios", xlab = "Viaje de Negocios", ylab = "Frecuencia",col = colores )

Cargo

base1_cargo = table(rotacion$Cargo)
kable(base1_cargo, caption = "Tabla de distribución por cargo")
Tabla de distribución por cargo
Var1 Freq
Director_Investigación 80
Director_Manofactura 145
Ejecutivo_Ventas 326
Gerente 102
Investigador_Cientifico 292
Recursos_Humanos 52
Representante_Salud 131
Representante_Ventas 83
Tecnico_Laboratorio 259

Con respecto a los cargos que ocupan los empleados, se encuentra los siguiente: Director_Investigación(DI) 5% (80), Director_Manofactura(DM) (10%) 145, Ejecutivo_Ventas(EV) 22% (326), Gerente 7% (102), Investigador_Cientifico(IC) 20% (292), Recursos_Humanos(RH) 4% (52), Representante_Salud(RS) 9% (131), Representante_Ventas(RV) 6% (83) y Tecnico_Laboratorio(TL) 17% (259)

# Crear un vector de categorías
categorias1 <- c("DI", "DM", "EV", "Gerente","IC", "RH", "RS","RV", "TL" )
colores1 <- c("red", "blue", "green","red", "blue", "green","blue" )

# Crear un vector de frecuencias
frecuencias1 <- c(5, 10, 22, 7, 20, 4, 9, 6, 17)

# Crear un diagrama de barras
barplot(frecuencias1, names.arg = categorias1, 
        main = "Cargos", xlab = "Cargos", ylab = "Frecuencia",col = colores1 )

Campo Educación

base1_educacion = table(rotacion$Campo_Educación)
kable(base1_educacion, caption = "Tabla de distribución por Campo Educación")
Tabla de distribución por Campo Educación
Var1 Freq
Ciencias 606
Humanidades 27
Mercadeo 159
Otra 82
Salud 464
Tecnicos 132

Con respecto al área eduactiva de los empleados, se evidencia lo siguiente: Ciencias 41% (606), Humanidades(HM) 2% (27), Mercadeo 11% (159), Otra 6% (82), Salud 32% (464) y Técnicos 9% (132)

# Crear un vector de categorías
categorias2 <- c("Ciencias", "HM", "Mercadeo", "Otra","Salud", "Técnicos")
colores2 <- c("red", "blue", "green","red", "blue", "green" )

# Crear un vector de frecuencias
frecuencias2 <- c(41, 2, 11, 6, 32, 9)

# Crear un diagrama de barras
barplot(frecuencias2, names.arg = categorias2, 
        main = "Área educativa", xlab = "Área educativa", ylab = "Frecuencia",col = colores1 )

3. Pregunta 3

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

require(CGPfunctions)
## Loading required package: CGPfunctions
## Warning: package 'CGPfunctions' was built under R version 4.2.3
PlotXTabs2(data = rotacion,x = "Viaje de Negocios",y="Rotación") 

En la gráfica anterior, la hipótesis se comprueba, ya que los empleados que viajan frecuentemente rotan más que los que no viajan o viajan raramente, en un 25 por ciento.

require(CGPfunctions)
PlotXTabs2(data = rotacion,x = "Cargo",y="Rotación") 

En la gráfica anterior, la hipótesis con respecto al cargo se comprueba, ya que los empleados que ocupan el cargo representantes de ventas rotan más que los otros cargos en un 40%.

require(CGPfunctions)
PlotXTabs2(data = rotacion,x = "Campo_Educación",y="Rotación") 

En la gráfica anterior, la hipótesis con respecto al área educativa se comprueba, ya que los empleados que tienen área humanidades rotan más que los otros cargos en un 26%.

Hipótsis con respecto a las variables cuantitativas

Se hace un cambio de escala de la variable Ingreso_Mensual dividiendola entre 1000 y luego agrupandola en cuatro intervalos se obtiene lo siguiente:

rotacion$Ingreso_Mensual2=rotacion$Ingreso_Mensual/1000
#library(summarytools)
#summarytools::descr(rotacion$Ingreso_Mensual2)
rotacion$Ingreso_rango=cut(rotacion$Ingreso_Mensual2,breaks = c(0,5,10,15,20))
data.frame(table(rotacion$Ingreso_rango))
##      Var1 Freq
## 1   (0,5]  749
## 2  (5,10]  440
## 3 (10,15]  148
## 4 (15,20]  133
PlotXTabs2(data = rotacion,x = "Ingreso_rango",y="Rotación")

En el rango de ingreso mensual se observa que a menor salario se presenta mayor frecuencia de rotación.

Con respecto a la experiencia procedemos de la siguiente manera: se agrupa en cuatro intervalos los años de experiencia obtiendo lo siguiente:

rotacion$Años_Experiencia2=rotacion$Años_Experiencia
#library(summarytools)
#summarytools::descr(rotacion$Ingreso_Mensual2)
rotacion$experiencia=cut(rotacion$Años_Experiencia2,breaks = c(0,10,20,30,40))
data.frame(table(rotacion$experiencia))
##      Var1 Freq
## 1  (0,10]  912
## 2 (10,20]  340
## 3 (20,30]  161
## 4 (30,40]   46
PlotXTabs2(data = rotacion,x = "experiencia",y="Rotación")

El rango de años de experiencia se observa que a menor experiencia se presenta mayor frecuencia de rotación.

Con respecto a Porcentaje de aumento salarial de la siguiente manera: se agrupa en cuatro intervalos los años de experiencia obtiendo lo siguiente:

rotacion$Porcentaje_aumento_salarial2=rotacion$Porcentaje_aumento_salarial
#library(summarytools)
#summarytools::descr(rotacion$Ingreso_Mensual2)
rotacion$aumento=cut(rotacion$Porcentaje_aumento_salarial2,breaks = c(11,14,18,22,24))
data.frame(table(rotacion$aumento))
##      Var1 Freq
## 1 (11,14]  608
## 2 (14,18]  350
## 3 (18,22]  235
## 4 (22,24]   49
PlotXTabs2(data = rotacion,x = "aumento",y="Rotación")

El rango de porcentaje aumento salarial se observa que a mayor aumento salarial se presenta mayor frecuencia de rotación.

4. Pregunta 4. Estimación del modelo

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

rotacion$Rotación=as.numeric(rotacion$Rotación=="Si")

mod1=glm(Rotación~Ingreso_Mensual+Años_Experiencia+Porcentaje_aumento_salarial+`Viaje de Negocios`+Cargo+
             Campo_Educación,data = rotacion,family = "binomial")

summary(mod1)
## 
## Call:
## glm(formula = Rotación ~ Ingreso_Mensual + Años_Experiencia + 
##     Porcentaje_aumento_salarial + `Viaje de Negocios` + Cargo + 
##     Campo_Educación, family = "binomial", data = rotacion)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.4166  -0.6362  -0.4827  -0.2757   3.0234  
## 
## Coefficients:
##                                Estimate Std. Error z value Pr(>|z|)    
## (Intercept)                  -2.850e+00  1.051e+00  -2.712 0.006695 ** 
## Ingreso_Mensual               4.981e-05  4.997e-05   0.997 0.318877    
## Años_Experiencia             -4.984e-02  1.760e-02  -2.831 0.004636 ** 
## Porcentaje_aumento_salarial  -4.807e-03  2.070e-02  -0.232 0.816405    
## `Viaje de Negocios`No_Viaja  -1.358e+00  3.403e-01  -3.990 6.62e-05 ***
## `Viaje de Negocios`Raramente -6.178e-01  1.728e-01  -3.576 0.000349 ***
## CargoDirector_Manofactura     1.038e+00  8.751e-01   1.186 0.235460    
## CargoEjecutivo_Ventas         1.975e+00  8.355e-01   2.363 0.018111 *  
## CargoGerente                  7.707e-01  8.582e-01   0.898 0.369115    
## CargoInvestigador_Cientifico  1.964e+00  9.159e-01   2.145 0.031980 *  
## CargoRecursos_Humanos         2.069e+00  9.931e-01   2.084 0.037186 *  
## CargoRepresentante_Salud      1.090e+00  8.801e-01   1.239 0.215361    
## CargoRepresentante_Ventas     2.917e+00  9.462e-01   3.083 0.002048 ** 
## CargoTecnico_Laboratorio      2.505e+00  9.128e-01   2.744 0.006071 ** 
## Campo_EducaciónHumanidades    7.157e-01  6.358e-01   1.126 0.260293    
## Campo_EducaciónMercadeo       3.012e-01  2.675e-01   1.126 0.260236    
## Campo_EducaciónOtra          -1.729e-01  3.558e-01  -0.486 0.627026    
## Campo_EducaciónSalud         -6.397e-02  1.850e-01  -0.346 0.729458    
## Campo_EducaciónTecnicos       5.933e-01  2.483e-01   2.390 0.016858 *  
## ---
## 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: 1170.6  on 1451  degrees of freedom
## AIC: 1208.6
## 
## Number of Fisher Scoring iterations: 6

Se identifica que las variables significativas para el modelo son: Años_Experiencia (p-valor 0.00463), Viaje de Negocios-No_Viaja (p-valor 6.62e-05), Viaje de Negocios-Raramente (p-valor 0.000349), Cargo Ejecutivo - Ventas (p-valor 0.018111), CargoInvestigador_Cientifico (p-valor 0.031980), CargoRecursos_Humanos (p-valor 0.037186), CargoRepresentante_Ventas (p-valor 0.002048), CargoTecnico_Laboratorio (p-valor 0.006071), Campo_EducaciónTecnicos(p-valor 0.016858)y las demás variables a excepción de: Porcentaje_aumento_salarial (p-valor 0.816405), Campo_EducaciónOtra (p-valor 0.627026) y Campo_EducaciónSalud (p-valor 0.729458 )

Para interpretar los coeficientes se debe sacar el ratio de ODDS

exp(mod1$coefficients)
##                  (Intercept)              Ingreso_Mensual 
##                   0.05785946                   1.00004981 
##             Años_Experiencia  Porcentaje_aumento_salarial 
##                   0.95138411                   0.99520471 
##  `Viaje de Negocios`No_Viaja `Viaje de Negocios`Raramente 
##                   0.25722857                   0.53911885 
##    CargoDirector_Manofactura        CargoEjecutivo_Ventas 
##                   2.82406261                   7.20302620 
##                 CargoGerente CargoInvestigador_Cientifico 
##                   2.16137257                   7.13050392 
##        CargoRecursos_Humanos     CargoRepresentante_Salud 
##                   7.91977230                   2.97553264 
##    CargoRepresentante_Ventas     CargoTecnico_Laboratorio 
##                  18.49100709                  12.24111141 
##   Campo_EducaciónHumanidades      Campo_EducaciónMercadeo 
##                   2.04565835                   1.35147311 
##          Campo_EducaciónOtra         Campo_EducaciónSalud 
##                   0.84121174                   0.93803524 
##      Campo_EducaciónTecnicos 
##                   1.80990453

Esta razón de probabilidad lo que nos indica es lo siguiente:

Por cada año de experiencia que aumenta, el odds de que se presente el evento de rotación aumenta 0.95 veces, es decir, que una persona menos años deexperiencia es 0.5 veces mas probable de rotar.

Por cada unidad que aumenta la variable viaje de negocios, el odds de que se presente el evento de rotación aumenta 0.26 veces, es decir, que una persona que viaja frecuentemente anteriores tiene mas de probabilidad de rotar.

Por cada unidad que aumenta la variable CargoRepresentante_Ventas, el odds de que se presente el evento de rotación aumenta 18.5 veces, es decir, que una persona en el cargo de comercial, es 24 veces más probable de que rote.

#intervalos de confianza
#confint(mod1)

5. Pregunta 5

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

A continuación se presenta la matriz de confusión asociada al modelo

#install.packages("vcd") solo una vez
library(vcd)
## Warning: package 'vcd' was built under R version 4.2.3
## Loading required package: grid
predict1= predict.glm(mod1, newdata = rotacion, type = "response")
result1 = table(rotacion$Rotación, ifelse(predict1 >0.2, 1, 0), dnn = c("observaciones", "predicciones"))
result1
##              predicciones
## observaciones   0   1
##             0 918 315
##             1 103 134
mosaic(result1, shade = T, colorize = T,
gp = gpar(fill = matrix(c("green3", "red2", "red2", "green3"), 2, 2)))

sum(diag(result1)/sum(result1))
## [1] 0.7156463

El modelo es capaz de clasificar correctamente 0.715(71.5%) de las observaciones cuando se emplean los datos de entrenamiento.

#install.packages("ROCR")
library(ROCR)
## Warning: package 'ROCR' was built under R version 4.2.3
prediccion_rotacion= ROCR::prediction(predict1,rotacion$Rotación)
perf= performance(prediction.obj = prediccion_rotacion, "tpr", "fpr")
plot(perf,xlab = "Specificity", ylab = "Sensitivity", col="red")
abline(a=0, b=1, col="blue")
grid()

AUClog= performance(prediccion_rotacion, measure = "auc")@y.values[[1]]
cat("AUC: ", AUClog, "n")
## AUC:  0.7171661 n

El área bajo la curva de 0.72 indica que el modelo es aceptable y puede servir para predecir la probabilidad de rotación del empleado.

6. Pregunta 6. Predicciones

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

La probabilidad de rotar un empleado con las siguientes catacterísticas: Ingreso_Mensual = 1415, Años_Experiencia =12, Porcentaje_aumento_salarial= 11, Viaje de Negocios= Frecuentemente, Cargo = Representante_Ventas , Campo_Educación = Tecnicos

(predict(mod1,list(Ingreso_Mensual = 1415, Años_Experiencia =12, Porcentaje_aumento_salarial= 11,`Viaje de Negocios`= "Frecuentemente", Cargo = "Representante_Ventas", Campo_Educación = "Tecnicos"),type = "response"))*100
##        1 
## 52.00844

es del 52%.

7. Pregunta 7. Conclusiones

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

Al llevar a cabo este análisis de las variables en cuestión, se hace evidente que existen variaciones significativas en la empresa que guardan una estrecha relación con la tasa de rotación del personal. Estas variaciones se asocian con factores como el ingreso mensual, la experiencia acumulada, el porcentaje de aumento salarial, los viajes de negocios, el campo educativo y la posición ocupada en el trabajo. Desde esta perspectiva, comprendemos que la rotación es un fenómeno complejo en el que confluyen diversos elementos, tanto internos (como el cargo en el trabajo y el ingreso mensual) como externos.

En este contexto, surge la necesidad de proponer una estrategia integral en la empresa que permita el monitoreo constante de la satisfacción en el entorno laboral. Este enfoque tiene como objetivo principal prevenir que dicho factor tenga un impacto negativo en la rotación de personal. Para lograrlo, se propone la definición y ejecución de planes de acción que posibiliten una intervención oportuna en las causas subyacentes que motivan la rotación de empleados en la organización.

Además, se sugiere la implementación de un programa continuo que integre aspectos tanto internos como externos de la empresa, con el fin de brindar a los empleados un desarrollo integral. Este programa se enfocaría en fomentar el crecimiento y el desarrollo de las capacidades personales y profesionales de los trabajadores. Esto se lograría a través de la creación de espacios de encuentro tanto a nivel familiar como laboral, donde se enfatice la importancia del trabajo de cada empleado para la empresa y se promueva el equilibrio entre su vida profesional y personal. Estos elementos son esenciales para fomentar un crecimiento mutuo entre la empresa y sus empleados.

Por último, se recomienda la adaptación de estrategias específicas según la antigüedad en el cargo de los empleados. Aprovechando la experiencia de aquellos que han permanecido en la empresa durante más tiempo, se puede construir una visión atractiva y desafiante para aquellos que recién se incorporan. Esto contribuirá a crear un ambiente laboral con condiciones atractivas que estimulen la permanencia en la empresa y la retención de los empleados más talentosos.

En resumen, la implementación de estas medidas estratégicas puede contribuir significativamente a la retención de empleados y a la construcción de un entorno laboral favorable para el crecimiento tanto individual como organizacional.