Descripción de la actividad

La siguiente actividad consiste en realizar un analisis de una base de datos de una compañía que presenta una situación de alta rotación (personas que se retiran de manera voluntaria) en algunos empleados, en la cual se identifican posibles factores que se relacionan con la rotación tales como salario, carga laboral entre otros. Se pretende, que el estudiante realice una descripción de la base, luego cree relaciones entre factores previamente identificados con la rotación y finalmente con estos factores, proponer una estrategia para mejorar las cifras de rotación. Con base en los datos de rotación realizar los puntos 1 a 4:

Cargue de la base de datos

Iniciaremos este documento con el importe de la base de datos de rotación y las librerias a utilizar :

library (ggplot2)
library (ggpubr)
library(CGPfunctions)
## Warning in .recacheSubclasses(def@className, def, env): undefined subclass
## "packedMatrix" of class "replValueSp"; definition not updated
## Warning in .recacheSubclasses(def@className, def, env): undefined subclass
## "packedMatrix" of class "mMatrix"; definition not updated
library(dplyr)
library(readxl)
datos <- read_excel("C:/Users/HP/Desktop/Maestría Ciencias de Datos/Metodos y simulación estadística/Datos_Rotacion.xlsx")
View(datos)

Punto 1

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 qué 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).

Las variables a escoger para analizar la relación con la rotación, serán las siguientes con sus respectivas hipótesis:

Variables categóricas

Nombre de la variable Hipótesis planteada
1) Género Se plantea la hipótesis de que el género está relacionado con la rotación. Se piensa que las mujeres podrían presentar una alta rotación debido a la diferencia salarial que puede haber con respecto a los hombres.
2)Satisfación_Laboral Se plantea la hipótesis de que la satisfacción laboral está relacionada con la rotación. Se piensa que las personas con menor satisfacción laboral tienden a rotar más que las personas con mayor satisfacción laboral, debido a la inconformidad presentada en el trabajo.
3) Estado_Civil Se plantea la hipótesis de que el estado civil está relaciona con la rotación. Se piensa que las personas solteras tienen una mayor rotación debido a la menor necesidad de tener estabilidad laboral y mayor dinamismo en el estilo de vida.

Variables cuantitativas

Nombre de la variable Hipótesis planteada
4) Trabajos_Anteriores Se plantea la hipótesis de que el número de trabajos anteriores está relacionado con la rotación. Se piensa que las personas con mayor número de trabajos anteriores son mas propensas a rotar debido a su historial de alta rotación.
5) Ingreso_Mensual Se plantea la hipótesis de que los ingresos mensuales está relacionados con la rotación. Se piensa que las personas con mayores ingresos tienen menos rotación debido a la buena posición a la que han llegado en la empresa.
6) Edad Se plantea la hipótesis de que la edad está relacionada con la rotación. Se piensa que las personas de mayor edad tienden a rotar menos que las personas de menor edad debido a que las primeras prefieren mayor estabilidad.

Punto 2

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

Variables categóricas

1) Genero

Analisis univariado:

y <- table1::table1(~Genero, data = datos)
y
Overall
(N=1470)
Genero
F 588 (40.0%)
M 882 (60.0%)

El set de datos esta compuesto por 60% mujeres y 40% hombres.

2)Satisfación_Laboral

Análisis univariado:

table(datos$Satisfación_Laboral)
## 
##   1   2   3   4 
## 289 280 442 459
y <- table(datos$Satisfación_Laboral)
prop.table(y)
## 
##         1         2         3         4 
## 0.1965986 0.1904762 0.3006803 0.3122449
x <- table(datos$Satisfación_Laboral)
barplot.default(x, main =  "Satisfación laboral", col = 1:4)

Se puede decir que el 61% de los empleados tiene una satisfacción favorable de 3 o 4, mientras que un 39% tiene una satisfacción desfaborable de 1 o 2.

3) Estado_Civil

Análisis univariado:

table(datos$Estado_Civil)
## 
##     Casado Divorciado    Soltero 
##        673        327        470
y <- table(datos$Estado_Civil)
prop.table(y)
## 
##     Casado Divorciado    Soltero 
##  0.4578231  0.2224490  0.3197279
x <- table(datos$Estado_Civil)
pie(x, main = "Distribución de estado civil" )

La mayoría de los empleados (un 46%) se encuentran casados.

Variables cuantitativas

4) Trabajos_Anteriores

Análisis univariado:

table(datos$Trabajos_Anteriores)
## 
##   0   1   2   3   4   5   6   7   8   9 
## 197 521 146 159 139  63  70  74  49  52
prop.table(table(datos$Trabajos_Anteriores))
## 
##          0          1          2          3          4          5          6 
## 0.13401361 0.35442177 0.09931973 0.10816327 0.09455782 0.04285714 0.04761905 
##          7          8          9 
## 0.05034014 0.03333333 0.03537415
summary(datos$Trabajos_Anteriores)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   2.000   2.693   4.000   9.000

el 35% de los trabajadores ha tenido un trabajo anterior al que tienen actualmente, adicional a esto la media de trabajos anteriores es de 2.7

5) Ingreso_Mensual

Análisis univariado:

hist.default(datos$Ingreso_Mensual, main = "Histograma de Ingresos Mensuales", col = "lightblue", xlab= "Ingresos Mensuales")

summary(datos$Ingreso_Mensual)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1009    2911    4919    6503    8379   19999

La distribución de los ingresos mensuales es sesgada a la derecha con una media de $6503

6) Edad

Análisis univariado:

hist.default(datos$Edad, main = "Histograma de Edad", col = "lightblue", xlab= "Edad de los empleados")

summary(datos$Edad)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   18.00   30.00   36.00   36.92   43.00   60.00

La edad de los empleados presenta una distribución aproximadamente simétrica con una media de 37 años.

Punto 3

Realizar un análisis de bivariado en donde la variable respuesta sea la rotación, con base en estos resultados identifique cuales son las variables determinantes de la rotación e interpretar. Compare estos resultados con la hipotesis planteada en el punto 1.

Variables categóricas

1) Genero

Análisis de bivariado:

require(CGPfunctions)
PlotXTabs2(data = datos,x = Genero, y = Rotación)

De las estadísticas anteriores podemos resumir que el 14.8% de las mujeres han rotado, mientras que los hombres tienen un porcentaje de rotación del 17%. Para verificar si hay evidencia suficiente para concluir no homogeneidad en la distribucíon de rotación por genero se ejecuta un test chicuadrado, el cual concluye con un p value de 0.2906, que las distribuciones son homogeneas. No hay diferencia en la rotación por género.

2)Satisfación_Laboral

Análisis de bivariado:

data <- data.frame(datos$Satisfación_Laboral, datos$Rotación)
table(data)
##                          datos.Rotación
## datos.Satisfación_Laboral  No  Si
##                         1 223  66
##                         2 234  46
##                         3 369  73
##                         4 407  52
prop.table(table(data), margin= 1)
##                          datos.Rotación
## datos.Satisfación_Laboral        No        Si
##                         1 0.7716263 0.2283737
##                         2 0.8357143 0.1642857
##                         3 0.8348416 0.1651584
##                         4 0.8867102 0.1132898
PlotXTabs2(data = datos,x =  Satisfación_Laboral , y = Rotación)

De estos resultados, podemos concluir que la rotación si se ve influenciada por el nivel de satisfacción laboral, esto se puede soportar con el p value de la prueba chi cuadra p = 0.0005563; De la grafica podemos intuir que a medida que los niveles de satisfacción son mas altos, la proporción es menor.

3) Estado_Civil

Análisis de bivariado:

data <- data.frame(datos$Estado_Civil, datos$Rotación)
table(data)
##                   datos.Rotación
## datos.Estado_Civil  No  Si
##         Casado     589  84
##         Divorciado 294  33
##         Soltero    350 120
prop.table(table(data), margin= 1)
##                   datos.Rotación
## datos.Estado_Civil        No        Si
##         Casado     0.8751857 0.1248143
##         Divorciado 0.8990826 0.1009174
##         Soltero    0.7446809 0.2553191
chisq.test(datos$Estado_Civil, datos$Rotación)
## 
##  Pearson's Chi-squared test
## 
## data:  datos$Estado_Civil and datos$Rotación
## X-squared = 46.164, df = 2, p-value = 9.456e-11
PlotXTabs2(data = datos,x =  Estado_Civil , y = Rotación)

De los resultados anteriores, podemos concluir que si hay diferencia significativa en la rotación por estado civil. De la gráfica podemos intuir que las personas solteras tienden a rotar más que las personas casadas o divorciadas.

Variables cuatitativas

4) Trabajos_Anteriores

Análisis de bivariado:

data <- data.frame(datos$Trabajos_Anteriores, datos$Rotación)
x <- prop.table(table(data), margin = 1)
x
##                          datos.Rotación
## datos.Trabajos_Anteriores        No        Si
##                         0 0.8832487 0.1167513
##                         1 0.8119002 0.1880998
##                         2 0.8904110 0.1095890
##                         3 0.8993711 0.1006289
##                         4 0.8776978 0.1223022
##                         5 0.7460317 0.2539683
##                         6 0.7714286 0.2285714
##                         7 0.7702703 0.2297297
##                         8 0.8775510 0.1224490
##                         9 0.7692308 0.2307692
plot(x[,2], xlab = "Numero de trabajos anteriores", ylab =  "Proporción de rotación") #Graficando la proporción de rotación vs el número de trabajos anteriores 

