Manual Stata 9.0

73
Manual Básico de STATA 1 MANEJO BASICO DE STATA 9.0 Notas de Clase Preparado Por: Wilson Mayorga Mogollón Diciembre 2006 Wilson Mayorga Mogollón

Transcript of Manual Stata 9.0

Page 1: Manual Stata 9.0

Manual Básico de STATA 1

MANEJO BASICO DE STATA 9.0 Notas de Clase

Preparado Por: Wilson Mayorga Mogollón

Diciembre 2006

Wilson Mayorga Mogollón

Page 2: Manual Stata 9.0

Manual Básico de STATA 2

MANEJO BASICO DE STATA 9.0

PARTE I: MANEJO DE DATOS

1. Introducción

2. Administración de Datos

PARTE II: OPERACIONES Y COMANDOS

3. Funciones y Expresiones

4. Resumiendo Datos

5. Análisis Gráfico

6. Operaciones Estadísticas

7. Elementos del Lenguaje

8. Series de Tiempo

ANEXOS A1. Programas y Condicionales A2. Matrices en STATA A3. Diseño de Ventanas y Botones

Wilson Mayorga Mogollón

Page 3: Manual Stata 9.0

Manual Básico de STATA 3

PARTE I. INTRODUCCION Y MANEJO DE DATOS

1. INTRODUCCION Stata es un paquete estadístico aplicado a problemas donde los datos son muestras de individuos, empresas, hogares, etc; a diferencia de otros programas más conocidos por los economistas, donde el interés principal es el estudio de datos de series de tiempo. Los principales usuarios de Stata provienen de áreas médicas(análisis de datos categóricos y longitudinales, análisis de supervivencia, epidemiología, etc) y recientemente, dado el uso de este tipo de modelos en el área económica, se ha popularizado el uso de este programa entre los economistas. El diseño de ventanas del programa, permite que sea posible utilizar en ocasiones la interfase gráfica o el Mouse para realizar algunas operaciones, sin embargo, en casos complejos, debe escribirse la sintaxis correcta de comandos. Este requerimiento hace que Stata se defina como un lenguaje de programación. Las nuevas versiones, posteriores a la versión 8.0 difiere de las versiones previas en que permite realizar todas las operaciones estadísticas mediante menús interactivos, con lo cual el conocimiento exacto de la sintaxis deja de tener cierta relevancia. La pantalla de inicio de Stata es:

Gráfica 1. Pantalla de Inicio STATA

En ocasiones la pantalla será negra, para cambiarla de color se puede tomar la siguiente ruta: Prefs-General Preferences y allí se utiliza el color que más se adecue al gusto del usuario. En general, este menú PREFS, modifica las opciones de presentación del Programa, y es posible guardar de manera permanente las preferencias del respectivo usuario.

Wilson Mayorga Mogollón

Page 4: Manual Stata 9.0

Manual Básico de STATA 4

Los otros menús disponibles son: • File: Abre, Guarda e Imprime los diferentes tipos de archivos disponibles en

Stata. • Edit: Copia y pega tablas de datos • Data: Permite realizar operaciones entre tablas de datos y matrices • Graphics: Es el listado completo de todas las operaciones gráficas que permite

realizar Stata. • Statistics: Es el menú principal. Contiene el listado de todas las operaciones

estadísticas posibles de realizar en Stata 9.0. • Window: Activa y desactiva las diferentes ventanas en que se distribuye el

programa. Puede funcionar usando la tecla CTRL + un número que va de 1 hasta 8 según la ventana que se desea operar o desplazando utilizando el Mouse.

Las ventanas disponibles en Stata son: CTRL + 1 Results : Aquí aparecen los resultados del uso de comandos y los

mensajes de error, cuando hubieren. CTRL + 2 Graph : Interfase donde aparecen los gráficos diseñados en el

programa. CTRL + 3 Viewer: Es como una forma de ingresar a la búsqueda de ayuda de

comandos. CTRL + 4 Command : En esta ventana se escriben los comandos que se

deseen operar en Stata. CTRL + 5 Review : En esta ventana aparece un listado de los comandos

escritos por el usuario. CTRL + 6 Variables : Aquí presenta el listado de variables con las que

actualmente se está operando(pertenecen a un archivo de trabajo). CTRL + 7 Data Editor: Es la hoja de ingreso de datos de forma manual. CTRL + 8 Do File: Es la hoja de ingreso de comandos a un archivo tipo *.do. Siguiendo en la barra de herramientas de izquierda a derecha observamos nuevas teclas, que explicamos a continuación:

Permite abrir un log, esto es un archivo tipo texto (con extensión) .log) en donde se pueden ir guardando las salidas que aparecen en el Stata Results.

Un editor de do, que es donde se pueden realizar macros (detalles más adelante).

Son el editor y el browser, el primero permite realizar modificaciones en la base de datos, el segundo sólo observar los datos.

Wilson Mayorga Mogollón

Page 5: Manual Stata 9.0

Manual Básico de STATA 5

El break, es una interrupción al programa a la función que esté realizando.

• CONDICIONES INICIALES Debe tenerse en cuenta que Stata es un programa Sensible a las mayúsculas, es decir, para el programa un comando con mayúsculas es diferente a uno en minúsculas. Todo se debe escribir en minúsculas. Además, en casi todos los casos, Stata funciona con sólo escribir las tres primeras letras del comando respectivo. Al escribir cada comando en Stata, aparecerá en pantalla Result el mensaje o resultado de respuesta del comando.

clear Con este comando se borran los resultados y operaciones que de manera temporal se encuentran grabados en el programa

set memory Permite aumentar la memoria que utiliza el programa dentro las posibilidades del equipo, por defecto Stata inicia su sesión con 5 Megabytes, por tanto si se requiere trabajar con más de esa capacidad (como para abrir una gran base de datos), por ejemplo con 10 Megas, se debe escribir: set memory 10m o también set memory 10000. Un tercer comando, que evita que las salidas sean cortadas por el tamaño vertical de la pantalla es:

set more off

• RECIBIENDO AYUDA DE STATA Si bien la presentación del menú HELP de Stata no es tan amigable como la de otros programas, el usuario cuenta con amplias posibilidades de información que le serán de muchísima utilidad. HELP-CONTENTS : Presenta a manera de tabla de contenido, el listado de comandos disponibles en Stata. Dando click en alguno de ellos, se puede ingresar a una descripción del comando y algunos ejemplos de su uso. HELP-STATA COMMAND: Ingresando el comando que genera dudas, se tiene una referencia de su uso y explicación. HELP-SEARCH: Esta opción puede ser útil cuando se conoce el tema pero no el comando que podría usarse. Por ejemplo. SEARCH: logistic Regression. También dentro del menú de Help se encuentran otras opciones de ayuda On line. Igualmente en la página www.stata.com se encuentran documentos y Stata Bulletin los cuales pueden ser de mucha utilidad para el usuario.

Wilson Mayorga Mogollón

Page 6: Manual Stata 9.0

Manual Básico de STATA 6

Escribiendo en la ventana de comandos la palabra HELP seguido del comando que se desea aplicar, genera como salida una explicación del significado, propiedades y descripción completa del procedimiento

Help logistic • SINTAXIS BASICA DE LOS COMANDOS La ejecución de una orden esta compuesta en general por tres partes: la primera, todo comando inicia con una o dos palabras clave (table, save, use, etc.); a continuación el usuario tiene que suministrar ciertos parámetros, y por ultimo algunos procedimientos tienen ciertas opciones suministradas por el software. Existen tres maneras de operar comandos en STATA: • Utilizando el mouse y buscando la operación deseada dentro del menú

Graphics, Data o Statistics. • Escribiendo comando por comando en la ventana correspondiente y obteniendo

el resultado en cada paso, dando Enter. • Editando un archivo *.do, el cual es un archivo de texto, donde se escribe un

conjunto de comandos. Al operar este archivo, se realizarán simultáneamente las operaciones allí definidas.

Con algunas pocas excepciones, la sintaxis básica de un comando en Stata es:

[by variable indicadora:] comando [lista de variables] [= expresión] [if expresión] [in rango] [weight] [, opciones específicas]

Donde entre brackets [] se presentan aquellas cosas que pueden ser opcionales al comando. Las palabras en inglés son de alguna manera “fijas”. Lista de variables: Se refiere al nombre de la variable a la que se aplicará el comando. En caso que no aparezca se aplicará a todo el conjunto de datos. Los componentes opcionales son: • By lista de variables: Indica que el comando se repetirá para cada subconjunto

de datos para los cuales los valores de la variable indicadora definida sean iguales. Para que funcione, los datos deben ser primero ordenados por la variable indicadora.

Ejemplo: Suponga que se tiene una variable llamada sexo, donde 1 es hombre y cero mujer. En ese caso es posible aplicar un comando que genere resultados para los hombres y para las mujeres así:

By sexo: comando [lista de variables]

Wilson Mayorga Mogollón

Page 7: Manual Stata 9.0

Manual Básico de STATA 7

• If Expresión: Esta opción restringe el comando a aquellas observaciones para los cuales la expresión condicional es verdadera.

Por ejemplo, si sólo se desea generar un resultado para los hombres, se tendría el siguiente comando:

Comando [lista de variables] if sexo==1 • In rango: Esta opción, restringe el alcance del comando a un rango de

observaciones específico. La especificación de ese rango toma la forma numérica, así límite inferior[/límite superior], siendo estos límites posiciones.

Por ejemplo, se desea aplicar un comando entre el dato en la posición 5 y la posición 25 inclusive, la sintaxis será:

Comando [lista de variables] in 5/25 • = Expresión: Se usa cuando se desea dar algún valor específico al resultado. Se

usa cuando se desea crear una nueva variable o reemplazar una variable(comandos generate o replace).

Generate suma = variable1 + variable2

• Weight: Se usa cuando se desea ponderar por alguna variable el resultado

generado por un comando. Es útil por ejemplo, para calcular de manera rápida un promedio ponderado.

Summarize variable1 [weight=variable2]

• Opciones específicas: Cada comando, dependiendo de la operación que realice,

tiene opciones propias. Estas se analizan en el momento en que cada comando sea estudiado. En el caso que una opción tenga más de un argumento, estos se separan por comas(,).

• TIPOS DE ARCHIVOS Stata maneja varios tipos de archivos, de acuerdo a su función dentro del programa. Es así como existen archivos de comandos(*.do), archivos de datos(*.dta), gráficos(*.gph) y archivos de output o salida de resultados(*.log). Estos son los básicos en el manejo de Stata. Otros archivos de gran utilidad son los archivos de programación como *.ado, y macros diseñadas por el usuario, los cuales serán analizados más adelante.

Wilson Mayorga Mogollón

Page 8: Manual Stata 9.0

Manual Básico de STATA 8

2. ADMINISTRACION DE DATOS En general, todas las operaciones es posible realizarlas en Stata 9.0 mediante el uso del menú. La importación o exportación de datos es posible mediante la ruta file-import. La administración de datos que se explicará aquí mediante comandos, es posible realizarla utilizando el menú data-combine datasets. En Stata las observaciones son numeradas secuencialmente desde 1 hasta N. En el formato de número de Stata no existen las comas; es decir cinco mil será 5000 y el punto determinará decimales, por ejemplo 5.3. También pueden escribirse números negativos(-5.3) o números en notación científica(5e+3). En el caso que existan missing values, serán denotadas por un punto(.) dentro del archivo de datos, y para Stata siempre el missing value será mayor que cualquier número; sin embargo, al realizar algún cálculo estadístico, el programa obviará estos missing values. Los números pueden ser guardados en uno de cinco tipos: byte, int, long, float(es el default) o double. La discriminación depende del número de bytes de memoria necesarios para guardar cada observación(es así como byte requiere un byte, int, que es diferente de integer, requiere 2 bytes así sucesivamente). Las variables alfanuméricas son denominadas string y deben ir dentro de comillas. En Stata son denominadas str1, str2,… En cuanto al formato de visualización, es decir, la forma en que los datos son presentados, es el siguiente: Para variables númericas, viene expresado como %w.d seguido de uno de estos tres formatos: e, f, g. Con w denotamos un número entero que especifica la anchura del formato, mientras que d india el número de dígitos que siguen al punto decimal. Para variables alfanuméricas, el formato es %ws, donde s indica que es string y w es un número entero que indica la anchura dada a la variable. Por defecto, el formato de cada variable es: Byte %9.0g Int %9.0g long %12.0g float %9.0g double %10.0g Str# %#s( o %9s si la anchura es menor de 9 caracteres) Es posible cambiar el formato de visualización de las variables con el comando format. Por ejemplo, supongamos que una variable es del tipo float y se desea que tenga formato %10.2g, la sintaxis será:

format variable %10.2g

