Está en la página 1de 4

Introducción STATA.

do - Printed on 23/3/2022 12:49:30


1 *Clase inicial STATA (cuestiones básicas, con comentarios para mí mismo)
2 clear all
3 chdir "G:\Mi unidad\Econometría y estadística\Curso - Trombetta\Datos\Clase 1"
4
5
6 *Conversar un poco de STATA y su potencia (datos, regresiones, métodos, procedimientos
automatizados, etc).
7
8 *Presentar el panel
9
10 *Comentar mi estética
11
12 *Comentar comentarios * y /**/
13
14 *Comentar case sensitive
15
16 *Hablar de buenas prácticas
17
18 **************************************************************************
19
20 /*Comentar formas alternativas de traer datos:
21 Copiar y pegar
22 use "nombredta.dta"
23 */
24 *Importar desde un excel → HABLAR DEL FORMATO DE DATOS
25 import excel "para_comenzar.xlsx", firstrow case (lower)
26 *Luego de una coma ponemos OPCIONES
27
28 *Cuidado cómo se expresan los decimales
29 *Si se tiene problemas al respecto ver 'set dp'.
30 *Comentar cómo setear esto en excel
31
32 ********************************************************************************
33
34 *Podemos guardar la base en formato dta
35 save "formatodta", replace
36
37 *Labeling y nombres
38 rename edad años
39 rename años edad
40
41 label variable region "Región de residencia"
42 label variable edad "Edad medida en años"
43 label variable edad2 "Cuadrado de la edad"
44 label variable educ "Años de educación"
45 label variable est_civil "0 si soltero, 1 si casado"
46 label variable experiencia "Años de experiencia"
47 label variable experiencia2 "Cuadrado de años de experiencia"
48 label variable formal "0 si trabaja en sector informal, 1 si formal"
49 label variable sexo "0 si hombre, 1 si mujer"
50 label variable sexo_educ "sexo * educ"
51 label variable error "Error (no se conoce)"
52 label variable w "log del salario"
53
54
55 *Cargar el mismo dta
56 clear
57 use "formatodta"
58
59 *Si quisiéramos exportar a excel
60 * export excel using "datos", firstrow(variables) replace
61
62 ********************************************************************************
63 ********************************************************************************
64 ********************************************************************************
65 *Explorar la base
66 browse
67 *Toda la base

Page 1
Introducción STATA.do - Printed on 23/3/2022 12:49:30
68 describe /*datos de la base (labels, format, etc)*/
69 summ /*estad descriptivas de la base*/
70
71 /*No podemos tener experiencia negativa*/
72 *drop if experiencia < 0
73 keep if experiencia >= 0
74 summ
75 save "formatodta", replace
76 *Una o más variables
77 describe educ
78 summ educ
79
80 * ¿Qué pasa con la variable region?
81 describe region
82 summ region
83
84 tab region
85 tab edad
86 *También podemos obtener más medidas de resumen:
87 tabstat edad, statistics (mean median sd count)
88 tabstat w, statistics (mean median sd count)
89 *Mean=media
90 *median=mediana
91 *sd= desv est
92 *count = contar (excluímos los NA)
93
94 *Explicar lo que es una variable Dummy y para que sirve
95 tabstat est_civil, statistics (mean count)
96
97 *También lo podemos abrir en grupos
98 tabstat w, statistics (mean median sd count) by(sexo)
99
100 *Cuadro doble entrada
101 tab est_civil sexo
102
103
104 ********************************************************************************
105 * Variables, condicionales y NA
106
107 /*Tips y reglas para nombrar variables:
108 Fáciles
109 Cortos
110 No pueden tener espacios, usen guión bajo
111 Eviten mezclar mayus y minusc
112 No usen nombres preexistentes
113 */
114 gen salario = exp(w)
115 tabstat salario, statistics (mean median sd count) by(sexo)
116
117
118 /*Condicionales
119 <= menor o igual
120 < menor
121 == igual
122 >= mayor o igual
123 > mayor
124 != distinto
125 */
126
127
128 tab est_civil if sexo == 1
129
130 *Prestar atención a cambios hechos y a NA
131 gen cat_educ = .
132 replace cat_educ = 0 if educ == 0
133 replace cat_educ = 1 if educ > 0 & educ <= 6
134 replace cat_educ = 2 if educ > 6 & educ <= 12
135 replace cat_educ = 3 if educ > 12 & educ <= 17

