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

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

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

Review : En esta ventana aparece un listado de los comandos escritos por el usuario. que explicamos a continuación: Permite abrir un log. Statistics: Es el menú principal. Graph : Interfase donde aparecen los gráficos diseñados en el programa. Contiene el listado de todas las operaciones estadísticas posibles de realizar en Stata 9. esto es un archivo tipo texto (con extensión) . Siguiendo en la barra de herramientas de izquierda a derecha observamos nuevas teclas. Command : En esta ventana se escriben los comandos que se deseen operar en Stata. Guarda e Imprime los diferentes tipos de archivos disponibles en Stata. el primero permite realizar modificaciones en la base de datos. el segundo sólo observar los datos. Un editor de do. Do File: Es la hoja de ingreso de comandos a un archivo tipo *. 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. cuando hubieren.log) en donde se pueden ir guardando las salidas que aparecen en el Stata Results. Viewer: Es como una forma de ingresar a la búsqueda de ayuda de comandos. que es donde se pueden realizar macros (detalles más adelante). 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. Las ventanas disponibles en Stata son: CTRL + 1 CTRL + 2 CTRL + 3 CTRL + 4 CTRL + 5 CTRL + 6 CTRL + 7 CTRL + 8 Results : Aquí aparecen los resultados del uso de comandos y los mensajes de error. Variables : Aquí presenta el listado de variables con las que actualmente se está operando(pertenecen a un archivo de trabajo). Data Editor: Es la hoja de ingreso de datos de forma manual. Window: Activa y desactiva las diferentes ventanas en que se distribuye el programa. Son el editor y el browser.do.Manual Básico de STATA 4 Los otros menús disponibles son: • • • • • • File: Abre. Wilson Mayorga Mogollón .0.

Stata funciona con sólo escribir las tres primeras letras del comando respectivo. el listado de comandos disponibles en Stata. para el programa un comando con mayúsculas es diferente a uno en minúsculas. Igualmente en la página www. es una interrupción al programa a la función que esté realizando. Un tercer comando. Wilson Mayorga Mogollón . Al escribir cada comando en Stata. por tanto si se requiere trabajar con más de esa capacidad (como para abrir una gran base de datos).stata. por ejemplo con 10 Megas. Todo se debe escribir en minúsculas. por defecto Stata inicia su sesión con 5 Megabytes. el usuario cuenta con amplias posibilidades de información que le serán de muchísima utilidad. es decir. se tiene una referencia de su uso y explicación. Además. 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. HELP-SEARCH: Esta opción puede ser útil cuando se conoce el tema pero no el comando que podría usarse. 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. HELP-STATA COMMAND: Ingresando el comando que genera dudas. se puede ingresar a una descripción del comando y algunos ejemplos de su uso. aparecerá en pantalla Result el mensaje o resultado de respuesta del comando. en casi todos los casos. Dando click en alguno de ellos.com se encuentran documentos y Stata Bulletin los cuales pueden ser de mucha utilidad para el usuario. También dentro del menú de Help se encuentran otras opciones de ayuda On line. se debe escribir: set memory 10m o también set memory 10000. SEARCH: logistic Regression. HELP-CONTENTS : Presenta a manera de tabla de contenido.Manual Básico de STATA 5 El break. • CONDICIONES INICIALES Debe tenerse en cuenta que Stata es un programa Sensible a las mayúsculas. Por ejemplo.

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. 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] [. save.do. genera como salida una explicación del significado. Editando un archivo *. 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 . Ejemplo: Suponga que se tiene una variable llamada sexo. opciones específicas] Donde entre brackets [] se presentan aquellas cosas que pueden ser opcionales al comando. Data o Statistics. a continuación el usuario tiene que suministrar ciertos parámetros. Lista de variables: Se refiere al nombre de la variable a la que se aplicará el comando. dando Enter. etc. donde 1 es hombre y cero mujer. Las palabras en inglés son de alguna manera “fijas”. el cual es un archivo de texto. 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. Existen tres maneras de operar comandos en STATA: • • • Utilizando el mouse y buscando la operación deseada dentro del menú Graphics. donde se escribe un conjunto de comandos. se realizarán simultáneamente las operaciones allí definidas. los datos deben ser primero ordenados por la variable indicadora. Al operar este archivo. Escribiendo comando por comando en la ventana correspondiente y obteniendo el resultado en cada paso. Con algunas pocas excepciones. todo comando inicia con una o dos palabras clave (table. y por ultimo algunos procedimientos tienen ciertas opciones suministradas por el software. En caso que no aparezca se aplicará a todo el conjunto de datos.Manual Básico de STATA 6 Escribiendo en la ventana de comandos la palabra HELP seguido del comando que se desea aplicar.). use. Para que funcione.

