Introduccion a Stata

114
www.daxrox.com Statistical Services Group Mayo 2011 SSGC Introducción a Stata, Mayo 2011 INTRODUCCION A STATA

Transcript of Introduccion a Stata

www.daxrox.com

Statistical Services Group

Mayo 2011

SSGC Introducción a Stata, Mayo 2011

INTRODUCCION A STATA

Introducción ¿Qué es Stata?

SSGC Introducción a Stata, Mayo 2011

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++.

Introducción ¿Qué es Mata?

SSGC Introducción a Stata, Mayo 2011

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++.

Introducción Ventajas de Stata

SSGC Introducción a Stata, Mayo 2011

Ventajas- Portabilidad- Facilidad- Versatilidad- Programación- Uso eficiente del hardware

Fortalezas- Manipulación de datos- Análisis estadístico- Gráficos.

Introducción Fortalezas de Stata

SSGC Introducción a Stata, Mayo 2011

Ventajas- Portabilidad- Facilidad- Versatilidad- Programación- Uso eficiente del hardware

Fortalezas- Manipulación de datos - Análisis estadístico- Gráficos.

Introducción Análisis estadístico

SSGC Introducción a Stata, Mayo 2011

Análisis estadístico- Estadísticos descriptivos- Pruebas de hipótesis- Análisis multivariado- ANOVA- Regresión- Análisis de Series Temporales.

Introducción Gráficos

SSGC Introducción a Stata, Mayo 2011

Gráficos- Gráficos personalizables 2D de alta calidad.- Schemas.- Programación.- Concepto de capas

Instalación Configuración Memoria

SSGC Introducción a Stata, Mayo 2011

Instalación- Versiones: IC, SE, MP.- Personalización Entorno Trabajo.- Configuración Memoria y Procesador.

Instalación Configuración Memoria

SSGC Introducción a Stata, Mayo 2011

Instalación- Versiones: IC, SE, MP.- Personalización Entorno Trabajo.- Configuración Memoria y Procesador.

set mem 3gset mem 3g, permset maxvar 2000, permset

Instalación Soporte y actualizaciones

SSGC Introducción a Stata, Mayo 2011

Soporte- findit- Statlist- Documentación en PDF

Actualizaciones- Gratis durante periodo de licencia- Automáticas/En Línea.

Iniciando en Stata Pantalla Inicial

SSGC Introducción a Stata, Mayo 2011

Pantalla Inicial• Ventana de comandos • Ventana de resultados • Visualizador de datos • Editor de datos.• Ventana de variables.• Ventana de Revisión

Iniciando en Stata Ayuda

SSGC Introducción a Stata, Mayo 2011

Uso de la ayudaPara 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 <comando>

help regress

Iniciando en Stata Guardando el trabajo.

SSGC Introducción a Stata, Mayo 2011

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

Iniciando en Stata Configurando directorios

SSGC Introducción a Stata, Mayo 2011

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:\

Iniciando en Stata Abriendo archivos

SSGC Introducción a Stata, Mayo 2011

Abriendo un archivoPara 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 Textoinsheet using D:\SSGC\Ventas.txt, clear

Iniciando en Stata Guardando archivos

SSGC Introducción a Stata, Mayo 2011

Guardando un archivoPara 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.

Iniciando en Stata Guardando archivos

SSGC Introducción a Stata, Mayo 2011

Guardando un archivoPara guardar un archivo, utilizando el menú: File> Save> especificamos nombre del archivo. El formato de los archivos de Stata es .dta.

save Tema1

save Tema5b, replace

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:

También podemoso exportarlos (File>Export).

Iniciando en Stata ¿Por qué comandos?

SSGC Introducción a Stata, Mayo 2011

¿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.

Iniciando en Stata ¿Por qué comandos?

SSGC Introducción a Stata, Mayo 2011

¿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.

Iniciando en Stata ¿Por qué comandos?

SSGC Introducción a Stata, Mayo 2011

¿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.

Iniciando en Stata Mi primer programa

SSGC Introducción a Stata, Mayo 2011

Ejemplo:

program define holadisplay "Bienvenidos a Stata, Disfruten!"endexit

Grabar comoC:\Program Files\Stata\Ado\Base\hola.ado