Wilson Mayorga Mogollón

Page 9: Manual Stata 9.0

Manual Básico de STATA 9

• CREACION DE VARIABLES Y ARCHIVOS DE DATOS Los archivos de datos tienen extensión *.dta. A su vez, están formados por variables. Cuando se nombra una variable dentro del programa Stata, la misma debe tener como máximo ocho caracteres (pueden ser letras o números y debe empezar siempre con una letra). Las variables pueden ser: numéricas, alfabéticas, de fecha o de tiempo. El ingreso de Datos a Stata puede realizarse directamente utilizando el EDITOR o mediante lectura de archivos externos(ASCII), como Lotus o Excel o similares. • Ingreso Manual de Datos En la barra de comandos se da click en el Data Editor con lo cual aparece una hoja similar a Excel, donde se digitan los datos correspondientes, siendo cada columna una nueva variable, o se copian y pegan desde algún otro archivo(por ejemplo Excel o Word). En la parte superior de la ventana aparecen los nombres de las variables, encabezando cada una de las columnas en las que se introducirán sus valores.

EDITOR DE DATOS

Una vez digitados los valores de cada celda(números, nombres o frases), se procede a definir las variables: nombre, el formato y la etiqueta. Haciendo doble click en cualquier celda, nos muestra un cuadro de diálogo ofrecido para definir las características de la variable.

Una vez ingresados los nombres, se puede cerrar el editor y el programa preguntará si se desean mantener estos nuevos cambios. Aquí se dará click en OK y las nuevas variables aparecerán en la ventana de DATA EDITOR.

Wilson Mayorga Mogollón

Page 10: Manual Stata 9.0

Manual Básico de STATA 10

Esta operación genera un archivo temporal, apenas terminaremos la sesión el desaparece perdiendo así la información. Para guardar la base de datos como archivo permanente con extensión *.dta, se elige FILE-SAVE AS donde se abrirá un cuadro de diálogo que permitirá especificar tanto la ruta de acceso como el nombre del archivo de datos que se desea grabar. Otra forma de introducir los datos directamente al programa es utilizando los comandos para este fin. Utilizando la ventana Commands, escribiremos las siguientes líneas de instrucciones, y para ejecutar se da Enter:

Input característica nombre_variable1 característica nombre_variable2

input str9 nombre byte sexo byte edad float altura float peso

A continuación el programa esta esperando la información completa de cada persona. La forma de introducir los datos, es por filas, las observaciones son separadas por espacios, para identificar la información de cada ítem, en el caso de las variables que empiezan con letras, ellas deben encerrase en comillas dobles (" "), por ejemplo:

"WILSON" 1 26 176.21 72 Asi sucesivamente se introducen la información de los demás personas. Al finalizar de introducir los datos de la última persona, debe terminar con end.

End

Para dar la descripción de las etiquetas de las variables podemos utilizar la ventana Data Editor, y proceder como se indicó anteriormente. Igual para guardar la base de datos. Ejemplo: Input variable1 variable2 23 34 34 32 12 23 end Para guardar esta tabla se usa el comando save “c:/extension del archivo”. Este comando save tiene como opción replace. Si los datos están en memoria(es la tabla activa en ese momento en Stata) con sólo dar INPUT nuevamente, será posible ingresar nueva información únicamente digitando, y nuevamente finalizando con end. Input 56 78 89 90 end

Wilson Mayorga Mogollón

Page 11: Manual Stata 9.0

Manual Básico de STATA 11

Es posible ingresar variables alfanuméricas adicionando el formato str#, colocando el número de posiciones que tendrá la variable antes del nombre de la nueva variable. Input str4 variable3 variabl4 “Uno” 1 “Dos” 2 “Tres” 3 Es importante recordar que toda variable creada pertenecerá a la misma tabla de datos. Por otro lado, en cuanto a las variables numéricas, no es necesario asignarles alguno de los formatos específicos que trae STATA. Por default usa FLOAT.

• Ingreso de Datos Externos Stata importa datos provenientes de archivos externos de tipo ASCII (conocidos también como archivos planos). Existen 3 comandos disponibles para realizar importación de este tipo de datos: infix, infile e insheet; siendo el tercero el más versátil y el más recomendable. En estos archivos la información puede venir de diversas formas:

1. En columnas: De esta manera se conoce la posición donde se encuentra el valor de cada uno de los ítems.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 307 9 8 3 8 7 6 2 W I L S O N M A Y 1 2 6 1 7 7 . 2 1 7 0 . 2

En la tabla anterior hay seis variables: id, nombre, sexo, edad, altura y peso. Los datos se encuentran en formato de columna, y todas las observaciones de cada variable ocupan el mismo número de posiciones. Por ejemplo la variable id empieza en la columna 1 y termina en la columna 8. Cuando los archivos provienen de un archivo externo tipo ASCII, con estas características, se le debe indicar a Stata con la comandos infix y luego se le debe dar la forma que debe leer las base, teniendo en cuenta el siguiente orden para definir una variable:

formato nombre posición inicial - posición final La línea de comandos para este conjunto de datos es de la siguiente forma:

infix str8 id 1-8 str9 nombre 9-17 byte sexo 18 byte edad 19-20 float altura 21-26 float peso 27-30 using " c:\stata\ejemplo.raw " ( Enter)

Wilson Mayorga Mogollón

Page 12: Manual Stata 9.0

Manual Básico de STATA 12

Cuando se utiliza este formato, las posiciones de las variables deben ser fijas; es decir, en infix se indica que la variable nombre está en la columna 9 a 17, los datos para esa variable deben estar siempre entre esas posiciones. Este tipo de formato permite leer todo o parte del registro. En este ejemplo se lee todo el registro. Sin embargo, es posible leer sólo algunas variables, por ejemplo, si quisiera leer sólo el nombre y la edad, la sintaxis sería: infix str8 id 1-9 str9 nombre 9-17 byte edad 19-20 using "c:\stata\ejemplo.raw " El comando infix espera la ruta de ubicación del archivo ASCII, por lo tanto es necesario ubicarlo de donde debe tomar el archivo, por lo tanto la línea de comandos viene acompañada de otra palabra clave using.

2. Forma de lista: Se listan las variables en el orden en el cual aparecen en el registro de entrada. Las siguientes consideraciones se deben tener en cuenta para esta forma de ordenamiento de los datos:

• Las variables en el archivo por leer deben estar en el orden en el que aparecen

en la línea de comandos. • Los valores de las variables deben estar separados por alguno de las siguientes

alternativas: espacio en blanco, por tabuladores o por comas. • En los valores para las variables alfanuméricas no se permiten espacios en

intermedios. La longitud por defecto para esta clase de variables es de ocho dígitos.

• Los espacios en blanco causan que los nombres de las variables y sus valores se desfasen. Los valores faltantes en este tipo de formato se indican con un punto (.).

Continuando con el ejemplo anterior, pero ahora se tiene la información en forma de lista:

79838762 WILSON MAY 1 26 177.2 70.2 La línea de comandos para este conjunto de datos es de la siguiente manera:

infile str8 id str9 nombre sexo edad altura peso using "c:\stata\ejemplo.raw " En el uso del comando infile para variables alfanuméricas tiene que ser definido el formato, por ejemplo, en el ejercicio anterior la variable nombre debe ir antecedido por el formato a utilizar, es decir str9 nombre. Además, en el uso del comando infile se supone que no existen espacios entre las palabras; por ejemplo si el nombre fuese Juan Carlos, debería incluirse como Juan_carlos.

Wilson Mayorga Mogollón

Page 13: Manual Stata 9.0

Manual Básico de STATA 13

Si la separación es por comas, tenemos la alternativa de utilizar dos comandos, infile y insheet La línea de comandos para este conjunto de datos es de la siguiente manera:

insheet id nombre sexo edad altura peso using "c:\stata\ejemplo.raw" Este comando carga en memoria temporal archivos de datos que están en formato separados por comas, espacios o tabuladores(archivos planos o *.txt y similares). Su sintaxis es: Insheet lista de variables using nombre del archivo , opciones. Las opciones son: Names = indica si en la primera fila están los nombres de las variables Comma = indica si las variables están separadas por comas. Tab = Indica si las variables están separadas por tabulador Clear = especifica que se desea quitar de la memoria los datos anteriores y dejar estos. insheet ejemplo1 ejemplo2 using "c:\data\ejemplo.raw", names Si las columnas en los datos no tienen nombre, entonces se usa nonames. Obsérvese que utilizando este comando no fue necesario definir los formatos de las variables alfanuméricas, además no es necesario agregar el simbolo (_), para separar el nombre de Juan_carlos. Si se usan tabuladores utilizaremos insheet o infile de la misma manera que el ejemplo anterior. Suponga estos datos Wilson 23 45 Andres 56 78 Julian 34 44 Se pueden ingresar a STATA, suponiendo que están separados por tabulador y sin nombres de la siguiente manera: insheet using “c:\data\ejemplo2.txt”, nonames tab Utilizando el menu interactivo del programa es posible realizar las operaciones anteriores, mediante la ruta FILE – IMPORT, la cual despliega el siguiente conjunto de opciones:

Wilson Mayorga Mogollón

Page 14: Manual Stata 9.0

Manual Básico de STATA 14

• OPERACIONES ENTRE ARCHIVOS STATA Una vez importados o creados los datos, es posible operar con ellos. La nueva versión de Stata permite realizar estas operaciones bien sea por comandos o mediante la elección de las opciones correspondientes con el Mouse en el menú DATA-COMBINE DATASETS. A continuación se explicará el uso de comandos. En general, todos los comandos disponibles para realizar operaciones dentro la base de datos disponible en memoria se pueden encontrar siguiendo la ruta FILE-DATA. Aquí se encuentra el siguiente conjunto de opciones:

El primer grupo de opciones, agrupadas dentro del menú COMBINE DATASETS, permiten unir varias tablas de datos en una sola. Aquí se analizan 3 opciones: Unión Vertical(APPEND), Unión Horizontal(MERGE) y Selección de Datos(JOINBY).

1. CONCATENAR VERTICALMENTE Cuando se van a unir archivos que tienen variables comunes de diferentes individuos, esto se conoce como concatenar vertical. De la siguiente Manera:

TABLA A

TABLA A

TABLA B

TABLA B

Wilson Mayorga Mogollón

Page 15: Manual Stata 9.0

Manual Básico de STATA 15

Supongamos que se tienen dos bases de datos. Para generar el nuevo archivo que consiste en la unión de database1.dta y database2.dta, tenemos que seguir los siguientes pasos. 1. Tener activo alguno de ellos, por ejemplo database1.dta 2. Usar el comando append de la siguiente forma:

append using "c:\stata\database2.dta" Para mantener los cambios debe guardarse esta nueva base de datos utilizando el comando save o mediante el menú FILE-SAVE AS. 2. CONCATENAR HORIZONTALMENTE Este caso corresponde a unir valores de diferentes variables correspondientes a los mismos individuos. Se utiliza el comando merge y adicionalmente se requiere una variable común o de enlace(Variable llave). Los archivos que se concatenan tienen que estar ordenados por las variables de enlace.

TABLA A

TABLA A TABLA B

TABLA B Las siguientes líneas de comandos concatena horizontalmente los dos archivos anterior utilizando como variable de enlace id . Recuerde que alguna de las bases tiene que estar activa en el programa. • Abrir el archivo database3.dta

use "C:\stata\database3.dta", clear

• Ordenar este archivo teniendo en cuenta la variable enlace(variable llave) sort variable_llave

• Realizar la concatenación.

merge id using "C:\stata\database4.dta" En el caso que los archivos concatenados no tengan exactamente el mismo numero de observaciones, se generarán missing values en las posiciones donde falte información. El procedimiento genera una nueva variable ( _merge ), que aporta la información sobre lo realizado, utilizando los siguientes códigos:

Wilson Mayorga Mogollón

Page 16: Manual Stata 9.0

Manual Básico de STATA 16

_merge=1 Corresponde a los individuos (según la variable enlace) que están contenidos en la base activa y no están contenidos en la otra base. _merge=2 Individuos contenidos en la base dos no contenidos en la base activa _merge=3 Individuos comunes en las dos bases. 3. INCLUSION DE INFORMACION ADICIONAL Suponga que se tiene una muestra de individuos(hombres y mujeres) y se desea adicionar una nueva variable denominada esperanza de vida. Supongamos que se tiene la tabla database1.dta, que corresponde a información de personas deseamos incluir información suministrada por otro archivo (esperanzadevida.dta) que corresponde a información de género. El ejercicio consiste en obtener una nueva base cuya unidad de observación sean personas agregando la característica obtenida del segundo archivo, es decir se asigne a las personas su esperanza de vida al nacer. El procedimiento necesita variables enlace (Variables llaves), es decir, variables comunes entre los dos archivos. Los archivos que se concatenan tienen que estar ordenados por las variables de enlace.

