Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Stata Basico Intermedio Aplicado A La Investigación Economica. Juan Carlos Abanto Orihuela
Stata Basico Intermedio Aplicado A La Investigación Economica. Juan Carlos Abanto Orihuela
Básico Intermedio
Aplicado a la Investigación Económica
16 de enero de 2010
2
Índice general 3
1. Introducción al Stata 5
1.1. Iniciando Stata . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Tipos de Archivos en Stata . . . . . . . . . . . . . . . . . . . . . 6
1.3. Estructura Básica de Stata . . . . . . . . . . . . . . . . . . . . . 6
1.4. Principales Comandos de Trabajo y Análisis . . . . . . . . . . . 7
1.4.1. Las Bitácoras . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.2. La Base de Datos . . . . . . . . . . . . . . . . . . . . . . 7
1.4.3. Append, Merge, Collapse . . . . . . . . . . . . . . . . . . 9
2. Manejo de Datos 15
2.1. Cargando los Datos en Stata . . . . . . . . . . . . . . . . . . . . 15
2.2. Etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3. Comando IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4. Comando SUMMARIZE . . . . . . . . . . . . . . . . . . . . . . 18
2.5. Comando SPLIT . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6. Creando Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.7. KEEP y DROP . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8. Reestructurando los Datos . . . . . . . . . . . . . . . . . . . . . 24
2.9. Muestreos Probabilı́sticos . . . . . . . . . . . . . . . . . . . . . . 26
2.10. Generación de Números Aleatorios . . . . . . . . . . . . . . . . 26
2.11. Percentiles, Cuartiles, Deciles . . . . . . . . . . . . . . . . . . . 27
3
4 ÍNDICE GENERAL
3.6.1. Esquemas . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.2. Gráficos de Barras Verticales . . . . . . . . . . . . . . . . 49
3.6.3. Gráficos de Barras Horizontales . . . . . . . . . . . . . . 49
3.6.4. Gráficos de Cajas . . . . . . . . . . . . . . . . . . . . . . 50
3.6.5. Gráficos de Pastel . . . . . . . . . . . . . . . . . . . . . . 51
5. Variables Categóricas 69
5.1. Estimación con Variables Categóricas . . . . . . . . . . . . . . . 69
5.2. El Comando Xi . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.3. Pruebas de Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . 72
5.4. Creación de Variables Dummys . . . . . . . . . . . . . . . . . . 75
5.5. Bucles y Programas . . . . . . . . . . . . . . . . . . . . . . . . . 75
Bibliografı́a 79
5
6 1. Introducción al Stata
use auto.dta
use auto01.dta
browse
list make
list make price
describe
codebook
tabulate mpg
table mpg
table rep78, contents(n mpg)
table rep78, contents(n mpg mean mpg sd mpg median mpg)
table rep78, c(n mpg mean mpg sd mpg median mpg) format(%9.2f)
sort mpg
gsort mpg
gsort -mpg
sort foreign
by foreign: summarize price
count
count if foreign==0
count if foreign==1
by foreign: count
generate orden=_n
rename orden num_obs
by foreign: egen prom_mill=mean(mpg)
drop num_obs
keep make price mpg prom_mill
clear
use base1, clear
list
use base2, clear
list
use base3, clear
list
use base4, clear
list
Vamos a empezar observando cada una de las bases de datos que tenemos,
veamos la figura1.4 Empecemos nuestra tarea en Stata, podemos observar que
la base de datos Base1 tiene los mismos campos (columnas) que la base de
datos Base2, pero diferentes filas, seria útil, unir ambas bases.
Abramos entonces, la base de datos Base1 y peguemosla con la base de
datos Base2, una unión vertical.
use base1.dta, clear
list
append using base2
list
save base12.dta, replace
list
Hagamos lo mismo con las bases de datos Base3 y Base4 y observemos los
resultados:
use base3.dta, clear
list
append using base4
list
save base34.dta, replace
list
¿Por qué la variable la variable sexo se añadió 2 veces como columna?¿por
qué no se unió en una sola columna?
use base3.dta, clear
list
rename Sexo sexo
list
save base03.dta, replace
use base03.dta, clear
list
append using base4
list
save base034.dta, replace
Ahora si resulto bien la unión vertical. Veamos la base12 que tenı́amos
antes.
Ahora mi interés es fusionar ambas bases de datos, para ello, primero debe-
mos ordenar ambas bases según la variable con la que vamos a fusionar (la
variable común).
use base034.dta, clear
list
sort nombre
list
clear
use base12s.dta, clear
list
merge nombre using base034s.dta
list
save basetotal.dta, replace
tab _merge
Analicemos los resultados. Hay tres posibles valores que puede tomar esta
variable según lo muestra la figura1.6. Si toma el valor de 1 nos indicara que
es una observación que solo se encuentra en la base matriz, si toma el valor
de 2 nos indicara que es una observación que proviene de la base esclava, y si
toma el valor de 3, nos indicara que la observación proviene de ambas bases.
El comando collapse sirve para convertir una base de datos que contiene vari-
ables para diversas unidades de estudio, en una base de datos que contiene
estadı́sticos de dichas variables (medias, medianas, sumas etc). Permite obte-
ner estadı́sticos para unidades más grandes (en un sentido jerárquico), como
por ejemplo, pasar de datos por individuo a datos por hogar, de datos por
distritos a datos por provincia (agregación)
En el comando se especifican aquellas variables que se ”colapsan” y las
condiciones que se imponen para dicha transformación. Algunas variables pueden
ser colapsadas según su suma, otras según su media, etc. (ver figura1.7)
Aquellas variables que no se especifican desaparecen automáticamente de
la base de datos. Este comando crea una nueva base de datos y cierra la base
de partida. Si deseamos quedarnos con esta base debemos grabarla.
Basado en los WDI, genere una base de datos con los totales de CO2 emi-
tidos por región, para el año 2002. Genere también una base con la población
mundial a lo largo del tiempo.
collapse age
list
Basado en los WDI, genere una base de datos con los totales de CO2 emi-
tidos por región, para el año 2002. Genere también una base con la población
mundial a lo largo del tiempo.
use wdi,clear
collapse (sum) co2 if year==2002, by(region)
graph hbar (asis) co2, over(region)
RETO 1
Obtenga una nueva base (colapsada) que contenga para cada hogar:
el promedio de edad de sus miembros (ver p208a), el porcentaje de
hombres en el hogar (ver p207), el máximo nivel educativo aprobado
por algún miembro del hogar (ver p301a).
use auto.dta
describe
summarize
generate price2=2*price
describe
save auto2.dta
generate price3=3*price
save auto2.dta
save auto2.dta, replace
generate price4=4*price
use auto.dta
use auto.dta, clear
clear
2.2. Etiquetas
Aprendamos a etiquetar a nuestras bases de datos o variables para poder
identificarlas en un futuro y ası́ poder trabajar de forma mas ordenada.
use auto.dta
describe
label data "Este archivo contiene datos de autos para el a~
no 1978"
describe
label variable rep78 "Record de reparación en 1978"
label variable price "Precio del carro en 1958"
label variable mpg "Millas por galon para el carro"
15
16 2. Manejo de Datos
clear
use iraninos.dta
set more off
label define sexow 0 "mujer"
label define sexow 1 "hombre", add
describe
browse
label values sexo sexow
describe
browse
label drop sexow
2.3. Comando IF
La estructura del comando IF es fácil de recordar, la figura2.1 nos muestra
el esquema base.
clear
use auto.dta
keep make rep78 foreign mpg price
tabulate rep78 foreign
tabulate rep78 foreign if (rep78 >=4)
tabulate rep78 foreign if (rep78 >=4), column nofreq
use auto
summarize
summarize price mpg
summarize mpg price if (foreign == 1)
summarize mpg price if (foreign == 1) & (mpg <30)
summarize mpg price if (foreign == 1) & (mpg <30) , detail
summarize in 1/10
by foreign: summarize
tabulate mpg
generate mpg3 = .
replace mpg3 = 1 if (mpg <= 18)
replace mpg3 = 2 if (mpg >= 19) & (mpg <=23)
replace mpg3 = 3 if (mpg >= 24) & (mpg <.)
tabulate mpg mpg3
Veamos un ejemplo con categorı́as, ahora deseamos crear una variable que
nos muestre el millaje de los carros respecto a su origen, esta tomara el valor
de “0” para valores por debajo de la media de mpg en el grupo domestico y
extranjero y “1” para valores por encima de la media de mpg en los grupos
domestico y extranjero.
sort foreign
by foreign: summarize mpg, detail
¿Qué observamos?
clear
use auto.dta
decode A, generate(B)
describe make A B
use auto
describe
keep make mpg price
describe
use auto, clear
drop displacement gear_ratio
describe
Ya hemos visto como el uso de keep, drop, keep if y drop if, puede sernos
útil si queremos eliminar variables innecesarias y ası́ tener mas memoria de
trabajo. Ahora veamos en la figura2.7 la estructura del comando use y los
criterios de selección.
clear
clear
use ingfam.dta
list
reshape wide
list
reshape long
list
Veamos una base de datos que nos brinda información sobre los las alturas
de un conjunto de niños de 1 y 2 años de edad
use ni~
noaltpes, clear
list codfam nacimiento alt1 alt2
Veamos como podemos transformar esta base de datos a una forma “long”.
¿Cuál es la raı́z de la variable que será convertida de la forma wide a la forma
long? ¿Qué variables identifican a los individuos en la estructura wide? ¿Cómo
llamaremos a la variable que contendrá a los sufijos de la variable raı́z?
reshape long alt, i( codfam nacimiento) j(edad)
list codfam nacimiento edad alt
use ni~
noaltpes,clear
list codfam nacimiento alt1 alt2 pes1 pes2