Sie sind auf Seite 1von 13

Taller Stata

Jeanette Fuentes1

Clase 1
En estas clases prcticas veremos cmo utilizar el programa Stata para el trabajo econmico
emprico. Para esto trabajaremos con bases de datos que nos aporten informacin respecto a lo que
queramos estudiar.

Introduccin a Stata
Al trabajar en stata ocuparemos principalmente los siguientes archivos:
name.dta
name.log
name.do

name.ado

Base de datos en stata


Archivo en el que podemos guardar comandos y resultados, excepto
grficos.
Archivo con comandos, generalmente hecho en el editor de stata,
block de notas o word (pero guardado con formato slo texto). Nos
permite hacer un programa para luego hacerlo correr en stata, lo
cual es ms rpido que trabajar en forma interactiva.
Archivo que contiene un mini programa ya insertado a stata, el cual
nos permite hacer clculos sin tener que programar en el momento
las instrucciones para hacer por ej. un ndice, sino que simplemente
ocupamos un comando que nos hace funcionar el programa. ste
est inserto en la librera de stata.

Base de datos
Antes de abrir una base de datos (y de comenzar a trabajar) es necesario colocar memoria al
programa, para ello hacemos:
. set mem 90m

Para abrir una base .dta debemos hacer:

1 Responsable de la elaboracin. Jfuentes@econ.facea.uchile.cl


1

FileOpenabrir
o bien tipear directamente:
. use [disco en que lo guardaremos] \ [ruta de acceso] \ [nombre de archivo.dta], clear
por ejemplo:
. use "C:\Jeanette\Casen\Casen90\casen901.dta", clear
Luego, para guardar una base de datos, reescribiendo sobre la base antigua, hacemos:
. save [disco en que lo guardaremos] \ [ruta de acceso] \ [nombre de archivo.dta], replace
Si queremos ver los datos de la base, podemos hacer click en el Data browse, y si queremos
modificar los datos debemos abrir el Data editor.
Archivo log:
Para guardar todo lo que hagamos podemos hacer un log, el cual puede ser abierto
despus en un procesador de texto. Para ello hacemos:
open logopen
o bien tipeamos directamente:
log using [disco en que lo guardaremos] \ [ruta de acceso] \ [nombre de archivo.log]
por ejemplo:
log using C:\Jeanette\clase1.log
Aqu agregamos ,replace para que cada vez que hagamos correr un programa .do los resultados se
reescriban sobre lo hecho antes.
log using C:\Jeanette\clase1.log, replace
Para terminar de usar el log debemos tipear:
. log close
Los archivos .do y .ado los veremos ms adelante.
Principales comandos:
help
(h)
Este es un comando con el cual podemos obtener ayuda de stata. Si
hacemos help comando, obtendremos ayuda especfica del comando. Ej:
. help graph
describe
(d)
Este comando nos despliega un resumen de los contenidos de la
base de datos que tenemos abierta.
summarize
Ej:

(sum)

Computa estadsticas descriptivas

. sum

edad

Variable |
Obs
Mean
Std. Dev.
Min
Max
---------+----------------------------------------------------edad |
26852
29.63779
20.83074
0
98
. sum edad yopraj
Variable |
Obs
Mean
Std. Dev.
Min
Max
---------+----------------------------------------------------edad |
26852
29.63779
20.83074
0
98
yopraj |
9200
174504.9
336834.5
0
1.23e+07

tabulate
Ej:
. tab

(tab)

Computa frecuencias

sexo

Sexo |
Freq.
Percent
Cum.
------------+----------------------------------1 |
13235
49.29
49.29
2 |
13617
50.71
100.00
------------+----------------------------------Total |
26852
100.00
. tab

pco1 sexo

Rel.con el |
Jefe de |
Sexo
hogar |
1
2 |
Total
-----------+----------------------+---------1 |
5290
1418 |
6708
2 |
174
4762 |
4936
3 |
5928
5456 |
11384
4 |
34
148 |
182
5 |
28
85 |
113
6 |
209
186 |
395
7 |
1023
953 |
1976
8 |
143
143 |
286
9 |
52
62 |
114
10 |
251
242 |
493
11 |
98
89 |
187
12 |
5
73 |
78
-----------+----------------------+---------Total |
13235
13617 |
26852

