Este documento pretende realizar un análisis estadistico y predictivo para la organización, con el fin de comprender y preveer la Rotación existente entre los diferentes cargos que se ejecutan en la empresa, esto ahorraría costos en la preparación de los empleados y retendria el diferente talento en cada uno de sus cargos con la mayor satisfacción posible. El documento presenta una serie de análisis que buscan entender mejor el problema y finalmente se realizará un modelo de regresión logistica que busca predecir según las diferentes caracteristicas del individio y su predisposición a rotar de cargo dentro de la compañia y a su vez se realizarán una serie de recomendaciones con el fin de mejorar esta problemática acorde con la visión de la compañia.
En esta sección se busca realizar una selección empírica de aquellas variables que podrían ser más influyente al momento de evaluar la problemática que se presentó anteriormente, por esta razón, se elegirán 3 variables cualitativas y 3 cuantitativas, a cotinuación se expondran las razónes de dicha elección.
## 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, …
Podemos ver la existencia de 24 viariables, una de ellas es la variable rotación, la cual es la variable objetivo, adicionalmente se tiene un total de 6 variables cualitativas y 17 cuantitativas, la viariables elegídas para realizár el análisis son las siguientes:
Definitivamente el estado civil hace parte fundamental en la vida de las personas ya que implica un grado de responsabilidad y apego a una estabilidad o no dependiendo del estado del mismo, en este caso una persona casada probablemente tenga hijos y un mayor nivel de responsabilidad lo que ocasionaría un mayor apego a la estabilidad y al trabajo y cargo actual sin animo de rotar, diferente a una persona soltera cuyo nivel y rango de libertad es mayor.
Es importante tener en cuenta esta variable ya que es clave identificar mediante análisis descriptivos y poder predecir que cargo tiene una mayor tasa y probabilidad de rotar y asi atacar los de maypr indice o identificar las posibles causas.
La satisfacción laboral cumple un papel fundamental a la hora de determinar que tan feliz o inconforme se encuentra con su área de trabajo, por esta razón, si la respuesta es negativa la tendencia a querer rotar por las situación que que sea que genere esa insatifacción es mucho más alta, por esta razón se hace importante realizar seguimiento a esta variable.
La edad puede resultar un factor fundamental al momento de evaluar si un individuo es propenso a rotar más en un cargo, las personas más jovenes tienden en su cotidianidad a rotar o aburrirme con mayor facilidad en un puesto de trabajo debido a sus ansias de experimentar cosas nuevas sin adaptarse de manera defintiva a un cargo.
Los ingresos permiten identificar un tipo de inconformismo predominante hacia las personas que ganan menos cantidades de dinero al mes que las que ganan más dinero, esto puede contribuir a muchos aspecto ambientales del individuo y a una posterior inestabilidad laborar si el dinero devengado es insuficiente.
La cantidad y tendencia de un individuo a cambiar de trabajo puede ser un factor fundamental a la hora de entender también la tendencia a rotar de puesto de trabajo, ya se por monotonía o dificultar para adaptarse y sentirse satisfecho con un cargo, la cantidad de trabajo está directamente relacionada con la probilidad de rotar.
La segunda sección busca evidenciar las diferentes medidas de tendencia y explorar cada variable elegida con el fin de comprender mejor el comportamiento del dataset y de la variable objetivo.
Inicialmente se evaluan las variables cualitativas, en este caso la variable Estado civil podria representar una de las más importantes como se explicó previamente, en este gráfico podemos observar que de todo el dataset el mayor porcentaje se ve reflejado para los casados (45%), seguido por los solteros (33%) y finalmente los divorciados (22%), esto implica que casi la mitad del dataset presenta personas que se encuentran casados al momento de recolectar los datos.
La siguiente variable de estudio es el Cargo, en este caso se quiso estudiar este item del dataset porque se quiere averiguar la influencia del cargo dentro de la rotación, particularmente en este gráfico se observa que la mayoría de personas en la empresa se encuentran en el cargo de Ejecutivo de ventas, lo cual podria indicar que la mayoria de cargos en los que se rota se situan en ese item, este está seguido por investigador científico y técnico de laboratorio, entre estos 3 cargos representan más del 50% del dataset.
La próxima variable cualitativa evaluada es la satisfacción laboral, ya que las personas con bajo nivel de satisfacción laboral pueden tender a rotar con mayor facilidad, lo que podemos ver es que el 60% de personas encuestadas se ubican entre satisfacción laboral alta y muy alta.
En cuanto las variables cuantitativas se procedió a realizar histogramas que permitieran ver como se distribuyen los datos según la variable evaluada, en este caso la edad podemos ver que su distribución es muy cercana a la normal en forma de campana, siendo la edad de 36 años la que más existe entre los encuestados, este valor es muy cercano a la media que es de 36.92 años, también vemos que las personas que trabajan en la empresa rondan entre los 18 y 60 años.
Por su parte el ingreso mensual también se quiso realizar un histograma, sin embargo este ya no presenta una distribución normal, la mayoría de salarios se encuentran en los 2,500 usd mensuales y valores cercanos, ubicandose también lejos de la media de todo el dataset la cual es de 6,502 Usd, los valores de salario se ubican entre 1,000 y 20,000 Usd lo que muestra que la mayoría de trabajadores son de tipo operativo y tienen un salario basico cercano a un salario mínimo estadounidense (1,137 Usd).
Finalmente la última variable evaluada para el modelo es la cantidad de trabajos anteriores, en este caso podemos ver que la gran mayoría de trabajadores de la empresa solo han tenido un trabajo anterior, lo que implica también que muchos de ellos no suelen cambiar mucho de trabajo, sino que prefieren quedarse en una sola empresa, a pesar de esto la media de esta variable es de 2.6 trabajos anteriores y el rango se encuentra entre 0 y 9 trabajos anteriores.
Para el análisis bivariado, se busca comprender cuales son las variables más determinantes a la hora de predecir la variable objetivo de rotación, para esto se decodificarán las variables categóricas y se entrenará un modelo de regresión logistica que permita obtener los coeficientes de cada variable y su importancia dentro del dataset respecto a la rotación y se comparan los resultados con las hipotesis iniciales.
Dentro de las variables cualitativas podemos ver cuales son las más representativas y las que tienen mayor significancia estadistica, en los resultados obtenidos podemos ver que de las variables de estado civil respecto a la de casados que es la base con la que se comparan los divociados,que según su coeficiente tienen menor probabilidad de rotar respecto a los casados, mientras que los solteros tienen una mayor probabilidad logaritmica, esto ratifica la hipótesis inicial de que los solteros tienen una mayor tendencia a rotar.
Por otra parte los cargos en comparación con el director de investigación se ve generalizadamente que tienen una mayor relevancia y tendencia a rotar que esta, sin embargo, las variables que pueden interceder de manera más representativa son el ejecutivo de ventas, el area de recursos humanos, representante de ventas y técnico de laboratorio, estos tienden a rotar más que los demás cargos y son estadisticamente significativos.
Respecto a la satisfacción laboral, las componentes comparadas respecto a la satifacción tipo 1 o muy baja, se denota que como se indicó en la hipotesis inicial las personas con baja satisfacción laboral tienden a rotar más, en este caso podemos ver que a medida que aumenta la satisfacción laborar la probabilidad disminuye como se ve en sus coeficientes.
data1$Rotación[data1$Rotación == "Si"] <- 1
data1$Rotación[data1$Rotación == "No"] <- 0
data1$Rotación <- as.numeric(data1$Rotación)
# Modelo
Modelo_Variables_Cualitativas <- glm(Rotación ~ factor(Estado_Civil) + factor(Cargo) + factor(Satisfación_Laboral), data = data1, family = binomial(link = "logit"))
summary(Modelo_Variables_Cualitativas)
##
## Call:
## glm(formula = Rotación ~ factor(Estado_Civil) + factor(Cargo) +
## factor(Satisfación_Laboral), family = binomial(link = "logit"),
## data = data1)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.4066 0.7352 -4.634 3.59e-06 ***
## factor(Estado_Civil)Divorciado -0.2287 0.2240 -1.021 0.307317
## factor(Estado_Civil)Soltero 0.8443 0.1649 5.122 3.03e-07 ***
## factor(Cargo)Director_Manofactura 1.0155 0.7908 1.284 0.199119
## factor(Cargo)Ejecutivo_Ventas 2.0613 0.7340 2.808 0.004979 **
## factor(Cargo)Gerente 0.7003 0.8544 0.820 0.412382
## factor(Cargo)Investigador_Cientifico 1.9203 0.7370 2.606 0.009169 **
## factor(Cargo)Recursos_Humanos 2.5425 0.7936 3.204 0.001356 **
## factor(Cargo)Representante_Salud 1.0118 0.7990 1.266 0.205390
## factor(Cargo)Representante_Ventas 3.1358 0.7553 4.152 3.30e-05 ***
## factor(Cargo)Tecnico_Laboratorio 2.4447 0.7340 3.331 0.000866 ***
## factor(Satisfación_Laboral)2 -0.4822 0.2268 -2.126 0.033479 *
## factor(Satisfación_Laboral)3 -0.4394 0.2012 -2.184 0.028942 *
## factor(Satisfación_Laboral)4 -0.9536 0.2137 -4.462 8.12e-06 ***
## ---
## 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: 1153.8 on 1456 degrees of freedom
## AIC: 1181.8
##
## Number of Fisher Scoring iterations: 6
Dentro de las variables cuantitativas se quiso revisar con la matríz de pearson cuales eran las variables que más influencia tienen respecto a la variable rotación, se puede apreciar que las variables que más influencia tienen en la rotación son la Edad, el ingreso mensual, los años de experiencia y la antiguedad en la empresa y en el cargo. Esto va muy de la mano con las variables elegidas, la única que probablemente no tenga una significancia estadistica es la cantidad de trabajos anteriores.
## Edad Distancia_Casa
## -0.15922783 0.07792358
## Educación Ingreso_Mensual
## -0.03137282 -0.15983958
## Trabajos_Anteriores Porcentaje_aumento_salarial
## 0.04349374 -0.01347820
## Años_Experiencia Capacitaciones
## -0.17106325 -0.05947780
## Antigüedad Antigüedad_Cargo
## -0.13439221 -0.16054500
## Años_ultima_promoción
## -0.03301878
Una vez utilizado el modelo para observar la significancia de las variables cuantitativas, se observa que todas tienen una significancia estadistica respecto a la rotación, tambien se puede análizar con los coeficientes logaritmicos que por cada año en la edad, la probabilidad logaritmica de que el empleado rote disminuye, respecto al ingreso mensual ocurre lo mismo con la edad y por el contrario los trabajos anteriores, a medida que aumenta la cantidad de trabajos anteriores es mas probable que rote, lo que complementa las hipótesis iniciales y las ratifica.
data1$Rotación[data1$Rotación == "Si"] <- 1
data1$Rotación[data1$Rotación == "No"] <- 0
data1$Rotación <- as.numeric(data1$Rotación)
# Modelo
Modelo_Variables_Cualitativas <- glm(Rotación ~ Edad + Ingreso_Mensual + Trabajos_Anteriores , data = data1, family = binomial(link = "logit"))
summary(Modelo_Variables_Cualitativas)
##
## Call:
## glm(formula = Rotación ~ Edad + Ingreso_Mensual + Trabajos_Anteriores,
## family = binomial(link = "logit"), data = data1)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.031e-01 3.109e-01 0.332 0.74
## Edad -4.282e-02 1.007e-02 -4.251 2.13e-05 ***
## Ingreso_Mensual -9.682e-05 2.388e-05 -4.055 5.02e-05 ***
## Trabajos_Anteriores 1.128e-01 2.897e-02 3.893 9.88e-05 ***
## ---
## 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: 1226.3 on 1466 degrees of freedom
## AIC: 1234.3
##
## Number of Fisher Scoring iterations: 5
Para el cuarto item se busca entrenar un modelo teniendo en cuenta las 6 variables inicialmente elegidas, y a partir de este obtener el mejor resultado posible a partir de un modelo de regresión logística y asi poder predecir cuando un individuo estará sometido a rotación teniendo en cuenta los parametros de afectación elegidos. Al entrenar el modelo se observa la misma tendencia evidenciada en la sección anterior.
set.seed(72)
proporcion_entrenamiento <- 0.7
indices <- sample(1:nrow(data1), nrow(data1))
n_entrenamiento <- round(proporcion_entrenamiento * nrow(data1))
datos_entrenamiento <- data1[indices[1:n_entrenamiento], ]
datos_prueba <- data1[indices[(n_entrenamiento + 1):nrow(data1)], ]
modelo_logistico <- glm(Rotación ~ Edad + Ingreso_Mensual + Trabajos_Anteriores + factor(Estado_Civil) + factor(Cargo) + factor(Satisfación_Laboral), data = datos_entrenamiento, family = binomial(link = "logit"))
summary(modelo_logistico)
##
## Call:
## glm(formula = Rotación ~ Edad + Ingreso_Mensual + Trabajos_Anteriores +
## factor(Estado_Civil) + factor(Cargo) + factor(Satisfación_Laboral),
## family = binomial(link = "logit"), data = datos_entrenamiento)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.762e+00 1.330e+00 -2.076 0.037907 *
## Edad -4.422e-02 1.247e-02 -3.545 0.000392 ***
## Ingreso_Mensual 2.629e-05 5.294e-05 0.497 0.619417
## Trabajos_Anteriores 9.991e-02 3.677e-02 2.717 0.006592 **
## factor(Estado_Civil)Divorciado -1.251e-01 2.636e-01 -0.475 0.634977
## factor(Estado_Civil)Soltero 7.435e-01 2.005e-01 3.709 0.000208 ***
## factor(Cargo)Director_Manofactura 1.214e+00 1.179e+00 1.029 0.303398
## factor(Cargo)Ejecutivo_Ventas 2.521e+00 1.125e+00 2.241 0.025019 *
## factor(Cargo)Gerente 1.596e+00 1.120e+00 1.425 0.154078
## factor(Cargo)Investigador_Cientifico 2.351e+00 1.214e+00 1.937 0.052795 .
## factor(Cargo)Recursos_Humanos 2.940e+00 1.235e+00 2.381 0.017265 *
## factor(Cargo)Representante_Salud 1.307e+00 1.177e+00 1.110 0.266803
## factor(Cargo)Representante_Ventas 3.548e+00 1.246e+00 2.847 0.004410 **
## factor(Cargo)Tecnico_Laboratorio 2.859e+00 1.209e+00 2.366 0.017999 *
## factor(Satisfación_Laboral)2 -5.514e-01 2.883e-01 -1.913 0.055805 .
## factor(Satisfación_Laboral)3 -3.140e-01 2.436e-01 -1.289 0.197396
## factor(Satisfación_Laboral)4 -6.299e-01 2.519e-01 -2.500 0.012414 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 912.63 on 1028 degrees of freedom
## Residual deviance: 796.89 on 1012 degrees of freedom
## AIC: 830.89
##
## Number of Fisher Scoring iterations: 6
Mediante la Curva ROC, en esta sección podremos observar cual es la predictivad del modelo elegido y como este puede otorgar valores realmente significativos y confiables al momento de predecir un evento nuevo de rotación. En este caso la curva ROC arroja un AUC de 0.73, esto indica que el modelo tiene una predicción moderada tirando a alta, y en el 73% de las veces puede predecir bien entre si la persona puede rotar o no, lo que para quien realiza el estudio considera que es una métrica aceptable.
Este punto pretende probar el modelo con un caso hipotético de un nuevo individuo con diversas características y determinar la probabilidad de que este realice un proceso de rotación, además se determina un umbral para saber si el usuario se debe intervenir o no. En este caso el usuario nuevo a simple vista tiene una gran probabilidad de rotar, esto debido a que es un Representante de ventas la cual tiene mayor probabilidad de rotar, adicionalmente un nivel de satifacción de 1 (muy bajo), tiene un edad de 20 años, es decir que a menor edad es mas probable que rote, adicionalmemte es soltero y ha tenido 6 trabajos anteriores. para este individuo se observa una probabilidad de 79%.
Nuevo_Trabajador <- data.frame(
Edad = 20,
`Viaje de Negocios` = "Raramente",
Departamento = "IyD",
Distancia_Casa = 8,
Educación = 4,
Campo_Educación = "Ciencias",
Satisfacción_Ambiental = 2,
Genero = "F",
Cargo = "Representante_Ventas",
Satisfación_Laboral = 1,
Estado_Civil = "Soltero",
Ingreso_Mensual = 2500,
Trabajos_Anteriores = 6,
Horas_Extra = "No",
Porcentaje_aumento_salarial = 4,
Rendimiento_Laboral = 3,
Años_Experiencia = 5,
Capacitaciones = 2,
Equilibrio_Trabajo_Vida = 3,
Antigüedad = 5,
Antigüedad_Cargo = 3,
Años_ultima_promoción = 4,
Años_acargo_con_mismo_jefe = 3
)
Probabilidad_Rotacion <- predict(modelo_logistico, newdata = Nuevo_Trabajador, type = "response")
Probabilidad_Rotacion
## 1
## 0.7875708
Una vez realizado el análisis de la base de datos inicial se pueden obtener las siguientes conclusiones y sugerencias respecto a la información obtenida:
Se considera que un individuo debe ser intervenido cuando se ingresen las caracteristicas y el modelo entrenado indique una probabilidad mayor a 45% de que el individuo rote.
Teniendo en cuenta las variables seleccionadas se hace importante que la empresa intervenga en diferentes aspectos para evitar este fenomeno que se está evidenciando en la compañia, a continuación se exponen los diferentes eventos sugeridos para corregir este flajelo:
Como es difícil intervenir en el estado civil del trabajador, se recomienda contratar personas que sean casadas o divorciadas ya que estas usualmente requieren trabajos más estables y no tienden a moverse tanto de su cargo actual.
Prestar una especial atención a los cargos de ejecutivo de ventas, representante de ventas, recursos humanos e investigador cientifico ya que estos son los cargos con mas probabilidad de rotar.
Es importante implementar estrategias de satisfacción laboral, para esto realizar mayor cantidad de eventos que permitan unir a las personas dentro de la empresa, adicionar estratégias como regalos y premios en dinero o en especie por cumplimiento de indicadores, adicionalemnte se puede implementar dias libres durante el dia de cumpleaños y procesos que ayuden al trabajador a encontrar un sitio en su cargo asignado.
Se recomienda implementar procesos que permiatan mediante indicadores subir el sueldo en caso de cumplir con los mismos, ya que a medida que se aumenta el sueldo mensual el trabajar tiende a estar mas satisfecho y tiende a no rotar tanto de su cargo.
Se recomienda contratar personas con una edad media o aquellos con edad cercana a los 18 capacitar y otorgar beneficios para que no rote, esto debido a que siendo jovenes tienden a rotar con una mayor probabilidad y en caso de querer disminuir este fenomeno esta es una variable importante.
Finalmente es importante a la hora de contratar, identificar el numero de trabajos anteriores, ya que si el individuo tiene muchos trabajos anteriores existe una probabilidad muy alta de que en este trabajo también rote, se recomienda mejorar los items ya mencionados para que esta variable no represente una gran diferencia.