Iniciando en Stata Mi primer programa

SSGC Introducción a Stata, Mayo 2011

Ejemplo:

program define holadisplay "Bienvenidos a Stata, Disfruten!"endexit

Grabar comoC:\Program Files\Stata\Ado\Base\hola.ado

- Ya hizo su primer programa

Iniciando en Stata Mi primer programa

SSGC Introducción a Stata, Mayo 2011

Ejemplo:

program define holadisplay "Bienvenidos! a Stata, Disfruten!"endexit

Grabar comoC:\Program Files\Stata\Ado\Base\hola.ado!Ya hizo su primer programa! Así de sencillo.

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Sintaxis en Stata:- Los comandos siguen una plantilla.- Sensible a las mayúsculas.

Sintaxis General de los comandos:

Ej:

[prefijo_cmd:] cmdnombre[varlist] [=exp][if exp] [in rango][peso] [usando...] [,optiones]

count

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Componentes- varlist: lista de variables sobre la cual el

comando opera:

Ejemplos:

summarize var1drop var1-var10keep var*

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Componentes- varlist: lista de variables sobre la cual el

comando opera:

Ejemplos (con “wildcards”):

summarize var1drop var1-var10keep var*list mes_?_dia_1

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

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=_ngen tiempo2=tiempo^2

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

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=_ngen tiempo2=tiempo^2

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Componentes de los comandos- if: se para seleccionar subconjuntos que

satisfagan algúna condición.

Ejemplo:

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Componentes de los comandos- if: se para seleccionar subconjuntos que

satisfagan algúna condición.

Ejemplo:

sum ventas if tiempo>=10

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Componentes de los comandos- in: se para seleccionar subconjuntos que se

encuentren en un rango dentro de la tabla.

Ejemplo:

sort ventassum ventas in 1/10

list ventas if tiempo>5 & tiempo<10

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Componentes de los comandos- in: se para seleccionar subconjuntos que se

encuentren en un rango dentro de la tabla.

Ejemplo:

sort ventassum ventas in 1/10

list ventas if tiempo>5 & tiempo<10list ventas if tiempo==5

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Ejemplo 2:Insertando y reemplazando observaciones.Se pueden insertar observaciones utilizando el editor de datos, o con el comando replace <variable> in <posición>

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Ejemplo 2:Insertando y reemplazando observaciones.Se pueden insertar observaciones utilizando el editor de datos, o con el comando replace <variable> in <posición>

reemplaza la segunda observación de la variable mes por un 3.

clearset obs 10gen mes=1replace mes=3 in 2

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Componentes de los comandos- in: se para seleccionar subconjuntos que se

encuentren en un rango dentro de la tabla.

Ejemplo:

sort ventassum ventas in 1/10

list ventas if tiempo>5 & tiempo<10list ventas if tiempo==5

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

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, clearsum ventas, detail

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Componentes de los comandos- using: se utiliza en los comandos que

requieren leer un archivo externo.

Ejemplo:

sort ventassum ventas in 1/10

list ventas if tiempo>5 & tiempo<10list ventas if tiempo==5

Iniciando en Stata Prefijo by

SSGC Introducción a Stata, Mayo 2011

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.

Iniciando en Stata Prefijo by

SSGC Introducción a Stata, Mayo 2011

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

Iniciando en Stata Sintaxis de los comandos

SSGC Introducción a Stata, Mayo 2011

Prefijo by- Se utiliza también para evitar realizar ciclos sobre las observaciones

bysort agno trimestre: sum ventas

Iniciando en Stata Valores Faltantes

SSGC Introducción a Stata, Mayo 2011

Valores faltantesSe codifican como (.) para valores numéricos y como “” para literales. Toma el valor positivo más grande.

Por ejemplo (Creando Variables Dummy):

No es lo mismo que:

generate venta_alta=(ventas>15)

gen venta_alta_corr=(ventas>15 & ventas<.)

Iniciando en Stata Formato de Pantalla

SSGC Introducción a Stata, Mayo 2011

Formato de pantallaCada variable puede tener su formato para presentar en la pantalla. No cambia su valor, pero sí la forma en que se muestra.

Iniciando en Stata Formato de Pantalla

SSGC Introducción a Stata, Mayo 2011

