Nuestra base de datos general_data es un data frame en el formato CSV que almacena la información de 4410 trabajadores. Cuenta con 24 columnas o variables, que se clasifican como categórica o numérica:
La variable que buscamos modelar es MonthlyIncome o el salario mensual que reciben los trabajadores. Para la modelación de esta variable proponemos los siguientes metodos:
También, aplicar un método de clusterización, como Kmedias, puede darnos un insight importante en el comportamiento de la variable objetivo. Una herramienta útil para esta parte podría ser PCA, dependiendo de que tanta varianza podamos explicar con dos componentes. El mejor escenario sería juntar ambos métodos.
Analizaremos las variables antes de desarrollar un modelo. A simple vista podemos ver que las variables EmployeeCount, Over18 y StandardHours son constantes para todas las observaciones por lo tanto no se tomaran en cuenta para la modelación.
La variable EmployeeID es un número de identificación para cada trabajador, así que no tiene ninguna relación con la variable objetivo, por lo tanto no se tomará en cuenta en el modelo.
Las siguientes variables numéricas tienen en común que miden años:
TotalWorkingYearsTrainingTimesLastYearYearsWithCurrManagerYearsSinceLastPromotionYearsAtCompanyExiste la posibilidad que haya alguna correlación entre ellas. Después de introducirlas en nuestra Shiny, encontramos que hay una alta correlación entre los siguientes pares de variables:
YearsAtCompany/YearsWithCurrManagerYearsSinceLastPromotion/YearsWithCurrManagerTotalWorkingYears/YearsAtCompanyYearsAtCompany/YearsSinceLastPromotionPor lo tanto, decidimos que la única variable que tomaríamos en cuenta sería YearsAtCompany, asumiendo que las personas con mayor tiempo en la empresa tienen sueldos mas altos.
Después de la limpieza de datos inicial, reducimos el número de variables con las cuales vamos a trabajar, además de que podemos plantear varias hipótesis con respecto a la variable MonthlyIncome:
YearsAtCompany y Age que probablemente tengan una relación positiva con la la variable respuesta.Education, JobRole y MaritalStatus.Aunque podemos modelar la variable respuesta con una sola variable, no estaríamos aprovechando en su totalidad los datos proporcionados por el data frame. Así que, aunque pueda ser una opción para la modelación, la descartaremos.
Podemos ocupar la regresión Lineal Múltiple dada la cantidad de variables proporcionadas. La naturaleza de la variable MonthlyIncome (numérica) permite ocupar este modelo. Para poder crear un modelo de regresión lineal, es necesario que se cumpla con los siguientes supuestos:
Por definición, la regresión logística es ocupada para variables de naturaleza binaria. Nuesta variable respuesta no cumple con esta característica, por lo tanto no nos sirve para modelarla.
Al igual que la regresión logistica es ocupada para variables de naturaleza Categórica con dos o mas escenarios posibles.Por lo tanto no nos sirve para modelar nuestra variable.
Despues de eliminar estas variables decidimos formar tres grupos con las quince variables restantes,de manera aleatoria, la asignacion resulto asi:
| Grupo 1 | Grupo 2 | Grupo 3 |
|---|---|---|
| Age | Attrition | BusinessTravel |
| DistanceFromHome | Department | Gender |
| EducationField | Education | MaritalStatues |
| JobRole | JobLevel | StockOptionLevel |
| NumCompaniesWorked | PercentSalaryHike | YearsAtCompany |
Decidimos evaluar cada grupo con el Modelo de Regresión Múltiple, ya que es el que mas se adapta a nuestra variable respuesta y a nuestras variables explicativas. Despues de introducir estos grupos en nuestra shinny analizamos el summary de cada regresión y analizando el p-value de cada variable vimos cuales eran las mas significativas para cada grupo. De manera descendiente, estas fueron las más importantes con su respectivo nivel de significancia:
| Grupo 1 | Grupo2 | Grupo 3 |
|---|---|---|
| Age(***) | JobLevel(***) | BusinessTravel(***) |
| JobRole(**) | Department(**) | MaritalStatues(*) |
| StockOptionLevel(.) |
Al generar un modelo con todas estas variables se obtiene un modelo con un p-value de \(1.803e^{-08}\). Observamos que la variable StockOptionLevel no es tan significativa así que intentamos quitarla para mejorar el modelo, pero obtuvimos un p-value de \(2.769e^{-08}\), por lo que al final decidimos dejarla.
Para esta parte del análisis, aplicamos PCA para tratar de reducir las dimensiones sin comprometer la varianza en la información. Obtuvimos el siguiente resultado:
La gráfica muestra el porcentaje de varianza acumulado mientras más componentes se tomen en cuenta. Desgraciadamente, con dos componentes apenas explicamos el 44.23% de la varianza total, difícilmente la suficiente para un análisis confiable de la base, por lo que descartamos este enfoque y trabajamos con los datos originales para hacer los clusters.
Entonces, en cuanto al método de Kmedias, primero buscamos el número óptimo de clusters con la gráfica siguiente:
La teoría nos dice que el número óptimo de clusters se da cuando la gráfica tiene una “caída abrupta” o parece una rodilla. Este cambio se ve con 4 clusters. Con esto, ya podemos aplicar el método de Kmedias para tratar de agrupar a los trabajadores con sus similares.
Solo para tener una idea de como se dividen los trabajadores en cuatro clusters, mostramos la gráfica de arriba, pero como ya habíamos mencionado, la varianza que logran explicar con 2 componentes es muy poca. Entonces, con los clusters podemos analizar el comportamiento de las diferentes variables.
En la gráfica de arriba, podemos ver que la variable Age ayuda a diferenciar los clusters, a pesar de que se intersectan los grupos, se pueden apreciar tres grandes clusters. Desgraciadamente, no pasa lo mismo para la variable MonthlyIncome, como se ve a continuación.
Al analizar el Summary del modelo con las variables propuestas podemos llegar a las siguientes conclusiones:
Age(***):Esta variable arrojo un p-value de 0.000470 por lo tanto es muy significativa. Esto se puede explicar por qué las personas mayores son las que cuentan con más experiencia y más años laborando en la empresa por lo tanto conforme pasa el tiempo se van haciendo vitales en sus puestos.
BusinessTravel(***):Esta variable arrojo un p-value de 8.75e^-05 y de 0.000351 para las subcategorías Frequently y Rarely respectivamente. Esto se puede explicar que entre más vuelos de negocios tome mayor será su salario, podemos asumir que la importancia del trabajador es tal que su presencia en otros lados es vital para el funcionamiento de la compañía. Si por otro lado el trabajador no viaja significa que no es tan indispensable para la compañía, disminuyendo su salario.
JobLevel(***):Esta variable arrojo un p-value de 0.000497.Esta variable tiene 5 subcategorias enumeradas del 1 al 5.Como podemos ver en su grafico de Dispersion los salarios de los trabajadores del Level 1 estan distribuidos uniformemente sobre el rango del salario, conforme se va subiendo de nivel se va perdiendo esta uniformidad, llegando al nivel 5 donde la mayoría de los salarios llegan a ser más bajos.Asi que entre menos sea tu Level más probabilidades hay de que tengas un salario alto.
MaritalStatues(***):Esta variable arrojo un p-values de 0.000742 y de 0.436490 para las subcategorías Single y Married respectivamente. Estos resultados nos sorprendieron ya que asumimos que los trabajadores casados son de mayor edad así llevan más años laborando y por lo tanto su sueldo es mayor. Lo cual es completamente contrario a estos resultados donde señalan que si eres soltero es probable que tu salario sea alto.
JobRole: Las siguientes variables arrojaron los siguientes p-values, solo tomaremos los más importantes:
| Job Role | P-Value |
|---|---|
| Manufacturing Director | 0.005170 |
| Laboratory Technician | 0.018464 |
| Research Scientist | 0.076967 |
| Sales Executive | 0.071987 |
Podemos ver que el puesto que más peso tiene es Manufactoring Director, esto se explica ya que al ocupar un puesto con mayor jerarquía es entendible el aumento de responsabilidad y requerimiento de experiencia y esto se refleja en el salario que recibe. Los siguientes trabajos Laboratory Technician y Research Scientist ambos los podemos ver como trabajos de investigación y relacionados a la ciencia, los cuales por su dificultad y nivel de preparación reciben mayor remuneración. Finalmente Sales Executive aunque con un p-value poco significativo llego a afectar el modelo, esto se explica ya que como en el caso de Manufacturing Director ambos tienen un puesto con mayor jerarquía y responsabilidades esto se ve reflejado en su sueldo, además es sabido que el personal del área de ventas en una empresa reciben un buen salario debido a las comisiones que reciben.
Department(**):En esta variable la única subcategoría con importancia fue Research & Development con un p-value de 0.006357 lo cual se llega entender si analizamos la gráfica de dispersión de esta variable, comparándola con los otros dos departamentos (Human Resources y Sales) vemos que esta tiende a tener mayores salarios, esto se debe a que esta área es esencial para la compañía puesto que aquí se realiza la investigación y el desarrollo del producto o servicio que ofrecen necesitando de personas con mayores grados de estudios y años de experiencia.
StockOptionLevel(°): Esta variable arrojo un p-value de 0.068873 lo cual no es tan significativo pero ayuda a ajustar mejor el modelo. StockOptionLevel son una remuneración ofrecida por una empresa a sus trabajadores, normalmente a los altos directivos, como complemento al salario fijo y con el objetivo de mejorar el rendimiento o aumentar la fidelidad. Como podemos ver en el gráfico de dispersión la mayoría de los trabajadores se encuentran en el nivel 0 es decir que no reciben remuneración o si la reciben es muy poca conforme va aumentando el nivel menos personas están en esos grupos explicando porque aunque esta variable va directamente relacionada al aumento del salario no es tan significativa.
En nuestro análisis preliminar creímos que ciertas variables eran clave para la modelación del salario, pero los resultados nos mostraron otra cosa. Un ejemplo clave fue la variable EducationField. Creímos que las subcategorías Medical o Technical Degree serían las que recibirían mayores salarios pero no fue así, la variable entera no mostraba afectar para nada el modelo. Viéndolo desde otro enfoque, esto se puede explicar dado que muchas veces en la vida real se termina laborando en áreas ajenas a tu campo de estudio y esto determina tu salario.
Otra cosa que nos sorprendió fue que creímos que la variable Gender entraría en el modelamiento de la variable pero a nuestra sorpresa no fue significativa, esto habla bien de la empresa ya que esto se traduce a que la brecha salarial entre géneros no es significativa, concluyendo que tu salario no depende si eres hombre o mujer.