Creacin de Variables
generate
(gen)
Este es un comando que nos permite crear variables, las cuales
pueden ser una combinacin de otras o una variable totalmente nueva . Por ejemplo, para crear una
variable totalmente nueva puedo hacer:
. gen a=0
y en el editor de stata coloco el valor de la nueva variable.

Si quiero crear una variable a partir de otra puedo hacer:


. gen b=3 + esc

Expresiones lgicas y matemticas ms usadas


+
*
/
==

suma
resta
multiplicacin
divisin
igual

>=
>
<=
<
!=

Mayor o igual
Mayor estricto que
Menor o igual que
Menor estricto que
Distinto que

&
|
exp()
log()

y
o
exponencial
logartmo

Expresiones condicionales
if
Utilizar if nos permite hacer una instruccin condicional, ya sea con un comando
descriptivo o de creacin. Veremos ms claramente esto mediante algunos ejemplos:

. tab sexo if yopraj>800000 & yopraj<1000000

Sexo |
Freq.
Percent
Cum.
------------+----------------------------------1 |
40
75.47
75.47
2 |
13
24.53
100.00
------------+----------------------------------Total |
53
100.00

. gen g=0 if esc<=8


(10211 missing values generated)
. replace g=1 if esc>=9
(10211 real changes made)

. drop if o8==4
(5415 observations deleted)

by()
Este es un conectivo que tambin nos sirve tanto para comandos
descriptiva como para comandos de creacin. Ejemplos:

de

estadstica

. sort sexo
. by sexo: tab rama. egen h= sum(yopraj), by(comu). sum
hVariable
Obs
Mean
Std. Dev.
Min
Max--------+----------------------------------------------------h |
26852
2.41e+08
2.40e+08
964621
5.74e+08

Algunos Comandos Adicionales


drop

(drop)

Borra la variable especificada

Ej:
. drop

estciv

preserve, restore
y luego recuperarlas.
Ej:

Con estos comando puedo borrar una variable temporalmente,

preserve
drop edad
restore

regress
(regress)
Con este comando puedo hacer regresiones por MCO. Se coloca
primero la variable explicada, y luego las exlicativas
Ej:
. regress

yopraj sexo edad rama

La tabla que entrega, es la siguiente:


Source |
SS
df
MS
---------+-----------------------------Model | 3.6051e+13
3 1.2017e+13
Residual | 1.0076e+15 9196 1.0957e+11
---------+-----------------------------Total | 1.0437e+15 9199 1.1346e+11

Number of obs
F( 3, 9196)
Prob > F
R-squared
Adj R-squared
Root MSE

=
=
=
=
=
=

9200
109.67
0.0000
0.0345
0.0342
3.3e+05

-----------------------------------------------------------------------------yopraj |
Coef.
Std. Err.
t
P>|t|
[95% Conf. Interval]
---------+-------------------------------------------------------------------sexo | -84815.81
7860.058
-10.791
0.000
-100223.3
-69408.35
edad |
2917.966
263.1105
11.090
0.000
2402.21
3433.721
activi |
140.6518
11.84967
11.870
0.000
117.4238
163.8798
_cons |
101584.8
14811.16
6.859
0.000
72551.64
130617.9
------------------------------------------------------------------------------

De forma similar funciona el comando dprobit que nos permite estimar por probit.
replace
(replace)
Con este comando puedo reemplazar una variable por otra, o el
valor de la variable en un caso determinado por otro.
Ej:
. replace a=b
rename(rename)
Con rename puedo cambiarle el nombre a una variable. Para ello puedo
hacer:
. rename
nombre antiguo
nombre nuevo
egen
(egen)
Este comando tambin nos permite crear variables, pero a partir de
la aplicacin de una funcin conocida por stata sobre alguna variable en particular.
Ej:
. egen e = max(edad)
. sum e
Variable |

Obs

Mean

Std. Dev.

Min

Max

