Introducción a Stata Clase 1: Funciones Básicas R. E. De Hoyos* University of Cambridge 17 de febrero de 2005 1. Introducción En esta primera sesión, se tocarán los puntos básicos sobre el funcionamiento de Stata. Iniciaremos la sesión personalizando Stata. Una vez familiarizado con las ventanas del programa, veremos las diferentes formas de introducir datos, modificarlos, analizarlos y salvarlos. Finalmente aprenderemos a utilizar 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ón en turno. Sólo los resultados más recientes * red29@cam.ac.uk 1 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ás utilizado es el archivo “Stata” cuya dirección 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ón. La ruta del archivo “Stata” también 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ás 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únmente realizados en Excel (separados por comas o bien por tabuladores). Otros comandos que pueden ser utilzados son: infile1, infile2 e infix. También es posible introducir datos “a mano” utilizando el comando edit, el cual abre una hoja de cálculo. Aunque no es muy recomendable, los datos pueden ser introducidos a Stata cortándolos desde Excel y pegandolos en la hoja de cálculo de Stata. Si los datos ya estan en formato de Stata (terminación .dta), estos pueden 1 El tamaño y posición de las ventanas puede ser ajustado según las preferencias del usuario y estas pueden ser salvadas utilizando “Prefs” → “Save Windowing Preferences”. 2 Es importante señalar que Stata es sencible al uso de mayúsculas, todos los comandos Stata deben ser escritos utilizando sólo minúsculas. 3 American Standard Code for Information Interchange 2 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ño de la Matriz Stata cuenta con un optimizador de memoria el cual asigna una cantidad predeterminada de memoria a cada observación, la cantidad asignada automáticamente es de 10M. El usuario debe incrementar esta cantidad si considera que la base de datos necesita más recursos utilizando el comando set memory seguido por la cantidad en mega bytes. Si la memoria asignada es insuficiente dado el tamaño de la base de datos, Stata emitirá 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 útil cuando se manejan varias bases de datos grandes. Otro valor que debe ser asignado de acuerdo al tamaño de la base de datos y el tipo de análisis que se pretende realizar con ella, es el tamaño de la matriz. El valor asignado por Stata (en su edición especial) es de 400 variables, este puede ser incrementado hasta 11,000 en el caso de la edición especial (800 en la versión más pequeña de Stata) usando el comando set matsize. Comandos: memory, compress, matsize 3.2. Leyendo los Datos Stata almacena las varaibles asignándoles diferentes formatos dependiendo del tipo de información de sus observaciones. Para obtener esta y otra información como número de variables u observaciones use el comando describe. 3 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álculo mientras el segundo despliega los datos en la ventana de resultados. 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 memoria temporal de Stata; notese que al utilizar clear no se realizará ninguna advertencia antes de descargar los datos y si la base de datos original ha sido modificada sin ser salvada estos cambios se perderán. Comandos: save, erase, clear 4. Modificando la Base de Datos Una vez cargada la base de datos, es muy común modificarla para crear nuevas variables o bien cambiar el orden o contenido de las mismas. Los siguientes comandos son muy útiles para estas tareas: label Este comando sirve para añadir 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 encuentran las variables. order seguido por lista de var cambia el orden según sea especificado por la lista de variables. move var1 var2 en cambio, sustituye la variable1 en la posición de la variable2. aorder acomoda las varibles en órden alfabético. 4 sort Ordena de forma acendente las observaciones basado en una o más variables. generate Genera una nueva variable definida en base a una expresión numérica la cual puede contener otras variables. Por su flexibilidad, este es uno de los comandos más importantes de Stata, ya que se pueden utilizar un gran número de operaciones lógicas, aritméticas y matemáticas para definir expresión. En el siguiente cuadro tratamos de resumir las expresiones más utilizadas con generate. 5 Cuadro 1: Expresiones usadas por generate Expresiónes Lógicas Significado &, | Y (AND), O (OR) >, < Mayor que, Menor que ==, ! = Igual a, Diferente a >=, <= Mayor o Igual, Menor o Igual Expresiones Aritméticas +, − Mas, Menos ∗, / Multiplicación, División n, N Número de observación corriente, Número de observaciones totales Algunas funciones Matemáticas abs() Valor absoluto cond(x; y; z) si x es igual a 0, entonces y.., de otra forma z.. exp() función exponencial round(x; y) redondea x en unidades de y; round(.,1) rodondea a la integral más cercana. log() logaritmo natural min(x1; x2; : : :) el mı́nimo de x1; : : : ; xn max(x1; x2; : : :) el máximo de x1; : : : ; xn sqrt() raiz cuadrada sum() La suma para la expresión entre paréntesis. uniform() Genera números aleatoreos entre 0 y 1 con una distribución uniforme. See: help functions egen Es una extención de generate que contiene una gran cantidad de funciones pre-establecidas con las que se pueden generar nuevas variables. replace Cambia el contenido de una variable ya existente sustituyéndola por una expresión. 6 encode Cuando una variable está en formato string (es decir no-numérico) no se pueden obtener estadı́sticas sobre ella. encode y su opuesto decode cambian el formato de una variable string a numérico y viceversa. Aletenativamente podemos utilizar los comandos tostring y destring los cuales realizan las mismas funciones pero con más opciones. reshape wide, long Este comando transforma la base de datos de una formato ancho (wide) a uno largo (long) y viceversa. reshape puede transformar 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ño 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 keep Seguido por una lista de variables mantiene las variables especificadas eliminando las no incluidas en la lista. Análogamente el comando drop elimina las variables que le siguen al comando conservando las noincluidas. 5. Combinando Bases de Datos Muchas veces es necesario combinar dos o más 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ún. 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 ejemplo: use ds2 sort recid save ds2, replace use ds1 sort recid merge recid using ds2 Lo que este pequeño código 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ás 8 sencilla pues sólo se tiene que nombrar la base da datos que se desea anexar. Por ejemplo: append using ndatos Por último, si se desea contruir una nueva base de datos que contenga información 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ón para cada miembro que lo integra. Si cada hogar dispone de un identificador único, entonces se puede formar una base de datos alternativa que contenga una sola observación por hogar (en lugar de una observación por individuo) para cada una de las variables deseadas. Esta observación puede contener la media, la desviación estandar, la suma u otro estadı́stico por hogar. Por ejemplo: collapse (mean) edad educacion ingreso, by(hogar) El código anterior crea una base de datos con cuatro variables (hogar, edad, educación e ingreso) con una observación por hogar, la cual contiene el promedio 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ún. Esta sintaxis es la siguiente: [by lista de var :] comando lista de var [if expresión] [in rango] [ponderadores] [using nombre del archivo], [opciones] Sin embargo para la moyor parte del curso sólo necesitaremos una versión mucho más simple como: [by lista de var :] comandolista de var [if expresión], [opciones] 9 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á 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 precedidas por una coma. A lo largo del tutorial se utilizará esta sintaxis de forma continua de manera que al final del curso el participante estará familiarizado con ella. Vea: help language Otra información clave es la forma en que podemos obtener ayuda. Todos los comandos Stata tienen información acerca de la manera en que deben utilizarce (sintaxis y opciones); para acceder a ella es sólo cuestión de escribir 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é relacionada con dicha tarea. Este comando busca en toda la documentación tanto interna como aquella que se encuetra en la página red de Stata. Adicionalmente, existen páginas de internet con materiales didácticos, estos son algunas de las más 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 query le indicará si es necesario hacer actulizaciones.4 7. Resumen En esta primera sesión aprendimos los puntos más básicos del funcionamiento de Stata incluyendo la importación, tranformación 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ño de matriz para cargar los datos y llevar al cabo el análisis. La combinación de bases de datos y la generación de nuevas variables utilizando las expresiones del comando generate fueron entre las tareas más importantes de la sesión. 4 Para hacer las actualizaciones es necesario que su computadora esté conactada a la red; si su conexión utiliza un proxy, tiene que configurar Stata, vea help netio. 11