Академический Документы
Профессиональный Документы
Культура Документы
Introduccin a Stata
Marzo de 2012
Contenido Organizacin de la parte prctica del curso Introduccin a Stata o Interface o Sintaxis. o Comandos bsicos o Memoria o 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 y exportacin de datos
Los mircoles de 10:00 a 13:00 hs (Grupo 1) y de 18:00 a 21:00 hs (Grupo 2) desarrollaremos clases de consultas para la realizacin de los trabajos prcticos. Interactuaremos mediante la pgina web del curso www.econometria1.depeco.econo.unlp.edu.ar. Desarrollaremos cuatro trabajos prcticos grupalmente, que debern ser entregados en las fechas previstas. El software bsico a desarrollar en este curso es STATA versin 8.0 (o superior), el cual se cubrir en un nivel bsico.
Los temas a desarrollar especficamente en STATA son: o Introduccin a la interface, sintaxis, comandos bsicos. o Archivos a usar en un proyecto: dataset, log, do. o Gestin de base de datos y tabulados. o Introduccin bsica a regresiones y grficos Las clases sern en el Laboratorio de Computacin (subsuelo).
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.
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).
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 con 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.
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 del material de clases en el sitio web, y guardar en C:\clase1). Este dataset contiene datos 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 *.*)
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
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*
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.
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
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).
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 . Tenemos dos alternativas: 1. Utilizar el editor de textos que tiene incluido Stata. 2. Utilizar un editor de textos externo.
1 1
Editor de textos incluido en Stata Para acceder a esta funcionalidad el comando es: doedit
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), el archivo de instalacin y la sintaxis de STATA se puede obtener en el website del curso. Textpad: es un editor pago (www.textpad.com) En el sitio web del curso se encuentran los archivos,
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 la versin trial del editor de textos externo Edit Plus, debido a que se dispone de las ventajas del cdigo coloreado. Instrucciones para la instalacin del Edit plus Primero deben bajarse la sintaxis de STATA (el archivo stata.stx) que es lo que les permite diferenciar con colores las distintas funciones. Una vez abierto el edit plus, Tienen que ir a "Tools", despus "preferences", luego dentro de Files a "Settings y Sintaxis". Poner Add, en el nombre se pone Stata y en la file extension do;ado Despus en Syntax file s e pone la ruta donde guardaron el archivo stata.stx Por ejemplo. C:\Archivos de programa\EditPlus 2\stata.stx . Luego Apply y listo...
28
Mi primer archivo DO Utilizando el dataset auto.dta escribiremos nuestro primer archivo DO mediante el editor de textos. Para ello realizamos las siguientes acciones: -Copiamos en c:\clase2 el archivo auto.dta. Esta ser nuestra carpeta de trabajo. -En Stata command ejecutamos cd c:\clase2, de esta manera Stata buscar archivos en esa carpeta. -En el Edit plus escribimos use auto.dta, clear describe summarize price exit
29
-Guardamos el archivo con el nombre auto.do en la carpeta c:\clase2 -En Stata command ejecutamos do auto. Tambin puede realizarse a travez de file/do.. 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
31
\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 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 1 2 .. N Variable1 Dato 1,1 Dato 1,2 .. Dato 1,N Dato 2,N Variable2 Dato 2,1 Dato 2,2 Variable3 Dato 3,1 Dato 3,2 .. Dato 3,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 Byte Integer Long Float Double Tipos de nmeros Enteros Enteros Enteros Con decimales Con decimales Lmite inferior -127 -32.767 -2.147.483.647 -1.70 x 1038 -8.99 x 10307 Lmite superior +100 +32.740 +2.147.483.620 +1.70 x 1036 +8.99 x 10308
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.
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 tiadpo de dato que queremos, se utiliza: generate byte cantidad = 0 generate float descuento = 0
35
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.
36
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.
37
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
38