Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Investigadora, Centro de Microdatos, Departamento de Economa, Universidad de Chile
(jvasquez@econ.uchile.cl). Cualquier error es responsabilidad exclusiva del autor. Se agradece a J.
Eguiguren los comentarios y cooperacin en la elaboracin de este apunte.
1
INTRODUCCIN 3
IV.1. DESCRIBE 16
IV.2. CODEBOOK 17
IV.3. EDIT 20
IV.4. IST; INSPECT; DUPLICATES; COUNT; ORDER 22
IV.5. SUM 25
IV.6. TABULATE 28
IX. GRFICOS 72
X. AYUDA: HELP 83
Este documento pretende los introducir el uso del programa STATA, mediante la
entrega de conceptos y comandos bsicos para el inicio en este software. En una
primera parte haremos una pequea introduccin al programa, luego veremos
brevemente como se carga una base de datos, y en una tercera parte se ver cual es
la manera ms adecuada de trabajar con ella. Adicionalmente, en una cuarta parte se
vern los comandos que comnmente se utilizan para inspeccionar una base de datos
y obtener estadsticas descriptivas de sus variables, especficamente veremos
comandos como sum, el cual nos entrega un set de estadsticas bsicas de la variable,
describe, y varios otros. En una quinta parte se enseara como se pueden modificar
las bases de datos, especialmente, cambiando el nombre de las variables, unir bases
de datos, eliminar y agregar variables, cambiar la estructura de ellas y crear nuevas
variables a partir de las variables existentes.
Es importante aclarar que gran parte de los comandos de stata se puede hacer
mediante la utilizacin directa del comando, o mediante la utilizacin de ventanas.
Durante este curso veremos ambas formas.
escolaridad Ingreso
10 80.000
12 120.000
13 110.000
4 85.000
5 70.000
8 65.000
17 450.000
21 1.200.000
2 60.000
3
STATA es una aplicacin completa e integrada, basada en comandos, que tiene todos
los elementos necesarios para realizar anlisis estadstico, manejo de datos
estadsticos y grficos. Las versiones mas nuevas de STATA (a partir de la versin 8.0)
posee una forma ms fcil de utilizar, que consiste simplemente en hacer clic en
ventanas con las opciones de anlisis y procesamiento de datos, adems tiene la
opcin antigua mediante los comandos. El programa posee una ayuda en lnea, es un
programa fcil y rpido de utilizar.
Cmo se ve STATA?
Review: en esta ventana aparecen los comandos que han sido utilizados
durante la seccin en turno.
Results: muestra los resultados de la aplicacin de los comandos, slo los
resultados ms recientes son visibles en esta ventana
Variables: en esta venta se presenta el listado de variables que se encuentran
en la base de datos que se este trabajando
Commands: corresponde a la ventana donde introducen los comandos para
obtener el resultado deseado. Sirve para utilizar STATA en forma interactiva.
Abrir el editor de do-file. Los archivos do son archivos con esta extensin que nos
permiten en forma ordenada escribir todo lo que queremos hacer en nuestra base de
datos: cambiar la base de datos, sacar estadsticas, etc, y luego presionando
correr dicho do y obtener los resultados.2
Permite ver y editar la Base de Datos.
2
Lo ideal es combinar la utilizacin de un do y un log; el primero permite tener en forma ordenada todos
los comandos que se estn utilizando y todas las instrucciones que se quieren ejecutar, mientras que el
segundo guarda en un archivo de texto todos los resultados que surgen de este archivo do.
5
Cuando se abre STATA es importante saber donde se esta trabajando, es decir, en que
carpeta se estn guardando los resultados o desde que carpeta vamos a llamar la base
de datos, etc. Si no se sabe la carpeta o directorio donde STATA esta ubicado podemos
averiguarlo escribiendo el comando pwd:
pwd
C:\data Este resultado nos indica que estamos ubicados en el disco C del
computador en la carpeta data
cd C:\Nivelacion_Stata
Por ejemplo, si estamos trabajando con informacin de tres bases de datos distintas, y
queremos dejar la informacin relevante para el estudio en una sola base datos (ms
adelante veremos como hacer esto), lo ideal es trabajar en una sola carpeta,
Nivelacion_Stata, y no tener las tres bases de datos repartidas en carpetas distintas.
Si no estn en la misma carpeta no es til indicarle el directorio al comienzo, ya que
igual cuando llamemos a cada una de las bases de datos, al estar en carpetas
distintas, tendremos que cambiar la ruta.
Importante: los sistemas operativos ms nuevos permiten que las carpetas tengan
nombres con espacio en blanco, por ejemplo, Nivelacion Stata. Sin embargo, STATA
no va a reconocer una carpeta que tenga espacios en blanco en el nombre, a no ser
que se indique la ubicacin de esta carpeta entre comillas. Por este motivo, se debe
evitar llamar a una carpeta con la que van a trabajar en STATA con nombres que
contengan espacios en blanco.3
3
Esto problema es comn cuando trabajan en el Escritorio del computador, ya que la carpeta en este caso
es C:\Documents and Settings\...., tiene espacios en blanco.
6
Las bases de datos en formato Stata tienen extensin .dta. Las versiones antiguas del
software no se pueden abrir bases de datos que han sido trabajadas y guardas en una
versin ms moderna, cuando intentemos hacer esto el programa entregar un error
indicando que la base no tiene formato Stata.
Antes de abrir una base de datos se tienen que cumplir dos condiciones:
o simplemente
Notar que en ambos casos el comando incorpora la opcion , clear, esto nos
garantiza que la base de datos sea abra si es que ya existe otra base de
datos previa en el programa, esta opcin ahorra el paso previo de ejecutar
el comando clear antes de abrir la base de datos.
10
o alternativamente:
11
5- Si la base de datos tiene otro formato, por ejemplo, SPSS (.sav), dbase
(.dbf), Access (.mbd), etc; existe un software llamado Stat Transfer, que
permite transformar base de datos desde y a diversos formatos.
13
save C:\Nivelacion_Stata\ingresos_new.dta
Una vez que los datos han sido cargados, se puede optimizar el espacio que
estos ocupan utilizando el comando compress, este comando comprime la
base de datos. Es muy til cuando trabajamos con bases de datos grandes.
Hasta ahora hemos aprendido como cargar una base de datos en Stata, en lo que
sigue se vern los comandos bsicos para analizar una base de datos.
Entonces, con los comandos recin estudiados, comencemos por abrir la base de
datos:
cd C:\Nivelacion_Stata
set mem 100m
use ingreso.dta, clear
14
Existen varios comandos que nos permiten obtener informacin preliminar acerca de
de los datos y estadsticas acerca de ellos. Veremos bsicamente los comandos
describe, codebook, edit, sum, tab, inspect, count y duplicate.
Tambin podemos leer los datos usando las ventanas correspondientes, tal como lo
observamos en la siguiente figura:
Como podemos ver, si vamos a la opcin Data y luego seguimos la opcin Describe
data, veremos una serie de opciones que veremos a continuacin, tal como el
comando describe o el codebook. Tambin mediante la opcin Data podemos
directamente ver el editor de stata.
15
. describe
4
Ver Anexo A sobre el tipo de almacenamiento de datos
16
IV.2. Codebook
Existen otras formas de obtener una descripcin de las variables en la base de datos,
una de las mejores es usar el comando codebook. Al igual que con el comando
describe, al tipear simplemente codebook se va a describir cada variable. El siguiente
cuadro muestra la diferencia entre ambos comandos:
17
Tanto el comando describe como el comando codebook nos permite distinguir dos
tipos de variables, las numricas y las no numricas. Slo se pueden obtener
estadsticas de los datos cuando las variables son numricas, aunque muchas veces es
ms fcil visualizar la base de datos cuando las variables tienen nombres en vez de
nmeros o cdigos. Por ejemplo, en la variable dhombre de la base de datos vemos
slo unos y ceros, siempre tenemos que tener en mente que uno significa hombre y
cero mujer.
18
19
Otra forma de conocer o tener una visin ms amplia de la base de datos es mediante
el comando edit; el que nos mostrar una planilla donde podremos ver la base de
datos completa; sus variables y todas sus observaciones. Tambin lo podemos hacer
va ventanas mediante la opcin Data y luego Data editor
20
21
Un comando bastante til, similar al edit; es el list; el cal despliega los datos en la
ventana de resultados (Stata Results); en vez de enviarnos al editor.
22
23
24
y nos entregar la base de datos de tal forma que al aplicar el comando edit la primera
variable que veremos ser folio, luego edad, luego aos de escolaridad, etc.
IV.5. Sum
25
Si nos interesan las estadsticas de una sola variable, por ejemplo, escolaridad:
. sum esc
. sort dhombre
---------------------------------------------------------------------------
-> dhombre = 0
---------------------------------------------------------------------------
-> dhombre = 1
26
escolaridad (aos)
-------------------------------------------------------------
Percentiles Smallest
1% 0 0
5% 0 0
10% 2 0 Obs 180914
25% 5 0 Sum of Wgt. 180914
27
El comando tabulate (o tab) permite hacer tablas con las variables de inters. La
tabla ms sencilla se realiza de la siguiente forma:
. tab dhombre
genero (1 |
hombre 0 |
mujer) | Freq. Percent Cum.
------------+-----------------------------------
0 | 126,681 50.12 50.12
1 | 126,067 49.88 100.00
------------+-----------------------------------
Total | 252,748 100.00
Esta tabla indica el nmero de observaciones total y de cada una de las categoras de
la variable, el porcentaje que cada uno representa sobre el total y el porcentaje
acumulado.
28
genero (1 |
hombre 0 |
mujer) | Freq. Percent Cum.
------------+-----------------------------------
0 | 126,681 50.12 50.12
1 | 126,067 49.88 100.00
------------+-----------------------------------
Total | 252,748 100.00
escolaridad |
(aos) | Freq. Percent Cum.
------------+-----------------------------------
0 | 10,833 5.99 5.99
1 | 2,481 1.37 7.36
2 | 5,434 3.00 10.36
3 | 9,193 5.08 15.44
4 | 10,303 5.69 21.14
5 | 7,512 4.15 25.29
6 | 19,165 10.59 35.89
7 | 7,004 3.87 39.76
8 | 20,503 11.33 51.09
9 | 10,582 5.85 56.94
10 | 12,984 7.18 64.12
11 | 9,384 5.19 69.30
12 | 35,263 19.49 88.79
13 | 4,820 2.66 91.46
14 | 3,965 2.19 93.65
15 | 3,156 1.74 95.39
16 | 3,177 1.76 97.15
17 | 3,853 2.13 99.28
18 | 881 0.49 99.77
19 | 292 0.16 99.93
20 | 122 0.07 100.00
21 | 7 0.00 100.00
------------+-----------------------------------
Total | 180,914 100.00
Adems, con este comando, se pueden realizar cruces entre variables, por ejemplo:
29
| genero (1 hombre 0
escolarida | mujer)
d (aos) | 0 1 | Total
-----------+----------------------+----------
0 | 5,842 4,991 | 10,833
1 | 1,198 1,283 | 2,481
2 | 2,709 2,725 | 5,434
3 | 4,571 4,622 | 9,193
4 | 5,284 5,019 | 10,303
5 | 3,818 3,694 | 7,512
6 | 9,915 9,250 | 19,165
7 | 3,501 3,503 | 7,004
8 | 9,791 10,712 | 20,503
9 | 5,173 5,409 | 10,582
10 | 6,435 6,549 | 12,984
11 | 4,707 4,677 | 9,384
12 | 18,245 17,018 | 35,263
13 | 2,672 2,148 | 4,820
14 | 2,180 1,785 | 3,965
15 | 1,523 1,633 | 3,156
16 | 1,596 1,581 | 3,177
17 | 1,929 1,924 | 3,853
18 | 326 555 | 881
19 | 92 200 | 292
20 | 45 77 | 122
21 | 5 2 | 7
-----------+----------------------+----------
Total | 91,557 89,357 | 180,914
Si en vez de las frecuencias uno quiere ver el porcentaje, que sume 100% en forma
horizontal (filas), se debe agregar a lo anterior una coma y la palabra row y poner
adems nofreq (para que no se muestre las frecuencias):
30
| genero (1 hombre 0
escolarida | mujer)
d (aos) | 0 1 | Total
-----------+----------------------+----------
0 | 53.93 46.07 | 100.00
1 | 48.29 51.71 | 100.00
2 | 49.85 50.15 | 100.00
3 | 49.72 50.28 | 100.00
4 | 51.29 48.71 | 100.00
5 | 50.83 49.17 | 100.00
6 | 51.73 48.27 | 100.00
7 | 49.99 50.01 | 100.00
8 | 47.75 52.25 | 100.00
9 | 48.88 51.12 | 100.00
10 | 49.56 50.44 | 100.00
11 | 50.16 49.84 | 100.00
12 | 51.74 48.26 | 100.00
13 | 55.44 44.56 | 100.00
14 | 54.98 45.02 | 100.00
15 | 48.26 51.74 | 100.00
16 | 50.24 49.76 | 100.00
17 | 50.06 49.94 | 100.00
18 | 37.00 63.00 | 100.00
19 | 31.51 68.49 | 100.00
20 | 36.89 63.11 | 100.00
21 | 71.43 28.57 | 100.00
-----------+----------------------+----------
Total | 50.61 49.39 | 100.00
31
| genero (1 hombre 0
escolarida | mujer)
d (aos) | 0 1 | Total
-----------+----------------------+----------
0 | 6.38 5.59 | 5.99
1 | 1.31 1.44 | 1.37
2 | 2.96 3.05 | 3.00
3 | 4.99 5.17 | 5.08
4 | 5.77 5.62 | 5.69
5 | 4.17 4.13 | 4.15
6 | 10.83 10.35 | 10.59
7 | 3.82 3.92 | 3.87
8 | 10.69 11.99 | 11.33
9 | 5.65 6.05 | 5.85
10 | 7.03 7.33 | 7.18
11 | 5.14 5.23 | 5.19
12 | 19.93 19.04 | 19.49
13 | 2.92 2.40 | 2.66
14 | 2.38 2.00 | 2.19
15 | 1.66 1.83 | 1.74
16 | 1.74 1.77 | 1.76
17 | 2.11 2.15 | 2.13
18 | 0.36 0.62 | 0.49
19 | 0.10 0.22 | 0.16
20 | 0.05 0.09 | 0.07
21 | 0.01 0.00 | 0.00
-----------+----------------------+----------
Total | 100.00 100.00 | 100.00
sort dhombre
by dhombre: tab esc
Este cdigo entrega dos tablas de la variable escolaridad, una para los hombres y otra
para las mujeres. Lo mismo es posible de ser realizado utilizando el condicional if:
32
Si los aos de educacin toman valores que van desde 0 a 21, se generarn 22
variables dicotmicas.
Supngase ahora que se requiere hacer un cuadro con los aos de escolaridad, pero en
vez de entregar la frecuencia o porcentaje de observaciones en cada categora, se
requiere que muestre una estadstica de otra variable, por ejemplo, el promedio de
ingreso. Para realizar este tipo de tablas se debe usar el comando tab agregndole
despus de una coma la palabra summarize. Para el ejemplo citado debera utilizar el
siguiente cdigo:
33
| Summary of
| ingreso
escolaridad | laboral
(aos) | Mean
------------+------------
0 | 96996.235
1 | 104083.11
2 | 108236.24
3 | 112638.81
4 | 119092.96
5 | 119745.97
6 | 136860.84
7 | 121445.45
8 | 131005.63
9 | 147939.41
10 | 169646.75
11 | 171547.61
12 | 196789.47
13 | 234377.27
14 | 267368.38
15 | 337808.95
16 | 394113.77
17 | 599325.8
18 | 865582.61
19 | 918467.2
20 | 1127102.9
21 | 744900.67
------------+------------
Total | 195714.26
Por ltimo, el comando tabstat permite realizar tablas con las siguientes estadsticas:
34
Como hemos visto en los casos anteriores tambin podemos tabular usando las
ventanas:
35
36
En esta seccin veremos como se pueden modificar las bases de datos, desde los
nombres de sus variables y la generacin de nuevas variables hasta la forma se como
se pueden unir dos bases de datos
Para lograr que una base de datos sea ms amigable y sea entendida por cualquier
usuario, es recomendable incorporar etiquetas a los nmeros o cdigos de las
variables. Esto se hace mediante la utilizacin de variables secundarias llamadas value
labels. Si una variable tiene una variable secundaria que entregue etiqueta a los
cdigos que contiene, debera aparecer en el resultado del comando describe.
No tiene asociada una variable secundaria que nos indique que significa el nmero 1 y
el nmero 0 en esta variable.
Entonces para etiquetar los cdigos de una variable se deben realizar dos pasos:
1- Crear la variable secundaria (value label) que realice el nexo entre los cdigos y
sus etiquetas:
Al hacer un describe de la variable dhombre, este indica que existe una variable que
contiene la etiqueta de los nmeros o cdigos de esta variable:
38
Por otro lado si queremos en ese instante darle nombre a las variables y su respectiva
descripcin, hacemos doble click sobre la variable y nos aparecer el siguiente cuadro:
39
Adicionalmente existen otros dos tipos de etiquetas: para las variables y para la base
de datos.
Para etiqueta una variable (variable label) se utiliza el comando label var:
40
Cuando una variable est en formato string (no numrico) no se pueden obtener, la
diferencia es que el primero de los comandos despliega la hoja de clculo y el segundo
despliega los datos en la ventana de resultados (Stata Results). Tambin en el editor
se puede introducir las etiquetas a las variables y a los cdigos de cada variable.
Cuando una variable est en formato string (no numrico) no se pueden obtener
estadsticas de ella. Los comandos encode y decode cambian el formato de una
variable string a numrico y viceversa:
41
generate nueva_variable=real(variable)
Muchas veces es necesario combinar dos o ms bases de datos para formar una sola.
Para ello se pueden utilizar los comandos merge y append. El primero une dos bases de
datos utilizando una variable en comn (generalmente es un folio o cdigo que
identifica las observaciones en la base de datos). Las dos bases de datos deben estar
guardadas en formato .dta y deben estar ordenadas de acuerdo a la variable que se va
a pegar. El objetivo del comando merge es agregar variables (columnas) no
observaciones (filas). Supongamos que tenemos dos bases de datos, la primera
llamada uno.dta contiene la siguiente informacin:
1 8 1 20
2 9 2 55
3 11 2 45
4 13 2 47
5 15 1 32
6 2 2 31
7 0 1 28
8 10 1 26
9 9 1 35
Y supongamos que tenemos otra base de datos (dos.dta) con la siguiente informacin:
id ingreso
1 80000
3 99000
4 110000
6 130000
8 150000
9 200000
10 115000
11 98000
42
1- Ordenar la base de datos dos.dta (using data set) de acuerdo a las variables
que vamos a hacer el pegado (id) y guardar esta base de datos:
sort id
save dos.dta, replace
use uno.dta
sort id
merge id using dos.dta
1 8 1 20 80000 3
2 9 2 55 1
3 11 2 45 99000 3
4 13 2 47 110000 3
5 15 1 32 1
6 2 2 31 130000 3
7 0 1 28 1
8 10 1 26 150000 3
9 9 1 35 200000 3
10 115000 2
11 98000 2
Al realizar este pegue de datos, el programa generar una variable, si Ud. no le asigna
un nombre se crear con el nombre _merge, pero Ud. puede darle el nombre que
desee de la siguiente forma:
43
Ahora supongamos que no se dispone de la base ingreso.dta tal como fue presentada
anteriormente, sino que dispongo de dos bases de datos:
Si quiero construir entonces una sola base de datos que contenga todas estas variables
en forma conjunta, debera realizar los siguientes pasos:
Lo que este pequeo cdigo nos indica es que carguemos la base de datos
ingreso2.dta, la ordenemos (utilizando el comando sort) de acuerdo al identificador
folio, y guardemos los cambios realizados (esta base de datos se denomina using
dataset). Luego abrimos la base de datos a la cual le vamos a pegar variables (master
dataset), ingreso1.dta, la ordenamos de acuerdo al identificador folio, y finalmente le
pegamos la informacin que esta en la base ingreso2.dta utilizando el comando merge.
Si alguna de las bases de datos no esta ordenada les arrojara un mensaje de error:
Por otro lado, el comando append, anexa observaciones para el mismo conjunto de
variables, es decir, agrega filas a la base de datos. Supongamos que adems de
uno.dta tenemos otra base de datos (tres.dta) que contiene las mismas variables que
la primera pero para otros 10 individuos distintos:
44
10 8 1 20
11 9 2 55
12 11 2 45
13 13 2 47
14 15 1 32
15 2 2 31
16 0 1 28
17 10 1 26
18 9 1 35
19 4 2 20
Entonces podemos juntar estas 19 observaciones en una sola base de datos mediante
el comando append, de la siguiente forma:
use dos.dta
append using tres.dta
El resultado es el siguiente:
1 8 1 20
2 9 2 55
3 11 2 45
4 13 2 47
5 15 1 32
6 2 2 31
7 0 1 28
8 10 1 26
9 9 1 35
10 8 1 20
11 9 2 55
12 11 2 45
13 13 2 47
14 15 1 32
15 2 2 31
16 0 1 28
17 10 1 26
18 9 1 35
19 4 2 20
45
use ingreso3.dta
append using ingreso4.dta
Podemos juntar bases de datos usando las ventanas tambin; en la opcin Data
existe la opcin Combine datasets luego se hace doble clic en Merge o Append y
nos sale una ventana que nos permite juntar dos o mltiples bases de datos:
Luego, para el caso de merge, buscamos la base que le queremos aadir a la base que
estamos usando y ponemos su direccin donde sale Filnename of dataset on disk,
luego en Key variables ponemos el nombre de la variable mediante el cual queremos
unir las dos bases de datos.
46
Suponga que tiene una base de datos de hogares y que cada hogar tiene una
observacin para cada miembro del hogar que lo integra. Si cada hogar dispone de un
identificador nico, entonces se puede formar una base de datos alternativa que
contenga una sola observacin por hogar (en lugar de una observacin por individuo)
para cada una de las variables deseadas. Esta observacin puede contener la media,
desviacin estndar, suma, u otro estadstico por hogar (sino se especifica calcula la
media). Por ejemplo:
El cdigo anterior crea una base de datos con cuatro variables (hogar, edad, educacin
e ingreso) con una observacin por hogar, la cual contiene el promedio de la edad por
hogar, el mximo de la educacin por hogar y la mediana del ingreso por hogar.
47
Para explicar como se utiliza este comando primero vamos a definir dos
representaciones de las bases de datos: wide form (forma horizontal) y long form
(forma vertical).
Long form:
Wide form:
En la base de datos en forma vertical (long form) podemos ver que existe una variable
que es constante al interior de un grupo, en este caso, al interior de una empresa,
48
El comando reshape me permite intercambiar las bases de datos entre estos dos tipos
de formatos, de la siguiente forma:
Long Wide
49
50
Ahora, si se tiene una base de datos que contiene muchas variables y slo se va a
trabajar con algunas de ellas, se puede utilizar el comando keep para mantener en la
base de datos slo las variables que interesan. Por ejemplo:
Tambin podramos requerir mantener todas las variables pero slo un subconjunto de
las observaciones, como por ejemplo, las de los hombres:
keep if dhombre==1
keep if esc<=12
keep if ingreso>=200000
El comando drop cumple el mismo rol que el comando keep, sin embargo, ste borra
observaciones o variables, en vez de mantenerlas. Para realizar lo mismo que hicimos
con el comando keep pero utilizando drop, se debera hacer lo siguiente:
51
52
Otro ejemplo. En la base ingreso.dta se tienen los aos de escolaridad (esc); a partir
de esta variable se podra generar una nueva (tesc) con el nivel de educacin
alcanzado por cada individuo (Bsica Incompleta, Bsica Completa, Media Incompleta,
etc..). Esto se hace con el siguiente cdigo:
g tesc=.
replace tesc=1 if esc<8
replace tesc=2 if esc==8
replace tesc=3 if esc>8 & esc<12
replace tesc=4 if esc==12
replace tesc=5 if esc>12
El comando replace, reemplaza observaciones que cumplen con cierta condicin con
el valor que uno especifica.
Otro comando til, similar a generate, es el comando egen. Este contiene una gran
cantidad de funciones pre-establecidas con las que se pueden generar nuevas
variables. La diferencia con el comando generate es que en este uno define como
quiere generar la variable (sumando, restando, multiplicando, etc.), sin embargo, el
comando egen tiene funciones ya establecidas, por ejemplo, el promedio, la desviacin
estndar, etc
53
La mayora de estas funciones pueden ser combinadas con el comando by, el que
permite generar variables por diversas categoras. Por ejemplo, si se quiere crear el
promedio de la experiencia laboral para cada ao de educacin, se debe realizar lo
siguiente:
sort esc
En esta parte veremos de manera ms aplicada los comandos utilizados en las clases
anteriores; para ello ser necesario ensear a usar los archivos do y los archivos log,
que como veremos sern de gran utilidad, ya que nos permitirn ir guardando
informacin. Finalmente veremos el comando help; el cual es un comando auxiliar que
nos permite encontrar los comandos necesarios para realizar un gama de funciones en
stata.
Como con casi todos los comandos tambin se pueden obtener los mismos resultados,
mediante el uso de ventanas:
54
55
En esta seccin veremos de manera aplicada lo que hemos aprendido hasta ahora y en
los dos siguiente mostraremos a partir de est seccin la utilidad de los archivos do y
log. El archivo log es el archivo donde se va guardando todo lo que aparece en la
ventana de resultados, mientras que el do es un archivo que nos permite programar
todo el trabajo que queremos realizar en stata.
Luego debemos empezar a generar las variables necesarias para encontrar las tasas de
pobreza e indigencia correspondiente. Como la encuesta CASEN se realiza a hogares y
nosotros estamos interesados en el porcentaje de individuos pobres e indigentes y no
en el porcentaje de hogares pobres e indigentes; lo que necesitamos es tener algn
indicador per capita.
56
57
tab pco1
parentesco con el |
jefe(a) hogar | Freq. Percent Cum.
-----------------------+-----------------------------------
jefe(a) de hogar | 68,153 26.51 26.51
cnyuge o pareja | 47,864 18.62 45.13
hijo(a), hijastro(a) | 104,375 40.60 85.73
padre o madre | 1,776 0.69 86.42
suegro(a) | 1,166 0.45 86.87
yerno o nuera | 3,749 1.46 88.33
nieto(a) | 19,044 7.41 95.74
hermano(a) | 2,828 1.10 96.84
cuado(a) | 942 0.37 97.21
otro familiar | 4,875 1.90 99.10
no familiar | 1,675 0.65 99.75
s. domstico p.adentro | 630 0.25 100.00
-----------------------+-----------------------------------
Total | 257,077 100.00
Como vemos en algunas casas ocurre que hay personas que prestan servicios
domsticos puertas adentro y generalmente para calcular el ingreso per capita del
hogar debemos excluir a esas personas. Para ello generaremos una variable llamada s;
la cual tomar el valor 1 si la personas pertenece al hogar y no presta servicios dentro
de l; y toma el valor de 0 si la personas presta servicios dentro del hogar. Despus
generaremos el nmero de personas que pertenecen al hogar y no prestan servicios
dentro de l. Finalmente botamos la variable s, ya que la creamos slo como una
variable momentnea para excluir a las personas que prestan servicios domsticos
puertas adentro y ya tenemos la variable np, que es la que nos seala el nmero de
personas que realmente son parte del hogar.
g s=1
replace s=0 if pco1==12
egen np=sum(s), by(id)
drop s
58
g ing=ytothaj/np
Una persona es pobre si est recibe ingresos menores a $43.712 y vive en zona
urbana y $29.473 y est vive en zona rural. Una persona ser indigente si recibe
ingresos menores a $21.856 y vive en zona urbana; y $16.842 si esta vive en zona
rural. Como se est pidiendo el nmero y le porcentaje de pobres e indigentes,
necesitamos clasificar a los individuos en alguna de las tres categoras posible; no
pobres; pobres no indigentes e indigentes.
Situacion de | zona
pobreza | urbana rural | Total
-------------------+----------------------+----------
Indigente | 599,008 129,055 | 728,063
| 4.47 6.19 | 4.70
-------------------+----------------------+----------
Pobre no indigente | 1,890,085 289,568 | 2,179,653
| 14.11 13.88 | 14.08
-------------------+----------------------+----------
No pobre |10,905,022 1,667,008 |12,572,030
| 81.42 79.93 | 81.22
-------------------+----------------------+----------
Total |13,394,115 2,085,631 |15,479,746
| 100.00 100.00 | 100.00
59
60
Si el archivo log que estamos tratando de abrir ya exista, el programa nos entregar
el siguiente error:
Frente a esto tenemos dos opciones, cual de ellas se tome depende de los objetivos:
reemplazar el archivo ya existente, o seguir escribiendo en el archivo existente a
continuacin de lo ltimo ingresado.
61
62
Con esto ya he abierto la base de datos. A continuacin puedo empezar a escribir los
comandos para transformar la base de datos, para obtener estadsticas, etc.
Exactamente de la misma forma que lo hara en la ventana de comandos pero ahora
en forma ms ordenada.
63
En primer lugar ser necesario crear una variable llamada sexojh, el cual tomar el
valor de 1 si ste es hombre y 2 si ste es mujer. Luego se etiquetar la variable
dndole el nombre de hombre cuando la variable sexojh tome el valor 1 y mujer
cuando sexojh tome el valor 2.
64
Ahora se generar una variable que tomar el valor de 1 para todos los miembros del
hogar cuando est es hombre y 2 para todos los miembros del hogar cuando este es
mujer. Esto se hace generando una variable con el comando
egen sexojhm=max(sexojh), by (id) el cual genera una variable que toma el
nmero mayor asociado a la variable sexojh- por hogar; y como en los hogares
donde el jefe de hogar es hombre el nmero mayor de la variable sexojh es 1 lo
otros son missings- y en los hogares donde el jefe es mujer ese nmero es 2.
65
Situacion de | sexojh
pobreza | hombre mujer | Total
-------------------+----------------------+----------
Indigente | 4.24 6.30 | 4.70
Pobre no indigente | 13.82 15.00 | 14.08
No pobre | 81.94 78.70 | 81.22
-------------------+----------------------+----------
Total | 100.00 100.00 | 100.00
Podemos decir que las personas que viven en hogares con jefes de hogar hombres
tienen una tasa de indigencia es un 4.24%, y un porcentaje de pobres no indigentes
igual a 13.82%, con lo cual la tasa de pobreza es un 18.06%. Por su parte las
personas que viven en hogares con jefes de hogar mujer tienen una tasa de indigencia
de 6.3%, y un porcentaje de pobres no indigentes un 15%, de esta forma la tasa de
pobreza es 21.3%.
g categ_np=np
replace categ_np=8 if np>=8
tab categ_np pobre [w=expr], row nofreq
| Situacion de pobreza
categ_np | Indigente Pobre no No pobre | Total
-----------+---------------------------------+----------
1 | 1.96 2.89 95.15 | 100.00
2 | 1.95 4.25 93.81 | 100.00
3 | 3.15 9.24 87.60 | 100.00
4 | 3.76 12.65 83.58 | 100.00
5 | 4.74 16.29 78.97 | 100.00
6 | 7.08 18.98 73.94 | 100.00
7 | 7.41 22.18 70.41 | 100.00
8 | 9.73 24.45 65.82 | 100.00
-----------+---------------------------------+----------
Total | 4.70 14.08 81.22 | 100.00
En esta tabla se puede apreciar como las tasas de pobreza e indigencia aumentan a medida
que aumenta el tamao del hogar. En hogares de una persona el porcentaje de indigentes
es 1.96%, y el porcentaje de pobres no indigentes es 2.89%. Por el contrario, en hogares
67
En primer lugar ser necesario crear una variable que determine el nivel de educacin
(aos de educacin) de las personas encuestadas y luego etiquetar aquellas variables.
El nivel de educacin viene determinado en la base de datos, sin embargo por ejercicio
aqu se vuelve a generar una variable que determine el nivel educativo que la persona
a alcanzado:
g leducjh=leduc if pco1==1
label values leducjh leduclbl
egen leducjhm=max(leducjh), by(id)
drop leducjh
rename leducjhm leducjh
68
| Situacion de pobreza
leducjh | Indigente Pobre no No pobre | Total
-----------+---------------------------------+----------
0 | 7.49 18.53 73.98 | 100.00
1 | 7.93 20.58 71.48 | 100.00
2 | 5.68 18.99 75.34 | 100.00
3 | 5.13 17.09 77.78 | 100.00
4 | 3.49 11.19 85.33 | 100.00
5 | 0.93 5.27 93.81 | 100.00
6 | 1.33 3.59 95.08 | 100.00
7 | 0.54 0.51 98.95 | 100.00
-----------+---------------------------------+----------
Total | 4.70 14.08 81.22 | 100.00
. sum esc
. return list
scalars:
r(N) = 180914
r(sum_w) = 180914
r(mean) = 8.319068728788263
r(Var) = 18.37735307412638
r(sd) = 4.28688150922397
r(min) = 0
r(max) = 21
r(sum) = 1505036
escolaridad (aos)
69
. return list
scalars:
r(N) = 180914
r(sum_w) = 180914
r(mean) = 8.319068728788263
r(Var) = 18.37735307412638
r(sd) = 4.28688150922397
r(skewness) = -.1286631597722507
r(kurtosis) = 2.403091261120855
r(sum) = 1505036
r(min) = 0
r(max) = 21
r(p1) = 0
r(p5) = 0
r(p10) = 2
r(p25) = 5
r(p50) = 8
r(p75) = 12
r(p90) = 13
r(p95) = 15
r(p99) = 17
Esto puede hacerse generando una matriz de dos filas y tres columnas, para
posteriormente completar sus elementos con las estadsticas correspondientes. Para
esto primero se debe generar la matriz, llammosla A.
matrix A=J(2,3,0)
70
Con esto se completa la matriz. Luego para que se vea, en Stata Results se tipea el
comando matriz list:
. matrix list A
A[2,3]
c1 c2 c3
r1 210198.54 8.3427264 58.336718
r2 162629.12 8.2959796 60.383309
El comando while permite ejecutar una funcin en forma recursiva mientras cierta
condicin se cumpla. Por ejemplo:
local i
while `i<22 {
tab dhombre if esc==`i
local i=`i+1
}
Este cdigo har 21 tablas, una para cada ao de escolaridad, de la variable que
identifica gnero.
71
En STATA se pueden realizar grficos de todos los tipos. Esto, al igual que otras
funciones preestablecidas, no requiere del conocimiento de todos los comandos, ya que
pinchando Graphics aparecen todas las opciones y en cada una de ellas un cuadro de
opciones bastante completo:
72
Donde se nos presentan varias opciones, como hacer el grfico por cierta categora
(por ejemplo gnero) a travs del comando by, condicionar el grfico a cierto grupo a
travs del comando if, introducir factores de expansin, ajustar una densidad normal,
ajustar una densidad estimada en forma no paramtrica (kernel), y poner ttulos,
etiquetas, etc
73
histogram leduc
74
Ahora hagamos este mismo grfico pero separando a los hombres de las mujeres:
75
Ahora mostraremos el mismo grafico slo que con la lnea de regresin que minimiza la
distancia entre los puntos:
77
78
79
80
81
La ayuda que trae este programa es bastante amigable y fcil de utilizar. Si Ud. Se
dirige a Help se despliega un cuadro con diferentes opciones, puede buscar ayuda
por contenidos, por comandos, etc, en Whats new encontrar todas las novedades
del programa, que nuevos comandos hay y podr descargarlos haciendo un update.
Por ejemplo, supongamos se quiere saber como calcular correlacin entre variables.
Entonces se debe buscar en Search:
83
84
85
Recordemos que todo lo que esta entre parntesis cuadrado son opciones voluntarias
de comando. En este caso rowvar no esta entre parntesis cuadrado, significa que
debemos obligadamente sealar la variable fila en la tabulacin, es voluntario indicar
la variable de columna, si no se indica la tabulacin resultante es una distribucin de la
variable sola, si se indica colvar la tabla ser un cruce entre rowvar y colvar. Este
ejemplo nos permite notar la diferencia en aquellos insumos del comando que son
obligatorios de los que son voluntarios.
Puede ser que algunos de los comandos que aparezcan Ud. no los tenga cargados, en
este caso si se encuentra conectado a Internet los podr bajar online. Aparecer algo
de la siguiente forma:
Una forma ms completa de buscar ayuda es a travs de los manuales, estos adems
de traer una ayuda sobre los comandos generalmente contiene toda una descripcin
terica de ellos. Por ejemplo, en el caso de un modelo de regresin lineal, explica lo
que es una modelo de este tipo.
Adems el manual de grficos es muy til, ya que trae mltiples ejemplos que se
pueden adecuar a los que uno anda buscando.
En esta parte veremos un ejemplo como el visto en la parte 3 y luego con la misma
base de datos realizaremos varios tipos o formas de grficos.
86