y macros diseñadas por el usuario. se tendría el siguiente comando: Comando [lista de variables] if sexo==1 • In rango: Esta opción.). se desea aplicar un comando entre el dato en la posición 5 y la posición 25 inclusive. TIPOS DE ARCHIVOS • Stata maneja varios tipos de archivos. así límite inferior[/límite superior].gph) y archivos de output o salida de resultados(*. En el caso que una opción tenga más de un argumento. los cuales serán analizados más adelante. restringe el alcance del comando a un rango de observaciones específico.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. Wilson Mayorga Mogollón . Summarize variable1 [weight=variable2] • Opciones específicas: Cada comando. La especificación de ese rango toma la forma numérica. de acuerdo a su función dentro del programa. dependiendo de la operación que realice. Estos son los básicos en el manejo de Stata. gráficos(*. Otros archivos de gran utilidad son los archivos de programación como *. Por ejemplo. siendo estos límites posiciones.dta). para calcular de manera rápida un promedio ponderado. tiene opciones propias.do). Estas se analizan en el momento en que cada comando sea estudiado. archivos de datos(*. Por ejemplo. 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. Generate suma = variable1 + variable2 • Weight: Se usa cuando se desea ponderar por alguna variable el resultado generado por un comando. Se usa cuando se desea crear una nueva variable o reemplazar una variable(comandos generate o replace).log). Es así como existen archivos de comandos(*. Es útil por ejemplo. estos se separan por comas(.ado. si sólo se desea generar un resultado para los hombres.

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

como Lotus o Excel o similares. donde se digitan los datos correspondientes. Wilson Mayorga Mogollón . Haciendo doble click en cualquier celda. En la parte superior de la ventana aparecen los nombres de las variables. El ingreso de Datos a Stata puede realizarse directamente utilizando el EDITOR o mediante lectura de archivos externos(ASCII). están formados por variables. encabezando cada una de las columnas en las que se introducirán sus valores.dta. la misma debe tener como máximo ocho caracteres (pueden ser letras o números y debe empezar siempre con una letra). se procede a definir las variables: nombre. nos muestra un cuadro de diálogo ofrecido para definir las características de la variable. • 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.Manual Básico de STATA 9 • CREACION DE VARIABLES Y ARCHIVOS DE DATOS Los archivos de datos tienen extensión *. Una vez ingresados los nombres. nombres o frases). Cuando se nombra una variable dentro del programa Stata. de fecha o de tiempo. Las variables pueden ser: numéricas. alfabéticas. el formato y la etiqueta. o se copian y pegan desde algún otro archivo(por ejemplo Excel o Word). siendo cada columna una nueva variable. se puede cerrar el editor y el programa preguntará si se desean mantener estos nuevos cambios. A su vez. EDITOR DE DATOS Una vez digitados los valores de cada celda(números. Aquí se dará click en OK y las nuevas variables aparecerán en la ventana de DATA EDITOR.

21 72 Asi sucesivamente se introducen la información de los demás personas. en el caso de las variables que empiezan con letras. 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. será posible ingresar nueva información únicamente digitando. Ejemplo: Input variable1 variable2 23 34 34 32 12 23 end Para guardar esta tabla se usa el comando save “c:/extension del archivo”. ellas deben encerrase en comillas dobles (" "). y nuevamente finalizando con end. Este comando save tiene como opción replace. es por filas. Otra forma de introducir los datos directamente al programa es utilizando los comandos para este fin. Input 56 78 89 90 end Wilson Mayorga Mogollón .dta. Al finalizar de introducir los datos de la última persona. Igual para guardar la base de datos. La forma de introducir los datos.Manual Básico de STATA 10 Esta operación genera un archivo temporal. y proceder como se indicó anteriormente. Para guardar la base de datos como archivo permanente con extensión *. las observaciones son separadas por espacios. End Para dar la descripción de las etiquetas de las variables podemos utilizar la ventana Data Editor. debe terminar con end. Utilizando la ventana Commands. para identificar la información de cada ítem. apenas terminaremos la sesión el desaparece perdiendo así la información. por ejemplo: "WILSON" 1 26 176. Si los datos están en memoria(es la tabla activa en ese momento en Stata) con sólo dar INPUT nuevamente. 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.

edad. En estos archivos la información puede venir de diversas formas: 1. nombre. Por ejemplo la variable id empieza en la columna 1 y termina en la columna 8. no es necesario asignarles alguno de los formatos específicos que trae STATA. Por otro lado. y todas las observaciones de cada variable ocupan el mismo número de posiciones. • Ingreso de Datos Externos Stata importa datos provenientes de archivos externos de tipo ASCII (conocidos también como archivos planos). siendo el tercero el más versátil y el más recomendable. 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. Los datos se encuentran en formato de columna. Input str4 variable3 variabl4 “Uno” 1 “Dos” 2 “Tres” 3 Es importante recordar que toda variable creada pertenecerá a la misma tabla de datos. infile e insheet. sexo. teniendo en cuenta el siguiente orden para definir una variable: formato nombre posición inicial . 2 En la tabla anterior hay seis variables: id. En columnas: De esta manera se conoce la posición donde se encuentra el valor de cada uno de los ítems. 2 1 7 0 .raw " ( Enter) Wilson Mayorga Mogollón . altura y peso. Cuando los archivos provienen de un archivo externo tipo ASCII.Manual Básico de STATA 11 Es posible ingresar variables alfanuméricas adicionando el formato str#. Por default usa FLOAT. 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 30 7 9 8 3 8 7 6 2W I L S O N M A Y 1 2 6 1 7 7 . en cuanto a las variables numéricas. colocando el número de posiciones que tendrá la variable antes del nombre de la nueva variable. Existen 3 comandos disponibles para realizar importación de este tipo de datos: infix.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.

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.raw " En el uso del comando infile para variables alfanuméricas tiene que ser definido el formato. Sin embargo. Este tipo de formato permite leer todo o parte del registro. Wilson Mayorga Mogollón . 2.). En los valores para las variables alfanuméricas no se permiten espacios en intermedios. debería incluirse como Juan_carlos. es posible leer sólo algunas variables. es decir. en el ejercicio anterior la variable nombre debe ir antecedido por el formato a utilizar.Manual Básico de STATA 12 Cuando se utiliza este formato. es decir str9 nombre. si quisiera leer sólo el nombre y la edad. por lo tanto la línea de comandos viene acompañada de otra palabra clave using. por tabuladores o por comas. Los valores de las variables deben estar separados por alguno de las siguientes alternativas: espacio en blanco. Los espacios en blanco causan que los nombres de las variables y sus valores se desfasen.raw " El comando infix espera la ruta de ubicación del archivo ASCII. Continuando con el ejemplo anterior. por ejemplo. Los valores faltantes en este tipo de formato se indican con un punto (. por ejemplo.2 70. las posiciones de las variables deben ser fijas. pero ahora se tiene la información en forma de lista: 79838762 WILSON MAY 1 26 177. Además. La longitud por defecto para esta clase de variables es de ocho dígitos. en infix se indica que la variable nombre está en la columna 9 a 17. por lo tanto es necesario ubicarlo de donde debe tomar el archivo. en el uso del comando infile se supone que no existen espacios entre las palabras.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. En este ejemplo se lee todo el registro. por ejemplo si el nombre fuese Juan Carlos. Forma de lista: Se listan las variables en el orden en el cual aparecen en el registro de entrada. la sintaxis sería: infix str8 id 1-9 str9 nombre 9-17 byte edad 19-20 using "c:\stata\ejemplo. los datos para esa variable deben estar siempre entre esas posiciones.

insheet ejemplo1 ejemplo2 using "c:\data\ejemplo. la cual despliega el siguiente conjunto de opciones: Wilson Mayorga Mogollón . además no es necesario agregar el simbolo (_). 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.raw". 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. Obsérvese que utilizando este comando no fue necesario definir los formatos de las variables alfanuméricas. 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. suponiendo que están separados por tabulador y sin nombres de la siguiente manera: insheet using “c:\data\ejemplo2.txt y similares). Suponga estos datos Wilson Andres Julian 23 56 34 45 78 44 Se pueden ingresar a STATA.txt”. entonces se usa nonames. nonames tab Utilizando el menu interactivo del programa es posible realizar las operaciones anteriores. Su sintaxis es: Insheet lista de variables using nombre del archivo . espacios o tabuladores(archivos planos o *. para separar el nombre de Juan_carlos. mediante la ruta FILE – IMPORT. tenemos la alternativa de utilizar dos comandos. Si se usan tabuladores utilizaremos insheet o infile de la misma manera que el ejemplo anterior. names Si las columnas en los datos no tienen nombre.Manual Básico de STATA 13 Si la separación es por comas. opciones.raw" Este comando carga en memoria temporal archivos de datos que están en formato separados por comas.

todos los comandos disponibles para realizar operaciones dentro la base de datos disponible en memoria se pueden encontrar siguiendo la ruta FILEDATA. agrupadas dentro del menú COMBINE DATASETS. 1. CONCATENAR VERTICALMENTE Cuando se van a unir archivos que tienen variables comunes de diferentes individuos. es posible operar con ellos. A continuación se explicará el uso de comandos. Unión Horizontal(MERGE) y Selección de Datos(JOINBY). Aquí se analizan 3 opciones: Unión Vertical(APPEND). Aquí se encuentra el siguiente conjunto de opciones: El primer grupo de opciones. esto se conoce como concatenar vertical.Manual Básico de STATA 14 • OPERACIONES ENTRE ARCHIVOS STATA Una vez importados o creados los datos. En general. De la siguiente Manera: TABLA A TABLA B TABLA A TABLA B Wilson Mayorga Mogollón . permiten unir varias tablas de datos en una sola. 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.

se generarán missing values en las posiciones donde falte información. que aporta la información sobre lo realizado.Manual Básico de STATA 15 Supongamos que se tienen dos bases de datos.dta use "C:\stata\database3. Para generar el nuevo archivo que consiste en la unión de database1. El procedimiento genera una nueva variable ( _merge ). 2.dta" En el caso que los archivos concatenados no tengan exactamente el mismo numero de observaciones. Se utiliza el comando merge y adicionalmente se requiere una variable común o de enlace(Variable llave).dta" Para mantener los cambios debe guardarse esta nueva base de datos utilizando el comando save o mediante el menú FILE-SAVE AS. Usar el comando append de la siguiente forma: append using "c:\stata\database2.dta y database2. • • • Abrir el archivo database3. clear Ordenar este archivo teniendo en cuenta la variable enlace(variable llave) sort variable_llave Realizar la concatenación. 1. por ejemplo database1. Tener activo alguno de ellos. merge id using "C:\stata\database4.dta 2.dta".dta. Los archivos que se concatenan tienen que estar ordenados por las variables de enlace. utilizando los siguientes códigos: Wilson Mayorga Mogollón . CONCATENAR HORIZONTALMENTE Este caso corresponde a unir valores de diferentes variables correspondientes a los mismos individuos. tenemos que seguir los siguientes pasos. TABLA A TABLA B TABLA A 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.

dta". variables comunes entre los dos archivos. es decir. • Abrir el archivo Stata database1. 3. es decir se asigne a las personas su esperanza de vida al nacer. replace • Abrir la segunda base. save "C:\stata\database1.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. El procedimiento necesita variables enlace (Variables llaves).dta" Wilson Mayorga Mogollón .dta". sexo.dta. clear • Ordenar el archivo activo teniendo en cuenta la variable de enlace. donde la variable de enlace es sexo. 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. Los archivos que se concatenan tienen que estar ordenados por las variables de enlace. Las siguientes instrucciones realizan la operación propuesta. que corresponde a información de personas deseamos incluir información suministrada por otro archivo (esperanzadevida.dta use "C:\stata\database1.dta con la modificación realizada en el segundo paso.dta) que corresponde a información de género. _merge=2 Individuos contenidos en la base dos no contenidos en la base activa _merge=3 Individuos comunes en las dos bases.dta. esperanzadevida.dta joinby sexo using "C:\stata\database1. sort sexo • Grabar el archivo database1. El ejercicio consiste en obtener una nueva base cuya unidad de observación sean personas agregando la característica obtenida del segundo archivo. use "C:\stata\esperanzadevida. clear • Ordenar la base activa por la variable sexo sort sexo • Unir la información adicional al database1. Supongamos que se tiene la tabla database1.dta".

4. las variables que son listadas en la comandos. Estos comandos restringen toda la base de datos. Wilson Mayorga Mogollón . En caso que se desee aplicar el menú. En el caso que se use el menú data y específicamente la opción form all pairwise combinatios . como se analizó anteriormente: keep in 1/3 keep if sexo==1 & var3>20 El comando drop elimina del archivo activo. el interés no es restringir la base de datos. es posible. 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. mediante la pestaña de options. drop [lista de variable] drop sexo altura Igualmente. sino simplemente realizar algún análisis estadístico puntual sobre una parte de ella. luego no es posible discriminar filtros para variables en particular. keep [lista de variable] keep sexo altura Para restringir por observaciones se puede utilizar In rango o if expresión. sólo las variables que son listadas junto al comando. la ruta es data-variable utilities-eliminate variables or observations. if condición o incluso by [lista de variables]. 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. El comando keep mantiene en el archivo. 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. borrando el resto.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. de esta manera no se afecta la extensión de la base de datos. En esos casos. es útil utilizar las opciones in rango.

• CREANDO ARCHIVOS LOG Un archivo *. Para dejar de grabar se escribe el comando log close Para detener de forma temporal la grabación se usa log off. 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. entonces se adiciona luego de una coma el comando append.Manual Básico de STATA 18 comando [lista de variables] if variable1> 25 in 12/75 Con la sintaxis anterior. Wilson Mayorga Mogollón . puede usarse la siguiente ruta: File-log-view Esta ruta abrirá el archivo log y podrán verse los resultados guardados. replace Otra forma es usar el menú y allí dar File Open. • EXPORTACION DE DATOS En este caso se usan los comandos OUTFILE y OUTSHEET. Estos dos comandos son útiles para evitar llenar el archivo de muchos pasos o muchas salidas.log guarda los resultados que aparezcan en la ventana de STATA RESULTS. Para abrir archivo *.log” Si ya se creó este archivo en un ejercicio anterior y se desea escribir sobre él.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”. Para crearlo se debe seguir la siguiente sintaxis: Log using “c:\nombre archivo. Si lo que se desea es SOBREESCRIBIR no se coloca append sino replace. y para reiniciar la grabación se usa log on. • OTRAS OPERACIONES RELACIONADAS CON DATOS • REEMPLAZAR VARIABLES En este caso se usa el comando replace Replace var1=1.log.

La diferencia entre el comando outfile y el comando outsheet es que el primero exporta a archivos planos. sin mayores formatos.Manual Básico de STATA 19 Outfile variables using “C:\nombre del archivo” [if exp] [in range] . Wilson Mayorga Mogollón . La sintaxis y las opciones son las mismas. en tanto el segundo presenta los datos de manera algo más estilizados. 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.

es posible seguir la ruta data-create or change variables. ~(diferente). También es posible usar este comando antecediendo el separador bysort: bysort: sexo generate variable 4 = variable4*5. es decir. En particular. • FUNCIONES Para operar funciones. 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. la opción gen aparecerá en CREATE NEW VARIABLES.). dando clic en create(…). En caso que se desee utilizar el menú para la generación de variables. para crear nuevas variables utilizando funciones. /.. El conjunto de opciones de generar nuevas variables se encuentra en la ruta FILEDATA-CREATE OR CHANGE VARIABLES. ~=(diferente). <=. se debe anteponer el comando generate. Un listado más detallado aparece a continuación: + . ==. FUNCIONES Y EXPRESIONES Antes ya vimos algunos usos de expresiones. En el caso que se deseen generar nuevas variables. se debe anteponer SIEMPRE el comando gen o generate. &(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. . con la sintaxis: gen nombre = comando(inputs). Wilson Mayorga Mogollón . así como a todos los símbolos que se desee utilizar.|(o). <. bien sea utilizando los anteriores operadores o funciones. 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(.Manual Básico de STATA 20 3. >=. ^(elevado). If pais ~= “COL”.

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. Si se coloca _b[_cons] se refiere al intercepto. En el caso de modelos de varias ecuaciones. Algunas de estas variables son: _b[variable] corresponde al coeficiente asociado a la variable elegida del último modelo realizado. por ejemplo [#1] para la primera ecuación. en ese caso una solución es la siguiente: Wilson Mayorga Mogollón .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 adiciona antes de la variable del sistema el número de la ecuación de donde se tomará el estimador. 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). • 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. Se reconocen por el símbolo antes de su nombre.

El comando que permite identificar una tabla de datos como un panel es tsset. poco. 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). Stata permite convertir variables continuas en categóricas o indicadoras. 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. con los operadores L y D. Si queremos el segundo rezago. a.var1 Esta sintaxis genera una variable llamada rez1 que será el primer rezago de var1. nada). Construcción de Variable Categórica a partir de Variable Continua Wilson Mayorga Mogollón . Si deseamos no tener en cuenta los missing values en el anterior ejercicio hacemos: Gen d1 = (variable>25) if variable~=. y convertir variables categóricas en variables indicadoras. Replace d1=0 if variable<25 b. Tsset id year Gen dif1 = D1. el comando será L2. Por ejemplo: Tsset id year Gen rez1 = L1. Una variable categórica divide a la muestra en grupos dependiendo de cierta característica (por ejemplo mucho. Toda variable indicadora es categórica. Antes de utilizar estos comandos.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. pero lo contrario no es cierto. Una forma “indirecta” de crear la anterior variable hubiera sido la siguiente: Gen d1 = 1 if variable>25 & variable ~=. • VARIABLES INDICADORAS Y VARIABLES CATEGORICAS Una variable Indicadora o Dummy asigna 1 o 0 según se cumpla o no cierta característica. Si deseamos la segunda diferencia el comando será D2.var1 En este caso estamos obteniendo la primera diferencia de la variable var1.

5 Replace d2 =1 if var1>1.5 & var1<=3.0 y vale dos si es mayor o igual a 3.0.0 Replace d2=2 if var1>3.5 y 3. Wilson Mayorga Mogollón .0 & var1~=.5. Gen d2 = 0 if var1<=1.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. vale 1 si var1 está entre 1.

mediante las cuales se puedan presentar de manera descriptiva los datos disponibles en memoria se halla en STATISTICS-SUMMARIES.table. table. • 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. presenta estadísticas básicas en una tabla.Manual Básico de STATA 24 4. • El primer comando. El menú disponible para realizar dichas tablas es: statistics-summaries. RESUMIENDO DATOS El conjunto de opciones disponibles para crear tablas de resumen.teststables. TABLES. 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. TEST – TABLES. 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. • 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. Su sintaxis básica es: Wilson Mayorga Mogollón .

incluyendo tablas de contingencia.6 & concentrac<0. 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. La sintaxis es la siguiente: By categórica: tabulate variable1 variable2 if expresion in rango.Manual Básico de STATA 25 Table variablefila variablecolumna if expresión in rango . opciones Ejemplos: Tabulate costos Tabulate costos concentrac Tabulate costos concentrac if costos>0. 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. by(oecd) contents(mean costos) • COMANDO TABULATE Este comando permite construir tablas frecuencias. all Las opciones disponibles son: Wilson Mayorga Mogollón . por ejemplo p95. c(mean costos) table pais. contents(mean costos) table pais.9. all cell chi2 column exact gamma lrchi2 Tab2 variables if expresion in rango. Ejemplo: table pais.

Manual Básico de STATA 26

Tab1

produce una tabla de una salida para cada variable especificada en la lista de variables produce todas las posibles tablas de 2x2 con las variables especificadas. Genera todas las estadísticas disponibles en STATA para análisis de tablas de contingencia. despliega la frecuencia relativa en una tabla de 2x2 calcula la prueba de independencia de pearson despliega en cada celda de la tabla 2x2 la frecuencia relativa dentro de la columna crea un conjunto de variables dummy que reflejen los valores observados de la variable tabulada.

Tab2

All

Cell Chi2 Column

Generate(variable)

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

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

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

eligiendo la opción save graph. sin embargo dando clic derecho sobre el gráfico es posible guardarlo en el disco duro. 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. La sintaxis que imprimirá el programa será: graph copy g1 graph copy g2 graph combine g1 g2 Wilson Mayorga Mogollón .Manual Básico de STATA 29 • GUARDANDO GRAFICOS Stata como base presenta un gráfico a la vez. 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.

geométrica y armónica prtest Test de igualdad de METODOS DE REGRESION Proporciones 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 hausman Realiza el test de especificación Kendall de Hausman summarize Estadísticas de resumen fracpoly Regresión fraccional polinomial swilk Test de Normalidad Shapiro. proporciones y tiempo conteos correlate calcula correlación entre dfuller test DF variables cumul Distribución acumulada pperron Test Phillips-Perron cumsp Distribución espectral pergram Periodograma acumulada cusum tests cusum para variables prais Corrección Cochrane-Orcutt y binarias Prais-Weinstein ksmirnov test de igualdad de wntestb test del periodograma para ruido distribuciones KM blanco kwallis test de rango de igualdad de xcorr cross correlagram proporciones means media aritmética. En esta sección se presentan los comandos más relevantes para modelos econométricos.ivreg estimación por variablesi Wilk instrumentales Wilson Mayorga Mogollón .ANALISIS ESTADISTICO METODOS ESTADISTICOS SERIES DE TIEMPO anova Análisis de Varianza y arch Modelos Autorregresivos en Covarianza varianza condicional bitest Test de Probabilidad arima Modelos de Series de Tiempo Binomial bstrap Muestreo por boxcox Transformación de Box-Cox Bootstrapp(incluye estimación) ci Intervalos de confianza para corrgram Correlograma de una serie de medias. Es importante recordar que la nueva versión de Stata 9. con lo cual se facilita de manera muy importante el manejo del programa. y la aplicación de algunos pocos.0 permite realizar todas las operaciones estadísticas únicamente con buscar la opción correspondiente en el menú STATISTICS. cada operación estadística se asocia a un comando particular. OPERACIONES ESTADISTICAS De manera similar a otros programas como SAS. LISTADO DE COMANDOS STATA .Manual Básico de STATA 30 6.

grafica y lista funciones de heterocedástico supervivencia logistic Regresión Logística st sts crea variables hazard y de xt obtiene predicción.Manual Básico de STATA 31 table tabla de resumen de estadísticas mkspline newey construcción lineal por splines Regresión corregida por NeweyWest Mínimos cuadrados no lineales Modelo SUR Regresión Robusta Regresión por Cuantiles ANALISIS MULTIVARIADO nl Correlación Canónica sureg Test T generalizado de rreg Hotelling factor Componentes principales y qreg análisis factorial hadimvo Identifica Outliers Multivariados predict canon hotel DATOS DE PANEL modelos cross section time series xtgls estima modelos data panel usando GLS xtlogit estima modelos logit con Test Test de restricciones lineales efectos aleatorios despues de estimacion xtnbreg estima modelos binomiales Testnl test de restricciones no lineales negativos con efectos despues de estimacion aleatorios xtpois estima modelos poisson con efectos fijos o aleatorios xtprobit estima modelos probit con MODELOS DE DURACION Y efectos fijos o aleatorios SUPERVIVENCIA xtreg modelos lineales con efectos Cox Estima modelos tipo Hazard fijos o aleatorios proporcional xttobit modelos tobit con efectos fijos ct ctset Declara datos de conteo o aleatorios xtsum resume datos de cross section ct cttost Convierte datos de conteo en datos time series de supervivencia Ltable tabla de vida(datos de supervivencia) VARIABLE DEPENDIENTE DISCRETA st cox Estima el modelo de Cox Hazard Y LIMITADA biprobit Modelo Probit Bivariado st stdes describe datos de supervivencia clogit Modelos logit condicionales st Grafica la función hazard cox stphplot proporcional heckman Modelo de Selección de st strate tabula tasas de falla Heckman heckprob Estimación de un Probit con st streg estima modelos de supervivencia corrección de selección paramétricos hetprob Estimación de probit st sts genera. residuales después de estimación Reg3 Estimación 3SLS Regress Regresión Lineal Regression Diagnóstico de Regresión diagnostics _robust estimación robusta en varianza Wilson Mayorga Mogollón .

así: Wilson Mayorga Mogollón . Dentro de cada submenú disponible en la ruta STATISTICS aparecerá la operación estadística mediante pestañas de la ventana. 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”.Manual Básico de STATA 32 logit mlogit nbreg probit ologit oprobit poisson tobit Estimación logit por máxima verosimilitud Modelo Logit Multinomial modelo binomial negativo Estimación MV de un probit Estimación MV de Logit Ordenado Estimación MV de probit ordenado Regresión Poisson Modelos de regresión censurada generate st sts graph st sts list supervivencia Grafica la función hazard y la función de supervivencia lista funciones de supervivencia y hazard st sts test test de igualdad de funciones de supervivencia st stset declara datos para ser usados en modelos de supervivencia st stsum resume datos de supervivencia Weibull estima modelos de Weibull 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] [.

La variable en el paréntesis especifica cuáles son los grupos. aquel donde se incluye la variable dependiente y las variables independientes. 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. 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. permite obtener. • REGRESION LINEAL El comando regress tiene la sintaxis que vimos anteriormente(de hecho todos los comando siguen esta sintaxis). el cual acompaña en general a la mayoría de modelos estimados. La primera pestaña siempre muestra el componente principal del comando. A continuación detallaremos a manera de ejemplo los comandos disponibles para realizar modelos de Regresión Lineal y Modelos de Datos de Panel. opciones Wilson Mayorga Mogollón . Para realizar esto mediante el menú se siguen las rutas: • • • • Statistics – linear regression – regression diagnostics Statistics – general post estimation – obtain predictions. pero no necesariamente independientes dentro de los grupos.Manual Básico de STATA 33 a manera de título aparece el comando que se utilizará. Adicionalmente. predicciones. Se recomienda acompañar este comando de otros comandos: predict. Se encuentra dentro de la ruta STATISTICS-POSTESTIMATION. residuals etc Statistics – general post estimation – tests COMANDO PREDICT Este comando. siempre existe una pestaña asociada a los componentes BY/ IF/IN que como se vio previamente. estadísticas de influencia. opciones Level(#) Noconstant Robust Especifica el nivel de confianza. Realiza estimación sin intercepto Calcula estimadores de regresión robustos en su varianza como Huber o White. Por default es 95. y probabilidades(en el caso de modelos de variable dependiente discreta). residuales. Adicionalmente. permiten especificar condiciones particulares para aplicar el comando sobre la tabla de datos disponible. test y diagnostic regression. Cluster(variable) Especifica que las observaciones son independientes entre grupos. Predict nombre if expresión in rango.

• PRUEBAS DE HIPOTESIS Usando el comando test es posible adicionar pruebas de hipótesis (restricciones lineales) sobre cualquier modelo estimado. Nótese que acepta sólo 1 VARIABLE A LA VEZ. En el caso de sistemas de ecuaciones.Manual Básico de STATA 34 Las opciones cambian de acuerdo al modelo estimado. La sintaxis puede verse de dos formas: Test expresion = expresion Por ejemplo: test _b[x1] + _b[x2] = _b[x3] test x2 = 10. también es posible usar la siguiente sintaxis: Test [variable y] variable x [variable y2] variable x2 Wilson Mayorga Mogollón . 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 del modelo de regresión lineal son: Xb Pr(a. test 2*(x1 – 3*(x2 – x3)) = x3 + x4 + 6*(x5-x6) En el caso de sistemas de ecuaciones.b) Cooksd Leverage | hat Residuals Rstandard Rstudent Stdf Stdr Covratio Dfbeta(variable) Dfits valores de Y estimado Prob(Yj/a<Yj<b) e(Yj/a<Yj<b) distancia de cook diagonal de la matriz Hat residuales residuales estandarizados residuales estudentizados error estándar de pronóstico error estándar de los residuos covratio drbeta para variable 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.b) E(a.

La ruta del menú para operar este conjunto de modelos es statistics-cross section time series. i(variable individuos) t(variable tiempo) Tanto la variable de individuos. Xtsum variables if condicion in rango. La sintaxis es: Xtcomando variables if expresion in rango .3……). El primer paso es definir la tabla como una panel de datos. i(variable) t(variable) Wilson Mayorga Mogollón . Todos los comandos que inicien con xt se refieren a datos de panel.2. como la variable tiempo deben ser numéricas y ser lo más sencilla posibles(1. La variable temporal sólo se nombra en el caso que se desee incluir en el modelo. El primer paso para poder trabajar con datos de panel es usar el comando tsset. En el menú está disponible con statistics-cross section time series – setup and utilities – declare datasets. i(variable por individuos) t(variable x t) Xtdes if condición. para avisarle al programa el tipo de tabla a utilizar. Siempre es obligatorio nombrar la variable que determina los individuos.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) R(F) F(df) R(chi2) • p-value estadístico F grados de libertad 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. i(variable por individuos) Xttab variables if condicion in rango. 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.

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”). opciones Xb Stdp Ue Xbu U E calcula el pronóstico de y sin componentes de panel calcula el error estándar de la predicción calcula ui + ei calcula la predicción incluyendo el componente fijo o aleatorio calcula el término ui calcula la predicción de eit Wilson Mayorga Mogollón . 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) Xttest0 Xthaus define la variable separadora de individuos. Xtreg dependiente independientes if expresion. realiza el test de Breush-Pagan realiza el test de Hausman También puede acompañarse este comando con el comando predict. 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. El comando para este caso es xtreg. Las opciones para este último son: Predict nombre if in .

Las posibilidades son: Binomial. Su sintaxis es: Xtgls dependiente independiente if condicion in rango. i(variable) t(variable) opciones Algunas de las opciones son: Panels(iid) el default. nbinomial. La sintaxis es: Xtgee dependiente independientes if condicion in rango. • 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. poisson. especifica estrucutra de error homocedástica entre páneles. gaussian. Para usar esta opción es obligatorio haber definido la variable de tiempo. Otras posibilidades dentro del paréntesis para corr son ar#. Si se elige gaussiana será un panel probit. igaussian.Manual Básico de STATA 37 En cuanto a medidas de bondad de ajuste. especifica correlación de primer orden dentro de los grupos de individuos. Este es Panels(heterocedastic) Panels(correlated) especifica estructura de heterocedasticidad sin correlación entre páneles 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. opciones Las principales opciones son las siguientes: Family(distribución) especifica la distribución que se desea considerar. stationary. STATA reporta el R2 del modelo(correlación al cuadrado) y los R2 de las estimaciones between y within. Corr(ar1) I(variable) T(variable) Robust estima errores estándar robustos de White Wilson Mayorga Mogollón . • XTGLS Este comando estima el panel de datos utilizando GLS. nonstationary. gamma.

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

src de programas como Gauss o RATS.ado. es decir dejarlo disponible para que el usuario lo aplique. existen dos formas de correr un archivo do. simplemente se escribe dentro del código Do nombre archivo. excepto site que corresponde a archivo *. Stata busca primero los archivos *. replace …operaciones log close La línea capture log evita que el haber definido anteriormente un archivo log genere algún problema. Capture log close Log using 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.ado que estén disponibles en red (para usuarios con Stata instalado en red). se copia en alguna de las anteriores carpetas(nuevamente.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. Para “instalar” un archivo *. Wilson Mayorga Mogollón . Usar la opción do nombre del archivo y run nombre del archivo. • ARCHIVOS *. Corresponden a archivos donde se encuentran programados comandos y operaciones específicas de Stata. Por último. Por cuestiones de orden.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. dentro de un do. Igualmente es posible llamar otros archivos do.ADO Este tipo de archivos son similares a los archivos *. por orden se recomienda que si son diseños propios se guarden en personal).

Primero se tratan como variables numéricas o alfanuméricas y luego se convierten al formato de fechas. 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.txt que tiene la siguiente forma: Bill May Sam 21 11 12 jan jul nov 1952 22 1948 18 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. Un tercer tipo de variable puede ser aquella contadora del tiempo. Wilson Mayorga Mogollón . El formato correspondiente en Stata es %d.Manual Básico de STATA 40 8. en general y de manera particular tenemos los siguientes: %td %tw %tm %tq %th %ty diario semanal mensual trimestral semestral anual 31dec1999 1989w1 1989m2 1959q4 1989h2 1989 Dando doble click sobre la tabla de datos se reconoce el tipo de formato asociado a cada columna e igualmente es posible modificarlo. SERIES DE TIEMPO Comúnmente se consideran dos tipos de datos: numéricos y alfanuméricos. Ejemplo: Supongamos que tenemos un archivo *.dia. es decir variables de fecha o variables calendario. El comando mdy(mes.año) convierte un conjunto de observaciones numéricas en variables de fecha sin formato. • DEFINIENDO FECHAS El truco es olvidarse que son fechas. es decir se observan como números comunes y corrientes.

myd. Igual los días y meses deben tener dos números. pero ¿qué pasa cuando la información no es así?. año en cualquier orden. adicionales al formato %d son %dN/D/Y para que aparezca de manera 01/12/82 y el formato %dM_d.1992. año. no sólo 2. Es importante anotar que los años deben tener 4 números. día.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.Manual Básico de STATA 41 Ejemplo: Suponga la siguiente tabla: Para convertir estas tres columnas que corresponden respectivamente a mes. Si se desease que fuese año-mes la sintaxis hubiera sido 1994m1. Esta función toma dos palabras: la primera corresponde al nombre de la variable y la segunda al formato que tomará la variable. usamos la siguiente sintaxis: gen fin = mdy(fecha. etc que se listaron anteriormente. trimestral._CY para que aparezca january 21. mes. Wilson Mayorga Mogollón . Tenemos 6 opciones: dmy.var2. se puede trabajar con los formatos de diarios. Otros dos formatos de fecha. 1994m2. etc. “dmy”). 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. • OTROS FORMATOS Lo visto anteriormente se aplica cuando se tiene día. mdy. En ese caso. etc. no sólo uno. ydm. mensual.

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.mes) yq(año.trimestre) yh(año.semana) ym(año. Ejemplo: Supongamos que se tiene la siguiente tabla en Stata: Si queremos generar una variable que resuma la fecha trimestral. todos precedidos del comando generate: Año-semana Año—mes Año-trimestre Año semestre yw(año.var2) format trimestre %tq Si no se usa la segunda línea aparecerán números sin ningún formato. hacemos lo siguiente: Generate trimestre = yq(var1.Manual Básico de STATA 42 Para convertir una variable importada desde otro programa a formato de fechas se usan los siguientes comandos. Wilson Mayorga Mogollón .

Si quisieramos hacer lo mismo pero para una variable mensual el comando hubiera sido dofm. 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. hacemos lo siguiente: gen q=quarter(dofq(trimestre)) Nótese que aquí se adiciona el comando dofq. Por ejemplo. Esto se hace con el comando tsset. La sintaxis básica de este comando es: Tsset [variable panel] nombre de variable. si se desea crear una nueva variable que asigne 1 al primer trimestre. el comando sería dofw. format(%tq) opción Wilson Mayorga Mogollón . y si fuera semanal la frecuencia. se reemplaza la m por q en ambas líneas. 2 al segundo y así sucesivamente. • 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.Manual Básico de STATA 43 • CREANDO SERIES DE TIEMPO Es posible crear dummys o diseñar filtros que se apliquen sobre variables temporales. Ahora suponga. que se desea crear una dummy que sea igual a 1 si el trimestre es el segundo.

concentrac.1990m2) Wilson Mayorga Mogollón . format(%tq) quarterly Ahora un ejemplo más complejo: Suponga que ud tiene información mensual de las siguientes variables costos.Manual Básico de STATA 44 Si los datos son mensuales se reemplaza %tq por %tm o si son día. mes. La opción disponible toma alguna de estas formas: Dayly Weekly Monthly Quarterly Halfyearly Yearly Ejemplo: Tsset tiempo. Esto se hace adicionando los comandos tin() y twhithin(). según se ha visto anteriormente. La sintaxis será la siguiente: gen mensual =ym(year. El primer paso es generar una variable de tiempo y luego definirla como mensual. año por %d.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. Por ejemplo: regress margeneto costos concentrac if tin(1990m1. La diferencia es que el primero es un intervalo abierto(incluye las fechas inicial y final) y el segundo las excluye. margeneto. Y desea realizar una regresión entre ellas.

variable • MODELOS DE SERIES DE TIEMPO Para estimar un modelo Arima o Garch debe previamente haberse usado tsset. 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 . El número de rezagos en el modelo p.d. q corresponden a números.Manual Básico de STATA 45 Si el formato hubiese sido trimestral. List if tin(5jun1995.20jun1995) • DIFERENCIAS Y REZAGOS Para crear diferencias y rezagos se realiza la siguiente sintaxis: Gen diferencia = d.q) opciones • Modelo dinámico Arima dependiente independientes. La sintaxis básica del comando es: • Modelos Arima Arima variable. Aquí presentamos sólo algunas de las múltiples opciones disponibles en Stata. arima(p. ar(p) ma(q) opciones En ambos casos puede usarse los filtros if condición o in rango.variable Gen rezago = l. lo que va dentro del comando tin también cambiará(por ejemplo 1990q1 ó 01jan1998). • MODELOS ARIMA Este comando permite estimar modelos Arima sean estacionales o no y además estimar modelos dinámicos.

trae una gran cantidad de opciones.1. residual Dynamic calcula predicciones un paso hacia delante en modelos dinámicos. • COMANDO CONSTRAINT Este comando.Manual Básico de STATA 46 Dos comandos anexos a estos modelos son predict y constraints.1) Ejemplo: Arima consumo m1. estatistica dynamic(variable de tiempo) Las estadísticas puede ser alguna de las siguientes: xb. El primero.q4) • MODELO ARCH El comando correspondiente a este modelo.mes) format mensual %tm tsset mensual arima D. calcula residuales y medidas de ajuste y el segundo aplica restricciones lineales • COMANDO PREDICT En el caso del modelo Arima. La sintaxis básica es: Arch dependiente [independientes] if condicion in rango. denominado arch. arima(1. 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 . mse. predict tiene la siguiente sintaxis: Predict nueva variable if condicion in rango.seriejemplo. y. if tin(1984q1. por lo cual se deja al lector la consulta de la gran mayoría de ellas. anexo a todos los comandos de estimación. ar(1) ma(1) robust.1994. 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.

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. lags(número) Ac variable if expresion in rango. Las opciones de gráfico pueden ser cualquiera disponibles para gráficos tipo twoway.q) detail robust Donde número se refiere al orden autorregresivo de cada uno de los modelos considerados. • MANEJO DEL TIEMPO EN PANEL DE DATOS Como se referenció anteriormente. arch(1) garch(1) • GRAFICOS EN SERIES DE TIEMPO En esta sección vamos a considerar los siguientes gráficos: líneas. el primer paso es definir la tabla de datos como temporal usando tsset. 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. lags(número) needle gen(nueva variable) opciones de gráfico Pac misma sintaxis del anterior. Gen(nueva variable) especifica un nombre para guardar los resultados de correlación o correlación parcial. arch chicor. Wilson Mayorga Mogollón . autocorrelación y autocorrelación parcial. En el caso de panel de datos debe adicionarse a este comando el nombre de la variable indicadora de individuos. La única opción diferente es needle. Corrgram variable if condición in rango. Con esta se especifica que el gráfico debe ser similar a un gráfico de barras.d.

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. la definición de datos de panel será: Tsset individuos tiempo.Manual Básico de STATA 48 Ejemplo: Supongamos que tenemos datos trimestrales. 1990m1 to 1990m8 Wilson Mayorga Mogollón . 1 to 34 time variable: tiempo. Una vez usada la sintaxis aparecerá lo siguiente: tsset id_unit tiempo panel variable: id_unit. 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).

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

6.1) matrix x = uno.Manual Básico de STATA 50 M = det(A) M = el(A.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.1…] Para asignarle nombres a las filas y las columnas de una matriz se hace lo siguiente: Matrix A = (1. por ejemplo se haría: Matrix B = [3. matrix(y) matrix uno = J(34.j) M = A[i.11. Para elegir una submatriz se usa la siguiente sintaxis: Matrix B = A[1..j ésimo elemento de la matriz A Retorna el i.j] Retorna el i. matrix(x1) generate filas = rowsof(x1) display "filas = " filas mkmat margeneto .4…] Para escribir todas las columnas. Toma la tercera fila y desde la cuarta hasta el final de las columnas Matrix B = A[3.j ésimo elemento de la matriz A La última expresión podría ser M = A[3.4\5.12\13.10.14.1.7.2.3. Para imprimir un resultado de este tipo se usa el comando display M..i.15. x1 matrix xtx = x'*x generate colum = colsof(x) /*sólo funciona con numéricas*/ Wilson Mayorga Mogollón .5.10] Elige desde la primera fila hasta la tercera y de la quinta columna hasta la décima.3.8\9.4+1].

Ejemplos: mkmat var1 var2. es decir toma una matriz y la convierte en datos. variable2……*/ Wilson Mayorga Mogollón .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. matrix(matriz1) Con la opción matrix se le adiciona el nombre. y el comando svmat realiza la operación contraria. Matrix list matriz1 svmat matriz1 /*se puede adicionar una opción llamada names(variable) para adicionarle nombre a las columnas colocando automáticamente variable1.

Run nombre archivo Nombre del programa • Un archivo *.ado.do un programa puede llamar otros programas (incluso un programa puede usar archivos *. Los programas deben ser cargados antes de ser aplicados.do no son muy diferentes para Stata(los lee igual).do se aplica con do nombre del archivo. un programa se aplica con sólo su nombre. Wilson Mayorga Mogollón . se inician con (/*) y se finaliza con(*/). Estas son: • • Un archivo *. Cuando se escribe un comando no reconocido por Stata el programa “pensará” que es un programa y buscará su nombre. y si se desea crear comentarios.do y viceversa).do o como archivos *. pero existen algunas diferencias. Es importante anotar que estos comentarios sólo pueden hacerse en este tipo de archivos. Al igual que los archivos *.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. Estos comentarios pueden colocarse en cualquier parte. Un programa sólo imprime resultados. Un programa y un archivo *. para que cada vez que se inicie el programa escrito se borre la memoria temporal de Stata. 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. incluso entre líneas o entre comandos. 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).do o en cualquier editor de texto y pueden guardarse como archivos *. Capture program drop nombre del programa Si se desea que alguna línea no sea leída se antepone un asterisco(*). Para cargar un programa. Además del comando capture program drop.do imprime en la ventana de resultados las operaciones y los comandos usados. Los programas pueden crearse en el editor de archivos *.0 para este caso).

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. y esto se hace directamente desde el editor de *. Y también debe guardarse cada archivo *. Set rmsg off Set output error Wilson Mayorga Mogollón .do EJEMPLO DE UN PROGRAMA TIPICO Capture log close log using nombre archivo log. Lo ideal es tener todos los archivos referentes a un ejercicio en una única carpeta( Y SÓLO UNA CARPETA). excepto los mensajes de error. 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. • ALGUNOS COMANDOS UTILES EN PROGRAMACION • COMANDO SET: Set puede utilizarse de la siguiente manera: Set memory Set textsize Pero tiene otros muchos usos.ado en algún sitio que Stata lo pueda encontrar(por ejemplo el listado de rutas donde stata por default). Esta línea evita que aparezca la sintaxis de cada comando en la pantalla de resultados. Suprime todos los outputs que pudieran aparecer producto de comandos.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.

La sintaxis básica es: By categórica: assert expresión if condición in rango Ejemplos: Assert costos>=0. Si no lo es. preserve Otros cálculos sobre la tabla original End Wilson Mayorga Mogollón . • COMANDO PRESERVE Este comando permite que se modifique una tabla de datos dentro de un programa.8 if year==1997 Assert costos ~=. no producirá output. Program define nombre Operaciones Preserve Comandos que “destruyen” los datos originales y realizan cálculos Restore. igual que en RATS. Si se desea que cargue nuevamente la tabla original desde el mismo programa.2 | costos <=0. Display “título” • COMANDO ASSERT Este comando asegura o verifica que algún condicional sea verdad. pero que una vez finalizado el programa se mantenga la tabla original sin modificaciones. Si lo es. en alguna línea específica se usa además de preserve el comando restore.do donde se encuentre.Manual Básico de STATA 54 • COMANDO DISPLAY Sirve para imprimir títulos. 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. imprimirá “assertion is false” y detendrá el archivo *.

detail } list `1’ `2’ drop resid end • MACROS NOTA: En esta sección se hará uso de la siguiente sintaxis. Es decir. 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 . Cuando se hable de comillas individuales realmente corresponde a `1’. la cual es muy importante cumplir.0 eran 7 letras.Manual Básico de STATA 55 • COMANDO QUIETLY Este comando impide que sea impreso el output de un comando. resid Sort resid Summarize resid. Pueden ser locales o globales. en la versión 7. Una macro dentro de Stata corresponde a las variables utilizadas en un programa de Stata. el primer símbolo es la tilde y el segundo es la comilla individual.0 son 31). Su sintaxis es: Program define nombre Quietly regress `1’ `2’ End Program define nombre Quietly { Regress `1’ `2’ Predict resid. Las macros locales deberán tener máximo una letra menos que los comandos ( en la versión 6.

Cuando se desea que la macro deje de ser alfanúmerica(aplicable a títulos) y funcione como operaciones. Wilson Mayorga Mogollón . • 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. 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 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 (` ‘). 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. 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. Stata por default define macros usando números cuando se colocan variables seguidos de un programa o un archivo *. La razón es que.Manual Básico de STATA 56 Las macros locales o globales pueden tener el mismo nombre y Stata las reconocerá como diferentes. Ejemplo: Suponga que ya existe una macro llamada i y se le desea sumar un número 3.do.

