Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG8/Grupo5_Tarea8.py
2714 views
1
# -*- coding: utf-8 -*-
2
"""
3
Created on Sat Nov 12 19:49:51 2022
4
5
@author: Usuario
6
"""
7
8
import os # for usernanme y set direcotrio
9
import pandas as pd
10
import numpy as np
11
import weightedcalcs as wc
12
import pyreadr
13
import matplotlib.pyplot as plt # libreria de gráficos
14
import seaborn as sns # libreria 2 para gráficos
15
import datetime as dt # manejar fechas
16
import warnings
17
warnings.filterwarnings('ignore') # eliminar warning messages
18
19
user = os.getlogin()
20
21
os.chdir(f"C:/Users/{user}/Documents/GitHub/1ECO35_2022_2/Lab7")
22
23
poblacion_USA = pyreadr.read_r("../data/wage2015_subsample_inference.Rdata")
24
25
poblacion_USA.keys()
26
27
poblacion_USA_2 = poblacion_USA['data']
28
29
#Pregunta 1
30
31
poblacion_USA_2.head()
32
33
get_ipython().run_line_magic('matplotlib', 'inline')
34
params = {'legend.fontsize': 'x-large',
35
'figure.figsize': (10, 7.5),
36
'axes.labelsize': 'x-large',
37
'axes.titlesize':'x-large',
38
'xtick.labelsize':'x-large',
39
'ytick.labelsize':'x-large'}
40
plt.rcParams.update(params)
41
42
#histograma del salario por hora
43
(counts, bins, patches) = plt.hist(poblacion_USA_2['wage'], bins = 100, color ='lightblue', rwidth=0.8)
44
plt.xlabel('Salario por Hora')
45
plt.ylabel('')
46
plt.title('Pregunta 1 - Histograma de salario')
47
plt.show()
48
49
#histograma del salario por hora en logaritmos
50
(counts, bins, patches) = plt.hist(poblacion_USA_2['lwage'], bins = 100, color ='pink', rwidth=0.8)
51
plt.xlabel('Salario por Hora en Logaritmos')
52
plt.ylabel('')
53
plt.title('Pregunta 1 - Histograma de logaritmo del salario')
54
plt.show()
55
56
#Claramente, se aprecia que al comparar el logaritmo del salario con el salario observamos que el dato con logaritmos
57
#parece tener una distribución más cercana a la de una distribución normal. Esta es la conocido distribución log-normal
58
#y se reduce la variación típica de los salarios por los valores muy altos en pocas personas.
59
60
#Pregunta 2
61
62
fig = plt.subplots(figsize=(10,6))
63
64
#Solo tomamos como data a la población con universidad completa
65
sns.kdeplot (data = poblacion_USA_2[poblacion_USA_2['clg'] == 1],
66
x = 'lwage',
67
hue = 'sex',
68
alpha = 0.6,
69
edgecolor="0.1",
70
linewidth=1,
71
fill=True
72
)
73
74
75
plt.legend(labels=['mujeres','hombres'], title = "", frameon=True, bbox_to_anchor=(1.0, 0.95))
76
plt.title('Log salario por hora', size=10)
77
plt.ylabel('D')
78
plt.xlabel('')
79
80
# Entonces, obtenemos la distribución del salario de mujeres y hombre con universidad completa.
81
# A simple vista, pareciera que la media del salario en logaritmo de los hombres es mayor.
82
83
#Pregunta 3
84
85
poblacion_USA_3 = poblacion_USA_2
86
87
#Generamos valores distintos para cada nivel educativo
88
poblacion_USA_3.loc[poblacion_USA_3["hsg"] == 1, "hsg"] = 1
89
poblacion_USA_3.loc[poblacion_USA_3["hsg"] == 1, "hsg"] = 2
90
poblacion_USA_3.loc[poblacion_USA_3["scl"] == 1, "scl"] = 3
91
poblacion_USA_3.loc[poblacion_USA_3["clg"] == 1, "clg"] = 4
92
poblacion_USA_3.loc[poblacion_USA_3["ad"] == 1, "ad"] = 5
93
94
#Generamos una variable que campture estas diferencias sumando los valores anteriores
95
poblacion_USA_3['nivel_educativo'] = poblacion_USA_3['shs'] + poblacion_USA_3["hsg"] + poblacion_USA_3["scl"] + poblacion_USA_3["clg"] + poblacion_USA_3["ad"]
96
97
#
98
base = poblacion_USA_3.groupby('nivel_educativo')['nivel_educativo'].size() # cantidad de personas por tipo nivel educativo
99
100
fig, ax = plt.subplots( figsize=(10,10) )
101
102
base.plot(kind='pie', autopct='%.1f %%')
103
plt.title("nivel_educativo")
104
plt.ylabel("")
105
plt.show()
106
107
fig.savefig(r'../plots/imagen_python.png', dpi=800, bbox_inches='tight')
108
# Esta sería la leyenda
109
#"secundaria_incompleta" si tenemos el valor de 1
110
#"secundaria_completa" si tenemos el valor de 2
111
#"universidad_incompleta" si tenemos el valor de 3
112
#"universidad_completa" si tenemos el valor de 4
113
#"posgrado" si tenemos el valor de 5
114
115
# dpi: la resolución ; es decir, la calidad o nitidez de la imagen
116
# bbox_inches:tight Ninguna parte del grpáfico se pierde
117
118
#Pregunta 4
119
120
fig, ax = plt.subplots(figsize=(10,6))
121
box = sns.boxplot(x='sex', y='lwage', data = poblacion_USA_2[ poblacion_USA_2['ad'] == 5] ,palette='rainbow')
122
plt.xlabel('Sexo del individuo')
123
plt.ylabel('Logaritmo del salario por hora')
124
(box.set_xticklabels(["Hombre", "Mujer"])) # etiqueta eje x
125
126
#Recordemos que la dummy toma el valor de 1 si hablamos de una mujer. Entonces, observamos que los hombres con el mismo
127
#nivel educativo tienen una media del logaritmo del salario por hora mayor que el de las mujeres. Entonces, podemos
128
#decir que la media del logaritmo del salario de los hombres perdura a lo largo de los niveles educativos universidad
129
#completa y posgrado. De todas formas habría que analizar a fondo esta dsiparidad. Algunos círculos académicos sostienen
130
#que esta diferencia podría explicarse por los trabajos que desempeñan los dos sexos. Es decir, las mujeres tienden a
131
#elegir trabajos peor remunerados. Esto no justifica la disparidad de salarios, pero, en cualquier caso, el tema es popular
132
#actualmente y necesita investigación a fondo para determinar si lo único que determina el salario es el sexo del individuo.
133
134
135
136
137
138
139
140
141
142