Formato de pantallaCada variable puede tener su formato para presentar en la pantalla. No cambia su valor, pero sí la forma en que se muestra.

Muestra las ventas en el formato por defecto,

muestra la variable tiempo como datos mensuales (2011m5).

format ventas %9.2f

format tiempo %tm

Iniciando en Stata Etiquetando variables

Etiquetando variablesCada 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 labelsAsocia 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, clearencode pobreza, generate(pobre_numerica)sum pobre_numerica

SSGC Introducción a Stata, Mayo 2011

Creando variables binariastab pobreza, generate(pobre)tab pobre1tab pobre2

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, clearencode pobreza, generate(pobre_numerica)sum pobre_numerica

SSGC Introducción a Stata, Mayo 2011

Creando variables binariastab pobreza, generate(pobre)tab pobre1tab pobre2

Iniciando en Stata Combinando archivos

Combinando ArchivosmergeSi 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 tablaappendSi queremos añadir las observaciones de dos o más archivos

SSGC Introducción a Stata, Mayo 2011

Iniciando en Stata Combinando archivos

Combinando ArchivosmergeSi 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 tablaappendSi queremos añadir las observaciones de dos o más archivos

SSGC Introducción a Stata, Mayo 2011

Iniciando en Stata Combinando archivos

Combinando ArchivosMergeSupongamos que tenemos un archivo dta [archivo1] que contiene dos variables: agno, trimestre, ventas, y otro archivo [archivo2] con las variables agno, trimestre, compras.

Ejecutamos

SSGC Introducción a Stata, Mayo 2011

use "D:\SSG\archivo1.dta”, clearmerge 1:1 agno trimestre using "D:\SSG\archivo2.dta”

Iniciando en Stata Combinando archivos

Combinando ArchivosAppendSuponga 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:

SSGC Introducción a Stata, Mayo 2011

use segundo.dta, clearappend using "C:\primero.dta"

Iniciando en Stata Generando nuevas varibles

Generando nuevas variablesEl comando generate se utiliza para generar nuevas variables. La opción replace debe especificarse si ya existe otra con el mismo nombre.

El comando egen (Extended Generate) permite utilizar otras funciones para generar variables (total, sd, average, etc).

generate tiempo=_n

SSGC Introducción a Stata, Mayo 2011

Iniciando en Stata Generando nuevas varibles

Generando nuevas variablesEl comando generate se utiliza para generar nuevas variables. La opción replace debe especificarse si ya existe otra con el mismo nombre.

El comando egen (Extended Generate) permite utilizar otras funciones para generar variables (total, sd, average, etc).

generate tiempo=_n

SSGC Introducción a Stata, Mayo 2011

egen havg = rowmean(ventas*)

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 variablesPara eliminar variables utilizamos el comando drop <nombre variable>. Si deseamos eliminar la variable tiempo del ejemplo anterior:

También podemos utilizar el comando keep que elimina todas las variables no incluidas en la lista de variables

drop tiempo

SSGC Introducción a Stata, Mayo 2011

keep ventas agno mes

Iniciando en Stata Eliminando variables

Eliminando variablesPara eliminar variables utilizamos el comando drop <nombre variable>. Si deseamos eliminar la variable tiempo del ejemplo anterior:

También podemos utilizar el comando keep que elimina todas las variables no incluidas en la lista de variables

drop tiempo

SSGC Introducción a Stata, Mayo 2011

keep ventas agno mes

Iniciando en Stata Renombrando variables

Renombrando variablesSi queremos cambiar el nombre de alguna variable utilizamos el comando rename <nombre_viejo> <nombre nuevo>. Por ejemplo:

clearset obs 10gen agno=5rename 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, clearlist

SSGC Introducción a Stata, Mayo 2011

use d:\SSGC\Ejemplos\Ventas.dta, clearlist trimestre ventas

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, clearlist

SSGC Introducción a Stata, Mayo 2011

use d:\SSGC\Ejemplos\Ventas.dta, clearlist trimestre ventas

use d:\SSGC\Ejemplos\Ventas.dta, clearlist ventas if trimestre==3 in 1/0

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, clearlist

SSGC Introducción a Stata, Mayo 2011

use d:\SSGC\Ejemplos\Ventas.dta, clearlist trimestre ventas