---------+----------------------------------------------------e |
26852
98
0
98
98

sort

(sort)

Nos permite ordenar la variable especificada en orden ascendente.

graph
(graph)
Nos permite hacer grficos. Para llevarlos a word slo debemos
copiar y pegarlos, esto es:
editcopy
Para hacer un grfico simple: (de ingresos de la ocupacin principal por comunas)
. graph yopraj comu
Para hacer un grfico de barras:
. sort pco1
. graph yopraj, bar by(pco1)
Un truco muy utilizado para que las tablas aparezcan ordenadas en word, es colocar todo en letra
tamao 9.

Clase 2
En esta clase continuaremos viendo comandos bsicos de stata, y aprendiendo a trabajar con nuestra
base de datos.

Base de Datos
Trabajaremos con una parte de la encuesta Casen 98. Es fundamental para ello saber
relacionar los resultados que buscamos con las respuestas del cuestionario.
Comenzaremos por hacer un breve anlisis del cuestionario para familiarizarnos con ste.
Identificadores:
r:
regin
p:
provincia
comu: comuna
z:
zona (1:urbano; 2:rural)
seg:
Segmento al cual pertenece la encuesta (subdivisin de las comunas)
f:
Folio de la encuesta
o:
Orden de la persona dentro de la encuesta

Hogar:
La encuesta Casen es dirigida al jefe de hogar, por lo que generalmente contesta l o su
cnyuge por todos los miembros de la familia. Por esto hay que tener cuidado con las conclusiones
que se saquen a partir de ciertas preguntas, porque como no es el afectado necesariamente quien las
responde, puede haber sesgo.
En cada encuesta hay slo un hogar. ste lo constituyen las personas que viven bajo el
mismo techo y comparten el presupuesto para comida. En un mismo hogar pueden haber ms de un

ncleo, por lo que es necesario distinguir entre el jefe de hogar y el jefe de ncleo. Usualmente se
trabaja ms con la variable relacin con el jefe de hogar (pco1).
Se conoce por jefe de hogar al hombre que constituye el ncleo principal del hogar. Se dir
que una mujer es jefe de hogar slo en el caso en que no haya un marido. Esta variable nada tiene
que ver con el aporte de ingresos, ni toma de decisiones.

Educacin
Para conocer el nivel de educacin de cada miembro del hogar se le pregunta cul es
el curso y tipo de estudio actual (para los que estn estudiando) o ltimo curso aprobado
(para los que no estn estudiando). A partir de estas dos variables (e5 y e6) se construye la
variables aos de escolaridad (en la base de clases: esc). As, si por ejemplo:
Si una persona tiene como ltimo curso probado 2 medio tcnico profesional: e6=7 y
e5=2. En este caso esc= 8 + 2=10 (ya que como est en enseanza media tiene 8 aos
aprobados + los dos de enseanza media)
Ingresos
Los ingresos de la persona se dividen en una serie de categoras, ya sea tomando en
cuenta el ingreso de la ocupacin principal (yopraj) o agregndole otra serie de ingresos
(ing. de otros trabajos, subsidios, regalas, etc.) que junto al yopraj constituyen el ingreso
monetario total por persona (ymoneaj).
Para conseguir el ingreso total familiar debemos tomar otro ingreso ms en cuenta: alquiler
imputado por la casa en que vive (si es que no paga arriendo por ella): yaimhaj
Luego, el ingreso total familiar ser:
ytothaj = ymoneaj + yaimhaj
Empleo
Para saber si una persona est con empleo se le pregunta si trabaj la semana pasada (o1), y luego
se corrobora su situacin preguntndole (a los que contestaron que no antes) si es que tenan
empleo, pero estaban ausentes temporalmente (o2). A los que contestaron no, se les pregunta si
busc trabajo remunerado en los ltimos dos meses (o3). Con todo esto podemos hacer un ndice de
desempleo.

Caractersticas del empleo.


En esta encuesta hay tres variables que nos indican caractersticas del empleo:
Oficio (viene de la pregunta V.6): oficio
Actividad de la empresa (viene de la pregunta V.7), con la cual podemos crear la variable sector
econmico (agrupando por actividad): rama
Categora ocupacional (viene de la pregunta V.8), nos permite separar entre asalariados y no
asalariados, y distinguir categoras particulares: o8

Factor de expansin:
En esta encuesta se utiliza un factor de expansin para hacer la muestra representativa. As, cada
encuesta ser ponderada por el factor que le corresponda [w=expr1]. Por esto, cada vez que

queramos hacer estadstica descriptiva, debemos ocupar este factor de expansin, de lo contrario
nuestros resultados no sern representativos.
Ya habamos visto la forma general de calcular estadsticas, pero como nuestra base utiliza factor
de expansin, entonces la forma de hacer estadsticos es, por ejemplo:
. tab sexo [w=expr1]
. tab pco1 [w=expr1] if yopraj !=.

Formando Hogares.
Muchos anlisis de pobreza y distribucin se hacen a nivel de hogares, por lo que es
fundamental que veamos la forma de agrupar cada hogar.
En primer lugar es necesario agrupar a todos los miembros de un hogar a travs de una
clave (o nmero) que los identifique. As creamos una macro que da a cada miembro de un
mismo hogar (misma encuesta) un mismo nmero, utilizando los identificadores antes vistos. Para
ello utilizamos la instruccin:
. g comux=10*comu+z
. macro define id identificadores
lo que en nuestro caso sera:
. macro define id "comux seg f"
Luego, si quisiramos contar la cantidad de personas que constituyen cada hogar podemos hacer:
. egen nt= count(f) , by ($id)
Ej:
Construir ingreso per cpita:
. macro define id "comux seg f"
. egen nt= count(f) , by ($id)
. gen ytothaj= ymonehaj + yaimhaj
. gen ypc=ytothaj/nt

Anlisis de pobreza y Distribucin del Ingreso.


Se han desarrollado distintos mini programas instalados en la librera de stata (ado) que nos
permiten hacer anlisis de distribucin del ingreso y pobreza. Aqu veremos algunos:
Construir deciles: Uno de los ms tiles es construir deciles, por ej: deciles de ingreso. Para ellos
utilizamos las instrucciones:
La forma general de hacer esto es:
xtile nombre particin = variable [factor de exoansin], nq(cantidad particiones)
Ej:
. xtile decil = yopraj [w=expr1], nq(10)

Con lo cual estamos construyendo los deciles, en este caso por ingreso de la ocupacin principal
. table decil [w=expr1], c(n yopraj mean yopraj max yopraj min yopraj)

Aqu le pedimos que nos muestre una tabla con los estadsticos indicados por cada decil

Ej:
. xtile decil = ypc [w=expr1], nq(10)
. table decil [w=expr1], c(mean ypc max ypc min ypc n ypc)
. table decil [w=expr1], c(mean ypc max ypc min ypc n ypc)(frequency weights
assumed)----------+----------------------------------------------|
quantiles |of ypc
| mean(ypc)
max(ypc)
min(ypc)
N(ypc)
----------+----------------------------------------------1 |
33516.14
50330
0
284,666
2 |
64387.64
78017
50338
284,314
3 |
91090.68
104720
78022
285,069
4 |
119275.6
135420
104725
283,920
5 |
155207.9
175833
135428
284,576
6 |
196287
219133
175855.7
284,430
7 |
251461.6
290380
219164
284,506
8 |
338696.5
398617.5
290400
284,490
9 |
499438.6
649460
398622.5
284,429
10 |
1420327
2.66e+07
649768
284,444
----------+-----------------------------------------------

ineqdeco: Este es un ado que nos entrega ndices de distribucin del ingreso.
Ej:
. ineqdeco ypc [w=expr1]
Percentile ratios for distribution of ypc: all valid
obs.------------------------------------------------------------p90/p10
p10/p50 p75/p25 p75/p50 p25/p50
-----------------------------------------------------------12.855
3.700
0.288
3.700
1.911
0.516

p90/p50

Generalized Entropy indices GE(a), where a = income difference