Las siguientes instrucciones realizan la operación propuesta, donde la variable de enlace es sexo. • Abrir el archivo Stata database1.dta

use "C:\stata\database1.dta", clear • Ordenar el archivo activo teniendo en cuenta la variable de enlace, sexo.

sort sexo • Grabar el archivo database1.dta con la modificación realizada en el segundo

paso.

save "C:\stata\database1.dta", replace • Abrir la segunda base, esperanzadevida.dta.

use "C:\stata\esperanzadevida.dta", clear • Ordenar la base activa por la variable sexo

sort sexo • Unir la información adicional al database1.dta

joinby sexo using "C:\stata\database1.dta"

Wilson Mayorga Mogollón

Page 17: Manual Stata 9.0

Manual Básico de STATA 17

En el archivo final se repite la información de la segunda base de datos tantas veces como hombres o mujeres existían en la primera base de datos. En el caso que se use el menú data y específicamente la opción form all pairwise combinatios , es posible, mediante la pestaña de options, que se especifique qué observaciones se mantendrán en el archivo final: que ignore las que no concuerdan o que mantenga los registros de algunas de las tablas. 4. DISEÑO DE FILTROS: COMANDOS KEEP y DROP Estas instrucciones se utilizan cuando se va a trabajar sólo con una parte de un archivo al seleccionar un grupo de variables u observaciones. Estos comandos restringen toda la base de datos, luego no es posible discriminar filtros para variables en particular. En caso que se desee aplicar el menú, la ruta es data-variable utilities-eliminate variables or observations. El comando keep mantiene en el archivo, sólo las variables que son listadas junto al comando, borrando el resto.

keep [lista de variable]

keep sexo altura Para restringir por observaciones se puede utilizar In rango o if expresión, como se analizó anteriormente:

keep in 1/3

keep if sexo==1 & var3>20 El comando drop elimina del archivo activo, las variables que son listadas en la comandos.

drop [lista de variable]

drop sexo altura Igualmente, es posible utilizar el comando drop junto a las condiciones de rango y de expresión:

drop in rango drop if condición

En algunas ocasiones, el interés no es restringir la base de datos, sino simplemente realizar algún análisis estadístico puntual sobre una parte de ella. En esos casos, es útil utilizar las opciones in rango, if condición o incluso by [lista de variables], de esta manera no se afecta la extensión de la base de datos.

Wilson Mayorga Mogollón

Page 18: Manual Stata 9.0

Manual Básico de STATA 18

comando [lista de variables] if variable1> 25 in 12/75

Con la sintaxis anterior, se restringe a hacer alguna operación en el rango de la 12ava observación hasta la 75ava y además si alguna variable es mayor a 25.

• OTRAS OPERACIONES RELACIONADAS CON DATOS

• REEMPLAZAR VARIABLES En este caso se usa el comando replace Replace var1=1.5 in 1/10

• USO DE DATOS YA CREADOS

Para usar tablas de datos ya disponibles se utiliza el comando use Use “c:\nombre tabla”, replace Otra forma es usar el menú y allí dar File Open.

• CREANDO ARCHIVOS LOG Un archivo *.log guarda los resultados que aparezcan en la ventana de STATA RESULTS. Para crearlo se debe seguir la siguiente sintaxis: Log using “c:\nombre archivo.log” Si ya se creó este archivo en un ejercicio anterior y se desea escribir sobre él, entonces se adiciona luego de una coma el comando append. Si lo que se desea es SOBREESCRIBIR no se coloca append sino replace. Para dejar de grabar se escribe el comando log close Para detener de forma temporal la grabación se usa log off; y para reiniciar la grabación se usa log on. Estos dos comandos son útiles para evitar llenar el archivo de muchos pasos o muchas salidas. Para abrir archivo *.log, puede usarse la siguiente ruta: File-log-view Esta ruta abrirá el archivo log y podrán verse los resultados guardados.

• EXPORTACION DE DATOS En este caso se usan los comandos OUTFILE y OUTSHEET.

Wilson Mayorga Mogollón

Page 19: Manual Stata 9.0

Manual Básico de STATA 19

Outfile variables using “C:\nombre del archivo” [if exp] [in range] , comma label replace wide Las opciones de este comando son: Comma = exporta separando las observaciones por coma Label = adiciona los indicadores que tengan las variables Replace = reemplaza un archivo ya existente Wide = amplia a más de 80 caracteres lo que puede caber en una línea. La diferencia entre el comando outfile y el comando outsheet es que el primero exporta a archivos planos, sin mayores formatos; en tanto el segundo presenta los datos de manera algo más estilizados. La sintaxis y las opciones son las mismas.

Wilson Mayorga Mogollón

Page 20: Manual Stata 9.0

Manual Básico de STATA 20

3. FUNCIONES Y EXPRESIONES Antes ya vimos algunos usos de expresiones. Un listado más detallado aparece a continuación:

+ , - , /, ^(elevado), <, <=, >=, ==, ~=(diferente), ~(diferente),|(o), &(y) Ejemplo:

list sexo if((social_c~=8 & social_c~=9) & edad<23 & civil==0)

list if ingreso>1000 | ingreso>5000 & edad<25

En el caso de caracteres alfanuméricos se escriben dentro de comillas.

If pais ~= “COL”. En el caso que se deseen generar nuevas variables, bien sea utilizando los anteriores operadores o funciones, se debe anteponer SIEMPRE el comando gen o generate. Generate var4 = var1 + var2 Generate var5 = var1/var2 if dum==1 En el caso que no se cumpla la condición se generará un missing value(.). También es posible usar este comando antecediendo el separador bysort: bysort: sexo generate variable 4 = variable4*5; El conjunto de opciones de generar nuevas variables se encuentra en la ruta FILE-DATA-CREATE OR CHANGE VARIABLES. En particular, la opción gen aparecerá en CREATE NEW VARIABLES.

• FUNCIONES Para operar funciones, es decir, para crear nuevas variables utilizando funciones, se debe anteponer el comando generate, con la sintaxis:

gen nombre = comando(inputs).

En caso que se desee utilizar el menú para la generación de variables, es posible seguir la ruta data-create or change variables. En cada operación es posible tener acceso a la calculadora de stata que trae el listado de funciones y operaciones disponibles con gen y egen, así como a todos los símbolos que se desee utilizar, dando clic en create(…).

Wilson Mayorga Mogollón

Page 21: Manual Stata 9.0

Manual Básico de STATA 21

