Explorando el impacto de la educación, la experiencia laboral y los ingresos

  • 23 Jul, 2023
  • read

El contenido presentado en este artículo está destinado únicamente para fines académicos. Las opiniones expresadas se basan en mi comprensión e investigación personal. Es importante tener en cuenta que el campo de los grandes datos y los lenguajes de programación discutidos, como Python, R, Power BI, Tableau y SQL, son dinámicos y están en constante evolución. Este artículo tiene como objetivo fomentar el aprendizaje, la exploración y la discusión dentro del campo en lugar de proporcionar respuestas definitivas. Se recomienda la discreción del lector.

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from statsmodels.formula.api import ols
marketing1 = pd.read_csv(r'D:\helen\Documents\PythonScripts\datasets\kaggle\ifood_df.csv')
marketing1.head()

OUTPUT

image



Se crea una nueva columna

La función llamada YearsEducation que toma una fila de datos como entrada y calcula el número total de años de educación según el nivel de educación especificado en la fila. La función itera sobre diferentes niveles educativos (educación_PhD, educación_Máster, educación_Graduación, educación_Básico) y agrega el número correspondiente de años a la variable años.


def YearsEducation(row):
    years = 0

    if row['education_PhD'] == 1:
        years += 2  # Add 2 years for PhD

    if row['education_Master'] == 1:
        years += 2  # Add 2 years for master's degree

    if row['education_Graduation'] == 1:
        years += 5  # Add 5 years for graduation

    if row['education_Basic'] == 1:
        years += 10  # Add 10 years for basic

    years += 1  # Add 2 years for basic PhD
    years += 1  # Add 2 years for Master
    years += 3  # Add 5 years for Graduation
    years += 5  # Add 10 years for Basic


    return years

marketing1['YearsEducation'] = marketing1.apply(YearsEducation, axis=1)
Creamos una nueva columna - variable

Hagamos lo mismo con JobExperience


def JobExperience(row):
    years = 0

    if row['education_PhD'] == 1:
        years += 2  # Add 2 year of JobExperience

    if row['education_Master'] == 1:
        years += 2  # Add 2 years of JobExperience

    if row['education_Graduation'] == 1:
            years += 5  # Add 5 years of JobExperience

    if row['education_Basic'] == 1:
                years += 1  # Add 1 years of JobExperience

    years += 1  # Add 1 years for PhD
    years += 1  # Add 2 years for Master
    years += 3  # Add 5 years for Graduation
    years += 1  # Add 1 years for Basic

    return years

marketing1['JobExperience'] = marketing1.apply(JobExperience, axis=1)
Creamos una nueva columna - variable para completar el modelo

Calcular el cuadradado de la variable in Python usando pow() metodo. JobExperienceSquare

marketing1['JobExperienceSquared'] = marketing1['JobExperience'].apply(lambda x: pow(x, 2))

Se calcula el modelo de Regresion Multiple
Income_vs_YearsEducation1 = ols("Income ~ YearsEducation + JobExperience + JobExperienceSquared",
                        data=marketing1).fit()
print(Income_vs_YearsEducation1.params)
OUTPUT
Intercept                4306.238982
YearsEducation          -3482.609229
JobExperience           17753.208824
JobExperienceSquared     -788.168509
dtype: float64

El valor de intercepción de 4306.238982 representa el ingreso estimado cuando YearsEducation es cero. El coeficiente de la variable YearsEducation es -3482, lo que indica que el promedio, por cada año adicional de educación, el ingreso esperado disminuye en aproximadamente $3482 y por cada año de JobExperience los Income obtenidos serán $17753 y JobExperienceSqueared es positivo hasta cierto punto donde comenzará a disminuir en -788 los Income



Se incluye la variable categórica marital status en el modelo de regresión sin usar dummy coding or one-hot encoding. En su lugar, usemos los levels de la variable como parámetros en la fórmula del modelo.

Income_vs_numcateg = ols("Income ~ YearsEducation + JobExperience + JobExperienceSquared + maritalstatus + 0",
                        data=marketing1).fit()
print(Income_vs_numcateg.params)
OUTPUT
maritalstatus[Divorced]     5168.166512
maritalstatus[Married]      4660.514211
maritalstatus[Single]       4707.647165
maritalstatus[Together]     4927.548932
maritalstatus[Widow]        9181.141773
YearsEducation             -3469.387292
JobExperience              17571.756723
JobExperienceSquared        -778.507442
dtype: float64
Aqui una interpretacion:

estado civilDivorced: En promedio, las personas divorciadas tienen un aumento estimado en los ingresos de $5.168.17 unidades respecto al nivel de referencia. estado civilMarried: En promedio, las personas que están casadas tienen un aumento estimado en los ingresos de $4.660,51 unidades respecto al nivel de referencia. estado civilSingle: En promedio, las personas solteras tienen un aumento estimado en los ingresos de $4.707.65 unidades respecto al nivel de referencia. estado civilTogether: En promedio, las personas que están en una relación (juntos) tienen un incremento estimado en los ingresos de $4.927.55 unidades en comparación con el nivel de referencia. estado civilWidow: En promedio, las personas que enviudan tienen un aumento estimado en los ingresos de $9.181.14 unidades respecto al nivel de referencia.

Además, los valores negativos del coeficiente para YearsEducation sugieren que un aumento en los años de educación está asociado con una disminución en los ingresos, en igualdad de condiciones. Los coeficientes positivos para JobExperience y JobExperienceSquared sugieren que los niveles más altos de experiencia laboral (y su término al cuadrado) están asociados con ingresos más altos.