sensitivity parameter, and Gini coefficient
----------+----------------------------------------------------------All obs |
GE(-1)
GE(0)
GE(1)
GE(2)
Gini
----------+----------------------------------------------------------|
1.10400
0.57759
0.65044
1.62925
0.56074
----------+----------------------------------------------------------Atkinson indices, A(e), where e > 0 is the inequality aversion parameter
----------+----------------------------------All obs |
A(0.5)
A(1)
A(2)
----------+----------------------------------|
0.26254
0.43875
0.68828
----------+-----------------------------------

ineqrau4: Con este ado obtenemos indicadores de distribucin y la tasa de pobreza.


Para ocuparlo primero debemos definir una lnea de pobreza.
Ej:
. gen linea=37889
. ineqrau4 ypc [w=expr1], by (linea)

Medidas de desigualdad y pobreza de


ypc-----------------------------------------------------------------------------1.- Coeficiente de Gini
.56139067
2.- Razon de Quintiles
19.612769
3.- Tasa de Pobreza
.04496345
4.- Brecha de Pobreza
.01598492
5.- Numero de pobres
127914
6.- Ingreso Medio quintil n1
48942.343
7.- Ingreso Medio quintil n2
105154.67
8.- Ingreso Medio quintil n3
175742.18
9.- Ingreso Medio quintil n4
295077.82
10.- Ingreso Medio quintil n5
959894.88
------------------------------------------------------------------------------

Apndice
En esta seccin haremos un programa .do, con l podremos hacer un programa y hacerlo
correr en stata, lo cual es un mtodo mucho ms rpido que el interactivo. El do se puede hacer en
el editor de stata, en word (guardndolo como slo texto) o en el block de notas. En estos ejemplos
trabajaremos en el block. Trate de entender cada una de las instrucciones que se presentan, cundo
hay que modificarlas, y la pertinencia de cada una de ellas, ya que este no es un programa tan
estndar, y cada vez que usted quiera programar, deber analizar bien qu es lo que buscar, y una
vez que tenga claro cmo se hara a mano, puede comenzar a programar.
Haremos un ejemplo en que buscamos analizar hogares:

Primero indicamos la base que usaremos y luego el log:


use x:\variables_clase.dta
log using x:\ejercicio1.log, replace

Para trabajar con estadsticas por hogares usualmente se excluye al servicio domstico
puertas adentro, por lo que hacemos:
preserve
drop if o8 == 5

Luego anidamos hogares:


g comux=10*comu+z
macro define id "comux seg f"
egen nt= count(f) , by ($id)

Si queremos hacer indicaciones para guiarnos en el programa programa podemos escribir


cosas entre asteristos:
* excluye servicio dom adentro *

10

Generamos el ingreso per cpita por hogar:


**ingreso per cpita simple**
gen ytothaj= ymonehaj + yaimhaj
gen ypc=ytothaj/nt

restore
Forma paralela de calcular el ingreso per cpita:
*** Ingreso per cpita nmero 2, considera servicio domestico puertas adentro como hogar
independiente, corrige por servicio
domes externo, que se haba excluido de otros
procedimientos*************
re
egen nt2= count(f) if o8 !=4, by ($id)
sum nt2 [w=expr1]
replace ytothaj = yopraj if o8 == 4
gen ypc2=ytothaj/nt2
replace ypc2 = yopraj if o8 == 4

Tercera forma:
**genera ingreso per cpita corregido por escalas de equivalencia, segn
ecuacin del banco mundial**
egen n1 = count(f) if ((pco1 != 1 & edad >= 11) & o8!=4), by($id)
egen n2 = count(f) if ((pco1!=1 & edad >= 5 & edad < 11) & o8!=4),
by($id)
egen n3 = count(f) if ((pco1 != 1 & edad >= 0 & edad < 5) & o8!=4),
by($id)
egen n11 = max(n1), by($id)
egen n22 = max(n2), by($id)
egen n33 = max(n3), by($id)
replace n11 = 0 if n11 == .
replace n22 = 0 if n22 == .
replace n33 = 0 if n33 == .
g neq = (1.2 + 0.8*n11 + 0.4*n22 + 0.3*n33)
gen ypeq = ytothaj/neq
replace ypeq = yopraj/1.2 if o8 == 4
ineqdeco ypc [w=expr1]
ineqdeco ypc2 [w=expr1]
ineqdeco ypeq [w=expr1]