use d:\SSGC\Ejemplos\Ventas.dta, clearlist ventas if trimestre==3 in 1/0

Iniciando en Stata Describiendo variables

Describiendo las variablesEl 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.

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.

use d:\SSGC\Ejemplos\Ventas.dta, cleardescribe ventas

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 <lista de variables>.

use d:\SSGC\Ejemplos\Ventas.dta, clearsort ventas

SSGC Introducción a Stata, Mayo 2011

use d:\SSGC\Ejemplos\Ventas.dta, clearsort year ventas

Iniciando en Stata Reconfigurando datos

Colapsando datosSi 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 tablaSi 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 tablaConvertir de long a wide

Convertir de wide a long

reshape wide ventas, i(year) j(trimestre)

SSGC Introducción a Stata, Mayo 2011

reshape long ventas, i(year) j(trimestre)

Juan Amílcar Pérez

Statistical Services Group

Mayo 2011

SSGC Introducción a Stata, Mayo 2011

ESTADISTICA DESCRIPTIVA EN STATA

Estadística Descriptiva Tablas de frecuencia

Generando tabla de frecuenciasPara 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.

Este tipo de tabulaciones se conoce como de una sola vía.

use d:\SSGC\Ejemplos\Ventas.dta, cleartab trimestre

SSGC Introducción a Stata, Mayo 2011

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.

nos genera una tabla de doble entrada de las variable salario y pobreza

clearuse d:\SSGC\Ejemplos\tabulaciones.dta tab salario pobreza

SSGC Introducción a Stata, Mayo 2011

Estadística Descriptiva

Resumen estadístico

Obteniendo resumen de los datos numéricosEl 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 ventassum ventas, detail

SSGC Introducción a Stata, Mayo 2011

clearuse d:\SSGC\Ejemplos\tabulaciones.dta sum ventas if trimestre==2, detail

Estadística Descriptiva

Juan Amílcar Pérez

Statistical Services Group

Mayo 2011

SSGC Introducción a Stata, Mayo 2011

INTRODUCCION A LA PROGRAMACION EN STATA

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

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:

SSGC Introducción a Stata, Mayo 2011