De los resultados anteriores se puede concluir que no existe una relación clara entre el numero de trabajos anteriores y la rotación.

5) Ingreso_Mensual

Análisis de bivariado:

Antes de iniciar el analisis bivariado se debe conocer el resumen de los ingresos para saber los limites en que se va a agrupar esta variable continua.

summary(datos$Ingreso_Mensual)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1009    2911    4919    6503    8379   19999
library(readxl)
datos <- read_excel("C:/Users/HP/Desktop/Maestría Ciencias de Datos/Metodos y simulación estadística/Datos_Rotacion.xlsx")
View(datos)

K = (19999-10009)/4

datos$Ingreso_Mensual =  cut(datos$Ingreso_Mensual,breaks = seq(1009,19999, by = K))

data <- data.frame(datos$Ingreso_Mensual , datos$Rotación)

prop.table(table(datos$Ingreso_Mensual, datos$Rotación), margin = 1 )
##                      
##                               No         Si
##   (1.01e+03,3.51e+03] 0.73206751 0.26793249
##   (3.51e+03,6e+03]    0.88382688 0.11617312
##   (6e+03,8.5e+03]     0.89340102 0.10659898
##   (8.5e+03,1.1e+04]   0.82638889 0.17361111
##   (1.1e+04,1.35e+04]  0.91836735 0.08163265
##   (1.35e+04,1.6e+04]  0.92500000 0.07500000
##   (1.6e+04,1.85e+04]  1.00000000 0.00000000
chisq.test(datos$Ingreso_Mensual, datos$Rotación)
## 
##  Pearson's Chi-squared test
## 
## data:  datos$Ingreso_Mensual and datos$Rotación
## X-squared = 67.201, df = 6, p-value = 1.531e-12
q <- PlotXTabs2(data = datos,x = Ingreso_Mensual,y = Rotación, label.text.size = 3)
q + theme(axis.text.x = element_text(angle = 40, vjust = 1, hjust=1, size=9, face="plain"))

Después de la agrupación de los ingresos, podemos identificar graficamente que si existe una diferencia en la participación de la rotación segun el ingreso laboral. Esto lo podemos confirmar con el test chi cuadrado el cual rechaza la hipotesis de homogeneidad en la distribución, luego el ingreso si es una variable significativa en la rotación.

6) Edad

Análisis de bivariado:

summary(datos$Edad)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   18.00   30.00   36.00   36.92   43.00   60.00
library(readxl)
datos <- read_excel("C:/Users/HP/Desktop/Maestría Ciencias de Datos/Metodos y simulación estadística/Datos_Rotacion.xlsx")
View(datos)

t.test(datos$Edad ~ datos$Rotación)
## 
##  Welch Two Sample t-test
## 
## data:  datos$Edad by datos$Rotación
## t = 5.828, df = 316.93, p-value = 1.38e-08
## alternative hypothesis: true difference in means between group No and group Si is not equal to 0
## 95 percent confidence interval:
##  2.618930 5.288346
## sample estimates:
## mean in group No mean in group Si 
##         37.56123         33.60759
K = (60-18)/6

datos$Edad =  cut(datos$Edad,breaks = seq(18,60, by = K))

data <- data.frame(datos$Edad , datos$Rotación)

prop.table(table(datos$Edad, datos$Rotación), margin = 1)
##          
##                   No         Si
##   (18,25] 0.65217391 0.34782609
##   (25,32] 0.78371501 0.21628499
##   (32,39] 0.88194444 0.11805556
##   (39,46] 0.90425532 0.09574468
##   (46,53] 0.87581699 0.12418301
##   (53,60] 0.87356322 0.12643678
chisq.test(datos$Edad, datos$Rotación)
## 
##  Pearson's Chi-squared test
## 
## data:  datos$Edad and datos$Rotación
## X-squared = 56.132, df = 5, p-value = 7.633e-11

El primer Welch two sample t-test concluye que la media de la edad en empleados que rotan y los que no, es diferente. Graficamente se puede concluir que los empleados de menor edad tienden a tener una mayor rotación que los empleados de mayor edad. Esto se puede sustentar con el chi- test ejecutado, el cual soporta la hipótesis de que la edad es una variable significativa en la rotación.

Punto 4

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).

Del análisis de los resultados del punto 3 se pueden extraer las siguientes conclusiones y estrategias con el fin de reducir la rotación en la compañía: