Inicio

Alumno: Daniel Lorenzo Medina Salcedo

Correo:

Asignatura: Métodos estadisticos para la toma de decisiones

Profesor: Daniel Enrique González Gómez

Maestria en Ciencia de Datos

Universidad Javeriana de Cali

Septiembre 2022

Este documento se puede consulta en línea en el siguiente link:

Ver en línea en R PUbs

Primer punto.

a.

Seleccionar 3 variables categóricas (distintas de rotación) y 3 variables cuantitativas, que consideren estén relacionadas con la rotación. Nota: Justificar por que estas variables están relacionadas y que tipo de relación se espera (Hipótesis). 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).

Tipo Variable Relación Hipótesis
Categorica Equilibrio Trabajo Vida Esta variable establece un valor numérico sobre la calidad de vida de una persona en su relación tabrajo/vida personal. Las personas con menor Equilibro Trabajo Vida tienen mayor nivel de rotación
Categorica Horas Extras Esta variable establece si un funcionario labora horas extras. El trabajo extendido prolongado genera agotamiento y desgaste en la relación laboral Las personas que trabajan horas extras tienen mayor nivel de rotación laboral
Categorica Satisfacción laboral Esta variable establece el nivel de satisfacción de un funcionario con sus condiciones ambientales A menor nivel de satisfacción es mayor el nivel de rotación.
Cuantitativa Edad Esta variable establece la edad del funcionario al momento de la evaluación La rotación laboral es mayor en edades menores a los 30 años
Cuantitativa Ingreso Mensual Establece el ingreso mensual de cada uno de los funcionarios al momento de la evaluación A menor ingreso es mayor la rotación
Cuantitativa Antiguedad Establece la antiguedad en la compañia de cada uno de los funcionarios al momento de la evaluación Los funcionarios con menos de 3 años de vinculación rotan mas frente a los otros funcionarios

b.

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.

Variable 1: Equilibro Trabajo Vida

Equilibrio Vida Trabajo
Equilibrio Vida Trabajo Cantidad Porcentaje
1 80 0.0544218
2 344 0.2340136
3 893 0.6074830
4 153 0.1040816

Variable 2: Horas Extras

Horas Extra
Horas Extra Cantidad Porcentaje
No 1054 0.7170068
Si 416 0.2829932

Variable 3: Satisfacción ambiental

Nivel de Satisfación Ambiental
Nivel de Satisfación Ambiental Cantidad Porcentaje
1 284 0.1931973
2 287 0.1952381
3 453 0.3081633
4 446 0.3034014

Variable 4: Edad

Variable 5: Ingresos Mensuales

Variable 6: Antiguedad

Resumen:

Resumen
Medida Edad Ingresos Antiguedad
Promedio 36.92381 6502.931 7.008163
Mediana 36.00000 4919.000 5.000000
Máximo 60.00000 19999.000 40.000000
Mínimo 18.00000 1009.000 0.000000

c.

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.

Variable 1: Equilibro Trabajo Vida

Hipótesis Análisis
Las personas con menor Equilibro Trabajo Vida tienen mayor nivel de rotación Se comprueba la hipotesis. Los niveles 1 y 2 rotan 31% 17% respectivamente, sin embargo, el Nivel 3 concentra 893 funcionarios y al rotar el 14% impacta a 125 personas, por lo cual, la variable Equilibrio Trabajo Vida es importante considerarla incluso para Nivel 3 y relacionarla con otras variables

Variable 2: Horas extras

Hipótesis Análisis
Las personas que trabajan horas extras tienen mayor nivel de rotación laboral . Se comprueba la hipotesis y se considera de alto impacto debido a 31% de los funcionarios que trabajan horas extras se con un resultado de 128 retiros

Variable 3: Nivel de Satisfacción

Hipótesis Análisis
A menor nivel de satisfacción es mayor el nivel de rotación. Se comprueba la hipotesis, sin embargo se evidencia que no es una variable que correlacione efectivamente la rotación debido a la rotación en valores absolutos es similar en todos los niveles de satisfacción

Varibale 4: Edad

Hipótesis Análisis
La rotación laboral es mayor en edades menores a los 30 años No se comprueba la hipótesis. La mediana de la edad de rotación es de 32 años, podriamos decir que el Quartil 1 de rotación tiene menos de 32 años, sin embargo el 50% de los que rotan tienen más de 32 años.

Variable 5: Ingresos

Hipótesis Análisis
A menor ingreso es mayor la rotación Se comprueba la hipotesis ampliamente. El salario del 75% de los que rotan es apenas superior a la mediana de los que no rotan

Variable 6: Antiguedad

Hipótesis Análisis
Los funcionarios con menos de 3 años de vinculación rotan mas frente a los otros funcionarios. Se comprueba la hipotesis. La rotación se reduce al pasar los tres primeros años de vinculación

d.

Realizar la estimación de un modelo de regresión logistico en el cual la variable respuesta es rotación (y=1 es si rotación, y=0 es no rotación) y las covariables las 6 seleccionadas. Interprete los coeficientes del modelo y la significancia de los parametros.

#Preparamos los datos, convirtiendo Si en 1 y No en 0
datos = data.frame(rotacion[,1], rotacion[,20],rotacion[,8],rotacion[,15],rotacion[,2],rotacion[,13],rotacion[,21])

colnames (datos) <- c ("Rotacion", "Equilibrio_Trabajo_Vida","Satisfaccion_Ambiental", "Horas_Extra", "Edad", "Ingreso_Mensual","Antiguedad")
datos$Rotacion = 0
datos$Rotacion[rotacion[,1]=="Si"] =1
datos$Horas_Extra = 0
datos$Horas_Extra[rotacion[,15]=="Si"] =1
modelo_logit <- glm(Rotacion ~ Equilibrio_Trabajo_Vida+ Horas_Extra + Satisfaccion_Ambiental + Edad + Ingreso_Mensual + Antiguedad,  data = datos, family = "binomial")
summary(modelo_logit)
## 
## Call:
## glm(formula = Rotacion ~ Equilibrio_Trabajo_Vida + Horas_Extra + 
##     Satisfaccion_Ambiental + Edad + Ingreso_Mensual + Antiguedad, 
##     family = "binomial", data = datos)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.3731  -0.5822  -0.4293  -0.2617   3.1594  
## 
## Coefficients:
##                           Estimate Std. Error z value Pr(>|z|)    
## (Intercept)              1.192e+00  4.698e-01   2.538 0.011157 *  
## Equilibrio_Trabajo_Vida -2.230e-01  1.055e-01  -2.113 0.034624 *  
## Horas_Extra              1.491e+00  1.559e-01   9.564  < 2e-16 ***
## Satisfaccion_Ambiental  -3.342e-01  6.998e-02  -4.776 1.79e-06 ***
## Edad                    -3.503e-02  9.956e-03  -3.519 0.000434 ***
## Ingreso_Mensual         -7.815e-05  2.647e-05  -2.952 0.003154 ** 
## Antiguedad              -3.890e-02  1.862e-02  -2.089 0.036738 *  
## ---
## 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: 1120.5  on 1463  degrees of freedom
## AIC: 1134.5
## 
## Number of Fisher Scoring iterations: 5

Hipótesis Análisis
Las seis variables son significativas. Se comprueba la hipotesis. Las seis variables son significativas en el modelo, destacando las variables Horas Extras, Satisfacción Ambiental y Edad

e.

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

predict1 = predict.glm(modelo_logit, newdata = datos, type ="response")
ypred = ifelse(predict1 > 0.4, 1,0)
yobser = datos$Rotacion
matrizc = table(yobser, ypred,  dnn = c("observaciones", "predicciones"))
matrizc
##              predicciones
## observaciones    0    1
##             0 1183   50
##             1  170   67
cat("R2 = ", sum(diag(matrizc)) / sum(matrizc))
## R2 =  0.8503401
boxplot(predict1)

mosaic(matrizc, shade = T, colorize = T, gp = gpar(fill = matrix(c("#447270", "#f6b915", "#f6b915","#447270"), 2, 2)))

pred = ROCR::prediction(predict1, datos$Rotacion)
perf = performance(pred, "tpr", "fpr")
plot(perf)
abline(a=0, b=1, col="red")
grid()
ACLog1 = performance(pred, measure = "auc")@y.values[[1]]
cat("AUC = ", ACLog1,"n")
## AUC =  0.7555651 n
#Punto de corte optimo
cost.perf = performance(pred, measure = "cost")
opt.cut = pred@cutoffs[[1]][which.min(cost.perf@y.values[[1]])]