Page 2
Introducción STATA.do - Printed on 23/3/2022 12:49:30
136 replace cat_educ = 4 if educ > 17
137
138 tab cat_educ
139 summ cat_educ /*Qué está pasando con cantidad de observaciones?*/
140 tabstat cat_educ, statistics (count)
141
142 *Para ALGUNOS CASOS PARTICULARES, relacionados con funciones, usamos egen.
143 egen educ_media = mean(educ)
144 drop educ_media
145
146 *Descripción en apertura por categorías (¿por qué categorías?)
147 table cat_educ, contents (mean salario sd salario)
148 table region, contents (mean salario sd salario)
149
150 ********************************************************************************
151 ********************************************************************************
152 ********************************************************************************
153
154 *Recapitulando, vimos como manipular base/variables: gen, replace, drop, keep
155 *ej
156 gen sal_cuadr=salario^2
157 drop sal_cuadr
158
159 *Para sobreescribir una variable podemos usar replace
160 replace sal_cuadr = salary^3 /*Error*/
161
162 gen sal_cuadr = salario^2
163 replace sal_cuadr = salario^3 /*ok*/
164 *y podemos repetirlo
165 replace sal_cuadr = salario^2 /*ok*/
166
167 ********************************************************************************
168 ********************************************************************************
169 ********************************************************************************
170 *CATEGÓRICAS
171 *Bonus:
172 tab region, ge(region)
173 br
174 br region1-region5
175
176 *check
177 gen suma = region1 + region2 + region3 + region4 + region5
178 summ suma
179 drop suma
180 ********************************************************************************
181 ********************************************************************************
182 ********************************************************************************
183
184 *Ordenado de la base. Sort ordena en orden ascendente. gsort permite descendente al poner un '-'
adelante.
185
186 sort salario/*ascendente*/
187 gsort -salario/*descendente*/
188 gsort salario -est_civil
189
190 *Para lo que haremos no creo que encontremos tanta utilidad pero con otras bases sí!
191
192 *Esto permite también una interaccion con comandos.
193 bysort est_civil: egen media_salario= mean(salario)
194 tab est_civil media_salario
195 drop media_salario
196
197 *Podríamos hacer medias por más subcategroías
198 bysort est_civil sexo: egen media_salario= mean(salario)
199 drop media_salario
200
201 *Comentario: los NA al usar sort/gsort se toman como el valor más grande
202

Page 3
Introducción STATA.do - Printed on 23/3/2022 12:49:30
203 ********************************************************************************
204 ********************************************************************************
205 ********************************************************************************
206
207
208 *Gráficos (notar que STATA abre de a uno):
209 *(Mostrar algo del editor y cómo guardar)
210
211 *Histograma
212 hist salario /*Notación científica*/
213 *Cambiar formato:
https://www.statalist.org/forums/forum/general-stata-discussion/general/1359404-scientific-notation
-on-histogram-with-frequency-option
214 *Tipos de formato: http://wlm.userweb.mwn.de/Stata/wstatfor.htm
215 hist salario, yla(, format(%9.4f) ang(h)) /*Keseso en el eje de las y? La densidad (VAC)...
Quizás no es lo ideal*/
216 *Explicación histogramas: https://www.reed.edu/psychology/stata/gs/tutorials/histograms.html
217 hist salario, percent /*Freq rel*/
218 hist salario, freq /*Freq abs*/
219 hist salario, normal /*Ponemos la normal que mejor ajusta*/
220 hist edad, normal /*Ponemos la normal que mejor ajusta*/
221 hist salario, kdensity /*kernel*/
222
223 *Dispersión
224 graph twoway scatter salario educ
225 graph twoway scatter salario educ if sexo == 0 /*tmb podemos acotar*/
226 twoway scatter salario educ if sexo == 0 /*simplificar redacción*/
227 scatter salario educ if sexo == 0 /*simplificar redacción*/
228
229 twoway (scatter salario educ) (lfit salario educ ), title(Relación educación y salario)
/*Añadimos una recta de reg a modo ilustrativo (no necesariamente igual a la de una regresión
multivariada)*/
230
231 *Última y comentamos opciones
232 graph pie region1-region5
233 graph pie region1-region5, title(Distribución geográfica)
234 graph pie region1-region5, title(Distribución geográfica) subtitle(Subdivisión en 5 regiones)
235
236 graph pie region1-region5, title(Distribución geográfica) subtitle(Subdivisión en 5 regiones)
noclockwise
237
238 ********************************************************************************
239 ********************************************************************************
240 ********************************************************************************
241 *REGRESIONES
242 reg salario educ
243
244 *Muestras acotadas
245 set seed 12
246 gen random = runiform()
247
248 reg salario educ
249 estimates store total
250 reg salario educ if random > .98
251 estimates store subsample1
252 reg salario educ if random > .989
253 estimates store subsample2
254 reg salario educ if random > .999
255 estimates store subsample3
256
257
258 estimates table total subsample1 subsample2 subsample3, star b(%9.4f) title(Comparación
estimaciones)
259
260 *Otro caso
261 reg salario sexo
262 reg salario sexo if random > .99
263 reg salario sexo if random > .998

Page 4

También podría gustarte