todo.. 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. `1’ la primera palabra que corresponde a var1 `2’ la segunda palabra que corresponde a var2 etc. Con este comando se asignan los nombres a las posiciones llenadas por el usuario al llamar el programa. 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 .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. 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.

El programa creará una variable llamada z. 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 . si n=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. Si n>0. Esta es la transformación de box-cox. El segundo argumento es un número(n). entonces z=log(x) y si n<0 entonces z= -x^n. z = x^n. El primero es una variable existente(x).

x4. 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. Y. B. E mejor dicho. Siendo x un letra que siempre debe ir. En general estas variables comodin(en mayúscula para escribir la operación correspondiente) son: X. D. bien sea por un condicional if. C. If y= X • Genera nuevas 5 variables que corresponden a los poderes de x2. x3. 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: Un listado de variables: var1 var2 var3 una nueva variable Una secuencia de números(por ejemlo 4/10) para cualquier variable For any . Estos indican operaciones repetitivas(loop) todo lo que vaya dentro de corchetes se hará de manera que cumpla la condición impuesta. o por otros condicionales como los que siguen a continuación. de igual manera se pueden tener varias condiciones separadas por \ Los tipos de lista pueden ser: Var New Num Any Ejemplos: • Creación de 100 variables con números uniformes: (debe haberse definido el tamaño de la tabla previamente. Z. Su sintaxis básica es: For variable in rango tipo de lista : comando condición en función de X. cualquier cosa que vaya en MAYUSCULA Se pueden tener varios tipos de lista separados por \. : replace z=. como en este caso. • COMANDO FOR Este comando permite realizar operaciones repetitivas. x5. A.Manual Básico de STATA 59 Aquí introducimos la sintaxis para los corchetes. For new x2-x5 \ num 2/5: gen X =variable^Y Wilson Mayorga Mogollón .

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 . • 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.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. Además al ir imprimiendo lo que está en el paréntesis imprimirá un valor secuencial.

y para esto la forma más sencilla es mantener una permanente consulta con el help del programa. En este punto el truco es conocer qué comandos tienen posibilidades de obtener los resultados de esta manera y aplicarlos. 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. 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.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.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. Entonces siempre deben señalarse con las comillas usadas para las macros. 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. una vez corrido el comando específico dar alguna de las siguientes instrucciones: Wilson Mayorga Mogollón . Ejemplo: Ejemplo: summarize x generate y = x . • RESULTADOS DE OTROS PROGRAMAS Stata maneja varios tipos de resultados disponibles.

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 . Los pasos a seguir son: 1. se escribe: Summarize `1’ Local media = r(mean) ..Manual Básico de STATA 62 Estimate lists Return lists Con esto aparecerá en listado de lo cada comando tiene disponible para operar. es útil guardar este resultado. 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. Si en el ejemplo anterior se deseaba mantener esta media y varianza como macros locales.. 2. sobre la línea program define especifique la opción rclass o sclass de acuerdo al tipo de resultado que requiera. 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.`media’ • RESULTADOS PARA OTROS PROGRAMAS Si el programa que el usuario diseña hace alguna estimación o cálculo.

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] [.. En este punto sólo se analizará de manera muy rápida. en el momento de programar. • Algunas formas de definir la lista de variables son: Syntax varlist Syntax [varlist] Sintax varlist(min=2.0) opción3(string) Operaciones End Cada uno de estos componentes tienen sus propias opciones.. dada la extensión que supone este tema.if Syntax….[if]….[in]… • Algunas formas de definir las expresiones: Wilson Mayorga Mogollón . opción1(integer 50) opción2(real 1. • Algunas formas de definir el in son: Syntax….max=6 numeric) Syntax newvarlist(max=1) • Algunas formas de definir el If son: Syntax….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.in…… Syntax….. Sólo se presentan algunas: La primera regla es que todo lo que vaya entre corchetes cuadrados serán opcionales.

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

`j'] local k = `k' + 1 } local j = `j' + 1 } end Wilson Mayorga Mogollón .`k']*`B'[`k'.`j'] + /* */ `A'[`i'.`j'.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'.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'. `c'.

