INTRODUCCION A STATA www.daxrox.com Statistical Services Group Mayo 2011
SSGC
Introducción a Stata, Mayo 2011
Introducción
¿Qué es Stata?
Introducción Stata. Stata es una herramienta de análisis estadístico poderosa, existente tanto para Windows como para MacOs, con diferentes versiones según su capacidad de variables, memoria, optimización de recursos y uso de los procesadores (Stata IC/SE/MP). Mata. Lenguaje de programación matricial, utilizado por Stata, que incluye una gran librería de funciones para trabajar con matrices, y su sintaxis es parecida a Java o a C++.
SSGC
Introducción a Stata, Mayo 2011
Introducción
¿Qué es Mata?
Introducción Stata. Stata es una herramienta de análisis estadístico poderosa, existente tanto para Windows como para MacOs, con diferentes versiones según su capacidad de variables, memoria, optimización de recursos y uso de los procesadores (Stata IC/SE/MP). Mata. Lenguaje de programación matricial, utilizado por Stata, que incluye una gran librería de funciones para trabajar con matrices, y su sintaxis es parecida a Java o a C++.
SSGC
Introducción a Stata, Mayo 2011
Introducción
Ventajas de Stata
Ventajas -
Portabilidad Facilidad Versatilidad Programación Uso eficiente del hardware
Fortalezas - Manipulación de datos - Análisis estadístico - Gráficos.
SSGC
Introducción a Stata, Mayo 2011
Introducción
Fortalezas de Stata
Ventajas - Portabilidad - Facilidad - Versatilidad - Programación - Uso eficiente del hardware
Fortalezas - Manipulación de datos - Análisis estadístico - Gráficos.
SSGC
Introducción a Stata, Mayo 2011
Introducción
Análisis estadístico
Análisis estadístico -
Estadísticos descriptivos Pruebas de hipótesis Análisis multivariado ANOVA Regresión Análisis de Series Temporales.
SSGC
Introducción a Stata, Mayo 2011
Introducción
Gráficos
Gráficos -
Gráficos personalizables 2D de alta calidad. Schemas. Programación. Concepto de capas
SSGC
Introducción a Stata, Mayo 2011
Instalación
Configuración Memoria
Instalación - Versiones: IC, SE, MP. - Personalización Entorno Trabajo. - Configuración Memoria y Procesador.
SSGC
Introducción a Stata, Mayo 2011
Instalación
Configuración Memoria
Instalación - Versiones: IC, SE, MP. - Personalización Entorno Trabajo. - Configuración Memoria y Procesador. set mem 3g set mem 3g, perm set maxvar 2000, perm set
SSGC
Introducción a Stata, Mayo 2011
Instalación
Soporte y actualizaciones
Soporte - findit - Statlist - Documentación en PDF
Actualizaciones -
Gratis durante periodo de licencia Automáticas/En Línea.
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Pantalla Inicial
Pantalla Inicial • Ventana de comandos • Ventana de resultados • Visualizador de datos • Editor de datos. • Ventana de variables. • Ventana de Revisión
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Ayuda
Uso de la ayuda Para obtener la ayuda sobre cualquier tópico podemos acceder directamente desde el menú o escribir la palabra help delante de cualquier comando en la ventana de comandos: help
help regress
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Guardando el trabajo.
Archivos Logs Creación de archivos. Para ir grabando todos los comandos y resultados utilizamos el comando log, por ejemplo: log using cursoST genera un archivo en el directorio de trabajo llamado tema3, que se puede abrir tanto en Stata como en cualquier editor de texto. Cuando hemos terminado nuestra sesión de trabajo utilizamos log close
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Configurando directorios
Configuración de directorio de trabajo. El directorio de trabajo (donde se guardan los archivos logs) se muestra en la parte inferior izquierda de la pantalla de Stata. Si por alguna razón queremos cambiarlo utilizamos el comando cd. Por ejemplo cd c:\
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Abriendo archivos
Abriendo un archivo
Para abrir un archivo, utilizando el menú: File> Open> especificamos nombre del archivo.
use D:\SSGC\Ejemplos\Ventas.dta, clear **** o podemos hacerlo ***** clear use D:\SSGC\Ejemplos\Ventas.dta
Desde MS-Excel o Texto insheet using D:\SSGC\Ventas.txt, clear
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Guardando archivos
Guardando un archivo
Para guardar un archivo, utilizando el menú: File> Save> especificamos nombre del archivo. El formato de los archivos de Stata es .dta. save Tema1 crea un archivo en el directorio de trabajo (Véase Configurando directorio de trabajo) de extensión .dta.
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Guardando archivos
Guardando un archivo
Para guardar un archivo, utilizando el menú: File> Save> especificamos nombre del archivo. El formato de los archivos de Stata es .dta. save Tema1 crea un archivo en el directorio de trabajo (Véase Configurando directorio de trabajo) de extensión .dta. Si el archivo existe aparece un mensaje de error a menos que utilicemos la opción replace: save Tema5b, replace También podemoso exportarlos (File>Export).
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
¿Por qué comandos?
¿Por qué usar comandos? - Reproducibilidad -
Ventajas con respecto al click. Exploración de modelos alternativos Transportabilidad.
Extensibilidad. -
Permite acceder a una mayor gama de opciones que los menús. Incoporación de nuevas funcionalidades.
Programación
- Infinitamente útil.
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
¿Por qué comandos?
¿Por qué usar comandos? - Reproducibilidad -
Ventajas con respecto al click. Exploración de modelos alternativos Transportabilidad.
Extensibilidad. -
Permite acceder a una mayor gama de opciones que los menús. Incoporación de nuevas funcionalidades.
Programación
- Infinitamente útil.
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
¿Por qué comandos?
¿Por qué usar comandos? - Reproducibilidad -
Ventajas con respecto al click. Exploración de modelos alternativos Transportabilidad.
Extensibilidad. -
Permite acceder a una mayor gama de opciones que los menús. Incoporación de nuevas funcionalidades.
Programación
- Infinitamente útil.
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Mi primer programa
Ejemplo:
program define hola display "Bienvenidos a Stata, Disfruten!" end exit Grabar como C:\Program Files\Stata\Ado\Base\hola.ado SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Mi primer programa
Ejemplo:
program define hola display "Bienvenidos a Stata, Disfruten!" end exit Grabar como C:\Program Files\Stata\Ado\Base\hola.ado - Ya hizo su primer programa SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Mi primer programa
Ejemplo:
program define hola display "Bienvenidos! a Stata, Disfruten!" end exit Grabar como C:\Program Files\Stata\Ado\Base\hola.ado !Ya hizo su primer programa! Así de sencillo. SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Sintaxis en Stata: - Los comandos siguen una plantilla. - Sensible a las mayúsculas. Sintaxis General de los comandos: [prefijo_cmd:] cmdnombre[varlist] [=exp] [if exp] [in rango] [peso] [usando...] [,optiones] Ej:
count SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes - varlist: lista de variables sobre la cual el comando opera: Ejemplos:
summarize var1 drop var1-var10 keep var*
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes - varlist: lista de variables sobre la cual el comando opera: Ejemplos (con “wildcards”):
summarize var1 drop var1-var10 keep var* list mes_?_dia_1 SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes de los comandos - exp: se utiliza donde se requiere una expresión algebraica para generar o cambiar alguna variable. Operadores: ==, &, !, |, ^, + (Numerico y Literales) Ejemplos:
gen tiempo=_n gen tiempo2=tiempo^2 SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes de los comandos - exp: se utiliza donde se requiere una expresión algebraica para generar o cambiar alguna variable. Operadores: ==, &, !, |, ^, + (Numerico y Literales) Ejemplos:
gen tiempo=_n gen tiempo2=tiempo^2 SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes de los comandos - if: se para seleccionar subconjuntos que satisfagan algúna condición. Ejemplo:
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes de los comandos - if: se para seleccionar subconjuntos que satisfagan algúna condición. Ejemplo:
sum ventas if tiempo>=10
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes de los comandos - in: se para seleccionar subconjuntos que se encuentren en un rango dentro de la tabla. Ejemplo:
sort ventas sum ventas in 1/10 list ventas if tiempo>5 & tiempo<10 SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes de los comandos - in: se para seleccionar subconjuntos que se encuentren en un rango dentro de la tabla. Ejemplo:
sort ventas sum ventas in 1/10 list ventas if tiempo>5 & tiempo<10 list ventas if tiempo==5 SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Ejemplo 2:Insertando y reemplazando observaciones.
Se pueden insertar observaciones utilizando el editor de datos, o con el comando replace in
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Ejemplo 2:Insertando y reemplazando observaciones.
Se pueden insertar observaciones utilizando el editor de datos, o con el comando replace in clear set obs 10 gen mes=1 replace mes=3 in 2
reemplaza la segunda observación de la variable mes por un 3. SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes de los comandos - in: se para seleccionar subconjuntos que se encuentren en un rango dentro de la tabla. Ejemplo:
sort ventas sum ventas in 1/10 list ventas if tiempo>5 & tiempo<10 list ventas if tiempo==5 SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes de los comandos - options: se utiliza en los comandos que permiten varias opciones. Se indican luego de una coma, y pueden estar en cualquier orden, o abreviarse (Excepto replace). Ejemplo:
use D:\SSGC\Ventas.dta, clear sum ventas, detail SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Componentes de los comandos - using: se utiliza en los comandos que requieren leer un archivo externo. Ejemplo:
sort ventas sum ventas in 1/10 list ventas if tiempo>5 & tiempo<10 list ventas if tiempo==5 SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Prefijo by
Componentes de los comandos - prefijos: se utiliza en los comandos que pueden tener diferentes comportamientos. Prefijo: by: Cuando un comando está precedido por una lista by, se repite para cada elemento de la(s) variable(s) en esa lista.
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Prefijo by
Componentes de los comandos - prefijos: se utiliza en los comandos que pueden tener diferentes comportamientos. Prefijo: by: Cuando un comando está precedido por una lista by, se repite para cada elemento de la(s) variable(s) en esa lista. Ejemplo
by agno, sort: sum ventasc bysort agno: sum ventas SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Sintaxis de los comandos
Prefijo by - Se utiliza también para evitar realizar ciclos sobre las observaciones
bysort agno trimestre: sum ventas
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Valores Faltantes
Valores faltantes Se codifican como (.) para valores numéricos y como “” para literales. Toma el valor positivo más grande. Por ejemplo (Creando Variables Dummy):
generate venta_alta=(ventas>15) No es lo mismo que:
gen venta_alta_corr=(ventas>15 & ventas<.) SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Formato de Pantalla
Formato de pantalla Cada variable puede tener su formato para presentar en la pantalla. No cambia su valor, pero sí la forma en que se muestra.
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Formato de Pantalla
Formato de pantalla Cada variable puede tener su formato para presentar en la pantalla. No cambia su valor, pero sí la forma en que se muestra. format ventas %9.2f Muestra las ventas en el formato por defecto,
format tiempo %tm muestra la variable tiempo como datos mensuales (2011m5). SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Etiquetando variables
Etiquetando variables Cada variable puede tener su etiqueta, que es un literal de no más 80 caracteres que describe la variable con la cual está asociada. label variable tiempo"Tiempo en años"
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Value labels
Value labels Asocia cada valor numérico de una variable a un literal. label define Trimestre 1 primero 2 segundo 3 tercero 4 cuarto label values trimestre Trimestre tab trimestre
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Codificando variables
Codificando variables Si queremos codificar alguna variable categórica en valores numéricos, utilizamos el comando encode: use d:\SSGC\Ejemplos\tabulaciones.dta, clear encode pobreza, generate(pobre_numerica) sum pobre_numerica
Creando variables binarias tab pobreza, generate(pobre) tab pobre1 tab pobre2
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Codificando variables
Codificando variables Si queremos codificar alguna variable categórica en valores numéricos, utilizamos el comando encode: use d:\SSGC\Ejemplos\tabulaciones.dta, clear encode pobreza, generate(pobre_numerica) sum pobre_numerica
Creando variables binarias tab pobreza, generate(pobre) tab pobre1 tab pobre2
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Combinando archivos
Combinando Archivos merge Si queremos combinarlos a través de una variable de enlace (match variable), como por ejemplo un ID, para que los valores de las variables en alguna columna (variable) de la primera tabla se correspondan con las demás variables de la segunda tabla
append Si queremos añadir las observaciones de dos o más archivos
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Combinando archivos
Combinando Archivos merge Si queremos combinarlos a través de una variable de enlace (match variable), como por ejemplo un ID, para que los valores de las variables en alguna columna (variable) de la primera tabla se correspondan con las demás variables de la segunda tabla
append Si queremos añadir las observaciones de dos o más archivos
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Combinando archivos
Combinando Archivos Merge Supongamos que tenemos un archivo dta [archivo1] que contiene dos variables: agno, trimestre, ventas, y otro archivo [archivo2] con las variables agno, trimestre, compras. Ejecutamos use "D:\SSG\archivo1.dta”, clear merge 1:1 agno trimestre using "D:\SSG\archivo2.dta”
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Combinando archivos
Combinando Archivos Append Suponga que tenemos los datos de dos años para las ventas separados en dos archivos [primero.dta], y [segundo.dta], con las mismas variables.
Para combinarlos utilizamos: use segundo.dta, clear append using "C:\primero.dta"
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Generando nuevas varibles
Generando nuevas variables El comando generate se utiliza para generar nuevas variables. La opción replace debe especificarse si ya existe otra con el mismo nombre. generate tiempo=_n
El comando egen (Extended Generate) permite utilizar otras funciones para generar variables (total, sd, average, etc).
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Generando nuevas varibles
Generando nuevas variables El comando generate se utiliza para generar nuevas variables. La opción replace debe especificarse si ya existe otra con el mismo nombre. generate tiempo=_n
El comando egen (Extended Generate) permite utilizar otras funciones para generar variables (total, sd, average, etc). egen havg = rowmean(ventas*)
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Generando nuevas varibles
Reglas para generar nuevas variables - No deben contener caracteres extraños. (^$.) - No espacios. - Longitud limitada. - No se pueden repetir
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Eliminando variables
Eliminando variables Para eliminar variables utilizamos el comando drop . Si deseamos eliminar la variable tiempo del ejemplo anterior: drop tiempo También podemos utilizar el comando keep que elimina todas las variables no incluidas en la lista de variables keep ventas agno mes
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Eliminando variables
Eliminando variables Para eliminar variables utilizamos el comando drop . Si deseamos eliminar la variable tiempo del ejemplo anterior: drop tiempo También podemos utilizar el comando keep que elimina todas las variables no incluidas en la lista de variables keep ventas agno mes
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Renombrando variables
Renombrando variables Si queremos cambiar el nombre de alguna variable utilizamos el comando rename . Por ejemplo: clear set obs 10 gen agno=5 rename agno year
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Mostrando observaciones.
Mostrando observaciones y variables. Para listar las observaciones que se encuentran en alguna posición o cumplen con alguna condición, junto a un grupo de variables utilizamos el comando list. use d:\SSGC\Ejemplos\Ventas.dta, clear list use d:\SSGC\Ejemplos\Ventas.dta, clear list trimestre ventas
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Mostrando observaciones.
Mostrando observaciones y variables. Para listar las observaciones que se encuentran en alguna posición o cumplen con alguna condición, junto a un grupo de variables utilizamos el comando list. use d:\SSGC\Ejemplos\Ventas.dta, clear list use d:\SSGC\Ejemplos\Ventas.dta, clear list trimestre ventas use d:\SSGC\Ejemplos\Ventas.dta, clear list ventas if trimestre==3 in 1/0
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Mostrando observaciones.
Mostrando observaciones y variables. Para listar las observaciones que se encuentran en alguna posición o cumplen con alguna condición, junto a un grupo de variables utilizamos el comando list. use d:\SSGC\Ejemplos\Ventas.dta, clear list use d:\SSGC\Ejemplos\Ventas.dta, clear list trimestre ventas use d:\SSGC\Ejemplos\Ventas.dta, clear list ventas if trimestre==3 in 1/0
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Describiendo variables
Describiendo las variables El comando describe, proporciona información del tipo de variable, tamaño en memoria, etiqueta de la lista de variables que tiene como argumento. Si esta lista no se proporciona entonces describe todas las variables.
use d:\SSGC\Ejemplos\Ventas.dta, clear describe ventas muestra que las ventas se almacenan como tipo float o valor de punto flotante (decimal), su etiqueta es Ventas y su formato es %8.0g.
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Ordenando datos
Ordenando un conjunto de datos. Para ordenar un conjunto de datos utilizamos el comando sort . use d:\SSGC\Ejemplos\Ventas.dta, clear sort ventas use d:\SSGC\Ejemplos\Ventas.dta, clear sort year ventas
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Reconfigurando datos
Colapsando datos Si se quiere construir una tabla que contenga los averages sobre los valores de alguna variable, por ejemplo periodos, utilizamos el comando collapse. Forma una tabla nueva compuesta por los estadísticos de resumen de las varibles especificadas. Puede producir promedios, mínimos, máximos, percentiles, etc. collapse (p25) ventas , by(year)
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Reconfigurando datos
Transformando tabla Si se quiere transformar de formato ancho a largo, utilizamos el comando reshape. Uno de los comandos más poderosos de Stata.
SSGC
Introducción a Stata, Mayo 2011
Iniciando en Stata
Comando Reshape: Ejemplos
Transformando tabla Convertir de long a wide reshape wide ventas, i(year) j(trimestre) Convertir de wide a long reshape long ventas, i(year) j(trimestre)
SSGC
Introducción a Stata, Mayo 2011
ESTADISTICA DESCRIPTIVA EN STATA Juan Amílcar Pérez Statistical Services Group Mayo 2011
SSGC
Introducción a Stata, Mayo 2011
Estadística Descriptiva
Tablas de frecuencia
Generando tabla de frecuencias Para tabular los distintos valores que toma una variable, así como la cantidad de veces que aparece ese valor en variables categóricas y ordinales, utilizamos el comando tabulate, o resumidamente tab. El siguiente código nos muestra cuántas veces aparece cada trimestre en la tabla de Ventas. use d:\SSGC\Ejemplos\Ventas.dta, clear tab trimestre Este tipo de tabulaciones se conoce como de una sola vía.
SSGC
Introducción a Stata, Mayo 2011
Estadística Descriptiva
Tablas de doble entrada
Tabulaciones cruzadas Las tabulaciones cruzadas representan tablas de doble entrada, y se crean con el mismo comando de las tabulaciones simples, especificando dos variables como argumento. clear use d:\SSGC\Ejemplos\tabulaciones.dta tab salario pobreza nos genera una tabla de doble entrada de las variable salario y pobreza
SSGC
Introducción a Stata, Mayo 2011
Estadística Descriptiva
Resumen estadístico
Obteniendo resumen de los datos numéricos El comando summarize, o abreviadamente sum, nos proporciona algunos estadísticos importantes (media, varianza, desviación típica, cantidad), y puede ser aún más detallado (incluir percentiles, mediana,kurtosis, etc), si especificamos la opción detail. sum ventas sum ventas, detail
clear use d:\SSGC\Ejemplos\tabulaciones.dta sum ventas if trimestre==2, detail SSGC
Introducción a Stata, Mayo 2011
INTRODUCCION A LA PROGRAMACION EN STATA Juan Amílcar Pérez Statistical Services Group Mayo 2011
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Introducción
Programación básica Stata permite resolver cualquier tipo de problema que requiera incluso algoritmos complejos, uso de multiprocesadores, compatibilidad con otros componentes (APIs) de Windows, interfaz gráfica, funciones matriciales y paquetes de funciones externos.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Introducción
Programación básica Stata permite resolver cualquier tipo de problema que requiera incluso algoritmos complejos, uso de multiprocesadores, compatibilidad con otros componentes (APIs) de Windows, interfaz gráfica, funciones matriciales y paquetes de funciones externos.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Macros y escalares
Macros locales y escalares Los macros locales y escalares significan variables (que no deben ser confundidas con las variables en el archivo de Stata), y se diferencian en que los macros locales pueden contener literales y los escalares sólo pueden contener números. Por ejemplo.Si queremos eliminar todas las observaciones cuyas ventas están por debajo del promedio:
use d:\SSGC\Ejemplos\Ventas.dta, clear sum ventas keep if ventas>`r(mean)’ SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Archivos .ado y .do
Archivos .ado y .do. Los programas se pueden ejecutar desde la ventana de comandos, en archivos do, o archivos ado. Los .ado y .do pueden ser editados en cualquier editor de texto, aunque Stata incluye su procesador de texto Do File Editor, accesible directamente desde el menú.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Utilizando comentarios
Comentarios. Es buena práctica de programación comentar adecuadamente los archivos fuente, para ello utilizamos un asterisco delante de la línea a comentar. *carga el archivo de datos use d:\SSGC\Ejemplos\Ventas.dta, clear * resume los datos sum ventas
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Utilizando comentarios
Comentarios. Es buena práctica de programación comentar adecuadamente los archivos fuente, para ello utilizamos un asterisco delante de la línea a comentar. * carga el archivo de datos use d:\SSGC\Ejemplos\Ventas.dta, clear * resume los datos sum ventas /* carga el archivo de datos use d:\SSGC\Ejemplos\Ventas.dta, clear resume los datos*/ sum ventas
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Ciclos
Ciclos. Permiten repetir comandos, bloques de código, instrucciones individuales, operaciones matriciales, etc.
forvalues Permite ejecutar bloques de código para los valores que tome una variable, con incrementos (negativos o positivos) arbitrarios.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Ciclos: forvalues
forvalues Imagine que queremos crear una variable con las ventas acumuladas al trimestre t. use d:\SSGC\Ejemplos\Ventas.dta, clear count gen ventas_acumuladas=ventas forvalues i=2/`r(N)’{ replace ventas_acumuladas=ventas[`i’]+ ventas_acumuladas[`i’-1] in `i’ } list ventas_acumuladas
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Ciclos: foreach
foreach foreach permite repetir comandos para cada valor de una variable o lista de variables o ítems. Por ejemplo, para renombrar cada una de las variables añadiéndole un sufijio “_1” utilizamos:
use d:\SSGC\Ejemplos\Ventas.dta, clear foreach var of varlist year-ventas{ rename `var' `var'_1 } Note el guión entre year-ventas. Esto indica todas las variables que se encuentren entre year y ventas.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Bifurcaciones
Bifurcaciones. Así como podemos seleccionar un subconjunto de observaciones o variables con la opción if, podemos incluirlo en cualquier bloque de código para ejecutarlo condicionalmente, o desviar el curso del programa a otro bloque. Por ejemplo, si queremos imprimir en pantalla un mensaje que indique acumule en una variable la suma de las ventas de los trimestres impares y lo muestre en pantalla
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Bifurcaciones
Bifurcaciones. Así como podemos seleccionar un subconjunto de observaciones o variables con la opción if, podemos incluirlo en cualquier bloque de código para ejecutarlo condicionalmente, o desviar el curso del programa a otro bloque. Por ejemplo, si queremos imprimir en pantalla un mensaje que indique acumule en una variable la suma de las ventas de los trimestres impares y lo muestre en pantalla
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Bifurcaciones: if
Bifurcaciones. Utilizando IF en archivos ado y do count local impares=0 forvalues i=1/`r(N)'{ if(trimestre[`i']/2!=0 & ventas[`i']!=.){ local impares=`impares'+ ventas[`i'] } } display "La suma de los trimestres impares es " `impares'
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Bifurcaciones if: ejemplos.
Bifurcaciones. Utilizando IF en archivos ado y do count local impares=0 forvalues i=1/`r(N)'{ if(trimestre[`i']/2!=0 & ventas[`i']!=.){ local impares=`impares'+ ventas[`i'] } } display "La suma de los trimestres impares es " `impares'
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Ejercicios I
Ejercicios. 1. Encuentre la suma de las ventas de los trimestres impares sin utilizar ciclos (foreach, forvalues)
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Bifurcaciones: if…else…
Bifurcaciones (if…else…). Para crear una variable para indicar si una observación pertenece a una muestra, incluyendo sólo las observaciones que en una distribución uniforme [0,1] están por debajo de 0.40. count gen muestra="" forvalues i=1/`r(N)'{ if(runiform()<0.40){ replace muestra="Incluir" in `i' } else{ replace muestra="Excluir" in `i' } } tab muestra
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Bifurcaciones: if…else…
Bifurcaciones (if…else…). Para crear una variable para indicar si una observación pertenece a una muestra, incluyendo sólo las observaciones que en una distribución uniforme [0,1] están por debajo de 0.40. count gen muestra="" forvalues i=1/`r(N)'{ if(runiform()<0.40){ replace muestra="Incluir" in `i' } else{ replace muestra="Excluir" in `i' } } tab muestra
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Ejercicios II
Ejercicios II. 1. Encuentre una forma de resolver el problema anterior sin utilizar else. 2. Encuentre una forma de resolver el problema anterior sin utilizar ciclos (foreach, forvalues). 3. ¿Qué podemos concluir respecto a los ejercicios anteriores, la forma óptima para resolverlos y por qué?
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Ejercicios II
Ejercicios II. 1. Encuentre una forma de resolver el problema anterior sin utilizar else. 2. Encuentre una forma de resolver el problema anterior sin utilizar ciclos (foreach, forvalues). 3. ¿Qué podemos concluir respecto a los ejercicios anteriores, la forma óptima para resolverlos y por qué?
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Ejercicios II
Ejercicios II. 1. Encuentre una forma de resolver el problema anterior sin utilizar else. 2. Encuentre una forma de resolver el problema anterior sin utilizar ciclos (foreach, forvalues). 3. ¿Qué podemos concluir respecto a los ejercicios anteriores, la forma óptima para resolverlos y por qué?
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Manipulando resultados
Tipos de comandos en Stata r-class. (p.e: summarize) count disp r(N) sum ventas disp "El promedio fue " r(mean)
e-class. (regress) regress ventas tiempo disp "El R2 fue " e(r2)
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Mata
Programación avanzada. Mata. Mata es un lenguaje de programación matricial utilizado en Stata. Se puede acceder al Mata desde la ventana de comandos. Especificamos mata, luego el código del programa, y al final, end.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Creando una matriz
Creando una matriz Para crear una matriz en Mata, podemos (en este ejemplo 2x2) especificarlo así: mata A=(1, 7 \ 3, 2) A end
En este caso los valores de las filas se separan por \ y los valores de las columnas por coma. Pueden ser número o pueden ser otras matrices previamente declaradas o pueden ser textos encerrados en comillas. De esta manera podemos crear matrices a partir de submatrices, o matrices de texto.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Creando una matriz
Creando una matriz Para crear una matriz en Mata, podemos (en este ejemplo 2x2) especificarlo así: mata A=(1, 7 \ 3, 2) A end
En este caso los valores de las filas se separan por \ y los valores de las columnas por coma. Pueden ser número o pueden ser otras matrices previamente declaradas o pueden ser textos encerrados en comillas. De esta manera podemos crear matrices a partir de submatrices, o matrices de texto.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Eigenvalues/Eigenvectors
Cálculo de vectores y valores propios en Stata. La siguiente rutina de Stata calcula los vectores y valores propios de una matriz clear mata A = (1, 2 \ 9, 4) X = . L = . eigensystem(A, X, L) X L end
Y guarda los valores de los valores propios en L, y sus respectivos vectores propios en X.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Traza y Diagonal de matrices
Traza de una matriz. Para hallar la traza de una matriz, escribimos trace en MATA. mata A = (1, 2 \ 9, 4) trace(A)
Diagonal de una matriz Para hallar la diagonal de una matriz, escribimos diag en MATA.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Traza y Diagonal de matrices
Traza de una matriz. Para hallar la traza de una matriz, escribimos trace en MATA. mata A = (1, 2 \ 9, 4) trace(A)
Diagonal de una matriz Para hallar la diagonal de una matriz, escribimos diag en MATA.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Traza y Diagonal de matrices
Traza de una matriz. Para hallar la traza de una matriz, escribimos trace en MATA. mata A = (1, 2 \ 9, 4) trace(A)
Diagonal de una matriz Para hallar la diagonal de una matriz, escribimos diag en MATA. mata A = (1, 2 \ 9, 4) diag(A)
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Determiante y rango
Determinante de una matriz Para hallar el determinante de una matriz, escribimos det en MATA. mata A = (1, 2 \ 9, 4) det(A)
Rango de una matriz Para hallar el rango de una matriz, escribimos rank en MATA.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Determiante y rango
Determinante de una matriz Para hallar el determinante de una matriz, escribimos det en MATA. mata A = (1, 2 \ 9, 4) det(A)
Rango de una matriz Para hallar el rango de una matriz, escribimos rank en MATA. mata A = (1, 2 \ 9, 4) rank(A)
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Transpuesta y raíces .
Transpuesta de una matriz Para hallar la transpuesta de una matriz, ‘ (apóstrofe) luego del nombre de la matriz en MATA. mata A = (1, 2 \ 9, 4) A’
Raíz de una matriz. Para hallar la raíz de una matriz utilizamos sqrt, este procedimiento funciona también para otras funciones escalares.
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Transpuesta y raíces .
Transpuesta de una matriz Para hallar la transpuesta de una matriz, ‘ (apóstrofe) luego del nombre de la matriz en MATA. mata A = (1, 2 \ 9, 4) A’
Raíz de una matriz. Para hallar la raíz de una matriz utilizamos sqrt, este procedimiento funciona también para otras funciones escalares. mata A = (1, 2 \ 9, 4) A =sqrt(A) A end
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Hallando inversas
Inversa de una matriz. Mata ofrece diferentes funciones para calcular la inversa de una matriz. Para una matriz cuadrada, por ejemplo, utilizamos luinv() mata A = (1, 2 \ 9, 4) luinv(A) end
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Suma de matrices
Suma de dos matrices Para hallar la suma de dos matrices, primero deben estar definidas y usamos el operador +. mata A = (1, 2 \ 9, 4) B = (2, 0 \ 0, 1) A B C=A+B C end
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Sistema de ecuaciones
Sistema de ecuaciones (MATA) Mata ofrece diferentes funciones para resolver sistemas de ecuaciones AX=B, como la función lusolve(A, B). Para estimar una regresión líneal de las ventas, y el tiempo gen tiempo=_n mata y = st_data(.,"ventas") X = st_data(.,("tiempo")) X = X, J(rows(X),1,1) b = invsym(X'*X)*X'*y b end Este código nos muestra los coeficientes de la regresión, que se puede comprobar utilizando el comando en Stata >> regress ventas tiempo
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Sistema de ecuaciones
Sistema de ecuaciones (MATA) Mata ofrece diferentes funciones para resolver sistemas de ecuaciones AX=B, como la función lusolve(A, B). Para estimar una regresión líneal de las ventas, y el tiempo gen tiempo=_n mata y = st_data(.,"ventas") X = st_data(.,("tiempo")) X = X, J(rows(X),1,1) b = invsym(X'*X)*X'*y b end Este código nos muestra los coeficientes de la regresión, que se puede comprobar utilizando el comando en Stata >> regress ventas tiempo
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Polinomios
Manipulación de polinomios Hallando las raíces de un polinomio (polyroots). Suponga que queremos hallar las raíces de 3+5x+x2 = 0 clear mata polyroots((3,5,1)) end
Evaluación de polinomios(polyeval). Suponga que queremos sustituir por x=1 en 3+5x+x2 = 0
SSGC
Introducción a Stata, Mayo 2011
Programación en Stata
Polinomios
Manipulación de polinomios Hallando las raíces de un polinomio (polyroots). Suponga que queremos hallar las raíces de 3+5x+x2 = 0 clear mata polyroots((3,5,1)) end
Evaluación de polinomios(polyeval). Suponga que queremos sustituir por x=1 en 3+5x+x2 = 0 clear mata polyeval ((3,5,1),1) end
SSGC
Introducción a Stata, Mayo 2011
APENDICE: Algunos comandos importantes Juan Amílcar Pérez Statistical Services Group Mayo 2011
SSGC
Introducción a Stata, Mayo 2011
Comandos importantes
Comandos útiles
help : ayuda en un comando específico findit : referencias en línea de algún tópico o comando. ssc : acceso a las rutinas SSC log : Graba sesión de trabajo tsset : define el indicador de tiempo para series temporales compress : economiza el espacio utilizado por las variables. pwd : muestra el directorio de trabajo. cd : cambia el directorio de trabajo. clear : limpia la memoria quietly : suprime el resultado de la pantalla. exit : sale de stata (Si los resuoltados han sido grabados).
SSGC
Introducción a Stata, Mayo 2011
Comandos importantes
Manipulación de datos
generate : crea nueva variable replace : modifica una variable existente rename : renombra una variable. renvars : renombra un conjunto de variables sort : cambia el orden de ordenación de los datos drop : elimina observaciones o variables keep : mantiene las observaciones o variables. append : combina conjuntos de datos. merge : combina conjunto de datos. encode : genera variable numérica a partir de categórica recode : recodifica variables categóricas destring : convierte variables literales a numéricas
SSGC
Introducción a Stata, Mayo 2011
Comandos importantes
Manipulación de datos
describe : describe el dataset en memoria use : carga un archivo save : guarda un archivo. insheet : carga un archivo txt, o delimitado por tab. outfile : exporta un archivo txt o delimitado por tab. contract : crea un archivo con frecuencias. collapse : crea un archivo con resumen estadístico tab : genera tabulaciones de 1 y 2 vías. table : genera tabla de resumen estadístico
SSGC
Introducción a Stata, Mayo 2011
Comandos importantes
Comandos estadísticos
Comandos útiles: summarize : estadísticos descriptivos correlate : matriz de correlación ttest : prueba de hipótesis, muestras apareadas. anova : Anáisis de varianza regress : regresión mínimos cuadrados predict : genera predicciones estimaciones, residuos, errores. test : prueba de hipótesis lineal entre parámetros. logit, logistic : modelo logístico, regresión logística
SSGC
Introducción a Stata, Mayo 2011
Comandos importantes
Comandos series temporales
Comandos útiles en Análisis de Series Temporales arima : modelos Box-Jenkins con errores ARMA arch : modelos de heterocedasticidad autorregresiva condicional. dfgls : prueba de raíz unitaria corrgram : estimación del correlograma var : vector autoregressions (basica ytructural) vec : vector error–correction models (cointegración)
SSGC
Introducción a Stata, Mayo 2011
Comandos importantes
Gráficos
Comandos útiles para generar gráficos twoway (scatter ventas tiempo) (lfit ventas tiempo)
SSGC
Introducción a Stata, Mayo 2011