Este documento presenta una introducción a las funciones básicas de Stata en una primera clase. Explica cómo personalizar Stata y manejar la base de datos, incluyendo cómo introducir, leer, modificar y guardar datos. También cubre cómo combinar bases de datos y obtener ayuda sobre los comandos de Stata. El objetivo es familiarizar a los estudiantes con los aspectos fundamentales de Stata para que puedan empezar a utilizar el software de manera efectiva.
1. Introducci´on a Stata
Clase 1: Funciones B´asicas
R. E. De Hoyos*
University of Cambridge
17 de febrero de 2005
1. Introducci´on
En esta primera sesi´on, se tocar´an los puntos b´asicos sobre el funcionamiento
de Stata. Iniciaremos la sesi´on personalizando Stata. Una vez familiarizado
con las ventanas del programa, veremos las diferentes formas de introducir
datos, modificarlos, analizarlos y salvarlos. Finalmente aprenderemos a uti-
lizar los recursos disponibles en la red para responder a nuestras preguntas
y estar al dia sobre los desarrollos de Stata.
2. Personalizando Stata
El depliegue de Stata presenta cuatro ventas diferentes: “Review”, “Results”,
“Variables” y “Commands”. En “Review” aparencen los comandos que han
sido utilizados durante las sesi´on en turno. S´olo los resultados m´as recientes
*
red29@cam.ac.uk
1
2. son visibles en la pantalla “Review”, mientras que “Command” sirve para
utilizar Stata de forma interactiva.1
Al instalar Stata, varios archivos son creados para su uso posterior. El m´as
utilizado es el archivo “Stata” cuya direcci´on esta indicada en la parte inferior
izquierda de la pantalla; es aqu´ı donde son salvados los datos y resultados si
no se especifica otra ruta. Para visulizar la ruta de todos los archivos creados
por Stata, escriba la palabra sysdir en la barra de comandos.2
La ruta
de estos archivos puede ser modificada utilizando el comando sysdir set
nombre del archivo seguido por la nueva direcci´on. La ruta del archivo
“Stata” tambi´en puede ser modificada escribiendo el comando cd seguido
por la nueva ruta.
Comandos: sysdir
3. Manejando la Base de Datos
Hay varias formas en que podemos introducir datos en Stata. Una de las
m´as comunes es utilizando el comando insheet seguido por la ruta del
archivo, este comando premite a Stata leer archivos en formato ASCII3
que
son com´unmente realizados en Excel (separados por comas o bien por tabu-
ladores). Otros comandos que pueden ser utilzados son: infile1, infile2 e
infix. Tambi´en es posible introducir datos “a mano” utilizando el comando
edit, el cual abre una hoja de c´alculo. Aunque no es muy recomendable, los
datos pueden ser introducidos a Stata cort´andolos desde Excel y pegandolos
en la hoja de c´alculo de Stata.
Si los datos ya estan en formato de Stata (terminaci´on .dta), estos pueden
1
El tama˜no y posici´on de las ventanas puede ser ajustado seg´un las preferencias del
usuario y estas pueden ser salvadas utilizando “Prefs” → “Save Windowing Preferences”.
2
Es importante se˜nalar que Stata es sencible al uso de may´usculas, todos los comandos
Stata deben ser escritos utilizando s´olo min´usculas.
3
American Standard Code for Information Interchange
2
3. ser cargados al programa utilizando el comando use seguido por la ruta en
donde se encuentra la base de datos. Por ejemplo:
use ‘‘C:/Mis Documentos/Stata/Datos1.dta’’
Comandos: insheet, infile1, infile2, infix, edit, use
3.1. Asignando Memoria y Tama˜no de la Matriz
Stata cuenta con un optimizador de memoria el cual asigna una cantidad
predeterminada de memoria a cada observaci´on, la cantidad asignada au-
tom´aticamente es de 10M. El usuario debe incrementar esta cantidad si con-
sidera que la base de datos necesita m´as recursos utilizando el comando set
memory seguido por la cantidad en mega bytes. Si la memoria asignada es in-
suficiente dado el tama˜no de la base de datos, Stata emitir´a el siguiente error:
‘‘no room to add more observations’’. Una ves que los datos han sido
cargados, estos se pueden comprimir usando compress, un comando muy ´util
cuando se manejan varias bases de datos grandes.
Otro valor que debe ser asignado de acuerdo al tama˜no de la base de datos y
el tipo de an´alisis que se pretende realizar con ella, es el tama˜no de la matriz.
El valor asignado por Stata (en su edici´on especial) es de 400 variables, este
puede ser incrementado hasta 11,000 en el caso de la edici´on especial (800 en
la versi´on m´as peque˜na de Stata) usando el comando set matsize.
Comandos: memory, compress, matsize
3.2. Leyendo los Datos
Stata almacena las varaibles asign´andoles diferentes formatos dependiendo
del tipo de informaci´on de sus observaciones. Para obtener esta y otra infor-
maci´on como n´umero de variables u observaciones use el comando describe.
3
4. Para ver las observaciones en pantalla, se puede utilizar edit o bien list
seguido por el nombre de la variable o variables que se deseen visualizar.
La diferencia entre edit y list es que el primero despliega toda la hoja
de c´alculo mientras el segundo despliega los datos en la ventana de resulta-
dos.
Comandos: describe, edit, list
3.3. Guardando los datos
Para guardar los datos use el comando save seguido por la ruta en donde se
quieren salvar. Para borrar una base de datos no deseada utilice el comando
erase seguido por la ruta. El comando clear descarga los datos de la memo-
ria temporal de Stata; notese que al utilizar clear no se realizar´a ninguna
advertencia antes de descargar los datos y si la base de datos original ha sido
modificada sin ser salvada estos cambios se perder´an.
Comandos: save, erase, clear
4. Modificando la Base de Datos
Una vez cargada la base de datos, es muy com´un modificarla para crear
nuevas variables o bien cambiar el orden o contenido de las mismas. Los
siguientes comandos son muy ´utiles para estas tareas:
label Este comando sirve para a˜nadir etiquetas tanto a variables (label
variable) como a bases de datos (label data).
order, move y aorder Estos comandos cambian el orden en que se encuen-
tran las variables. order seguido por lista de var cambia el orden seg´un
sea especificado por la lista de variables. move var1 var2 en cambio,
sustituye la variable1 en la posici´on de la variable2. aorder acomoda
las varibles en ´orden alfab´etico.
4
5. sort Ordena de forma acendente las observaciones basado en una o m´as
variables.
generate Genera una nueva variable definida en base a una expresi´on num´eri-
ca la cual puede contener otras variables. Por su flexibilidad, este es uno
de los comandos m´as importantes de Stata, ya que se pueden utilizar
un gran n´umero de operaciones l´ogicas, aritm´eticas y matem´aticas para
definir expresi´on. En el siguiente cuadro tratamos de resumir las expre-
siones m´as utilizadas con generate.
5
6. Cuadro 1: Expresiones usadas por generate
Expresi´ones L´ogicas Significado
&, | Y (AND), O (OR)
>, < Mayor que, Menor que
==, ! = Igual a, Diferente a
>=, <= Mayor o Igual, Menor o Igual
Expresiones Aritm´eticas
+, − Mas, Menos
∗, / Multiplicaci´on, Divisi´on
n, N N´umero de observaci´on corriente, N´umero de
observaciones totales
Algunas funciones Matem´aticas
abs() Valor absoluto
cond(x; y; z) si x es igual a 0, entonces y.., de otra forma z..
exp() funci´on exponencial
round(x; y) redondea x en unidades de y; round(.,1) rodondea a
la integral m´as cercana.
log() logaritmo natural
min(x1; x2; : : :) el m´ınimo de x1; : : : ; xn
max(x1; x2; : : :) el m´aximo de x1; : : : ; xn
sqrt() raiz cuadrada
sum() La suma para la expresi´on entre par´entesis.
uniform() Genera n´umeros aleatoreos entre 0 y 1 con
una distribuci´on uniforme.
See: help functions
egen Es una extenci´on de generate que contiene una gran cantidad de fun-
ciones pre-establecidas con las que se pueden generar nuevas variables.
replace Cambia el contenido de una variable ya existente sustituy´endola
por una expresi´on.
6
7. encode Cuando una variable est´a en formato string (es decir no-num´erico) no
se pueden obtener estad´ısticas sobre ella. encode y su opuesto decode
cambian el formato de una variable string a num´erico y viceversa. Alete-
nativamente podemos utilizar los comandos tostring y destring los
cuales realizan las mismas funciones pero con m´as opciones.
reshape wide, long Este comando transforma la base de datos de una for-
mato ancho (wide) a uno largo (long) y viceversa. reshape puede trans-
formar de una base de datos como la siguiente en formato ancho:
Cuadro 2: Datos en formato wide
Xij
id sexo ing80 ing81 ing82
1 0 5000 5500 6000
2 1 2000 2200 3300
3 0 3000 2000 1000
A uno largo como este:
Cuadro 3: Datos en formato long
i j Xij
id a˜no sexo Ing
1 80 0 5500
1 81 0 5500
1 82 0 6000
2 80 1 2000
2 81 1 2200
2 82 1 3300
3 80 0 3000
3 81 0 2000
3 82 0 1000
7
8. keep Seguido por una lista de variables mantiene las variables especificadas
eliminando las no incluidas en la lista. An´alogamente el comando drop
elimina las variables que le siguen al comando conservando las no-
incluidas.
5. Combinando Bases de Datos
Muchas veces es necesario combinar dos o m´as bases de datos para formar
una sola. Para ello se pueden utilizar los comandos merge o append. merge
une dos bases de datos utilizando una variable en com´un. Las dos bases de
datos deben estar en formato .dta (Stata) y las observaciones deben estar
ordenas (utilizando sort) de acuerdo a la variable que sirve como referencia.
El objetivo de merge es anexar variables no observaciones. Por ejemp-
lo:
use ds2
sort recid
save ds2, replace
use ds1
sort recid
merge recid using ds2
Lo que este peque˜no c´odigo nos dice es que carguemos la base de datos ds2
(use) y la ordenemos de acuerdo al identificador recid (sort) y guardemos los
cambios reeplasando ds2 (save). Posteriormente abrimos la segunda base de
datos utilizando el comando use, la ordenemos en base a recid y finalmente
la pegamos (merge) de acuerdo a recid utilizando la base de datos ds2.
En el caso de append sucede lo contrario, lo que se busca es anexar observaciones—
por lo general—a una misma serie de variables. La sintaxis es mucho m´as
8
9. sencilla pues s´olo se tiene que nombrar la base da datos que se desea anexar.
Por ejemplo:
append using ndatos
Por ´ultimo, si se desea contruir una nueva base de datos que contenga in-
formaci´on condensada de la base original, esto se puede hacer utilizando el
comando collapse. Supanga que tiene una base de datos sobre hogares y que
cada hogar tiene una observaci´on para cada miembro que lo integra. Si cada
hogar dispone de un identificador ´unico, entonces se puede formar una base
de datos alternativa que contenga una sola observaci´on por hogar (en lugar
de una observaci´on por individuo) para cada una de las variables deseadas.
Esta observaci´on puede contener la media, la desviaci´on estandar, la suma u
otro estad´ıstico por hogar. Por ejemplo:
collapse (mean) edad educacion ingreso, by(hogar)
El c´odigo anterior crea una base de datos con cuatro variables (hogar, edad,
educaci´on e ingreso) con una observaci´on por hogar, la cual contiene el prome-
dio de cada variable por hogar.
Comandos: merge, append, collapse
6. Sintaxis y Obteniendo Ayuda
Como lo podemos ver en los ejemplos anteriores, la sintaxis de los comandos
Stata tienen un formato com´un. Esta sintaxis es la siguiente:
[by lista de var:] comando lista de var [if expresi´on] [in rango]
[ponderadores] [using nombre del archivo], [opciones]
Sin embargo para la moyor parte del curso s´olo necesitaremos una versi´on
mucho m´as simple como:
[by lista de var:] comandolista de var [if expresi´on], [opciones]
9
10. El prefijo by permite aplicar el mismo comando separando la base de datos en
subgrupos definidos por lista de var. Posteriormente viene el comando seguido
por una segunda lista de var a las cuales se les aplicar´a el comando elegido.
Los datos utilizados para evaluar el comando pueden ser limitados con las
opciones if e in. Las opciones espec´ıficas al comando tienen que ser precedi-
das por una coma. A lo largo del tutorial se utilizar´a esta sintaxis de forma
continua de manera que al final del curso el participante estar´a familiarizado
con ella.
Vea: help language
Otra informaci´on clave es la forma en que podemos obtener ayuda. Todos
los comandos Stata tienen informaci´on acerca de la manera en que deben
utilizarce (sintaxis y opciones); para acceder a ella es s´olo cuesti´on de es-
cribir la palabra help seguida por el nombre del comando en la ventana
de comandos de Stata. Si no conoce el nombre del comando que realiza la
tarea que tiene en mente, escriba la palabra findit seguida por una palabra
que est´e relacionada con dicha tarea. Este comando busca en toda la docu-
mentaci´on tanto interna como aquella que se encuetra en la p´agina red de
Stata. Adicionalmente, existen p´aginas de internet con materiales did´acticos,
estos son algunas de las m´as importantes:
http://www.stata.com/support/
http://www.stata.com/support/faqs/
http://www.ats.ucla.edu/stat/stata/sk/
http://www.ats.ucla.edu/stat/stata/
http://ideas.repec.org/s/boc/bocode.html
Stata se actualiza casi continuamente, los usuarios pueden escribir programas
y mandarlos al archivo de SSC (Statistical Software Components), por lo
tanto es necesario hacer actualizaciones de forma regular. El comando update
10
11. query le indicar´a si es necesario hacer actulizaciones.4
7. Resumen
En esta primera sesi´on aprendimos los puntos m´as b´asicos del funcionamien-
to de Stata incluyendo la importaci´on, tranformaci´on y el manejo de bases
de datos. Otros puntos clave consistieron en el procedimiento para cargar las
bases de datos en formatos diferentes a Stata, as´ı como asignar la suficiente
memoria y tama˜no de matriz para cargar los datos y llevar al cabo el an´ali-
sis. La combinaci´on de bases de datos y la generaci´on de nuevas variables
utilizando las expresiones del comando generate fueron entre las tareas m´as
importantes de la sesi´on.
4
Para hacer las actualizaciones es necesario que su computadora est´e conactada a la
red; si su conexi´on utiliza un proxy, tiene que configurar Stata, vea help netio.
11