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:
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).
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.
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.
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.
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.
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.
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.
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")
| 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")
# 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")
# 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")
# 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")
base1_viaje = table(rotacion$`Viaje de Negocios`)
kable(base1_viaje, caption = "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 )
base1_cargo = table(rotacion$Cargo)
kable(base1_cargo, caption = "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 )
base1_educacion = table(rotacion$Campo_Educación)
kable(base1_educacion, caption = "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 )
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%.
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.
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)
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.
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%.
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.