Este conjunto de comandos se organizan de la siguiente manera: • • • • • • Window menu: crea jerarquías dentro de los menúes. 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. la cual toma los valores 1. Window menage: Minimiza ventanas. x2.2. Window dialog: crea cajas de diálogo para que el usuario interactúe con el programa.3…según los comandos de este tipo que se tengan. Algunos de los tipos de botón disponibles son: Button Check Edit Static Radio = botones por ejemplo OK. Window stopbox: despliega mensajes. Debe crearse una macro asociada. Lo más usual es que este conjunto de comandos se diseñen dentro de un programa de Stata. Window control: Genera controles dentro de las ventanas Window fopen: Crea ventanas estándar(esto se entenderá más adelante).Manual Básico de STATA 66 ANEXO 03. y1. CANCEL = Cuadros opcionales donde se eligen varias alternativas = Genera espacio para ingresar nombres de variables = Genera un espacio para ingresar texto = Genera botones donde se elige sólo una opción. • 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. Wilson Mayorga Mogollón . De igual manera a como se pueden crear ventanas. X1. 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. 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.

genera una lista. Para crear la lista de variables disponibles para ser elegidas con esta opción. = Igual que el anterior. macro drop DB* capture program drop controles program define controles global DB_chk1 = 0 global DB_chk2 = 0 Wilson Mayorga Mogollón . 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. 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. 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. Para finalizar un cuadro de controles. en tanto en el segundo la información que se ingrese no se puede modificar. Con este comando se crea la tabla general dentro de la cual irán los comandos previamente programados. se usa la sintaxis dentro del código de generación de controles. La variable resultante de La elección con estos últimos dos comandos estarán disponibles utilizando $nombre de la macro. Este se diseña con “exit 3000”. De hecho. pero no es visible y el usuario debe cargar una variable a la vez. 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.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. el static funciona casi exclusivamente para generar títulos. ssimple list box = Genera una lista de variable para seleccionar una de la lista. se usa un botón de CANCELAR. Igual contiene una macro que se pueda usar con $nombre de la macro.

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 window control ssimple DB_var 95 window control static DB_otro2 5 window control scombo DB_var 5 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 65 80 9 75 80 50 DB_ss 65 80 9 75 80 90 DB_sc Wilson Mayorga Mogollón .