pregunta: qu diferencia fundamental hay entre colocar la condicin if pcoh==1 y no


colocarla?
xtile
table
xtile
table
xtile
table

decil = ypc if pco1 == 1 [w=expr1], nq(10)


decil if pco1==1 [w=expr1], c(mean ypc max ypc min ypc n ypc)
decil2 = ypc2 if pco1 == 1 [w=expr1], nq(10)
decil2 if pco1==1 [w=expr1], c(mean ypc2 max ypc2 min ypc2 n ypc2)
decil3 = ypeq if pco1 == 1 [w=expr1], nq(10)
decil3 if pco1==1 [w=expr1], c(mean ypc max ypc min ypc n ypc)

clear

11

Al guardarlo, debemos guardarlo con un nombre *.do, y si trabajan en word, asegurarse que
escogen la alternativa tipo de archivo: slo texto
Para hacer correr el programa debemos hacer:
do disco\ubicacin del archivo

es decir:
do x:\clase3.do

Gua de Ejercicios
Ejercicios:

1) Sabiendo que sexo=1=hombre y sexo=2=mujer, haga una tabla de frecuencias de la relacin


con el jefe de hogar por regin para mujeres.

2) Encuentre el ingreso promedio (de la ocupacin principal) de los hombres, entre 25 y 45 aos
con 12 o ms aos de estudio (excluyendo a quienes no reciben ingresos) y comprelo con el
ingreso promedio de las mujeres del grupo similar.

3) Si dividimos a la poblacin en cinco categoras:


1: Personas que tienen enseanza bsica incompleta
2: Personas con enseanza bsica completa
3: Personas con enseanza media incompleta
4: Personas con enseanza media completa
5: Personas con enseanza superior completa o incompleta completa
Haga un grfico de barras entre categoras (eje x) e ingresos (eje y)
4) Teniendo en cuenta lo siguiente:
a) Excluya servicio domstico
b) La lnea de la pobreza para la regin metropolitana es de $28.093, pero tiene distintas
ponderaciones por regin:
R=1
R=2
R=3
R=4
R=5
R=6
R=7

1.22
1.17
1.11
1.09
1.04
1.03
1.01

12

R=8
R=9
R=10
R=11
R=12
R=13

1.04
1.05
1.04
1.09
1.22
1

Realizar un perfil de pobreza de acuerdo a las siguientes caractersticas del jefe de hogar: gnero,
edad (tramos: 15 a 29; 30 a 45; 46 a 60; 61 a 99), educacin (tramos: bsica incompleta, bsica
completa, media incompleta, media completa, superior (hasta tres aos), superior (cuatro aos y
ms), regin. Probar que headcount y la brecha de pobreza son aditivos separables (el total es igual
a los promedios ponderados)
5)Para las variables ingreso per cpita del hogar e ingreso por adulto equivalente calcule los
siguientes indicadores de desigualdad:
- Coeficientes: Gini, E(0), E(1), E(2), Atkinson (e=0.5, 1 y 2)
- Brechas: 90/10, 90/50, 10/50, 75/25
- Deciles: participacin relativa e ingreso promedio por decil
Tome la siguiente escala de equivalencia:
neq = (1.2 + 0.8*n11 + 0.4*n22 + 0.3*n33)
Donde:
N11: Personas distintas al jefe de hogar que tengan 12 aos o ms
N22: Personas distintas al jefe de hogar que tengan entre 4 y 11 aos
N33: Personas distintas al jefe de hogar que tengan entre 0 y 4 aos

6) Haga un anlisis de quines estn en isapres y en fonasa, segn quintiles de ingreso y factores
de riesgo (gnero/edad)

7) Estime por MCO una ecuacin de Mincer, incluyendo dummies por zona rural-urbano y sexo
9) Estime un modelo probit sobre la probabilidad de obtener un subsidio. Modele como usted
estime conveniente

13