use d:\SSGC\Ejemplos\Ventas.dta, clearsum ventaskeep if ventas>`r(mean)’

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.

SSGC Introducción a Stata, Mayo 2011

*carga el archivo de datosuse d:\SSGC\Ejemplos\Ventas.dta, clear* resume los datossum ventas

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.

SSGC Introducción a Stata, Mayo 2011

* carga el archivo de datosuse d:\SSGC\Ejemplos\Ventas.dta, clear* resume los datossum ventas

/* carga el archivo de datosuse d:\SSGC\Ejemplos\Ventas.dta, clearresume los datos*/sum ventas

Programación en Stata

Ciclos

Ciclos.Permiten repetir comandos, bloques de código, instrucciones individuales, operaciones matriciales, etc.

forvaluesPermite 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

forvaluesImagine que queremos crear una variable con las ventas acumuladas al trimestre t.

SSGC Introducción a Stata, Mayo 2011

use d:\SSGC\Ejemplos\Ventas.dta, clearcountgen ventas_acumuladas=ventasforvalues i=2/`r(N)’{replace ventas_acumuladas=ventas[`i’]+ventas_acumuladas[`i’-1] in `i’}list ventas_acumuladas

Programación en Stata

Ciclos: foreach

foreachforeach 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:

SSGC Introducción a Stata, Mayo 2011

use d:\SSGC\Ejemplos\Ventas.dta, clearforeach 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.

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

SSGC Introducción a Stata, Mayo 2011

countlocal impares=0forvalues 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'

Programación en Stata

Bifurcaciones if: ejemplos.

Bifurcaciones.Utilizando IF en archivos ado y do

SSGC Introducción a Stata, Mayo 2011

countlocal impares=0forvalues 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'

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.

SSGC Introducción a Stata, Mayo 2011

countgen muestra=""forvalues i=1/`r(N)'{if(runiform()<0.40){replace muestra="Incluir" in `i'}else{replace muestra="Excluir" in `i'}}tab muestra

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.

SSGC Introducción a Stata, Mayo 2011

countgen muestra=""forvalues i=1/`r(N)'{if(runiform()<0.40){replace muestra="Incluir" in `i'}else{replace muestra="Excluir" in `i'}}tab muestra

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 Statar-class. (p.e: summarize)

e-class. (regress)

SSGC Introducción a Stata, Mayo 2011

Programación en Stata

countdisp r(N)

sum ventasdisp "El promedio fue " r(mean)

regress ventas tiempodisp "El R2 fue " e(r2)

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 matrizPara crear una matriz en Mata, podemos (en este ejemplo 2x2) especificarlo así:

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

mataA=(1, 7 \ 3, 2)Aend

Programación en Stata

Creando una matriz

Creando una matrizPara crear una matriz en Mata, podemos (en este ejemplo 2x2) especificarlo así:

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

mataA=(1, 7 \ 3, 2)Aend

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

Y guarda los valores de los valores propios en L, y sus respectivos vectores propios en X.

SSGC Introducción a Stata, Mayo 2011

clearmataA = (1, 2 \ 9, 4)X = .L = .eigensystem(A, X, L)XLend

Programación en Stata

Traza y Diagonal de matrices

Traza de una matriz.Para hallar la traza de una matriz, escribimos trace en MATA.

Diagonal de una matrizPara hallar la diagonal de una matriz, escribimos diag en MATA.

SSGC Introducción a Stata, Mayo 2011

mataA = (1, 2 \ 9, 4)trace(A)

Programación en Stata

Traza y Diagonal de matrices

Traza de una matriz.Para hallar la traza de una matriz, escribimos trace en MATA.

Diagonal de una matrizPara hallar la diagonal de una matriz, escribimos diag en MATA.

SSGC Introducción a Stata, Mayo 2011

mataA = (1, 2 \ 9, 4)trace(A)

Programación en Stata

Traza y Diagonal de matrices

Traza de una matriz.Para hallar la traza de una matriz, escribimos trace en MATA.

Diagonal de una matrizPara hallar la diagonal de una matriz, escribimos diag en MATA.

SSGC Introducción a Stata, Mayo 2011

mataA = (1, 2 \ 9, 4)trace(A)

mataA = (1, 2 \ 9, 4)diag(A)

Programación en Stata

Determiante y rango

Determinante de una matrizPara hallar el determinante de una matriz, escribimos det en MATA.

Rango de una matrizPara hallar el rango de una matriz, escribimos rank en MATA.

SSGC Introducción a Stata, Mayo 2011

mataA = (1, 2 \ 9, 4)det(A)

Programación en Stata

Determiante y rango

Determinante de una matrizPara hallar el determinante de una matriz, escribimos det en MATA.

Rango de una matrizPara hallar el rango de una matriz, escribimos rank en MATA.

SSGC Introducción a Stata, Mayo 2011

mataA = (1, 2 \ 9, 4)det(A)

mataA = (1, 2 \ 9, 4)rank(A)

Programación en Stata

Transpuesta y raíces .Transpuesta de una matrizPara hallar la transpuesta de una matriz, ‘ (apóstrofe) luego del nombre de la matriz en MATA.

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

mataA = (1, 2 \ 9, 4)A’

Programación en Stata

Transpuesta y raíces .Transpuesta de una matrizPara hallar la transpuesta de una matriz, ‘ (apóstrofe) luego del nombre de la matriz en MATA.

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

mataA = (1, 2 \ 9, 4)A’

mataA = (1, 2 \ 9, 4)A =sqrt(A)Aend

Programación en Stata

Hallando inversasInversa de una matriz.Mata ofrece diferentes funciones para calcular la inversa de una matriz. Para una matriz cuadrada, por ejemplo, utilizamos luinv()

SSGC Introducción a Stata, Mayo 2011

mataA = (1, 2 \ 9, 4)luinv(A)end

Programación en Stata

Suma de matricesSuma de dos matricesPara hallar la suma de dos matrices, primero deben estar definidas y usamos el operador +.

SSGC Introducción a Stata, Mayo 2011

mataA = (1, 2 \ 9, 4)B = (2, 0 \ 0, 1)ABC=A+BCend

Programación en Stata

Sistema de ecuacionesSistema 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

SSGC Introducción a Stata, Mayo 2011

gen tiempo=_nmatay = st_data(.,"ventas")X = st_data(.,("tiempo"))X = X, J(rows(X),1,1)b = invsym(X'*X)*X'*ybend

Este código nos muestra los coeficientes de la regresión, que se puede comprobar utilizando el comando en Stata >>regress ventas tiempo

Programación en Stata

Sistema de ecuacionesSistema 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

SSGC Introducción a Stata, Mayo 2011

gen tiempo=_nmatay = st_data(.,"ventas")X = st_data(.,("tiempo"))X = X, J(rows(X),1,1)b = invsym(X'*X)*X'*ybend

Este código nos muestra los coeficientes de la regresión, que se puede comprobar utilizando el comando en Stata >>regress ventas tiempo

Programación en Stata

PolinomiosManipulación de polinomiosHallando las raíces de un polinomio (polyroots).Suponga que queremos hallar las raíces de 3+5x+x2 = 0

Evaluación de polinomios(polyeval).Suponga que queremos sustituir por x=1 en 3+5x+x2 = 0

SSGC Introducción a Stata, Mayo 2011

clearmatapolyroots((3,5,1))end

Programación en Stata

PolinomiosManipulación de polinomiosHallando las raíces de un polinomio (polyroots).Suponga que queremos hallar las raíces de 3+5x+x2 = 0

Evaluación de polinomios(polyeval).Suponga que queremos sustituir por x=1 en 3+5x+x2 = 0

SSGC Introducción a Stata, Mayo 2011

clearmatapolyroots((3,5,1))end

clearmatapolyeval ((3,5,1),1)end

Programación en Stata

Juan Amílcar Pérez

Statistical Services Group

Mayo 2011

SSGC Introducción a Stata, Mayo 2011

APENDICE: Algunos comandos importantes

Comandos útiles

SSGC Introducción a Stata, Mayo 2011

Comandos importantes

help : ayuda en un comando específicofindit : referencias en línea de algún tópico o comando.ssc : acceso a las rutinas SSClog : Graba sesión de trabajotsset : define el indicador de tiempo para series temporalescompress : economiza el espacio utilizado por las variables.pwd : muestra el directorio de trabajo.cd : cambia el directorio de trabajo.clear : limpia la memoriaquietly : suprime el resultado de la pantalla.exit : sale de stata (Si los resuoltados han sido grabados).

Manipulación de datos

SSGC Introducción a Stata, Mayo 2011

generate : crea nueva variablereplace : modifica una variable existenterename : renombra una variable.renvars : renombra un conjunto de variablessort : cambia el orden de ordenación de los datosdrop : elimina observaciones o variableskeep : mantiene las observaciones o variables.append : combina conjuntos de datos.merge : combina conjunto de datos.encode : genera variable numérica a partir de categóricarecode : recodifica variables categóricasdestring : convierte variables literales a numéricas

Comandos importantes

Manipulación de datos

SSGC Introducción a Stata, Mayo 2011

describe : describe el dataset en memoriause : carga un archivosave : 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ísticotab : genera tabulaciones de 1 y 2 vías.table : genera tabla de resumen estadístico

Comandos importantes

Comandos estadísticos

SSGC Introducción a Stata, Mayo 2011

summarize : estadísticos descriptivoscorrelate : matriz de correlaciónttest : prueba de hipótesis, muestras apareadas.anova : Anáisis de varianzaregress : regresión mínimos cuadradospredict : genera predicciones estimaciones, residuos, errores.test : prueba de hipótesis lineal entre parámetros.logit, logistic : modelo logístico, regresión logística

Comandos importantesComandos útiles:

Comandos series temporales

SSGC Introducción a Stata, Mayo 2011

arima : modelos Box-Jenkins con errores ARMAarch : modelos de heterocedasticidad autorregresiva condicional.dfgls : prueba de raíz unitariacorrgram : estimación del correlogramavar : vector autoregressions (basica ytructural)vec : vector error–correction models (cointegración)

Comandos importantesComandos útiles en Análisis de Series Temporales

Gráficos

SSGC Introducción a Stata, Mayo 2011

Comandos importantes

twoway (scatter ventas tiempo) (lfit ventas tiempo)

Comandos útiles para generar gráficos