Anda di halaman 1dari 65

2

Contenido
Introduccin a Stata
o Interface, sintaxis, comandos bsicos, memoria y abreviaturas
Organizacin de un proyecto en archivos DO y LOG
Gestin de base de datos (dataset)
o Tipo de datos y conversin de tipos
o Importacin de datos
o Unin de datasets
o Exportacin de datasets
Gestin avanzada de datasets
Organizacin modular de un proyecto
Tabulado avanzado y exportacin de tablas

3
Funciones adicionales de manejo de memoria
Dimensiones de un dataset
o Datos de corte transversal
o Series de tiempo
o Datos de panel
Operadores de serie de tiempo

4
Introduccin a Stata
STATA es un sistema que permite la gestin de base de datos y la realizacin
de clculos estadsticos y economtricos. La gran ventaja de STATA es que se
basa en un lenguaje de programacin que respeta una sintaxis. Quienes sepan
principios de programacin podrn asimilar a STATA como un sistema de
programacin de alto nivel con algunos aspectos similares a Pascal, C, o Basic.
Existen versiones de STATA para Windows, Linux y Macintosh.
Las fuentes de informacin oficiales para aprender STATA (adems de este
curso) son los manuales originales
Para una primera aproximacin es suficiente con el Users Guide.
Para usuarios ms avanzados se requieren los manuales detallados por
comandos (son 4 libros que cubren ordenados alfabticamente todos los
comandos).

5
Introduccin a Stata Interface
La interface de STATA comprende el entorno de trabajo. En una primera
aproximacin se trabajar con la interface de ventanas, para ms adelante
experimentar con la interface mediante archivos do y log.
Las diferentes ventanas que conforman la interface son:
Ventana Review: muestra el historial de comandos recientemente
utilizados.
Ventana Variables: expone las variables que comprenden el dataset
actualmente en memoria.
Ventana Stata Results: es la ventana ms grande color negro. Muestra
los resultados obtenidos de la aplicacin de los comandos.
Ventana Stata comand: en esta ventana el usuario introduce comandos
mediante el teclado (contiene un prompt).

6
Introduccin a Stata Sintaxis y comandos bsicos
STATA trabaja mediante la especificacin por parte del usuario de rdenes que
se denominan comandos. Los comandos conforman un lenguaje de
comunicacin el programa, por lo que existe una determinada sintaxis que debe
ser respetada.
La sintaxis de comandos tiene la siguiente estructura general:

[by varlist:] comando [varlist] [=exp] [if exp] [in range] [weight] [, opciones]

Los corchetes indican elementos opcionales. Todos los elementos que
acompaan a un comando son opciones, de hecho existen comandos que
comprenden slo una palabra.