• VARIABLES DEL SISTEMA Algunas expresiones pueden contener variables del sistema(denotadas como _variable) que son resultados de outputs de operaciones del sistema. Se reconocen por el símbolo antes de su nombre. Algunas de estas variables son: _b[variable] corresponde al coeficiente asociado a la variable elegida del último modelo realizado. Si se coloca _b[_cons] se refiere al intercepto. Ejemplo: Regress variable1 variable2 variable3 Generate ejemplo = _b[_cons] + _b[variable1]*variable1 _N contiene el número total de observaciones en la tabla de datos _se[variable] corresponde a la desviación estándar del estimador asociado a la variable elegida del último modelo realizado. En el caso de modelos de varias ecuaciones, se adiciona antes de la variable del sistema el número de la ecuación de donde se tomará el estimador, por ejemplo [#1] para la primera ecuación. • CASO ESPECIAL: Selección de una fila particular: Si se desea igualar toda una variable a un elemento particular de otra variable se usa la siguiente sintaxis: Generate y = x[2] : Esto hace que la variable Y sea igual a la segunda observación que tenga la variable X. Esto es útil por ejemplo para generar rezagos: Generate rezago = x[_n-1] En el contexto de panel de datos no tiene sentido generar rezagos de esta manera(pues se tienen observaciones de diferentes individuos), en ese caso una solución es la siguiente:

Wilson Mayorga Mogollón

Page 22: Manual Stata 9.0

Manual Básico de STATA 22

Generate rezpanel = var[_n-1] if indicadora==indicadora[_n-1] STATA también permite especificar rezagos y diferencias de manera automática, con los operadores L y D. Antes de utilizar estos comandos, es necesario especificar qué variable identifica el tiempo(si trabajamos con series temporales) y además qué variable identifica a los individuos(si trabajamos con panel de datos). El comando que permite identificar una tabla de datos como un panel es tsset. Por ejemplo: Tsset id year Gen rez1 = L1.var1 Esta sintaxis genera una variable llamada rez1 que será el primer rezago de var1. Si queremos el segundo rezago, el comando será L2. Tsset id year Gen dif1 = D1.var1 En este caso estamos obteniendo la primera diferencia de la variable var1. Si deseamos la segunda diferencia el comando será D2. • VARIABLES INDICADORAS Y VARIABLES CATEGORICAS Una variable Indicadora o Dummy asigna 1 o 0 según se cumpla o no cierta característica. Una variable categórica divide a la muestra en grupos dependiendo de cierta característica (por ejemplo mucho, poco, nada). Toda variable indicadora es categórica, pero lo contrario no es cierto. Stata permite convertir variables continuas en categóricas o indicadoras, y convertir variables categóricas en variables indicadoras. a. Construcción de Variable indicadora a partir de variable continua: Generate d1 = (variable>25) D1 tomará el valor de 1 si la condición es cierta y cero si es falsa. Si deseamos no tener en cuenta los missing values en el anterior ejercicio hacemos: Gen d1 = (variable>25) if variable~=. Una forma “indirecta” de crear la anterior variable hubiera sido la siguiente: Gen d1 = 1 if variable>25 & variable ~=. Replace d1=0 if variable<25 b. Construcción de Variable Categórica a partir de Variable Continua

Wilson Mayorga Mogollón

Page 23: Manual Stata 9.0

Manual Básico de STATA 23

Vamos a generar una variable d2 cuyos valores estén en función de los valores de var1 de la siguiente forma: d2 vale 0 si var1<=1.5, vale 1 si var1 está entre 1.5 y 3.0 y vale dos si es mayor o igual a 3.0. Gen d2 = 0 if var1<=1.5 Replace d2 =1 if var1>1.5 & var1<=3.0 Replace d2=2 if var1>3.0 & var1~=.

Wilson Mayorga Mogollón

Page 24: Manual Stata 9.0

Manual Básico de STATA 24

4. RESUMIENDO DATOS El conjunto de opciones disponibles para crear tablas de resumen, mediante las cuales se puedan presentar de manera descriptiva los datos disponibles en memoria se halla en STATISTICS-SUMMARIES, TABLES, TEST – TABLES.

• COMANDO GLOBAL Utilizando el comando global es posible crear grupos de variables así no es necesario estar escribiendo este grupo cada vez que se desee analizar: Global nombre del grupo “var1 var2 var3” Cuando se quiera utilizar en algún comando este grupo se escribe donde corresponda al listado de variables $nombre del grupo. • COMANDO TABLE Los comandos más importantes para presentar una rápida revisión de los datos(además de los presentados en la sección de administración de datos) son los siguientes: Table Summarize Tabulate Correlate El diseño de tablas en stata puede ser de una vía o de dos vías. En el primer caso se tiene una variable categórica por filas y en cada columna la variable continua a la cual se desee calcular estadísticas de resumen. En el caso de tablas a dos vías(two way) se deben tener dos variables categórica que se van a relacionar: Una por filas y otra por columnas. El menú disponible para realizar dichas tablas es: statistics-summaries,table,tests-tables. • El primer comando, table, presenta estadísticas básicas en una tabla. Su sintaxis

básica es:

Wilson Mayorga Mogollón

Page 25: Manual Stata 9.0

Manual Básico de STATA 25

Table variablefila variablecolumna if expresión in rango , contents(posibilidades) by(categórica) row col center left Las posibilidades de cálculo son: Freq = frecuencia(default) Mean variable Sd variable Sum variable Count variable Max variable Min variable Median variable P# varname = este es el percentil, por ejemplo p95. Ejemplo: table pais, contents(mean costos) table pais, contents(n costos mean costos sd costos median costos) Igualmente es posible obtener tablas de doble entrada: simplemente se adiciona una variable en la sintaxis: table pais oecd, c(mean costos) table pais, by(oecd) contents(mean costos) • COMANDO TABULATE Este comando permite construir tablas frecuencias, incluyendo tablas de contingencia. La sintaxis es la siguiente: By categórica: tabulate variable1 variable2 if expresion in rango, all cell chi2 column exact gamma lrchi2 Tab2 variables if expresion in rango, opciones Ejemplos: Tabulate costos Tabulate costos concentrac Tabulate costos concentrac if costos>0.6 & concentrac<0.9, all Las opciones disponibles son:

Wilson Mayorga Mogollón

Page 26: Manual Stata 9.0

Manual Básico de STATA 26

Tab1 produce una tabla de una salida para cada variable especificada en la lista de variables

Tab2 produce todas las posibles tablas de 2x2 con las variables

especificadas. All Genera todas las estadísticas disponibles en STATA para análisis de

tablas de contingencia. Cell despliega la frecuencia relativa en una tabla de 2x2 Chi2 calcula la prueba de independencia de pearson Column despliega en cada celda de la tabla 2x2 la frecuencia relativa dentro

de la columna Generate(variable) crea un conjunto de variables dummy que reflejen los valores

observados de la variable tabulada. Plot produce un gráfico de barras de las frecuencias relativas en una tabla

de una única salida. • COMANDO SUMMARIZE Con este comando se proporciona información acerca del número de observaciones, media, desviación estándar, mínimo y máximo de la variable especificada. By variable: summarize variables if expresión in rango, detail Con detail se adicionan algunos otros estadísticos. By oecd: summarize costos capmarket, detail summarize costos if pais=="COL" Nótese el uso del estrictamente igual. • COMANDO CORRELATE Este comando permite hallar la correlación entre un grupo de variables. Su sintaxis es: By categorica: correlate variables if expresion in rango, opciones Las opciones son: Means = imprime un resumen de estadísticas

Wilson Mayorga Mogollón

Page 27: Manual Stata 9.0

Manual Básico de STATA 27

Covariance = imprime la matriz de covarianzas en lugar de la matriz de correlaciones Obs = adiciona una fila donde muestra el número de observaciones usadas para calcular las correlaciones Sig = adiciona el nivel de significancia de cada coeficiente de correlación Bonferroni = ajusta los niveles de significancia Pwcorr = despliega las correlaciones entre pares de variables incluidas en esta línea.

Wilson Mayorga Mogollón

Page 28: Manual Stata 9.0

Manual Básico de STATA 28

5. ANALISIS GRAFICO • TIPOS DE GRAFICOS STATA presenta una manera eficiente de realizar diferentes gráficos, muchos de ellos asociados a datos categóricos. Los tipos de gráficos que se analizan en esta sección son: scatter = dispersión Histograms = histograma Oneway = única variable Box = box-plot Bar = gráfico de barras Pie = gráfico de pastel La sintaxis básica para generar gráficos es: By categórica: comando variables if expresión in rango, opciones Las opciones cambian de un gráfico a otro. Sin embargo, la versatilidad del Stata 9.0 permite que con el mouse sea posible editarlos muy fácilmente a partir del menú diseñado para tal fin. Los gráficos más sencillos se realizan en la ruta graphics-easy graphs. Cuando se desean adicionar algunas características particulares, es preferible realizarlos mediante las opciones principales graphics-twoway o overlay twoway. Ejemplo: twoway (scatter margeneto costos, mlabel(atipico))

twoway (scatter costos costos) (scatter margeneto costos, yaxis(2))

Wilson Mayorga Mogollón

Page 29: Manual Stata 9.0

Manual Básico de STATA 29

• GUARDANDO GRAFICOS Stata como base presenta un gráfico a la vez, sin embargo dando clic derecho sobre el gráfico es posible guardarlo en el disco duro, eligiendo la opción save graph. Supongamos que hemos creado 3 gráficos con la forma anterior, para llamarlos y verlos simultáneamente la sintaxis es:

graph combine grafico1 grafico2 grafico3

También es posible, mediante la ruta graphics-manage graphics-save graphics in memory copiar dichos graficos en la memoria temporal de Stata y luego utilizarlos en una ventana mediante la ruta graphics-table of graps. La sintaxis que imprimirá el programa será: graph copy g1 graph copy g2 graph combine g1 g2

Wilson Mayorga Mogollón

Page 30: Manual Stata 9.0

Manual Básico de STATA 30

6. OPERACIONES ESTADISTICAS

De manera similar a otros programas como SAS, cada operación estadística se asocia a un comando particular. En esta sección se presentan los comandos más relevantes para modelos econométricos, y la aplicación de algunos pocos. Es importante recordar que la nueva versión de Stata 9.0 permite realizar todas las operaciones estadísticas únicamente con buscar la opción correspondiente en el menú STATISTICS, con lo cual se facilita de manera muy importante el manejo del programa.

LISTADO DE COMANDOS STATA - ANALISIS ESTADISTICO

METODOS ESTADISTICOS SERIES DE TIEMPO anova Análisis de Varianza y

Covarianza arch Modelos Autorregresivos en

varianza condicional bitest Test de Probabilidad

Binomial arima Modelos de Series de Tiempo

bstrap Muestreo por Bootstrapp(incluye estimación)

boxcox Transformación de Box-Cox

ci Intervalos de confianza para medias, proporciones y conteos

corrgram Correlograma de una serie de tiempo

correlate calcula correlación entre variables

dfuller test DF

cumul Distribución acumulada pperron Test Phillips-Perron cumsp Distribución espectral

acumulada pergram Periodograma

cusum tests cusum para variables binarias

prais Corrección Cochrane-Orcutt y Prais-Weinstein

ksmirnov test de igualdad de distribuciones KM

wntestb test del periodograma para ruido blanco

kwallis test de rango de igualdad de proporciones

xcorr cross correlagram

means media aritmética, geométrica y armónica

prtest Test de igualdad de Proporciones

METODOS DE REGRESION

sample Obtiene muestra aleatoria cnsreg Regresión Restringida signrank Test de rango y test del signo glm Estimación de modelos lineales

generalizados spearman Correlación de Spearman y

Kendall hausman Realiza el test de especificación

de Hausman summarize Estadísticas de resumen fracpoly Regresión fraccional polinomial swilk Test de Normalidad Shapiro-

Wilk ivreg estimación por variablesi

instrumentales

Wilson Mayorga Mogollón

Page 31: Manual Stata 9.0

Manual Básico de STATA 31

table tabla de resumen de estadísticas

mkspline construcción lineal por splines

newey Regresión corregida por Newey-West

ANALISIS MULTIVARIADO nl Mínimos cuadrados no lineales canon Correlación Canónica sureg Modelo SUR hotel Test T generalizado de

Hotelling rreg Regresión Robusta

factor Componentes principales y análisis factorial

qreg Regresión por Cuantiles

hadimvo Identifica Outliers Multivariados predict obtiene predicción, residuales después de estimación

Reg3 Estimación 3SLS DATOS DE PANEL Regress Regresión Lineal

xt modelos cross section time series

Regression diagnostics

Diagnóstico de Regresión

xtgls estima modelos data panel usando GLS

_robust estimación robusta en varianza

xtlogit estima modelos logit con efectos aleatorios

Test Test de restricciones lineales despues de estimacion

xtnbreg estima modelos binomiales negativos con efectos aleatorios

Testnl test de restricciones no lineales despues de estimacion

xtpois estima modelos poisson con efectos fijos o aleatorios

xtprobit estima modelos probit con efectos fijos o aleatorios

MODELOS DE DURACION Y SUPERVIVENCIA

xtreg modelos lineales con efectos fijos o aleatorios

Cox Estima modelos tipo Hazard proporcional

xttobit modelos tobit con efectos fijos o aleatorios

ct ctset Declara datos de conteo

xtsum resume datos de cross section time series

ct cttost Convierte datos de conteo en datos de supervivencia

Ltable tabla de vida(datos de supervivencia)

VARIABLE DEPENDIENTE DISCRETA Y LIMITADA

st cox Estima el modelo de Cox Hazard

biprobit Modelo Probit Bivariado st stdes describe datos de supervivencia clogit Modelos logit condicionales st

stphplot Grafica la función hazard cox proporcional

heckman Modelo de Selección de Heckman

st strate tabula tasas de falla

heckprob Estimación de un Probit con corrección de selección

st streg estima modelos de supervivencia paramétricos

hetprob Estimación de probit heterocedástico

st sts genera, grafica y lista funciones de supervivencia

logistic Regresión Logística st sts crea variables hazard y de

Wilson Mayorga Mogollón

Page 32: Manual Stata 9.0

Manual Básico de STATA 32

generate supervivencia logit Estimación logit por máxima

verosimilitud st sts graph

Grafica la función hazard y la función de supervivencia

mlogit Modelo Logit Multinomial st sts list lista funciones de supervivencia y hazard

nbreg modelo binomial negativo st sts test test de igualdad de funciones de supervivencia

probit Estimación MV de un probit st stset declara datos para ser usados en modelos de supervivencia

ologit Estimación MV de Logit Ordenado

st stsum resume datos de supervivencia

oprobit Estimación MV de probit ordenado

Weibull estima modelos de Weibull

poisson Regresión Poisson tobit Modelos de regresión

censurada Recordemos de una sección anterior la sintaxis básica de los comandos: [by variable indicadora:] comando [lista de variables] [= expresión] [if expresión] [in

rango] [weight] [, opciones específicas]

Donde entre brackets [] se presentan aquellas cosas que pueden ser opcionales al comando. Las palabras en inglés son de alguna manera “fijas”. Dentro de cada submenú disponible en la ruta STATISTICS aparecerá la operación estadística mediante pestañas de la ventana, así:

Wilson Mayorga Mogollón

Page 33: Manual Stata 9.0

Manual Básico de STATA 33

a manera de título aparece el comando que se utilizará. La primera pestaña siempre muestra el componente principal del comando, aquel donde se incluye la variable dependiente y las variables independientes. Adicionalmente, siempre existe una pestaña asociada a los componentes BY/ IF/IN que como se vio previamente, permiten especificar condiciones particulares para aplicar el comando sobre la tabla de datos disponible. Adicionalmente, aparece una pestaña para el componente WEIGHT de cada comando y una última pestaña para las opciones particulares del respectivo comando de Stata. A continuación detallaremos a manera de ejemplo los comandos disponibles para realizar modelos de Regresión Lineal y Modelos de Datos de Panel.

• REGRESION LINEAL El comando regress tiene la sintaxis que vimos anteriormente(de hecho todos los comando siguen esta sintaxis), por lo cual nos concentraremos en este y en los demás ejemplos en algunas pocas de las opciones particulares del comando: bysort categórica: regress dependiente independientes if condición in rango, opciones Level(#) Especifica el nivel de confianza. Por default es 95. Noconstant Realiza estimación sin intercepto Robust Calcula estimadores de regresión robustos en su varianza

como Huber o White. Cluster(variable) Especifica que las observaciones son independientes entre grupos, pero no necesariamente independientes dentro de los grupos. La variable en el paréntesis especifica cuáles son los grupos. Se recomienda acompañar este comando de otros comandos: predict, test y diagnostic regression. Para realizar esto mediante el menú se siguen las rutas:

• Statistics – linear regression – regression diagnostics • Statistics – general post estimation – obtain predictions, residuals etc • Statistics – general post estimation – tests

• COMANDO PREDICT Este comando, el cual acompaña en general a la mayoría de modelos estimados, permite obtener, predicciones, residuales, estadísticas de influencia, y probabilidades(en el caso de modelos de variable dependiente discreta). Se encuentra dentro de la ruta STATISTICS-POSTESTIMATION. Predict nombre if expresión in rango, opciones

Wilson Mayorga Mogollón

Page 34: Manual Stata 9.0

Manual Básico de STATA 34

Las opciones cambian de acuerdo al modelo estimado. Nótese que acepta sólo 1 VARIABLE A LA VEZ. En el caso del modelo de regresión lineal son: Xb valores de Y estimado Pr(a,b) Prob(Yj/a<Yj<b) E(a,b) e(Yj/a<Yj<b) Cooksd distancia de cook Leverage | hat diagonal de la matriz Hat Residuals residuales Rstandard residuales estandarizados Rstudent residuales estudentizados Stdf error estándar de pronóstico Stdr error estándar de los residuos Covratio covratio Dfbeta(variable) drbeta para variable Dfits dfits Nota técnica: Es posible adicionar antes de la coma la opción [weight=variable] con lo cual se estimaría la regresión por mínimos cuadrados ponderados. • PRUEBAS DE HIPOTESIS Usando el comando test es posible adicionar pruebas de hipótesis (restricciones lineales) sobre cualquier modelo estimado. La sintaxis puede verse de dos formas: Test expresion = expresion Por ejemplo: test _b[x1] + _b[x2] = _b[x3] test x2 = 10; test 2*(x1 – 3*(x2 – x3)) = x3 + x4 + 6*(x5-x6) En el caso de sistemas de ecuaciones, debe adicionarse la ecuación que se desea “probar”: por ejemplo test [#2]x1 + [#2]x2 = [#2]x3 Opciones adicionales (después de una coma) de este comando son: Acummulate asigna que la actual restricción sea probada de forma conjunta

con algunas anteriores que se hayan realizado. En el caso de sistemas de ecuaciones, también es posible usar la siguiente sintaxis: Test [variable y] variable x [variable y2] variable x2

Wilson Mayorga Mogollón

Page 35: Manual Stata 9.0

Manual Básico de STATA 35

Si se desea probar la misma variable en todas las ecuaciones(o la misma restricción en todas las ecuaciones) simplemente se escribe: Test variablex=0 O también: Test [variabley]x1 = [variabley2]x2 Test[variabley2]x1 – [variabley2]x2 = 0 • RESULTADOS GUARDADOS Los resultados guardados en r() son: R(p) p-value R(F) estadístico F F(df) grados de libertad R(chi2) estadístico chi2 • PANEL DE DATOS Una de las ventajas que tiene STATA respecto a otros programas es su versátil manejo de modelos de datos de panel relativamente complejos. La ruta del menú para operar este conjunto de modelos es statistics-cross section time series. El primer paso para poder trabajar con datos de panel es usar el comando tsset, para avisarle al programa el tipo de tabla a utilizar. En el menú está disponible con statistics-cross section time series – setup and utilities – declare datasets. Todos los comandos que inicien con xt se refieren a datos de panel. El primer paso es definir la tabla como una panel de datos. La sintaxis es: Xtcomando variables if expresion in rango , i(variable individuos) t(variable tiempo) Tanto la variable de individuos, como la variable tiempo deben ser numéricas y ser lo más sencilla posibles(1,2,3……). Siempre es obligatorio nombrar la variable que determina los individuos. La variable temporal sólo se nombra en el caso que se desee incluir en el modelo. Existen dos comandos para resumir la información de panel: xtsum para resumir los datos del panel xtdes para hacer una rápida descripción de los datos en términos de su frecuencia y xttab para tabular los datos. Xtsum variables if condicion in rango, i(variable por individuos) Xttab variables if condicion in rango, i(variable por individuos) t(variable x t) Xtdes if condición, i(variable) t(variable)

Wilson Mayorga Mogollón

Page 36: Manual Stata 9.0

Manual Básico de STATA 36

• XTREG Se supone que el modelo de panel de datos no tiene un patrón de correlación intragrupos y además la variable dependiendiente es continua y con distribución normal(es el panel “estándar”). El comando para este caso es xtreg. Xtreg dependiente independientes if expresion, opciones Xttest0 Xthaus Dentro de las opciones las más importantes son: Re = estima el modelo de efectos aleatorios(GLS) Be = encuentra el estimador between Fe = encuentra el estimador within Ml = estima el modelo de efectos aleatorios por MV. No permite usar xttest0 ni xthaus Level(#) fija el nivel de confianza Theta imprime el estimador theta(combinacion lineal de between y within) I(variable) define la variable separadora de individuos. Xttest0 realiza el test de Breush-Pagan Xthaus realiza el test de Hausman También puede acompañarse este comando con el comando predict. Las opciones para este último son: Predict nombre if in , opciones Xb calcula el pronóstico de y sin componentes de panel Stdp calcula el error estándar de la predicción Ue calcula ui + ei Xbu calcula la predicción incluyendo el componente fijo o aleatorio U calcula el término ui E calcula la predicción de eit

Wilson Mayorga Mogollón

Page 37: Manual Stata 9.0

Manual Básico de STATA 37

En cuanto a medidas de bondad de ajuste, STATA reporta el R2 del modelo(correlación al cuadrado) y los R2 de las estimaciones between y within. • XTGLS Este comando estima el panel de datos utilizando GLS. Su sintaxis es: Xtgls dependiente independiente if condicion in rango, i(variable) t(variable) opciones Algunas de las opciones son: Panels(iid) especifica estrucutra de error homocedástica entre páneles. Este es el default. Panels(heterocedastic) especifica estructura de heterocedasticidad sin

correlación entre páneles Panels(correlated) se puede escribir p(c ) especfica que el modelo

además de tener estructura de correlación entre individuos tiene estructura de correlación temporal. Para usar esta opción es obligatorio haber definido la variable de tiempo.

• COMANDO XTGEE Este comando estimado modelos de datos de panel donde la variable dependiente no tiene distribución normal y existe correlación en el tiempo. La sintaxis es: Xtgee dependiente independientes if condicion in rango, opciones Las principales opciones son las siguientes: Family(distribución) especifica la distribución que se desea considerar. Las

posibilidades son: Binomial, gaussian, gamma, igaussian, nbinomial, poisson. Si se elige gaussiana será un panel probit.

Corr(ar1) especifica correlación de primer orden dentro de los grupos de individuos. Otras posibilidades dentro del paréntesis para corr son ar#, stationary, nonstationary.

I(variable) T(variable) Robust estima errores estándar robustos de White

Wilson Mayorga Mogollón

Page 38: Manual Stata 9.0

Manual Básico de STATA 38

7. ELEMENTOS DE LENGUAJE

• ARCHIVOS *.DO Estos archivos de texto, corresponden a un conjunto de comandos que el usuario desea correr de manera simultánea y evita que se esté escribiendo cada comando en la ventana correspondiente. Puede crearse en la ventana correspondiente de stata(editor Do) o en cualquier programa de texto como word o notepad. Se recomienda cerrar un archivo *.do con exit. Esto hará que no afecte el resto de programación. Si las líneas son muy largas dentro de un archivo *.do, entonces se puede realizar la siguiente sintaxis al inicio y al final de las líneas que se deseen, usando el comando #delimit: #delimit ; Líneas que se desee que finalicen una vez el usuario incluya un ( ;). #delimit cr Lo que hace es reemplazar el Enter como indicador de finalización de un comando por el punto y coma(;). Otra forma de continuar en otra línea sin perder el sentido es usar los comentarios, como por ejemplo: summarize ... if (var1>0 | var1==.) & var2>0 & var3>0 & /* */ var1/var2>100 Cuando exista un error en el archivo *.do creado el programa generará un mensaje de error y no aplicará los comandos del archivo; a menos que el usuario indique desde el inicio de la creación del archivo *.do que no se detenga. Para realizar esto se adiciona el comando nostop. Ejemplo de Uso de archivos do:

Wilson Mayorga Mogollón

Page 39: Manual Stata 9.0

Manual Básico de STATA 39

Adicionalmente, puede crearse parte o todo lo que se corre en una archivo do con un comando log, de la misma forma en que se explicó en secciones anteriores; Capture log close Log using archivo, replace …operaciones log close La línea capture log evita que el haber definido anteriormente un archivo log genere algún problema. Igualmente es posible llamar otros archivos do, dentro de un do, simplemente se escribe dentro del código

Do nombre archivo.

Por último, existen dos formas de correr un archivo do. Usar la opción do nombre del archivo y run nombre del archivo. La diferencia entre ellas es que la opción run no imprime las salidas que pudieren generarse de comandos que aparezcan en el archivo do.

• ARCHIVOS *.ADO Este tipo de archivos son similares a los archivos *.src de programas como Gauss o RATS. Corresponden a archivos donde se encuentran programados comandos y operaciones específicas de Stata. Por cuestiones de orden, Stata busca primero los archivos *.ado(sean del programa o creados por usuarios o actualizaciones bajadas de la página web) en las siguientes rutas(pueden verse si se usa el comando sysdir) C:\stata C:\stata\ado\updates C:\stata\ado\base C:\stata\ado\site C:\ado\stbplus C:\ado\personal C:\ado Updates = actualizaciones oficiales de stata Base = directorio oficial de archivo ado disponibles con el programa Los demás pueden corresponder a archivos *ado creados por el usuario, excepto site que corresponde a archivo *.ado que estén disponibles en red (para usuarios con Stata instalado en red). Para “instalar” un archivo *.ado, es decir dejarlo disponible para que el usuario lo aplique, se copia en alguna de las anteriores carpetas(nuevamente, por orden se recomienda que si son diseños propios se guarden en personal).

Wilson Mayorga Mogollón

Page 40: Manual Stata 9.0

Manual Básico de STATA 40

8. SERIES DE TIEMPO

Comúnmente se consideran dos tipos de datos: numéricos y alfanuméricos. Un tercer tipo de variable puede ser aquella contadora del tiempo, es decir variables de fecha o variables calendario. El formato correspondiente en Stata es %d, en general y de manera particular tenemos los siguientes: %td diario 31dec1999 %tw semanal 1989w1 %tm mensual 1989m2 %tq trimestral 1959q4 %th semestral 1989h2 %ty anual 1989 Dando doble click sobre la tabla de datos se reconoce el tipo de formato asociado a cada columna e igualmente es posible modificarlo. • DEFINIENDO FECHAS El truco es olvidarse que son fechas. Primero se tratan como variables numéricas o alfanuméricas y luego se convierten al formato de fechas. Ejemplo: Supongamos que tenemos un archivo *.txt que tiene la siguiente forma: Bill 21 jan 1952 22 May 11 jul 1948 18 Sam 12 nov 1960 25 La forma de importarlos es la siguiente: Infix str nombre 1-5 str fecha 7-17 edad 20-21 using archivo Una vez cargados los datos en una tabla de Stata se genera una variable llamada cumpleaños, así: Gen cumpleaños = date(fecha,”dmy”) Y finalmente se le da el formato de fecha a la variable cumpleaños: Format cumpleaños %d • COMANDOS DE SERIES DE TIEMPO Existen dos comandos útiles en la generación de variables de fechas: mdy y date. El comando mdy(mes,dia,año) convierte un conjunto de observaciones numéricas en variables de fecha sin formato, es decir se observan como números comunes y corrientes.

Wilson Mayorga Mogollón

Page 41: Manual Stata 9.0

Manual Básico de STATA 41

Ejemplo: Suponga la siguiente tabla:

Para convertir estas tres columnas que corresponden respectivamente a mes, día, año, usamos la siguiente sintaxis: gen fin = mdy(fecha,var2,var3) format fin %d Con estas dos líneas aparece la siguiente sintaxis:

La segunda forma de convertir observaciones a formato de fechas es usando la función date(variable, “dmy”). Esta función toma dos palabras: la primera corresponde al nombre de la variable y la segunda al formato que tomará la variable. Tenemos 6 opciones: dmy, mdy, ydm, myd, etc. Es importante anotar que los años deben tener 4 números, no sólo 2. Igual los días y meses deben tener dos números, no sólo uno. Otros dos formatos de fecha, adicionales al formato %d son %dN/D/Y para que aparezca de manera 01/12/82 y el formato %dM_d,_CY para que aparezca january 21,1992. • OTROS FORMATOS Lo visto anteriormente se aplica cuando se tiene día, mes, año en cualquier orden, pero ¿qué pasa cuando la información no es así?. En ese caso, se puede trabajar con los formatos de diarios, mensual, trimestral, etc que se listaron anteriormente. Algunos ejemplos son los siguientes: Nótese que se escribe el año con 4 dígitos una q para referenciar el trimestre y luego el número del trimestre. Si se desease que fuese año-mes la sintaxis hubiera sido 1994m1, 1994m2, etc.

Wilson Mayorga Mogollón

Page 42: Manual Stata 9.0

Manual Básico de STATA 42

Para convertir una variable importada desde otro programa a formato de fechas se usan los siguientes comandos, todos precedidos del comando generate: Año-semana yw(año,semana) Año—mes ym(año,mes) Año-trimestre yq(año,trimestre) Año semestre yh(año,semestre) La sintaxis general es: el comando y entre paréntesis la variable que tiene la información de años y luego de la coma, la variable que tiene la información del otro período. Ejemplo: Supongamos que se tiene la siguiente tabla en Stata:

Si queremos generar una variable que resuma la fecha trimestral, hacemos lo siguiente: Generate trimestre = yq(var1,var2) format trimestre %tq Si no se usa la segunda línea aparecerán números sin ningún formato.

Wilson Mayorga Mogollón

Page 43: Manual Stata 9.0

Manual Básico de STATA 43

• CREANDO SERIES DE TIEMPO Es posible crear dummys o diseñar filtros que se apliquen sobre variables temporales. Por ejemplo, si se desea crear una nueva variable que asigne 1 al primer trimestre, 2 al segundo y así sucesivamente, hacemos lo siguiente: gen q=quarter(dofq(trimestre)) Nótese que aquí se adiciona el comando dofq. Si quisieramos hacer lo mismo pero para una variable mensual el comando hubiera sido dofm; y si fuera semanal la frecuencia, el comando sería dofw. Ahora suponga, que se desea crear una dummy que sea igual a 1 si el trimestre es el segundo. En ese caso haríamos lo siguiente: Gen dummy = quarter(dofq(trimestre)==2 Otro ejemplo será: List if trimestre>q(1998q1) Recordemos que la variable trimestre tiene la siguiente forma: trimestre 1994q1 1994q2 1994q3 1994q4 1995q1 1995q2 1995q3 1995q4 Ahora considere el siguiente problema: ud desea crear una variable temporal que inicie en enero de 1990. La sintaxis que debe usar sería: Generate mes = d(1990m1) + _n-1 Format mes %tm Si fuese trimestral, se reemplaza la m por q en ambas líneas. • TRABAJANDO CON SERIES DE TIEMPO El primer paso para trabajar con series de tiempo en Stata es decirle al programa que la TABLA DE DATOS a analizar es efectivamente una colección de variables temporales. Esto se hace con el comando tsset. La sintaxis básica de este comando es: Tsset [variable panel] nombre de variable, format(%tq) opción

Wilson Mayorga Mogollón

Page 44: Manual Stata 9.0

Manual Básico de STATA 44

Si los datos son mensuales se reemplaza %tq por %tm o si son día, mes, año por %d, según se ha visto anteriormente. La opción disponible toma alguna de estas formas: Dayly Weekly Monthly Quarterly Halfyearly Yearly Ejemplo: Tsset tiempo, format(%tq) quarterly Ahora un ejemplo más complejo: Suponga que ud tiene información mensual de las siguientes variables costos, margeneto, concentrac. Y desea realizar una regresión entre ellas. El primer paso es generar una variable de tiempo y luego definirla como mensual. La sintaxis será la siguiente: gen mensual =ym(year,mes) format mensual %tm tsset mensual La variable será la siguiente: mensual 1990m1 1990m2 1990m3 1990m4 1990m5 1990m6 1990m7 … 1990m12 1992m2 1992m3 1992m4 1992m5 … La ventaja que tiene usar el comando tsset es que es posible realizar filtros en los comandos de estimación teniendo en cuenta el tiempo. Esto se hace adicionando los comandos tin() y twhithin(). La diferencia es que el primero es un intervalo abierto(incluye las fechas inicial y final) y el segundo las excluye. Por ejemplo: regress margeneto costos concentrac if tin(1990m1,1990m2)

Wilson Mayorga Mogollón

Page 45: Manual Stata 9.0

Manual Básico de STATA 45

Si el formato hubiese sido trimestral, lo que va dentro del comando tin también cambiará(por ejemplo 1990q1 ó 01jan1998). List if tin(5jun1995,20jun1995) • DIFERENCIAS Y REZAGOS Para crear diferencias y rezagos se realiza la siguiente sintaxis: Gen diferencia = d.variable Gen rezago = l.variable • MODELOS DE SERIES DE TIEMPO Para estimar un modelo Arima o Garch debe previamente haberse usado tsset. • MODELOS ARIMA Este comando permite estimar modelos Arima sean estacionales o no y además estimar modelos dinámicos. Aquí presentamos sólo algunas de las múltiples opciones disponibles en Stata. La sintaxis básica del comando es: • Modelos Arima Arima variable, arima(p,d,q) opciones • Modelo dinámico Arima dependiente independientes, ar(p) ma(q) opciones En ambos casos puede usarse los filtros if condición o in rango. El número de rezagos en el modelo p, q corresponden a números. Algunas opciones son las siguientes: Noconstant Constraint = impone restricciones lineales Robust = estima la corrección robusta de White Condition = estima por máxima verosimilitud condicional Detail = especifica en detalle los pasos de la estimación

Wilson Mayorga Mogollón

Page 46: Manual Stata 9.0

Manual Básico de STATA 46

Dos comandos anexos a estos modelos son predict y constraints. El primero, anexo a todos los comandos de estimación, calcula residuales y medidas de ajuste y el segundo aplica restricciones lineales • COMANDO PREDICT En el caso del modelo Arima, predict tiene la siguiente sintaxis: Predict nueva variable if condicion in rango, estatistica dynamic(variable de tiempo) Las estadísticas puede ser alguna de las siguientes: xb, y, mse, residual Dynamic calcula predicciones un paso hacia delante en modelos dinámicos. • COMANDO CONSTRAINT Este comando, aplicable a muchos modelos disponibles en Stata impone restricciones lineales. Su sintaxis básica es: Constraint define número de restricciones restricción Ejemplo: Constraint define 1 costos =1 Para retirar la restricción se utiliza constraint drop número de restricciones Constraint drop 1 Ejemplo: gen mensual =ym(year,mes) format mensual %tm tsset mensual arima D.seriejemplo, arima(1,1,1) Ejemplo: Arima consumo m1, ar(1) ma(1) robust, if tin(1984q1,1994,q4) • MODELO ARCH El comando correspondiente a este modelo, denominado arch, trae una gran cantidad de opciones, por lo cual se deja al lector la consulta de la gran mayoría de ellas. La sintaxis básica es: Arch dependiente [independientes] if condicion in rango, arch(número) garch(número) tarch(número) aarch(número) narch(número) narchk(número) abarch(número) atarch(número) sdgarch(número) earch(número) egarch(número)

Wilson Mayorga Mogollón

Page 47: Manual Stata 9.0

Manual Básico de STATA 47

parch(número) tparch(número) aparch(número) nparch(número) pgarch(número) archm archmlags(número) ar(número) ma(número) arima(p,d,q) detail robust Donde número se refiere al orden autorregresivo de cada uno de los modelos considerados. arch chicor, arch(1) garch(1)

• GRAFICOS EN SERIES DE TIEMPO En esta sección vamos a considerar los siguientes gráficos: líneas, autocorrelación y autocorrelación parcial. Para el cálculo de las correlaciones y correlaciones parciales se usa el comando corrgram y para generar los gráficos se usa ac y pac. Corrgram variable if condición in rango, lags(número) Ac variable if expresion in rango, lags(número) needle gen(nueva variable) opciones de gráfico Pac misma sintaxis del anterior. Las opciones de gráfico pueden ser cualquiera disponibles para gráficos tipo twoway. La única opción diferente es needle. Con esta se especifica que el gráfico debe ser similar a un gráfico de barras. Gen(nueva variable) especifica un nombre para guardar los resultados de correlación o correlación parcial.

• MANEJO DEL TIEMPO EN PANEL DE DATOS

Como se referenció anteriormente, el primer paso es definir la tabla de datos como temporal usando tsset. En el caso de panel de datos debe adicionarse a este comando el nombre de la variable indicadora de individuos.

Wilson Mayorga Mogollón

Page 48: Manual Stata 9.0

Manual Básico de STATA 48

Ejemplo: Supongamos que tenemos datos trimestrales, la definición de datos de panel será: Tsset individuos tiempo, quarterly Ejemplo2: Tenemos en Excel los datos para un grupo de países y observaciones mensuales desde 1990enero –1990agosto: La sintaxis completa para definir esta tabla de datos como un panel de datos en Stata es la siguiente: gen tiempo = ym(year,id_date) format tiempo %tm tsset id_unit tiempo Recordemos que la variable indicadora de individuos debe ser numérica. Una vez utilizada esta sintaxis es posible utilizar cualquier modelo de estimación de panel de datos disponibles en Stata(ver parte 2 de este manual para una rápida de revisión de algunos de estos comandos). Una vez usada la sintaxis aparecerá lo siguiente:

tsset id_unit tiempo panel variable: id_unit, 1 to 34 time variable: tiempo, 1990m1 to 1990m8

Wilson Mayorga Mogollón

Page 49: Manual Stata 9.0

Manual Básico de STATA 49

9. MATRICES EN STATA • DEFINICION DE MATRICES Una matriz se define de la siguiente manera: Matrix input A = (1,2\3,4) Donde los elementos de la misma fila se separan por comas y los elementos de las columnas se separan por \. Por ejemplo vectores sería matrix e = (1\2\3) F = (1,2,3) Un escalar sería: f=(2) Para verla impresa se le dice matrix list nombre de la matriz. Los operadores disponibles para matrices son los siguientes: +, - , *(tanto multplicación entre matrices como por escalar), / división por escalar), #(kronecker), ´(transpuesta es una comilla). Concatenar horizontal = G = A,B Concatenar vertical = G = A\B Igualmente, siguiendo la ruta DATA-MATRICES es posible generar y operar matrices, así como convertir una tabla de datos disponible en memoria como matrices. • FUNCIONES Y OPERACIONES MATRICIALES Matrix A = I(10) crea una identidad de tamaño 10 Matrix A = J(r,c,z) crea una matriz de constantes z de tamaño rxc Matrix A = cholesky(A) descomposición de cholesky. A debe ser simétrica Matrix A = inv(B) matriz inversa Matrix B = diag(A) toma un vector A y crea una matriz B con ceros

alrededor y en la diagonal ese vector. Matrix B = vecdiag(A) opuesto del anterior Ejemplo: Matrix F = diag(inv(B))*vecdiag(diag(d))+4*(J(3,3,10) Las siguientes operaciones deben ir antecedidas del comando generate: M = rowsof(A) número de filas de A M = colsof(A) número de columnas de A M = trace(A)

Wilson Mayorga Mogollón

Page 50: Manual Stata 9.0

Manual Básico de STATA 50

M = det(A) M = el(A,i,j) Retorna el i,j ésimo elemento de la matriz A M = A[i,j] Retorna el i,j ésimo elemento de la matriz A La última expresión podría ser M = A[3,4+1]. Para imprimir un resultado de este tipo se usa el comando display M. Para elegir una submatriz se usa la siguiente sintaxis: Matrix B = A[1..3,5..10] Elige desde la primera fila hasta la tercera y de

la quinta columna hasta la décima. Matrix B = A[3,4…] Toma la tercera fila y desde la cuarta hasta el

final de las columnas Para escribir todas las columnas, por ejemplo se haría: Matrix B = [3,1…] Para asignarle nombres a las filas y las columnas de una matriz se hace lo siguiente: Matrix A = (1,2,3,4\5,6,7,8\9,10,11,12\13,14,15,16) Matrix rownames A = a b c d Matrix colnames A = e f g h Matrix list A Ejemplo: Regresión Lineal clear use financiero keep if year==1997 mkmat capmarket costos, matrix(x1) generate filas = rowsof(x1) display "filas = " filas mkmat margeneto , matrix(y) matrix uno = J(34,1,1) /*sólo funciona con numéricas*/ matrix x = uno, x1 matrix xtx = x'*x generate colum = colsof(x)

Wilson Mayorga Mogollón

Page 51: Manual Stata 9.0

Manual Básico de STATA 51

matrix beta = inv(xtx)* x'*y display "beta" matrix list beta exit • CONVERSION DE TABLAS EN MATRICES Y VICEVERSA Para convertir una tabla en matriz se usa el comando mkmat; y el comando svmat realiza la operación contraria, es decir toma una matriz y la convierte en datos. Ejemplos: mkmat var1 var2, matrix(matriz1) Con la opción matrix se le adiciona el nombre. Matrix list matriz1 svmat matriz1 /*se puede adicionar una opción llamada

names(variable) para adicionarle nombre a las columnas colocando automáticamente variable1, variable2……*/

Wilson Mayorga Mogollón

Page 52: Manual Stata 9.0

Manual Básico de STATA 52

ANEXO 01 PROGRAMAS Y CONDICIONALES

Un programa es un archivo que se aplica en Stata diseñado por el usuario para realizar operaciones definidas por el mismo usuario. Cuando se escribe un comando no reconocido por Stata el programa “pensará” que es un programa y buscará su nombre. Si lo encuentra lo aplica. La sintaxis básica de un programa es: Program define nombre del programa Comandos y operaciones de Stata End Es recomendable iniciar el archivo con la versión de Stata sobre la cual desea operar(version 9.0 para este caso). Además del comando capture program drop, para que cada vez que se inicie el programa escrito se borre la memoria temporal de Stata.

Capture program drop nombre del programa Si se desea que alguna línea no sea leída se antepone un asterisco(*); y si se desea crear comentarios, se inician con (/*) y se finaliza con(*/). Estos comentarios pueden colocarse en cualquier parte, incluso entre líneas o entre comandos. Es importante anotar que estos comentarios sólo pueden hacerse en este tipo de archivos. Un programa y un archivo *.do no son muy diferentes para Stata(los lee igual), pero existen algunas diferencias. Estas son: • Un archivo *.do se aplica con do nombre del archivo, un programa se aplica con

sólo su nombre. • Los programas deben ser cargados antes de ser aplicados. Para cargar un

programa, la forma “simple” es primero usar run seguido del nombre del archivo donde quedó guardado el programa y luego sí aplicar el programa(simplemente dando su nombre).

Run nombre archivo Nombre del programa • Un archivo *.do imprime en la ventana de resultados las operaciones y los

comandos usados. Un programa sólo imprime resultados. Al igual que los archivos *.do un programa puede llamar otros programas (incluso un programa puede usar archivos *.do y viceversa). Los programas pueden crearse en el editor de archivos *.do o en cualquier editor de texto y pueden guardarse como archivos *.do o como archivos *.ado.

Wilson Mayorga Mogollón

Page 53: Manual Stata 9.0

Manual Básico de STATA 53

Una forma más eficiente de ahorrarse este problema entre archivos es guardar directamente el programa como si fuera un archivo *.ado, y esto se hace directamente desde el editor de *.do

EJEMPLO DE UN PROGRAMA TIPICO Capture log close log using nombre archivo log, replace set more off

Capture program drop nombre del programa program define nombre del programa …operaciones… end

log close exit RECOMENDACIÓN IMPORTANTE: Se recomienda no complicar al programa con rutas de archivos muy largas. Lo ideal es tener todos los archivos referentes a un ejercicio en una única carpeta( Y SÓLO UNA CARPETA). Y también debe guardarse cada archivo *.ado en algún sitio que Stata lo pueda encontrar(por ejemplo el listado de rutas donde stata por default). • ALGUNOS COMANDOS UTILES EN PROGRAMACION

• COMANDO SET: Set puede utilizarse de la siguiente manera: Set memory Set textsize Pero tiene otros muchos usos. Dentro de un archivo *.do puede usarse para: Set more esta línea hace que el programa se detenga en cada

pantallazo y así con un enter el usuario va leyendo. Set rmsg off Esta línea evita que aparezca la sintaxis de cada comando en

la pantalla de resultados. Set output error Suprime todos los outputs que pudieran aparecer producto de

comandos, excepto los mensajes de error.

Wilson Mayorga Mogollón

Page 54: Manual Stata 9.0

Manual Básico de STATA 54

• COMANDO DISPLAY Sirve para imprimir títulos, igual que en RATS. Display “título”

• COMANDO ASSERT Este comando asegura o verifica que algún condicional sea verdad. Si lo es, no producirá output. Si no lo es, imprimirá “assertion is false” y detendrá el archivo *.do donde se encuentre. La sintaxis básica es: By categórica: assert expresión if condición in rango Ejemplos: Assert costos>=0.2 | costos <=0.8 if year==1997 Assert costos ~=.

• COMANDO PRESERVE

Este comando permite que se modifique una tabla de datos dentro de un programa, pero que una vez finalizado el programa se mantenga la tabla original sin modificaciones. Program define nombre Operaciones Preserve Comandos que “destruyen” los datos originales y realizan cálculos End El comando preserve mantiene la tabla una vez el programa finalice. Si se desea que cargue nuevamente la tabla original desde el mismo programa, en alguna línea específica se usa además de preserve el comando restore. Program define nombre Operaciones Preserve Comandos que “destruyen” los datos originales y realizan cálculos Restore, preserve Otros cálculos sobre la tabla original End

Wilson Mayorga Mogollón

Page 55: Manual Stata 9.0

Manual Básico de STATA 55

• COMANDO QUIETLY Este comando impide que sea impreso el output de un comando. Su sintaxis es: Program define nombre Quietly regress `1’ `2’ End Program define nombre Quietly { Regress `1’ `2’ Predict resid, resid Sort resid Summarize resid, detail } list `1’ `2’ drop resid end • MACROS NOTA: En esta sección se hará uso de la siguiente sintaxis, la cual es muy importante cumplir. Cuando se hable de comillas individuales realmente corresponde a `1’. Es decir, el primer símbolo es la tilde y el segundo es la comilla individual. Una macro dentro de Stata corresponde a las variables utilizadas en un programa de Stata. Pueden ser locales o globales. Las macros locales deberán tener máximo una letra menos que los comandos ( en la versión 6.0 eran 7 letras, en la versión 7.0 son 31). Ejemplo Local lista1 “variable1 variable2” Hemos creado una macro que hace que cada vez que se diga List lista1 imprimirá variable1 variable2 Otra forma de llamar macros es con: `lista1’ local lista variable1 variable2 variable3 regress dependiente `lista’

Wilson Mayorga Mogollón

Page 56: Manual Stata 9.0

Manual Básico de STATA 56

Las macros locales o globales pueden tener el mismo nombre y Stata las reconocerá como diferentes. Cuando se desea que la macro deje de ser alfanúmerica(aplicable a títulos) y funcione como operaciones, lo único que debe hacerse es definir la operación: Ejemplo: Local dos = 2 + 2 En este caso se define una macro llamada dos la cual evalúa la operación y tendrá valor de 4. Ejemplo: Suponga que ya existe una macro llamada i y se le desea sumar un número 3. La sintaxis será: Local i = `i’ + 1 Nótese que para definir variables alfanuméricas se usan dobles comillas(“ “) y para operar con macros ya creadas se usa comillas sencillas (` ‘). Ejemplo: If “`respuesta’” ==”si” { } else { } Nótese el uso de dobles comillas: “” y también de ‘ ‘ dentro del llamado a la macro de nombre respuesta. La razón es que, primero las comillas sencillas se refieren al uso de la macro y las comillas dobles se refieren a que el contenido de esta macro es alfanumérico. • ARGUMENTOS EN PROGRAMAS Suponga que llama un programa de la siguiente forma: Programa variable1 variable2 En este caso tanto variable1 como variable2 son argumentos del programa y se incluyen como macros para ser operados dentro del programa. Stata por default define macros usando números cuando se colocan variables seguidos de un programa o un archivo *.do.

Wilson Mayorga Mogollón

Page 57: Manual Stata 9.0

Manual Básico de STATA 57

Por ejemplo: Do ejemplo1 var1 var2 var3 var4 Se definen automáticamente las siguientes macros: `0’ que será igual a todo lo que el usuario escribió desde var1 hasta var4 con espacios comillas, todo. `1’ la primera palabra que corresponde a var1 `2’ la segunda palabra que corresponde a var2 etc.. capture program drop tester program define tester display "argument 1 is |`1'|" display "argument 2 is |`2'|" display "argument 3 is |`3'|" display "argument 4 is |`4'|" end exit Una mejor forma de llamar los argumentos dentro de un archivo do o un programa es usando el comando args. Con este comando se asignan los nombres a las posiciones llenadas por el usuario al llamar el programa. Ejemplo: Program define programa1 Args var1 var2 var3 var4 …operaciones… end Entonces var1 var2 var3 var4 se convierten en cuatro variables locales que corresponden a `1’ `2’ `3’ `4’ respectivamente. Otro ejemplo puede ser el siguiente: Program define ejemplo1 Args n a b

Drop _all /*se usó una variable del sistema que borra todas las variables en memoria*/

set obs = `1’ generate x = (_n-1)/(_N-1)*(`b’-`a’)+`a’ end

Wilson Mayorga Mogollón

Page 58: Manual Stata 9.0

Manual Básico de STATA 58

• USO DE CONDICIONALES Los principales comandos que podemos usar en programación son: If – else While Foreach Forvalues

• COMANDO IF Su sintaxis es: If expression { Comandos Stata } else if expression { comandos stata } else { comandos stata } Ejemplo: Este programa toma 2 argumentos. El primero es una variable existente(x). El segundo argumento es un número(n). El programa creará una variable llamada z. Si n>0, z = x^n; si n=0, entonces z=log(x) y si n<0 entonces z= -x^n. Esta es la transformación de box-cox. capture program drop potencia program define potencia if `2'>0 { generate z =`1'^`2' label variable z "`1^`2'" } else if `2'==0 { generate z = log(`1') label variable z = "log(`1')" } else { generate z = -(`1'^(`2')) label variable z "`1'^(`2')" } end

Wilson Mayorga Mogollón

Page 59: Manual Stata 9.0

Manual Básico de STATA 59

Aquí introducimos la sintaxis para los corchetes. Estos indican operaciones repetitivas(loop) todo lo que vaya dentro de corchetes se hará de manera que cumpla la condición impuesta, bien sea por un condicional if, como en este caso, o por otros condicionales como los que siguen a continuación.

• COMANDO FOR Este comando permite realizar operaciones repetitivas. Su sintaxis básica es: For variable in rango tipo de lista : comando condición en función de X. Siendo x un letra que siempre debe ir; en este caso particular(únicamente con este comando) la X es fija como sintaxis; y también nótese que la X va en mayúscula. En general estas variables comodin(en mayúscula para escribir la operación correspondiente) son: X, Y, Z, A, B, C, D, E mejor dicho, cualquier cosa que vaya en MAYUSCULA Se pueden tener varios tipos de lista separados por \; de igual manera se pueden tener varias condiciones separadas por \ Los tipos de lista pueden ser: Var Un listado de variables: var1 var2 var3 New una nueva variable Num Una secuencia de números(por ejemlo 4/10) Any para cualquier variable Ejemplos: • Creación de 100 variables con números uniformes:

(debe haberse definido el tamaño de la tabla previamente. Esto se hace con la instrucción set obs número) set obs 100 For new u1-u10: gen x=uniform() • Reemplaza en cualquier variable un missing value: For any . : replace z=. If y= X • Genera nuevas 5 variables que corresponden a los poderes de x2, x3, x4, x5. For new x2-x5 \ num 2/5: gen X =variable^Y

Wilson Mayorga Mogollón

Page 60: Manual Stata 9.0

Manual Básico de STATA 60

• COMANDO FORVALUES La sintaxis para este comando es: forvalues nueva_macro = rango { comandos referidos a nueva_macro } Donde nueva macro es el nombre de una nueva macro local y rango especifica el rango de valores para los cuales se desea operar.

• Ejemplo: Construcción de un contador hasta 10 program define diez forvalues i = 1(1)10 { display "`i'" } end Nótese la sintaxis del rango la macro se llama i y empieza en 1(va de 1 en 1)hasta 10. Además al ir imprimiendo lo que está en el paréntesis imprimirá un valor secuencial. program define ejemplo local N = _N forvalues i = 1(1)`N' { display name[`i'] display _column(10) "genero " genero[`i'] } end

• COMANDO WHILE La sintaxis para este comando es:

while condicion { comandos Stata }

• Ejemplo: Construcción de un contador hasta 10 program define diez_w local i = 1 while `i' <= 10 { display `i' local i = `i' + 1 } end

Wilson Mayorga Mogollón

Page 61: Manual Stata 9.0

Manual Básico de STATA 61

• VARIABLES TEMPORALES Funcionan para crear una variable dentro de un programa que una vez finalizado este programa deja de existir. Su sintaxis es: Tempvar variable Gen `variable’ = var1^2 + var^2 Y esta variable puede ser usada en cualquier parte del código del programa. En el caso de matrices se reemplaza tempvar por tempname y se sigue la sintaxis de las matrices. Tempname YXX Xinv Matrix accum `YXX’ = precio costos Matrix `Xinv’ = inv(`YXX’) Tenmpname b Matrix `b’ = `Xinv’ * `YXXX’ Nótese que realmente estas variables son macros locales y además temporales. Entonces siempre deben señalarse con las comillas usadas para las macros.

• RESULTADOS DE OTROS PROGRAMAS Stata maneja varios tipos de resultados disponibles. Aquí analizaremos dos: aquellos asociados con r() que provienen del resultado de algún análisis y aquellos asociados con e() que se refieren a estimaciones. En este punto el truco es conocer qué comandos tienen posibilidades de obtener los resultados de esta manera y aplicarlos; y para esto la forma más sencilla es mantener una permanente consulta con el help del programa. Ejemplo: Ejemplo: summarize x generate y = x - r(mean) Program define media Quietly summarize `i’ Display “media = “ r(mean) Display “varianza = “ r(Var) End Para saber qué es e() y qué es r() se puede, una vez corrido el comando específico dar alguna de las siguientes instrucciones:

Wilson Mayorga Mogollón

Page 62: Manual Stata 9.0

Manual Básico de STATA 62

Estimate lists Return lists Con esto aparecerá en listado de lo cada comando tiene disponible para operar. Si en el ejemplo anterior se deseaba mantener esta media y varianza como macros locales, se escribe: Summarize `1’ Local media = r(mean) ...`media’

• RESULTADOS PARA OTROS PROGRAMAS Si el programa que el usuario diseña hace alguna estimación o cálculo, es útil guardar este resultado. Los pasos a seguir son: 1. sobre la línea program define especifique la opción rclass o sclass de acuerdo al

tipo de resultado que requiera. 2. use el código: return scalar nombre = expresion return local nombre … return matrix nombre nombre_matriz estimates scalar nombre = expresion estimates local nombre… estimates matrix nombre nombre_matriz Ejemplos: Program define media, rclass Quietly summarize `1’ Return scalar media = r(mean) Display “media = “ return(media) End Nótese que se usó el comando return para crear el resultado que el usuario desee. Crear resultados de estimación es un poco más complejo y se remite al usuario de Stata al user’s guide que acompaña el programa.

Wilson Mayorga Mogollón

Page 63: Manual Stata 9.0

Manual Básico de STATA 63

• GENERACION DE OPCIONES: EL COMANDO SYNTAX Este comando permite diseñar el programa para que se parezca de manera prácticamente igual a un comando de Stata. En este punto sólo se analizará de manera muy rápida, dada la extensión que supone este tema. Este comando se usa dentro de un programa y se escribe cómo se desea que aparezca este comando creado: Ejemplo: Program define programa1 Syntax varlist [if] [in] [, opción1(integer 50) opción2(real 1.0) opción3(string) Operaciones End Cada uno de estos componentes tienen sus propias opciones, en el momento de programar. Sólo se presentan algunas: La primera regla es que todo lo que vaya entre corchetes cuadrados serán opcionales. • Algunas formas de definir la lista de variables son: Syntax varlist Syntax [varlist] Sintax varlist(min=2,max=6 numeric) Syntax newvarlist(max=1) • Algunas formas de definir el If son: Syntax…..if Syntax….[if]….. • Algunas formas de definir el in son: Syntax…..in…… Syntax….[in]… • Algunas formas de definir las expresiones:

Wilson Mayorga Mogollón

Page 64: Manual Stata 9.0

Manual Básico de STATA 64

Syntax………..= expresion Syntax…..[=expresion]

• Algunas formas de definir opciones: Syntax……, opción1 opción2 Syntax…..[, opción1 opción2] Además como opciones también pueden incluirse replace, detail, values(numlist), frequency, y su sintaxis es copiada de cómo se haría en comandos ya diseñados en Stata. Ejemplo: program define programa version 7.0 syntax varlist [if] [in] [, ajuste(real 1) title(string)] display "`title' " ~="" { display "`title': " } tokenize `varlist' while =`1' ~="" { variable `ajuste' `1` macro shift } end