La idea es saber ordenar este conjunto de posibilidades para tener un menú ordenado y coherente. es decir crear jerarquias entre menúes. Popouts se asocia con la operación de vincular un submenú a un menú prinicipal. como cualquier programa bajo windows. 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. 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ú. Ejemplo: usando la siguiente sintaxis Wilson Mayorga Mogollón . Con window menu set se activa el menú anteriormente programado. La sintaxis básica es la siguiente: Window menu tipo Los tipos son comandos que especifican la operación a realizar.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. Con window menu clear se borran de memoria temporal los menúes que se encuentren actualmente cargados.

A manera de ejemplo presentamos lo siguiente: Wilson Mayorga Mogollón .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. Lo ideal diseñar primero programas(archivo *do o archivos *ado) y una vez creados ser utilizados dentro de un menú. 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.

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 Note Rusure Ejemplos: = avisa de la finalización de alguna operación = avisa de algún resultado obtenido = Pregunta para continuar con alguna operación 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 .

Wilson Mayorga Mogollón . algo así como resumir esos comandos de control. 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. Si este valor es de 3000 o superior hata 3099 finaliza la ejecución(es como tener un botón de cancelar). Este comando genera una variable global llamada _rc.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. 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.

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" . y1. .Manual Básico de STATA 73 X1. 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. 140 55 end ex1 margeneto costos Wilson Mayorga Mogollón .

Sign up to vote on this title
UsefulNot useful