7
Ahora veremos diferentes ejemplos de comandos simples que usan distintas
partes de la estructura de la sintaxis. Para esto utilizaremos un dataset de
ejemplo denominado auto.dta (obtener el material de clases y guardar en
C:\clase1). Este dataset contiene datos de de 74 automviles incluyendo
variables como precio, peso, largo, marca, consumo, etc.
El comando para cargar el dataset en la memoria de STATA es:
use c:\clase1\auto.dta
Requisitos: No debe haber un dataset previo en memoria. STATA no puede
trabajar con datasets simultneos (despus veremos que esto no es un
problema. Para asegurarse esto puede usarse use c:\clase1\auto.dta, clear
Adicional: Puede usarse el comando como use auto.dta, para esto
previamente habr que decirle a STATA en que carpeta se est trabajando. Esto
se hace con el comando cd c:\clase1 (en STATA existen muchos de los
comandos de D.O.S. como cd, cd.., dir, dir *.*)

8
Si la carga del dataset fue exitosa, veremos que las ventanas Review, Variables
y Stata Results se modificaron.

Sintaxis: comando sin opciones
El comando summarize permite obtener una descripcin estadstica de todas
las variables que componen el dataset. Se usa sin opciones:
summarize

Sintaxis: [varlist]
El anterior comando puede usarse para obtener la descripcin estadstica de
slo una variable
summarize price


9
de ms variables
summarize price weight length

de una lista de variables (en este caso todas las variables que estn entre
price y trunk)
summarize price-trunk

de las variables que empiecen con la letra p (en este caso es slo price)
summarize p*

Todas estas maneras de indicar variables se denominan en la sintaxis como
varlist

10
Sintaxis: [if exp]
La aplicacin del comando puede restringirse a observaciones que cumplen con
ciertas restricciones de alguna/s variable/s. Esto se realiza mediante la
utilizacin del si condicional (if en ingls). Por ejemplo:
summarize length if price > 6000
Esta expresin calcula la descripcin estadstica de la variable length de
aquellos autos cuyo precio es superior a 6000.
Para construir una sentencia condicional existen los siguientes componentes:
Operadores de comparacin:
== igual
!= no igual (similar a ~=)
>, <, >=, <= los usuales mayor, menor, etc.


11
Operadores lgicos:
& and
| or
! not (similar a ~)
Operador jerrquico: el parntesis que determina el orden de aplicacin de
las sentencias condicionales.
Algunos ejemplos ms complejos de sentencias condicionales son los
siguientes:
summarize length if (price > 6000) & (length < 180)
summarize length if (price > 6000 & length < 180) | weight >3400
summarize length if price > 6000 & (length < 180 | weight >3400)
summarize length if !(price > 6000) & (length < 180 | weight >3400)

12
Sintaxis: [in range]
Permite aplicar el comando a un rango de observaciones, de acuerdo al orden
del dataset. Por ejemplo:

summarize price in 1/10
Permite obtener la descripcin estadstica de las 10 primeras observaciones del
dataset
summarize price in 5/12
Aplica el comando a las observaciones entre la 5ta y la 12da.
summarize price in -10/-1
Aplica el comando a las ltimas 10 observaciones (de la 65 a la 74).


13
La aplicacin de [in range] depende del ordenamiento del dataset. Los
comandos para ordenar un dataset son sort y gsort.
sort price
El comando sort permite ordenar slo de manera ascendente de acuerdo a la
variable que se especifica. Tambin pueden especificarse ms variables que
actan en el caso de valores iguales en la variable primero indicada.

gsort price
Ordena de manera descendente segn el precio del auto.

gsort +price
Ordena de manera ascendente segn el precio del auto.

14
Sintaxis: [= exp]
Se utiliza generalmente con slo dos comandos: generate y replace.
generate nueva = 0
Este comando permite crear una nueva variable en el dataset. Es requisito
indicar los valores iniciales que va a tener la nueva variable en cada
observacin. En este caso la variable se llama nueva y tiene valor 0 en todas
las observaciones.

Tambin puede crearse una variable nueva incindola con valores surgidos de
una operacin algebraica basada en otras variables. Por ejemplo:
generate price2 = price*2
Este comando crea la variable price2 igual a los valores de price multiplicados
por 2 en cada observacin.

15
Para poder verificar los valores de Price y Price2 puede aplicarse el siguiente
comando:
list price price2 list p*

Tambin puede crearse una variable con valores nulos. El valor nulo en STATA
se indica con el smbolo . (un punto). Por ejemplo:
generate nulo = .

Otro comando que usa [=exp] es replace. Este comando permite reemplazar
valores de una variable ya creada. Por ejemplo:
replace price2 = 0 if price < 6000
Este comando reemplaz por un cero en price2 en aquellas observaciones que
tenan price menor que 6000.

16
Sintaxis: [by varlist:]
Permite aplicar el comando por grupos de observaciones definidos por los
distintos valores de la variable indicada en varlist. Por ejemplo:
sort foreign
by foreign: summarize price
Es requisito ordenar el dataset por la variable que se va a usar en el [by
varlist:]. En este caso se obtuvo la descripcin estadstica para los autos
domsticos e importados.
Lo mismo se podra haber obtenido haciendo
summarize price if foreign == 0
summarize price if foreign ==1
Pero debe notarse que este segundo mtodo es muy engorroso si la variable
que agrupa los datos tiene ms de dos opciones.

17
Sintaxis: [, opciones]
Existen comandos que aceptan opciones adicionales. stas son especificadas
en la sintaxis luego de una coma. Por ejemplo:
summarize price, detail
De esta manera, el comando summarize ahora brinda una descripcin
estadstica distinta que la normal.

Sintaxis: [weight]
Sirve para indicar una variable como ponderador de las observaciones. Esta
parte de la sintaxis se ver en detalle cuando se utilicen datos de la Encuesta
Permanente de Hogares (EPH)



18
Introduccin a Stata otros comandos bsicos

Para tabular cantidades de observaciones segn distintos valores de una
variable, tenemos el comando tabulate. Por ejemplo:
tabulate foreign
Permite conocer cuantas observaciones hay con los diferentes valores que tiene
la variable foreign (Domestic Foreign)

Este comando tabulate puede ser combinado con el summarize, de la
siguiente manera:
tabulate foreign, sumarize(price)
De esta manera se obtiene la media, el desvo estndar y la frecuencia, segn
los distintos valores de la variable foreign.

19


Tambin puede usarse tabulate con dos variables.
tabulate foreign rep78
Permite conocer cuantas observaciones hay con las diferentes combinaciones
de valores entre las variables foreign y rep78.

Obviamente, cualquiera de estos comandos acepta la introduccin de
condiciones lgicas, como por ejemplo:
tabulate foreign rep78 if price > 6000



20
El comando tabstat es ms avanzado para obtener la descripcin estadstica de
variables. El uso es el siguiente:
tabstat price, statistics(mean)
Obtenemos la media de la variable price

Pero tambin podemos obtener muchos otros estadsticos descriptivos, como
por ejemplo
tabstat price, statistics(mean sum count max min range sd variance cv
p10 median)

y de ms de una variable
tabstat price length weight, statistics(mean sum count max min range
sd variance cv p10 median)

21

Introduccin a Stata: memoria
STATA trabaja generalmente de una manera particular con los dataset. Todo el
dataset es almacenado en la memoria RAM de la PC. Esto significa ventajas y
desventajas:
Ventajas: la ejecucin de comandos es muy rpida, dado que no se accede
al disco rgido.
Desventajas: el tamao de los datasets que pueden procesarse se
encuentra limitado por la cantidad de memoria RAM de la PC.
El comando para conocer el estado del uso de la memoria es
memory



22
STATA comienza un sesin con una determinada cantidad de memoria
asignada. Este espacio puede no ser suficiente para procesar un determinado
dataset. Para ampliar el espacio de memoria que usa STATA el comando es:
set memory 50m
Este comando asigna 50 mega bytes de memoria para el uso de STATA. Debe
considerarse que la memoria que se le asigna a STATA se quita del sistema
operativo, por lo que se harn ms lentas aquellas tareas que se ejecuten
simultneamente (por ejemplo un editor de texto).
La cantidad de memoria a asignar est limitada por la cantidad de RAM de la
PC.
Ms adelante se ver como optimizar el consumo de memoria por parte de
STATA.


23
Abreviaturas
Es interesante aclarar que todos los comandos y variables usados pueden ser
abreviados.
La regla es que la abreviatura puede realizarse siempre que no se confunda con
otro comando.
Existen algunas excepciones a esta regla:
Los comandos destructivos no se abrevian: drop, clear
Existe el comando describe que se abrevia con d, a pesar de confundirse
con otros (es un comando muy utilizado).

Ejemplo de abreviatura
tab fore, sum(pri)


24
Organizacin de un proyecto en archivos DO y LOG
Hasta ahora la interaccin con Stata ha sido mediante el tipeo de
comandos en la ventana Stata commands. A partir de ahora
trabajaremos creando archivos de texto que contienen toda la secuencia de
comandos que componen un proyecto. Esto es un archivo DO.
Adicionalmente, los resultados de nuestro proyecto los almacenaremos en
un archivo de texto llamado LOG.
El sntesis, el conjunto de archivos que utilizaremos en un proyecto sern:


25

Cmo creamos un archivo DO?
Un archivo DO es de tipo texto plano o tambin llamado archivo ASCII.
1

Tenemos dos alternativas:
1. Utilizar el editor de textos que tiene incluido Stata.
2. Utilizar un editor de textos externo.

Editor de textos incluido en Stata
Para acceder a esta funcionalidad el comando es:
doedit

1
Abreviatura de American Standard Code for Information Interchange. Es un cdigo de 7 bits que sustituye las letras del alfabeto romano por cifras y otros
caracteres informticos.

26
De esta manera se abre una aplicacin similar al Notepad de Windows. Las
funcionalidades ms relevantes comprenden (entre otras):
El men File que permite gestionar los archivos de texto.
El men Tools que permite ejecutar un archivo DO mediante la opcin
Do

Editor de textos externo
Otra alternativa consiste en utilizar un editor de textos como los siguientes:
- Editplus: es un editor de tipo shareware (www.editplus.com)
- Textpad: es un editor pago (www.textpad.com)
- Crimson: es un editor de tipo freeware que puede encontrarse en
www.crimsoneditor.com.


27
Ventajas y desventajas
El editor de textos que incluye Stata tiene la ventaja de poder ejecutar los
archivos DO. Los editores de texto externos facilitan la visualizacin del cdigo
debido a que colorean las sentencias de programacin.

Sugerencia
Se sugiere utilizar el editor de textos externo Crimson, debido a que es
freeware y disponemos de las ventajas del cdigo coloreado. Para esto ltimo
debe realizarse el siguiente procedimiento:
Los archivos stata.spc y stata.key deben copiarse en la carpeta spec que se
encuentra en la carpeta de instalacin del programa (usualmente, C:\Archivos
de programa\Crimson Editor). Adems, los archivos extension.do y
extension.ado deben copiarse en la carpeta link que tambin se encuentra en
la carpeta de instalacin del programa.

28
Mi primer archivo DO
Utilizando el dataset auto.dta escribiremos nuestro primer archivo DO
mediante el editor de textos Crimson. Para ello realizamos las siguientes
acciones:
- Copiamos en c:\clase1 el archivo auto.dta. Esta ser nuestra carpeta
de trabajo.
- En Stata command ejecutamos cd c:\clase1, de esta manera Stata
buscar archivos en esa carpeta.
- En el editor de textos Crimson escribimos
use auto.dta, clear
describe
summarize price
exit


29
- Guardamos el archivo con el nombre auto.do en la carpeta c:\clase1
- En Stata command ejecutamos do auto
Si todo funcion bien, habremos ejecutado nuestro primer archivo DO y en la
ventana Stata Result est el resultado de los comandos describe y
summarize.
Nota: pueden incorporarse comentarios dentro del archivo DO de la siguiente
manera: /* Este es un comentario */
Tambin es un comentario una lnea iniciado con asterisco *






30
Mi primer archivo LOG
Los resultados que se registran en la ventana Stata Result pueden ser
almacenados en un archivo de texto de extensin .log
El cdigo a agregar para obtener un archivo LOG es el siguiente:
use auto.dta, clear
capture log close
log using auto.log, text replace
describe
summarize price
log close
exit

log using auto.log, text replace, hace que Stata registre los resultados en un
archivo llamado auto.log de tipo texto (existen otros tipos de archivos que no
usaremos). La opcin replace implica que en cada nueva corrida del programa

31
los resultados se sobre-escriben. Existe la opcin append que permite grabar
corridas sucesivas de un programa (uso poco frecuente).

El comando log using resulta en un error si ya existe un LOG en uso. Por ello
debemos cerrar cualquier otro LOG en uso con la opcin log close.
El problema es que log close dar error si no existe un LOG en uso. Para
solucionar esto usamos la palabra capture. Esto permite anular la detencin
del programa ante un error.
Al final del programa cerramos el LOG con log close
Es importante mencionar que lo nico que se registra en el archivo LOG son los
resultados de los comandos que se encuentran entre el log using y el siguiente
log close.


32
Gestin de base de datos (datasets)
El contenedor de datos en Stata se denomina DATASET.
Un dataset es una especie de tabla de doble entrada donde las columnas
se denominan VARIABLES y las filas OBSERVACIONES.
Observacin Variable1 Variable2 Variable3
1 Dato 1,1 Dato 2,1 Dato 3,1
2 Dato 1,2 Dato 2,2 Dato 3,2
.. .. .. ..
N Dato 1,N Dato 2,N Dato 3,N
En cada celda se pueden guardar datos de diferentes tipos.
El tipo de dato es el mismo para las observaciones de una misma variable
Con el cdigo _N se puede obtener el total de observaciones de un dataset.
Ejemplo:
display _N

33
Tipos de datos
Los tipos de datos que puede almacenar Stata son tres: (i) nmeros, (ii)
palabras y (iii) fechas.
Tipos de datos numricos
Nombre Tipos de nmeros Lmite inferior Lmite superior
Byte Enteros -127 +100
Integer Enteros -32.767 +32.740
Long Enteros -2.147.483.647 +2.147.483.620
Float Con decimales -1.70 x 10
38
+1.70 x 10
36

Double Con decimales -8.99 x 10
307
+8.99 x 10
308

Tipos de datos palabras
Se pueden almacenar palabras con hasta un mximo de 80 caracteres
Tipo de datos fechas
Son nmeros con un formato especial de visualizacin. Se ver en la clase 3.

34
Para conocer el tipo de datos de todas las variables que componen el dataset se
utiliza:
describe
Si se quiere saber el tipo de dato de una variable especfica se utiliza:
describe price

Para crear una variable numrica especificando el tipo de dato que queremos,
se utiliza:
generate byte cantidad = 0

generate float descuento = 0


35

Obsrvese que Stata tiene la habilidad de cambiar el tipo de dato de la variable
numrica de acuerdo a los datos que se ingresan. Probemos con
replace cantidad = 150
Esta operacin, si se ejecuta correctamente, hace cambiar automticamente el
tipo de dato numrico desde byte a int. Esto es informado por Stata de la
siguiente manera:
cantidad was byte now int
(XX real changes made)
Lo mismo ocurre si hacemos
replace cantidad = 2.5
De esta manera la variable se transforma en float.

36
Para crear una variable que contenga palabras se utiliza el siguiente comando:
generate str8 pais =
El lmite mximo es de 244 caracteres para la versin 9 Special Edition. Para la
versin Intercooled es de 80 caracteres.
En este caso, la variable de tipo string ampla la cantidad de caracteres de
acuerdo a los datos que almacena.
replace pais = Argentina

Posible contenido de un string:
Datos identificatorios: algunas variables de tipo string contienen
identificadores para las observaciones. Esta informacin no puede ser
utilizada directamente en el anlisis estadstico.

37
Datos de categoras: por ejemplo un texto que indica varn mujer. En
este caso la informacin s podra usarse para clculos estadsticos. Para
esto debe transformarse en numrica de la siguiente manera:
encode make, gen(nmake)
Este comando crea la variable nmake que es de tipo numrica (long), pero
que contiene una etiqueta para cada distinto valor numrico de acuerdo a
la palabra presente en la variable make.
Datos numricos en un string: Por alguna razn, un string podra estar
almacenando nmero. Si queremos crear una variable numrica a partir de
esa informacin, debemos hacer:
generate numvar = real(stringvar)
El paso inverso tambin es posible de la siguiente manera:
generate stringvar = string(numvar)

38
Importacin de datos
Una manera sencilla (entre varias) de importar datos desde cualquier origen es
la siguiente:
Abrir el archivo mediante Excel (normalmente cualquier fuente de datos
podr ser accedida por Excel).
Guardar el archivo como texto delimitado por tabulaciones (.txt). Atencin
que Excel indica una serie de advertencias respecto a las planillas con
mltiples hojas, dado que slo la hoja activa se almacenar.
Importar desde Stata utilizando el siguiente comando:
insheet using dataset1.txt
Recordar que previamente debemos haber realizado un clear.


39
Unin de datasets
Stata permite unir datasets de dos maneras distintas:
dataset1 dataset2
dataset3
Merge
Append

Con el comando merge se agregan nuevas variables a un dataset
existente.
Con el comando append se agregan nuevas observaciones a un dataset
existente.

40

El comando merge se usa de la siguiente manera:
merge varlist using dataset2
Donde varlist es la variable o conjunto de variable que permite buscar la
concordancia de filas para agregar las nuevas variables. Un requisito es que los
datasets (el que est en uso, y el que se agrega) estn ordenados por la
varlist indicada en el merge.

El comando append se usa de la siguiente manera:
append using dataset2
datasets (el que est en uso, y el que se agrega) estn ordenados por la
varlist indicada en el merge.


41
Ejemplo con datos provinciales
clear
insheet using dataset1.txt
sort anio provincia
save dataset1.dta, replace
clear
insheet using dataset2.txt
sort anio provincia
save dataset2.dta, replace
clear
insheet using dataset3.txt
sort anio provincia
save dataset3.dta, replace
clear
use dataset1
merge anio provincia using dataset2
append using dataset3
browse

42



Exportacin del dataset
El dataset que est en memoria en Stata puede ser exportado a un archivo de
texto, el cual puede ser abierto por Excel. El comando para realizar esta tarea
es el siguiente:
outsheet using archivo, replace





43

Gestin avanzada de datasets

Existen funcionalidades ms avanzadas que permiten reestructurar la
organizacin de un dataset. Son las siguientes:
xpose: permite transponer un dataset.
reshape: permite reorganizar datos que estn construidos en forma de
una columna en mltiples columnas (y viceversa).
collapse: permite crear un dataset agregado con estadsticas.





44

Ejemplo con xpose
Usaremos los datos almacenados en canada.txt.
insheet using canada.txt
Los datos contienen la variacin de la poblacin (en miles) para provincias de
Canad, entre 1991 y 1992, 1992 y 1993, etc Exploramos con list
Crearemos una variable numrica para identificar cada provincia:
encode provinc, gen(provinc2)
drop provinc
order provinc2



45
Hacemos list y obtenemos
+----------------------------------------------+
| provinc2 grow92 grow93 grow94 grow95 |
|----------------------------------------------|
1. | New Brun 10 2.5 2.2 2.4 |
2. | Newfound 4.5 .8 -3 -5.8 |
3. | Nova Sco 12.1 5.8 3.5 3.9 |
4. | Ontario 174.9 169.1 120.9 163.9 |
5. | Quebec 80.6 77.4 48.5 47.1 |
+----------------------------------------------+
Aplicamos el comando xpose de la siguiente manera:
xpose, clear varname
y obtenemos el dataset transpuesto:

+---------------------------------------------+
| v1 v2 v3 v4 v5 _varname |
|---------------------------------------------|
1. | 1 2 3 4 5 provinc2 |
2. | 10 4.5 12.1 174.9 80.6 grow92 |
3. | 2.5 .8 5.8 169.1 77.4 grow93 |
4. | 2.2 -3 3.5 120.9 48.5 grow94 |
5. | 2.4 -5.8 3.9 163.9 47.1 grow95 |
+---------------------------------------------+

46
La variable v1 tiene el nmero identificador de la provincia en la primera fila (lo
mismo v2 a v5). Podramos calcular la correlacin entre el crecimiento de la
poblacin en diferentes provincias de la siguiente manera:
correlate v1-v5 in 2/5

Ejemplo con reshape
Una manera ms sofisticada de reestructurar un dataset es posible a travs del
comando reshape. Este comando permite alternar entre dos bsicas
configuraciones llamadas wide y long.
La organizacin del dataset original est en formato wide. Con el siguiente
comando pasamos al formato long.
reshape long grow, i(provinc2) j(year)


47
Inspeccionamos los datos con list, sepby(provinc2)
+-------------------------+
| provinc2 year grow |
|-------------------------|
1. | New Brun 92 10 |
2. | New Brun 93 2.5 |
3. | New Brun 94 2.2 |
4. | New Brun 95 2.4 |
|-------------------------|
5. | Newfound 92 4.5 |
6. | Newfound 93 .8 |
7. | Newfound 94 -3 |
8. | Newfound 95 -5.8 |
|-------------------------|
9. | Nova Sco 92 12.1 |
10. | Nova Sco 93 5.8 |
11. | Nova Sco 94 3.5 |
12. | Nova Sco 95 3.9 |
|-------------------------|
13. | Ontario 92 174.9 |
14. | Ontario 93 169.1 |
15. | Ontario 94 120.9 |
16. | Ontario 95 163.9 |
|-------------------------|
17. | Quebec 92 80.6 |
18. | Quebec 93 77.4 |
19. | Quebec 94 48.5 |
20. | Quebec 95 47.1 |
+-------------------------+

48
Podramos inspeccionar tambin en forma grfico los resultados de la siguiente
manera (ms adelante profundizaremos sobre el tema de grficos).
graph twoway connected grow year if provinc2<4, yline(0) by(provinc2)
-
5
0
5
1
0
-
5
0
5
1
0
92 93 94 95
92 93 94 95
New Brun Newfound
Nova Sco
g
r
o
w
year
Graphs by provinc2


49
Tambin podemos hacer el procedimiento inverso con:
reshape wide grow, i(provinc2) j(year)
y volvemos a la estructura original del dataset.

Ejemplo con collapse
Partiendo del dataset en formato long aplicamos el siguiente comando:
collapse (mean) grow, by(provinc2)
Esto permite obtener un dataset con 5 observaciones (las provincias) que
contienen el valor medio de la variable grow (valor medio de los 4 valores que
disponemos: 92, 93, 94 y 95).



50
Haciendo list obtenemos:
+----------------------+
| provinc2 grow |
|----------------------|
1. | New Brun 4.275 |
2. | Newfound -.8750001 |
3. | Nova Sco 6.325 |
4. | Ontario 157.2 |
5. | Quebec 63.4 |
+----------------------+

Existen una serie de estadsticos posibles de aplicar para agrupar los datos,
como por ejemplo: mean, sd, sum, count, max, min, median, p1, p2, etc


51

Organizacin modular de un proyecto

Hasta ahora hemos aprendido a escribir archivos DO y ejecutarlos. Hemos
trabajado con un nico archivo DO, pero para proyectos extensos esto
puede ser un problema.
La solucin consiste en separar las diferentes funciones que conforman el
proyecto en archivos DO distintos (ejemplo: importacin de los datos,
verificacin del dataset, estadsticas descriptivas, regresiones, grficos).





52

Esquemticamente tendramos un
conjunto de archivos DO con funciones
especficas, cada uno.
Estos archivos DO seran ejecutados
secuencialmente desde el archivo
master.do.
El comando para ejecutar archivos DO es
simplemente
do archivo.do



master.do
ArchivoDOpara
importacinde
datos
ArchivoDOpara
verificacinde
datos
ArchivoDOpara
estadsticas
descriptivas
ArchivoDOpara
regresiones

53

Ejemplo de proyecto modular
En los archivos dentro de cars.zip se encuentra un proyecto organizado en
forma modular.
Los archivos DO que conforman los mdulos son los siguientes:
master.do
do crcars1
do ver1
do crcars2
do ver2
erase cars1.dta
exit
Llama a cada archivo DO, borra un dataset que se cre y termina.



54
crcars1.do
capture log close
log using crcars1, text replace
set more off

clear
infile using cars
compress
save cars1, replace

log close
exit
Este archivo DO importa los datos y los guarda en un dataset llamado
cars1.dta
Obsrvese que la importacin se efecta utilizando el comando infile. Este
comando, que permite importar desde archivo de texto no tabulado,
requiere la definicin de un diccionario de datos.

55
Una ventaja que tiene infile es que tenemos mayor control sobre el tipo de
datos que estamos importando. Esta informacin se encuentra definida en
el archivo cars.dct, que est asociado a cars.raw (el archivo de datos)
El archivo cars.dct contiene lo siguiente:
dictionary using cars.raw {
_column(1) str19 mandm %19s "make and model"
_column(20) int price "price"
int mpg "mpg"
byte foreign "1 if foreign"
_column(38) str7 rep78 %7s "CU repair rating"
_column(47) int weight "weight (lbs.)"
int displacement "displacement (cu. in.)"
}
En cars.dct est definido el nmero de carcter donde empieza cada
variable, el tipo de variable, el formato de display, y el valor de la etiqueta.
Obsrvese que en el archivo DO se utiliza el comando set more off que
permite desactivar la espera pantalla por pantalla en listados largos.


56
ver1.do
capture log close
log using ver1, text replace
set more off

* La documentacion indica que marca y modelo (mandm) es un string
assert mandm ~= ""

* el precio debe estar siempre definido.
assert price ~=. & price>0

* otro chequeo
assert mpg~=. & mpg>0
assert foreign==0 | foreign==1 /* no es verdadero! */
assert weight~=. & weight>0
assert displacement~=. & displacement>0

log close
exit


57
El archivo ver1.do tiene como funcin chequear los datos que se
importaron con el DO anterior.
Para realizar los chequeos se utiliza el comando assert que permite
comprobar una aseveracin. Si la aseveracin no es verdadera, la
ejecucin del DO se detiene devolviendo un error.
En el caso de este ejemplo, se verifica que la lnea de comando
assert foreign==0 | foreign==1 no se cumple. Existe un auto cuyo
valor de foreign es 2 (en la fila 68).
Cmo encontramos el auto cuyo valor de foreign es incorrecto?
Aplicamos el siguiente comando:
list mandm mpg foreign if !(foreign == 0 | foreign == 1)
De esta manera descubrimos que la fila con problemas es la 68.


58
crcars2.do
capture log close
log using crcars2, text replace
set more off

use cars1, clear
assert foreign==2 in 68 /* el Toyota Corolla */
replace foreign=1 in 68 /* correccion */
save cars2, replace

log close
exit
El archivo crcars2.do tiene como funcin corregir el dato errneo
detectado en el DO anterior.
Para que el programa avance hasta este DO, va a ser necesario comentar
la lnea assert foreign==0 | foreign==1 en el archivo ver1.do

59
Para realizar la correccin se efecta una ltima comprobacin con el
comando assert para asegurar que la modificacin de datos (por
informacin externa) se ha realizado correctamente.
ver2.do
El archivo ver2.do tiene como funcin volver a chequear las variables para
verificar la correccin realizada.
Estos archivos DO efectuaron la tarea de importar los datos, chequear las
variables y corregir errores. Debe notarse que si programamos de esta manera,
las modificaciones al dataset quedarn siempre comentadas en los archivos DO.
Una manera incorrecta de trabajar sera modificar el dataset, guardarlo, y luego
abrir directamente el dataset corregido.
El archivo master.do podra seguir llamando la ejecucin de otros archivos DO
que realicen acciones especficas (estadsticas descriptivas, regresiones, etc.)
Otra ventaja de esta modalidad de trabajo es la reutilizacin de cdigo.

60
Tabulado avanzado y exportacin de tablas
El comando table permite realizar tabulador ms avanzados que con el
comando tabulate.
Algunos ejemplos utilizando el dataset cars2.dta empleado en la seccin
anterior, son los siguientes:

table rep78 foreign, c(mean price)
Permite conocer la media del precio de los autos para todas las combinaciones
entre las variables rep78 y foreign.

table rep78 foreign, c(mean price) row col
Posibilita agregar el mismo clculo de la media del precio para los totales de
columnas (col) y filas (row).

61
table rep78 foreign, c(mean price mean mpg)
Permite realizar el mismo anlisis pero con dos variables (price y mpg).

table rep78 foreign, c(mean price) f(%9.2fc)
Esta sintaxis permite definir el formato de visualizacin de los nmeros dentro
de la tabla. En este caso se determin un formato de 9 dgitos mximo, con
separados de miles y dos decimales siempre.

table rep78 foreign, c(mean price) replace
La opcin replace permite borrar el dataset actualmente en uso y crear un
dataset con el resultado de la tabla. Verificar con list. Esto posibilita exportar el
contenido de la tabla usando el comando outsheet using archivo.txt

62
Funciones adicionales de manejo de memoria
Stata dispone de una combinacin de comandos muy tiles que permiten
alterar los datos de un dataset y luego volver a la situacin original. Veamos un
ejemplo:
use auto.dta
preserve
replace price = 0
drop mpg
restore
El comando preserve hace que Stata guarde en memoria una foto de la
situacin del dataset. El comando restore permite restaurar la situacin del
momento cuando se hizo preserve. Esto implica que se revierten las
modificaciones producidas por los comandos replace y drop (en el ejemplo).

63
Dimensiones de un dataset
Un dataset en Stata puede ser de tres tipos segn las dimensiones que tenga.
Estas posibilidades son:
Datos de corte transversal: en este caso la unidad de informacin es un
objeto (un individuo, una provincia, un auto, etc)
Series de tiempo: en este caso la unidad de informacin es un momento en
el tiempo. Por ejemplo un ao en particular, o un mes, un da, etc.
Datos de panel: esta alternativa combina las dimensiones anteriores. Es
decir, en este caso la unidad de informacin es un objeto en un momento
del tiempo en particular. Por ejemplo una provincia en un ao
determinado.



64
Definicin de la unidad de informacin en Stata
En Stata se usa el comando tsset para definir las dimensiones del dataset que
estamos trabajando. La forma de uso es la siguiente:
tsset year, yearly
Esta sintaxis indica a Stata que el dataset en uso es de tipo serie de tiempo. La
variable temporal es year y la periodicidad es yearly. Existen diferentes
opciones de periodicidad como: daily, weekly, monthly, quarterly, halfyearly,
yearly.
tsset year provincia, yearly
En este caso se define un panel de datos donde la dimensin temporal est en
la variable year y los objetos se definen con la variable provincia.
Si no se especifica el comando tsset, Stata asume que el dataset es de tipo
corte transversal.

65
Operadores de serie de tiempo
Cuando un dataset se establece con dimensin temporal, como serie de tiempo
o panel de datos, es posible utilizar los operadores de serie de tiempo. Los
operadores disponibles son los siguientes (suponiendo que tenemos un dataset
con la variable pbi):

generate pbi2 = L.pbi
Crea la variable pbi rezagada un perodo. Es decir pbi
t-1

generate pbi3 = L2.pbi generate pbi2 = LL.pbi
Crea la variable pbi rezagada dos perodos. Es decir pbi
t-2


66
generate pbi4 = F.pbi
Crea la variable pbi adelantada un perodo. Es decir pbi
t+1

generate pbi5 = F2.pbi generate pbi2 = FF.pbi
Crea la variable pbi adelantada dos perodos. Es decir pbi
t+2


generate d1pbi = D.pbi
Crea una variable con la diferencia pbi
t
- pbi
t-1

generate d1pbi = D2.pbi
Crea una variable con la diferencia de diferencias (pbi
t
- pbi
t-1
) - (pbi
t-1
- pbi
t-2
)

Anda mungkin juga menyukai