Wilson Mayorga Mogollón

Page 65: Manual Stata 9.0

Manual Básico de STATA 65

• MATRICES EN PROGRAMAS Es posible realizar programas utilizando matrices, como por ejemplo el siguiente: program define matmult args A B C if colsof(`A')~rowsof(`B') { error } local a = rowsof(`A') local b = colsof((`A') local c = colsof(`B') matrix `C' = J(`a'. `c',0) local i=1 while `i'<=`a' { local j=1 while `j'<=`c' { local k=1 while`k'<=`b' { matrix `C'[`i',`j'] = `C'[`i',`j'] + /* */ `A'[`i',`j',`k']*`B'[`k',`j'] local k = `k' + 1 } local j = `j' + 1 } end

Wilson Mayorga Mogollón

Page 66: Manual Stata 9.0

Manual Básico de STATA 66

ANEXO 03. DISEÑO DE VENTANAS Y BOTONES

El conjunto de comandos asociados a window en Stata permiten que el usuario presente de manera interactiva algunas de las muchas operaciones que realiza este programa. Este conjunto de comandos se organizan de la siguiente manera: • Window menu: crea jerarquías dentro de los menúes. • Window dialog: crea cajas de diálogo para que el usuario interactúe con el

programa. • Window control: Genera controles dentro de las ventanas • Window fopen: Crea ventanas estándar(esto se entenderá más adelante). • Window stopbox: despliega mensajes. • Window menage: Minimiza ventanas. De igual manera a como se pueden crear ventanas, es posible crear nuevos menúes donde el usuario elija las operaciones que considere convenientes. A continuación analizaremos cada uno de los controles disponibles. Lo más usual es que este conjunto de comandos se diseñen dentro de un programa de Stata. • COMANDO WINDOW CONTROL La sintaxis básica de este comando es: Window control tipo de botón “texto a presentar” x1 y1 x2 y2 nombre de la macro asociada La macro asociada se refiere a que para cada botón debe generarse una variable que será macro global con nombre DB_primeras letras del texto(por ejemplo DB_regres) con lo cual es posible asignarle a este botón(o más específicamente a esta macro) alguna operación. Algunos de los tipos de botón disponibles son: Button = botones por ejemplo OK, CANCEL Check = Cuadros opcionales donde se eligen varias alternativas Edit = Genera espacio para ingresar nombres de variables Static = Genera un espacio para ingresar texto Radio = Genera botones donde se elige sólo una opción. Debe crearse una

macro asociada, la cual toma los valores 1,2,3…según los comandos de este tipo que se tengan.

X1, y1, x2, y2 son números y están asociados con el tamaño de la caja y la posición de cada botón dentro de la caja de diálogo.

Wilson Mayorga Mogollón

Page 67: Manual Stata 9.0

Manual Básico de STATA 67

Una diferencia fundamental entre el comando edit y el comando static es que el primero permite generar información que varía, en tanto en el segundo la información que se ingrese no se puede modificar. De hecho, el static funciona casi exclusivamente para generar títulos. ssimple = Genera una lista de variable para seleccionar una de la lista. list box = Igual que el anterior, genera una lista, pero no es visible y el usuario

debe cargar una variable a la vez. Igual contiene una macro que se pueda usar con $nombre de la macro.

La variable resultante de La elección con estos últimos dos comandos estarán disponibles utilizando $nombre de la macro. Para crear la lista de variables disponibles para ser elegidas con esta opción, se usa la sintaxis dentro del código de generación de controles. Así al usar una tabla de datos de Stata la lista de variables pertenecientes a la tabla estará disponible para la elección con estos comandos. Syntax[varlist] Global DB_var = `varlist’” • TODOS LOS CONTROLES EN UNO Para finalizar y permitir que funcione el cuadro de controles debe usarse el comando wdlg “nombre de la tabla de controles” x1 y1 x2 y2. Con este comando se crea la tabla general dentro de la cual irán los comandos previamente programados. Para finalizar un cuadro de controles, se usa un botón de CANCELAR. Este se diseña con “exit 3000”. En Stata un valor entre 3000 y 3099 en la posición indicada(que viene a corresponder a algo similar a una macro global) cancela la operación vigente. Ejemplo: El siguiente código resume todas las opciones presentadas. Se espera que el lector trate de entender cada línea del código: Con el comando list box se elige la variable dependiente y con el comando ssimple se elige la independiente y se finaliza con una regresión simple. macro drop DB* capture program drop controles program define controles global DB_chk1 = 0 global DB_chk2 = 0

Wilson Mayorga Mogollón

Page 68: Manual Stata 9.0

Manual Básico de STATA 68

global DB_chk3 = 0 window control check "check 1" 20 5 50 10 DB_chk1 window control check "check 2" 80 5 50 10 DB_chk2 window control check "check 3" 140 5 50 10 DB_chk3 global DB_rad " botones de Radio" window control static DB_rad 10 28 172 25 blackframe window control static DB_rad 65 25 55 12 center *Botones Radio con Default = 1 global DB_rval = 1 window control radbegin "radio 1" 20 35 35 10 DB_rval window control radio "radio 2" 80 35 35 10 DB_rval window control radend "radio 3" 140 35 35 10 DB_rval global DB_nval " " global DB_eval " " global DB_pval " " global DB_otro "comando ssimple" global DB_otro2 "comando list box" window control static DB_otro 95 65 80 9 window control ssimple DB_var 95 75 80 50 DB_ss window control static DB_otro2 5 65 80 9 window control scombo DB_var 5 75 80 90 DB_sc global DB_regre "regresion" global DB_salir "exit 3000" window control button "REGRESION" 5 125 80 15 DB_regre window control button "SALIR" 90 125 80 15 DB_salir syntax [varlist] global DB_var "`varlist'" wdlg "test dialog" 10 10 190 170 end capture program drop regresion program define regresion regress $DB_ss $DB_sc end

Wilson Mayorga Mogollón

Page 69: Manual Stata 9.0

Manual Básico de STATA 69

use financiero controles

• COMANDO WINDOW MENU Este comando genera menúes interactivos dentro de la barra del mismo nombre disponible bajo el sistema Windows. La sintaxis básica es la siguiente: Window menu tipo Los tipos son comandos que especifican la operación a realizar. Son los siguientes: Clear Append popout “nombre del menu” “titulo del menu” Append string “titulo del menu” “nombre del submenú” Popout “nuevo submenú” Set “nombre del menú” “nombre del submenú” corresponde al nombre de un menú previamente creado que se quiere ingresar en un nuevo menú más grande; es decir crear jerarquias entre menúes, como cualquier programa bajo windows. Popouts se asocia con la operación de vincular un submenú a un menú prinicipal. String se asocia con asignarle un nombre a un submenú y con asignarle una operación estadística o propia de Stata a un menú. La idea es saber ordenar este conjunto de posibilidades para tener un menú ordenado y coherente. Con window menu clear se borran de memoria temporal los menúes que se encuentren actualmente cargados. Con window menu set se activa el menú anteriormente programado. Ejemplo: usando la siguiente sintaxis

Wilson Mayorga Mogollón

Page 70: Manual Stata 9.0

Manual Básico de STATA 70

Window menu clear window menu append popout "sysmenu" "regresion" window menu append string "regresion" "simple" window menu append string "regresion" "multiple" window menu append string "regresion" "multivariado" window menu set "sysmenu" Se genera el siguiente menú:

Ahora creando submenúes tendremos la siguiente sintaxis: window menu clear window menu append popout "sysmenu" "tests" window menu append popout "tests" "test de media" window menu append string "tests" "test de varianza" window menu append string "test de media" "varianzas iguales" window menu append string "test de media" "varianzas desiguales" win m set "sysmenu"

Si se quiere adicionar una operación o más exactamente, un comando de Stata se coloca posterior a la definición del nombre del submenú correspondiente. Ejemplo: use financiero window menu clear window menu append popout "sysmenu" "regresion" window menu append string "regresion" "simple" "regress margeneto costos" window menu append string "regresion" "multiple" "regress margeneto costos” concentrac" window menu set "sysmenu" Claro que un ejemplo tan simple no tiene mucho sentido. Lo ideal diseñar primero programas(archivo *do o archivos *ado) y una vez creados ser utilizados dentro de un menú. A manera de ejemplo presentamos lo siguiente:

Wilson Mayorga Mogollón

Page 71: Manual Stata 9.0

Manual Básico de STATA 71

use financiero capture program drop menu1 program define menu1 window menu clear window menu append popout "sysmenu" "ejemplo" window menu append string "ejemplo" "grafico2" "graph `0'" window menu append string "ejemplo" "regresion2" "regresion `0'" window menu set "sysmenu" end capture program drop regresion program define regresion regress `0' end capture program drop grafico program define grafico graph `0' end menu1 margeneto concentrac

• COMANDO STOPBOX Este comando genera mensajes en una caja. Su sintaxis es: Window stopbox mensaje Los mensajes disponibles en Stata son: Stop = avisa de la finalización de alguna operación Note = avisa de algún resultado obtenido Rusure = Pregunta para continuar con alguna operación Ejemplos: window stopbox stop "Este comando Avisa de Errores" "Trate de Nuevo"

window stopbox note "Este comando Revisa Resultados" "Presione OK para continuar"

Wilson Mayorga Mogollón

Page 72: Manual Stata 9.0

Manual Básico de STATA 72

window stopbox rusure "¿desea realizar alguna operación" "Presione OK para continuar"

El tercer comando genera una variable global llamada _rc la cual toma dos valores: 0 si se eligió OK y 1 si se eligió cancel. A continuación presentamos un programa más complicado: use financiero window stopbox rusure "¿desea realizar una gráfica o una regresion" "Presione OK para regresion" if _rc==0 { regress margeneto costos concentrac } else { graph margeneto costos }

• COMANDO MENU DIALOG Con el comando window control se crean botones, pero no es posible asignar operaciones. Con este comando, window dialog se asignan las operaciones a los botones creados. Su sintaxis básica es: Window dialog “nombre de la caja” x1 y1 x2 y2 Pero es importante recordar que este comando window dialog cierra un conjunto de comandos generados por window control; algo así como resumir esos comandos de control. Este comando genera una variable global llamada _rc. Si este valor es de 3000 o superior hata 3099 finaliza la ejecución(es como tener un botón de cancelar).

Wilson Mayorga Mogollón

Page 73: Manual Stata 9.0

Manual Básico de STATA 73

X1, y1, x2, y2 son números y están asociados con el tamaño de la caja y la posición de cada botón dentro de la caja de diálogo. Ejemplo: use financiero capture program drop ex1 program define ex1 window control button "regresion" 10 10 30 15 DB_reg window control button "cancelar" 90 10 30 15 DB_ca global DB_reg "regress `0'" global DB_ca "exit 3000" window dialog "ejemplo" . . 140 55 end ex1 margeneto costos

Wilson Mayorga Mogollón