##Coordenadas del punto de corte optimo
x = perf@x.values[[1]][which.min(cost.perf@y.values[[1]])]
y = perf@y.values[[1]][which.min(cost.perf@y.values[[1]])]
points(x, y, pch=20, col="red")

f.

Predeccir la probabilidad de que un individuo (hipotetico) rote y defina un corte para decidir si se debe intervenir a este empleado o no (posible estrategia para motivar al empleado).

El punto de corte se propone como 0.4

Variable Individuo 1 Individuo 2 Individuo 3
Equilibrio Trabajo Vida 1 (Bajo) 2 (Medio) 3 (Alto)
Satisfaccion Ambiental 1 (Bajo) 2 (Medio) 4 (Muy Alto)
Horas Extras Si Si No
Edad 30 30 30
Ingresos Mensuales 5 millones 5 millones 5 millones
Antiguedad 2 años 2 años 2 años
Predicción Rotaría Rotaría No Rotaría
Probabilidad 0.647 0.512 0.088
Recomendación Mejorar el Equilibrio Trabajo Vida, satisfacción ambiental y evitar horas extras Evitar horas extras Mantener

construir_individuo = function(equilibrio_vida_trabajo, satisfaccion_Ambiental, horas_Extra, edad, ingreso_Mensual, antiguedad)
{
  individuo = data.frame(equilibrio_vida_trabajo, satisfaccion_Ambiental, horas_Extra, edad, ingreso_Mensual, antiguedad)                 
  colnames (individuo) <- c ("Equilibrio_Trabajo_Vida","Satisfaccion_Ambiental", "Horas_Extra", "Edad", "Ingreso_Mensual","Antiguedad")
  return(individuo)
}

individuo1 = construir_individuo( 1, 1, 1, 30, 5000, 2)
individuo2 = construir_individuo( 2, 2, 1, 30, 5000, 2)
individuo3 = construir_individuo( 3, 4, 0, 30, 5000, 2)

cat("La probabilidad de rotación del Individuo 1 es :", predict.glm(modelo_logit, newdata = individuo1, type ="response"))
## La probabilidad de rotación del Individuo 1 es : 0.6471165
cat("La probabilidad de rotación del Individuo 2 es :", predict.glm(modelo_logit, newdata = individuo2, type ="response"))
## La probabilidad de rotación del Individuo 2 es : 0.5123059
cat("La probabilidad de rotación del Individuo 3 es :", predict.glm(modelo_logit, newdata = individuo3, type ="response"))
## La probabilidad de rotación del Individuo 3 es : 0.08843261

g.

En las conclusiones se discute sobre cual seria la estrategia para disminuir la rotación en la empresa (con base en las variables que resultaron significativas en el punto 3). Ejemplo: Mejorar el ambiente laboral, los incentivos económicos, distribuir la carga de horas extra (menos turnos y mas personal).

Variable Nivel de Significancia
Equilibrio Trabajo Vida Media *
Satisfaccion Ambiental Muy Alta ***
Horas Extras Muy Alta ***
Edad Muy Alta ***
Ingresos Mensuales Alta **
Antiguedad Media *

Basados en los análisis anteriores se recomienda:

  1. Trabajar en acciones de mejoramiento del clima laboral que fomenten una Mayor Satisfacción laborales, tales cómo establecer planes de formación y beneficios.

  2. Se recomienda evitar el uso de Horas Extras en los contratos laborales debido a que esta variable aumenta considerablemente el interés de rotar de los empleados.

  3. Se considera más conveniente la contratación de personas mayores a 30 años, favorenciendo con esto el nivel de experiencia de compañia y tambien un mayor nivel de retención del talento por su madurez.

  4. Asi mismo se recomienda trabajar en la definición de planes carrera que motiven a continuar en la compañia por más de 5 años, llevando consigo mayor madurez en edad y menor interés de rotar por antiguedad.

2.

Con base en los datos de créditos proponga un modelo de regresión logístico múltiple que permita predecir el riesgo de default en función de las covariables que considere importantes y seleccionándolas de acuerdo con un proceso adecuado. Tenga en cuenta realizar una evaluación de la significancia de los parámetros, interpretación y proponga un método de evaluación por medio de validación cruzada. Presente métricas apropiadas como el AUC y la curva ROC.