Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG8/Grupo_9 (2).ipynb
2714 views
Kernel: Python 3 (ipykernel)
### Grupo 9 #### from IPython.display import display, HTML display(HTML(data=""" <style> div#notebook-container { width: 75%; } div#menubar-container { width: 95%; } div#maintoolbar-container { width: 65%; }a </style> """))
#1.0 Importar librerías import matplotlib.pyplot as plt import pandas as pd import seaborn as sns import datetime as dt import pyreadr import collections import warnings warnings.filterwarnings('ignore')
#2.0 Cargar dataset data = pyreadr.read_r( r"../../data/wage2015_subsample_inference.Rdata") data = data[ 'data' ] data

1. En gráfico muestre el histograma de frecuencias absolutas del salario y , en otro gráfico, el histograma del logaritmo del salario. Comente las diferencias y por qué.

#Tamaño del gráfico fig, ax = plt.subplots( figsize=(8,7) ) #Graficar histograma sns.histplot(data['wage'], color = '#40E0D0') plt.axvline(data['wage'].median(), color='red', linestyle='dashed', linewidth=1) ##ver mediana de wage #Título al gráfico plt.title('Histograma de frecuencias absolutas del salario') # función labels para alterar las etiquetas de los ejes plt.xlabel('Salario') plt.ylabel('Frecuencia absoluta') #nota del fuente txt="Elaboración en base al RData" plt.figtext(0.04, 0.02, txt, wrap=True, horizontalalignment='left', va="top", fontsize=10) # ubicación de la nota de fuente
Text(0.04, 0.02, 'Elaboración en base al RData')
Image in a Jupyter notebook
#Tamaño del gráfico fig, ax = plt.subplots( figsize=(8,7) ) #Graficar histograma sns.histplot(data['lwage'], color = '#40E0D0',alpha=0.4) plt.axvline(data['lwage'].median(), color='red', linestyle='dashed', linewidth=1) #ver mediana de lwage #Título al gráfico plt.title('Histograma de frecuencias absolutas del logaritmo del salario') # función labels para alterar las etiquetas de los ejes plt.xlabel('Logaritmo del salario') plt.ylabel('Frecuencia absoluta') #nota del fuente txt="Elaboración en base al RData" plt.figtext(0.04, 0.02, txt, wrap=True, horizontalalignment='left', va="top", fontsize=10) # ubicación de la nota de fuente
Text(0.04, 0.02, 'Elaboración en base al RData')
Image in a Jupyter notebook

Se cambia la variable a logaritmo ya que se trata de escoger una transformación que conduzca a una distribución simétrica, y más cercana a la normal. Para distribuciones asimétricas positivas (frecuencias altas hacia el lado izquierdo de la distribución), se suele usar el logaritmo, pues comprime los valores altos y expande los pequeños. Tal sería el caso del primer gráfico, ya que claramente se observa una asimetría asimétrica positiva más fuerte porque existen valores que se distancian considerablemente de la media del salario así como también la transformación reduce los valores altos de la frecuencia en el primer caso.

2. En una sola imagen, el gráfico de densidad del logaritmo del salario por hora de las mujeres que terminaron la universidad y el caso de los hombres.

# Filtrar a las personas que terminaron la universidad data_univ = data[data.clg.isin([1])|data.ad.isin([1])] # Variables relevantes data_univ = data_univ[["lwage", "sex"]] data_h_m=pd.DataFrame() # Renombrar las columnas data_h_m = data_univ.pivot(columns='sex',values='lwage') data_h_m.columns =['mujer','hombre']
# Graficar la distribución de lwage por sexo data_h_m.plot.density(figsize = (7, 7), linewidth = 4) plt.xlabel("lwage by sex")
Text(0.5, 0, 'lwage by sex')
Image in a Jupyter notebook

3. En un gráfico Pie, muestre el porcentaje de personas según nivel educativo.

# shs: Si la persona tiene secundaria incompleta (Some high school) # shg: secundaria completa (High schoool graduate) # scl: Universitaria incompleta (Some college) # clg: Universitaria completa (College gratuate) # ad: Grado educativo avanzado (Advanced degree - master or Phd) data['educ']= data['shs']*0 + data['hsg']*2 + data['scl']*3 + data['clg']*4 + data['ad']*5 base = data.groupby([ 'educ' ]).count()
base
labels=['Secunaria Incompleta','Secundaria Completa' , 'Universitaria Incompleta', 'Universitaria Completa', 'Grado avanzado'] plt.figure(figsize=(5,5)) ax = plt.pie(base['hsg'], labels =labels, autopct='%.2f %%') plt.title('Porcentaje de personas segun nivel educativo') plt.show()
Image in a Jupyter notebook

4. En un gráfico, muestre el diagrama de cajas (box - plot) del logaritmo del salario por hora de las personas con el mayor nivel educativo (ad) según genero.

Nótese que el gráfico debe contener dos box-plot uno para los hombres y otro para las mujeres

filtro_ad=data[data['ad'] == 1 ] filtro_ad #solo los individuos con maximo nivel educativo
fig, ax = plt.subplots(figsize=(10,6)) box = sns.boxplot(data=filtro_ad, x='sex', y="lwage", palette ="rainbow") plt.xlabel('Sexo') plt.ylabel('Logaritmo del salario') (box.set_xticklabels([ "Hombre", "Mujer"]))
[Text(0, 0, 'Hombre'), Text(1, 0, 'Mujer')]
Image in a Jupyter notebook