-
Notifications
You must be signed in to change notification settings - Fork 0
/
1. Previo al analisis
263 lines (229 loc) · 9.5 KB
/
1. Previo al analisis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
////////////////////////////////////////////////////////////////////////////////
// PROYECTO: INTRODUCCION A STATA
// AUTOR: ADRIAN ALEJANDRO DELGADO RIVERO
// BASE DE DATOS: -
// FUENTE: -
// VARIABLES: -
// CONTACTO: [email protected]
// CONTACTO: +591 69539797
// PAIS: Bolivia
////////////////////////////////////////////////////////////////////////////////
*1. UTILIDADES PREVIAS
{
*1.1. COMENTARIOS: Una buena practica de programacion es comentar el codigo indicando que realiza una funcion o en que etapa del codigo uno se encuentra.
{
* Existen dos formas de comentar el codigo dentro de STATA:
* (1) Usando "*" al inicio de la linea de codigo, asi toda la linea sera un comentario
* (2) Usando "//" que se puede utilizar de dos formas
* (a) Al inicio de la linea de cogio, para que toda la linea sea un comentario
* (b) Al final de un codigo, para poder explicar que realiza dicho codigo
* Ejem:
set mem 300m // Aumenta la memoria del sistema a 300 megas
}
*1.2. OCULTAR LINEAS DE CODIGO: Para poder revisar el do. file de forma rapida entre secciones establecidas por el analista se puede abreviar el codigo de dos formas:
{
* (1) Usando "{}" Permite ocultar todas las lineas de codigo que esten dentro del rango que esta dentro de las llaves
* (2) Usando "/*" Permite ocultar todas las lineas de codigo que esten por debajo de la misma
}
*1.3. COMANDOS PREVIOS AL ANALISIS: Antes de realizar cualquier analisis estadictico es necesario ejecutar unos cuantos comandos previos en STATA
{
*(1) Memoria: El sistema tiene una memoria limitada, por lo que es necesario ampliarla
{
clear all //Borra todo registro en la memoria de stata
set memory 50m // aumentamos la memoria del sistema a 50 megas
set max memory 2048m // establecemos la memoria maxima
}
*(2) Directorio: Nos permite almacenar y abrir archivos del una carpeta (do files, log, bases de datos)
{
*Creamos el directorio en la carpeta EJEMPLO, dentro la ruta
cd "C:\Users\Usuario\Documents\Bases de datos\EJEMPLO"
*Nota: Para que funcione esta linea de codigo crear en la carpeta Documents la carpeta "Bases de datos" y dentro creamosla carpeta "EJEMPLO"
}
*(3) Archivo de registro
{
*(a) Abrimos /creamos archivo de registro (guarda los resultados obtenidos). Se tienien dos opciones:
log using name.smcl // para archivo smcl
log using name.log, replace // para archivo log (es más facil llevarlo a excel)
*Nota: En caso de no tener un directorio definido el codigo seria el siguiente:
{
log using "C:\Users\Usuario\Documents\Bases de datos\EJEMPLO\name.smcl"
log using "C:\Users\Usuario\Documents\Bases de datos\EJEMPLO\name.log"
}
*(b) Suspendemos el grabado de registro (idealmente hacerlo cuando se esta en un periodo de prueba y error)
log off
*(c) Suspendemos el grabado de registro (reanudamos cuando tenemos el analisis en limpio)
log on
*(d) Cerramos el archivo de registro (una vez concluido el analisis )//
log close
}
}
}
*2. FUNCIONES
{
* 2.1 Expresiones Logicas Significado
{
& // Y (AND)
| // O (OR)
> // Mayor que
< //Menor que
== // Igual a
! = // Diferente a
>= // Mayor o Igual
<= // Menor o Igual
}
*2.2 Expresiones Aritmeticas
{
+ // Mas,
- // Menos
* // multiplicacion
/ // division
}
*2.3 Algunas funciones Matematicas
{
abs() Valor absoluto
comb(n,k) //the combinatorial function n!=/{k!(n - k)!}
exp(x) /// función exponencial
expm1(x) /// funcion e^x - 1
round(x; y) // /redondea x en unidades de y;
round(.,1) /// rodondea a la integral m´as cercana.
ln() /// logaritmo natural
min(x1; x2; : : :) /// el m´inimo de x1; : : : ; xn
max(x1; x2; : : :) /// el m´aximo de x1; : : : ; xn
sqrt() /// raiz cuadrada
sum() /// La suma para la expresi´on entre par´entesis.
*uniform(100) /// Genera n´umeros aleatoreos entre 0 y 1 con una distribuci´on uniforme.
help *functions* /// Ayuda respecto a una funcion
}
}
*3. ARCHIVOS DE MUESTRA
{
* 3.1 Archivos de muestra dentro STATA
{
sysuse dir //directorio de archivos de muestra
sysuse auto //usamos el archivo de muestra auto
*Otros archivos muestra
* auto.dta bpwide.dta educ99gdp.dta nlsw88.dta surface.dta voter.dta
* auto16.dta cancer.dta gnp96.dta nlswide1.dta tsline1.dta xtline1.dta
* auto2.dta census.dta lifeexp.dta pop2000.dta tsline2.dta
* autornd.dta citytemp.dta network1.dta sandstone.dta uslifeexp.dta
* bplong.dta citytemp4.dta network1a.dta sp500.dta uslifeexp2.dta
}
* 3.2 Archivos de muestra del libro de wooldrige
{
*Bases datos de wooldriche en stata http://fmwww.bc.edu/ec-p/data/wooldridge/datasets.list.html
ssc install // instalar Comando
ssc install Bcouse //Instalar commando bcouse (Comando para usar bases de datos de wooldrige
bcuse bwght //abrir base de datos "bwght" del libro de wooldrige (Actualiado)
}
}
*4. SINTAXIS DEL CODIGO: De manera general, la sintaxis de STATA es la siguiente:
{
* [prefix :] command [varlist] [=exp] [if] [in] [weight] [using filename] [, options]
* Ejemplo con By:
*[by lista de var :] comandolista de var [if expresion], [opciones] // abreviado
*[by lista de var :] comando lista de var [if expresion] [in rango] [ponderadores] [using nombre del archivo], [opciones]
*4.1 Prefijos
{
*Prefijo Description
/////////////////////////////////////////////////////////////////////////////////////////
by // ejecutar el comando en subconjuntos de datos
frame // ejecutar el comando en los datos de un marco especificado
collect // ejecutar el comando y recoger resultados para incluir en una tabla
statsby // igual que by, pero recoge estadísticas de cada ejecución
rolling // ejecutar el comando en subconjuntos móviles y recoger estadísticas
bootstrap // ejecutar el comando en muestras bootstrap
jackknife // ejecutar el comando en subconjuntos de datos jackknife
permute // ejecutar el comando en permutaciones aleatorias
simulate // ejecutar el comando en datos fabricados
svy // ejecutar el comando y ajustar los resultados para muestreo de encuestas
mi estimate // ejecutar el comando en datos imputados múltiples y ajustar los resultados para la imputación múltiple (MI)
bayes // ajustar el modelo como una regresión bayesiana
fmm // ajustar el modelo usando modelado de mezclas finitas
nestreg // ejecutar el comando con bloques acumulados de regresores e informar pruebas de comparación de modelos anidados
stepwise // ejecutar el comando con inclusión/exclusión de variables de manera progresiva
xi // ejecutar el comando después de expandir las variables de factor e interacciones; para la mayoría de los comandos, es preferible usar variables de factor en lugar de xi (ver fvvarlist)
fp // ejecutar el comando con polinomios fraccionarios de un regresor
mfp // ejecutar el comando con múltiples regresores de polinomios fraccionarios
capture // ejecutar el comando y capturar su código de retorno
noisily // ejecutar el comando y mostrar la salida
quietly // ejecutar el comando y suprimir la salida
version // ejecutar el comando bajo una versión especificada
/////////////////////////////////////////////////////////////////////////////////////////
}
*4.2 Bucles: Pemite repetir una serie de comandos para un grupo de variables definidas
{
*FOREACH
foreach X_name in x1 x2 x3 {
commando 1
commando 2
commando 3
}
*EJEMPLO
foreach Y_name in price mpg {
sum `Y_name'
}
}
*4.3 Macros
*(1) local: Una macro de memoria de corto plazo, una vez concluida la ejecucucion de una seccion del codigo no se almacena y es necesario re definirla para volver a usarla
{
local continuous price mpg make
tab1 `continuous'
codebook `continuous'
summarize `continuous'
local vlist "y x1 x2"
display "vlist contiene $vlist"
local a "myvar"
generate `a' = oldvar /// equivale a generate myvar = oldvar
local a "newvar"
local i = 2
generate `a'`i' = /// equivale a generate newvar2 = oldvar
}
*(2) global: Una macro de memoria de largo plazo, una vez concluida la ejecucucion de una seccion del codigo se almacena y no necesario re definirla para volver a usarla
{
global vlist "y x1 x2"
display "vlist contiene $vlist"
global continuous price mpg make
tab1 $vlist
codebook $vlist
summarize $vlist
global a "myvar"
generate $a = oldvar /// equivale a generate myvar = oldvar
global a "newvar"
global i = 2
generate $a$i = oldvar /// equivale a generate newvar2 = oldvar
}
*4.4. Bucle condicional
{
*(1)Repeticion condicionada
{
local t=1
while `t'<10 { //mientras se cumpla una condicion se repitira el bucle
di `t'
local t=`t'+1
}}
*(2) Resultado condicionado
{
local p=10
if `p'==10 {// si se cumple la condicion ####
di "`r' es igual a 10"
local r=`r'+1
}
else {// caso contrario ####
di "`p' es diferente a 10"
}}
}
*4.5. Continuar codigo: Para poder escribir una instruccion en más de unas sola linea
{
*Usando "///" al final de cada instruccion
*Ejemplo:
* Codigo sin modificar
graph hbar (mean) price, over(weight,gap(1)) over(foreign) title(Grafico de barras) subtitle(Por foraneo y peso) ytitle(Promedio) note(Fuente: Datos auto Stata)
* Codigo modificado
graph hbar (mean) price, over(weight,gap(1)) ///
over(foreign) ///
title(Grafico de barras) ///
subtitle(Por foraneo y peso) ///
ytitle(Promedio) ///
note(Fuente: Datos auto Stata)
}
}