Sie sind auf Seite 1von 114

INTRODUCCION

INTRODUCCION A
A STATA
STATA
www.daxrox.com
Statistical Services Group
Mayo 2011

SSGC

Introduccin a Stata, Mayo

Introduccin

Qu es Stata?

Introduccin
Stata.
Stata es una herramienta de anlisis
estadstico poderosa, existente tanto para
Windows como para MacOs, con diferentes
versiones segn su capacidad de variables,
memoria, optimizacin de recursos y uso de
los procesadores (Stata IC/SE/MP).
Mata.
Lenguaje de programacin matricial, utilizado
por Stata, que incluye una gran librera de
funciones para trabajar con matrices, y su
sintaxis es parecida a Java o a C++.
SSGC

Introduccin a Stata, Mayo

Introduccin

Qu es Mata?

Introduccin
Stata.
Stata es una herramienta de anlisis
estadstico poderosa, existente tanto para
Windows como para MacOs, con diferentes
versiones segn su capacidad de variables,
memoria, optimizacin de recursos y uso de
los procesadores (Stata IC/SE/MP).
Mata.
Lenguaje de programacin matricial, utilizado
por Stata, que incluye una gran librera de
funciones para trabajar con matrices, y su
sintaxis es parecida a Java o a C++.
SSGC

Introduccin a Stata, Mayo

Introduccin

Ventajas de Stata

Ventajas
-

Portabilidad
Facilidad
Versatilidad
Programacin
Uso eficiente del hardware

Fortalezas
- Manipulacin de datos
- Anlisis estadstico
- Grficos.

SSGC

Introduccin a Stata, Mayo

Introduccin

Fortalezas de Stata

Ventajas
- Portabilidad
- Facilidad
- Versatilidad
- Programacin
- Uso eficiente del hardware

Fortalezas
- Manipulacin de datos
- Anlisis estadstico
- Grficos.

SSGC

Introduccin a Stata, Mayo

Introduccin

Anlisis estadstico

Anlisis estadstico
-

Estadsticos descriptivos
Pruebas de hiptesis
Anlisis multivariado
ANOVA
Regresin
Anlisis de Series Temporales.

SSGC

Introduccin a Stata, Mayo

Introduccin

Grficos

Grficos
- Grficos personalizables 2D de alta
calidad.
- Schemas.
- Programacin.
- Concepto de capas

SSGC

Introduccin a Stata, Mayo

Instalacin

Configuracin Memoria

Instalacin
- Versiones: IC, SE, MP.
- Personalizacin Entorno Trabajo.
- Configuracin Memoria y
Procesador.

SSGC

Introduccin a Stata, Mayo

Instalacin

Configuracin Memoria

Instalacin
- Versiones: IC, SE, MP.
- Personalizacin Entorno Trabajo.
- Configuracin Memoria y
Procesador.
set mem 3g
set mem 3g, perm
set maxvar 2000, perm
set

SSGC

Introduccin a Stata, Mayo

Soporte y
actualizaciones

Instalacin

Soporte
- findit
- Statlist
- Documentacin en PDF

Actualizaciones
-

Gratis durante periodo de licencia


Automticas/En Lnea.

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Pantalla Inicial

Pantalla Inicial

Ventana de comandos
Ventana de resultados
Visualizador de datos
Editor de datos.
Ventana de variables.
Ventana de Revisin

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Ayuda

Uso de la ayuda
Para obtener la ayuda sobre cualquier tpico
podemos acceder directamente desde el
men o escribir la palabra help delante de
cualquier comando en la ventana de
comandos:
help <comando>

help regress

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Guardando el trabajo.

Archivos Logs
Creacin 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 sesin de
trabajo utilizamos
log close
SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Configurando
directorios

Configuracin 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 razn queremos cambiarlo utilizamos
cdcomando
c:\
el
cd. Por ejemplo

SSGC

Introduccin a Stata, Mayo

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

Introduccin a Stata, Mayo

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
(Vase Configurando directorio de trabajo) de
extensin .dta.

SSGC

Introduccin a Stata, Mayo

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
(Vase Configurando directorio de trabajo) de
extensin .dta. Si el archivo existe aparece un
mensaje de error a menos que utilicemos la
opcin replace:
save Tema5b, replace
Tambin podemoso exportarlos (File>Export).
SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Por qu comandos?

Por qu usar comandos?


- Reproducibilidad
-

Ventajas con respecto al click.


Exploracin de modelos alternativos
Transportabilidad.

Extensibilidad.
-

Permite acceder a una mayor gama de


opciones que los mens.
Incoporacin de nuevas funcionalidades.

Programacin

- Infinitamente til.
SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Por qu comandos?

Por qu usar comandos?


- Reproducibilidad
-

Ventajas con respecto al click.


Exploracin de modelos alternativos
Transportabilidad.

Extensibilidad.
-

Permite acceder a una mayor gama de


opciones que los mens.
Incoporacin de nuevas funcionalidades.

Programacin

- Infinitamente til.
SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Por qu comandos?

Por qu usar comandos?


- Reproducibilidad
-

Ventajas con respecto al click.


Exploracin de modelos alternativos
Transportabilidad.

Extensibilidad.
-

Permite acceder a una mayor gama de


opciones que los mens.
Incoporacin de nuevas funcionalidades.

Programacin

- Infinitamente til.
SSGC

Introduccin a Stata, Mayo

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

Introduccin a Stata, Mayo

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

Introduccin a Stata, Mayo

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
Introduccin
a Stata, Mayo
SSGC

Iniciando en Stata

Sintaxis de los
comandos

Sintaxis en Stata:
- Los comandos siguen una plantilla.
- Sensible a las maysculas.
Sintaxis General de los
comandos:
[prefijo_cmd:] cmdnombre[varlist]
[=exp]
[if exp] [in rango]
[peso] [usando...] [,optiones]
Ej:
count
SSGC

Introduccin a Stata, Mayo

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

Introduccin a Stata, Mayo

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

Introduccin a Stata, Mayo

Iniciando en Stata

Sintaxis de los
comandos

Componentes de los comandos


- exp: se utiliza donde se requiere
una expresin algebraica para
generar o cambiar alguna variable.
Operadores:
==, &, !, |, ^, + (Numerico y
Literales)
Ejemplos:
gen tiempo=_n
gen tiempo2=tiempo^2
SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Sintaxis de los
comandos

Componentes de los comandos


- exp: se utiliza donde se requiere
una expresin algebraica para
generar o cambiar alguna variable.
Operadores:
==, &, !, |, ^, + (Numerico y
Literales)
Ejemplos:
gen tiempo=_n
gen tiempo2=tiempo^2
SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Sintaxis de los
comandos

Componentes de los comandos


- if: se para seleccionar
subconjuntos que satisfagan
algna condicin.
Ejemplo:

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Sintaxis de los
comandos

Componentes de los comandos


- if: se para seleccionar
subconjuntos que satisfagan
algna condicin.
Ejemplo:
sum ventas if tiempo>=10

SSGC

Introduccin a Stata, Mayo

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

Introduccin a Stata, Mayo

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
Introduccin a Stata, Mayo
listSSGC
ventas if tiempo==5

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 <variable> in <posicin>

SSGC

Introduccin a Stata, Mayo

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
<variable> in <posicin>
clear
set obs 10
gen mes=1
replace mes=3 in 2

reemplaza la segunda observacin


Introduccin a Stata, Mayo
SSGC
de la
variable mes por un 3.

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
Introduccin a Stata, Mayo
listSSGC
ventas if tiempo==5

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

use D:\SSGC\Ventas.dta, clear


Ejemplo:
sum ventas, detail
SSGC

Introduccin a Stata, Mayo

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
Introduccin a Stata, Mayo
listSSGC
ventas if tiempo==5

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

Introduccin a Stata, Mayo

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.
by agno, sort: sum ventasc
Ejemplo
bysort agno: sum ventas
SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Sintaxis de los
comandos

Prefijo by
- Se utiliza tambin para evitar
realizar ciclos sobre las
observaciones
bysort agno trimestre: sum ventas

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Valores Faltantes

Valores faltantes
Se codifican como (.) para valores
numricos y como para literales.
Toma el valor positivo ms grande.
Por ejemplo (Creando Variables
Dummy):
generate venta_alta=(ventas>15)
No
esventa_alta_corr=(ventas>15
lo mismo que:
gen
&
ventas<.)
Introduccin a Stata, Mayo
SSGC

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

Introduccin a Stata, Mayo

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 formaventas
en que%9.2f
se muestra.
format
Muestra
las ventas
format tiempo
%tmen el formato por
defecto,
Introduccin a Stata, Mayo

muestra
SSGC la variable tiempo como

Iniciando en Stata

Etiquetando
variables

Etiquetando variables
Cada variable puede tener su
etiqueta, que es un literal de no ms
80 caracteres que describe la
variable
con latiempo"Tiempo
cual est asociada.
label
variable
en
aos"

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Value labels

Value labels
Asocia cada valor numrico de una
variable a un literal.
label define Trimestre 1 primero 2
segundo 3 tercero 4 cuarto
label values trimestre Trimestre
tab trimestre

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Codificando variables

Codificando variables

Si queremos
codificar alguna variable categrica en valores
numricos, 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
Introduccin a Stata, Mayo
SSGC

Iniciando en Stata

Codificando variables

Codificando variables

Si queremos
codificar alguna variable categrica en valores
numricos, 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
Introduccin a Stata, Mayo
SSGC

Iniciando en Stata

Combinando archivos

Combinando Archivos
merge
Si queremos combinarlos a travs 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 dems
variables de la segunda tabla

append
Si queremos aadir las observaciones de dos
o ms archivos
SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Combinando archivos

Combinando Archivos
merge
Si queremos combinarlos a travs 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 dems
variables de la segunda tabla

append
Si queremos aadir las observaciones de dos
o ms archivos
SSGC

Introduccin a Stata, Mayo

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

Introduccin a Stata, Mayo

Iniciando en Stata

Combinando archivos

Combinando Archivos
Append
Suponga que tenemos los datos de dos aos
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

Introduccin a Stata, Mayo

Iniciando en Stata

Generando nuevas
varibles

Generando nuevas variables


El comando generate se utiliza para
generar nuevas variables. La opcin
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

Introduccin a Stata, Mayo

Iniciando en Stata

Generando nuevas
varibles

Generando nuevas variables


El comando generate se utiliza para
generar nuevas variables. La opcin
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

Introduccin a Stata, Mayo

Iniciando en Stata

Generando nuevas
varibles

Reglas para generar nuevas


variables
- No deben contener caracteres
extraos. (&#^$.)
- No espacios.
- Longitud limitada.
- No se pueden repetir

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Eliminando variables

Eliminando variables
Para eliminar variables utilizamos el
comando drop <nombre variable>. Si
deseamos eliminar la variable tiempo del
ejemplo
anterior:
drop
tiempo
Tambin podemos utilizar el comando keep
que elimina todas las variables no incluidas
en la
lista deagno
variables
keep
ventas
mes

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Eliminando variables

Eliminando variables
Para eliminar variables utilizamos el
comando drop <nombre variable>. Si
deseamos eliminar la variable tiempo del
ejemplo
anterior:
drop
tiempo
Tambin podemos utilizar el comando keep
que elimina todas las variables no incluidas
en la
lista deagno
variables
keep
ventas
mes

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Renombrando
variables

Renombrando variables

Si queremos cambiar el nombre de alguna


variable utilizamos el comando rename
<nombre_viejo> <nombre nuevo>. Por
ejemplo:
clear
set obs 10
gen agno=5
rename agno year

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Mostrando
observaciones.

Mostrando observaciones y
variables.

Para listar las observaciones que se


encuentran en alguna posicin o cumplen
con alguna condicin, 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

Introduccin a Stata, Mayo

Iniciando en Stata

Mostrando
observaciones.

Mostrando observaciones y
variables.

Para listar las observaciones que se


encuentran en alguna posicin o cumplen
con alguna condicin, 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

Introduccin a Stata, Mayo

Iniciando en Stata

Mostrando
observaciones.

Mostrando observaciones y
variables.

Para listar las observaciones que se


encuentran en alguna posicin o cumplen
con alguna condicin, 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

Introduccin a Stata, Mayo

Iniciando en Stata

Describiendo
variables

Describiendo las variables

El comando describe, proporciona


informacin del tipo de variable, tamao 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.
Introduccin a Stata, Mayo
SSGC

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, clear
sort ventas
use d:\SSGC\Ejemplos\Ventas.dta, clear
sort year ventas

SSGC

Introduccin a Stata, Mayo

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
estadsticos de resumen de las varibles
especificadas. Puede producir promedios,
mnimos, mximos, percentiles, etc.
collapse (p25) ventas , by(year)

SSGC

Introduccin a Stata, Mayo

Iniciando en Stata

Reconfigurando
datos

Transformando tabla

Si se quiere transformar de formato ancho a


largo, utilizamos el comando reshape. Uno
de los comandos ms poderosos de Stata.

SSGC

Introduccin a Stata, Mayo

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

Introduccin a Stata, Mayo

ESTADISTICA
ESTADISTICA DESCRIPTIVA
DESCRIPTIVA EN
EN STATA
STATA
Juan Amlcar Prez
Statistical Services Group
Mayo 2011

SSGC

Introduccin a Stata, Mayo

Estadstica 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
categricas y ordinales, utilizamos el
comando tabulate, o resumidamente tab.
El siguiente cdigo nos muestra cuntas
veces aparece cada trimestre en la tabla de
use
d:\SSGC\Ejemplos\Ventas.dta, clear
Ventas.
tab trimestre
Este tipo de tabulaciones se conoce como de
una sola va.
Introduccin a Stata, Mayo
SSGC

Estadstica 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

Introduccin a Stata, Mayo

Estadstica Descriptiva

Resumen estadstico

Obteniendo resumen de los datos


numricos
El comando summarize, o abreviadamente
sum, nos proporciona algunos estadsticos
importantes (media, varianza, desviacin
tpica, cantidad), y puede ser an ms
detallado (incluir percentiles,
sum ventas
mediana,kurtosis, etc), si especificamos la
sum ventas, detail
opcin detail.
clear
use d:\SSGC\Ejemplos\tabulaciones.dta
sum ventas if trimestre==2, detail
SSGC

Introduccin a Stata, Mayo

INTRODUCCION
INTRODUCCION A
A LA
LA
PROGRAMACION
PROGRAMACION EN
EN STATA
STATA
Juan Amlcar Prez
Statistical Services Group
Mayo 2011

SSGC

Introduccin a Stata, Mayo

Programacin en Stata

Introduccin

Programacin bsica
Stata permite resolver cualquier tipo de
problema que requiera incluso algoritmos
complejos, uso de multiprocesadores,
compatibilidad con otros componentes
(APIs) de Windows, interfaz grfica,
funciones matriciales y paquetes de
funciones externos.

SSGC

Introduccin a Stata, Mayo

Programacin en Stata

Introduccin

Programacin bsica
Stata permite resolver cualquier tipo de
problema que requiera incluso algoritmos
complejos, uso de multiprocesadores,
compatibilidad con otros componentes
(APIs) de Windows, interfaz grfica,
funciones matriciales y paquetes de
funciones externos.

SSGC

Introduccin a Stata, Mayo

Programacin 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
slo pueden contener nmeros. Por
ejemplo.Si queremos eliminar todas las
observaciones cuyas ventas estn por
use
d:\SSGC\Ejemplos\Ventas.dta,
clear
debajo
del promedio:
sum ventas
keep if ventas>`r(mean)
SSGC

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin en Stata

Comentarios.

Utilizando
comentarios

Es buena prctica de programacin


comentar adecuadamente los archivos
fuente, para ello utilizamos un asterisco
delante de la lnea a comentar.
*carga el archivo de datos
use d:\SSGC\Ejemplos\Ventas.dta, clear
* resume los datos
sum ventas

SSGC

Introduccin a Stata, Mayo

Programacin en Stata

Comentarios.

Utilizando
comentarios

Es buena prctica de programacin


comentar adecuadamente los archivos
fuente, para ello utilizamos un asterisco
delante de la lnea 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
Introduccin a Stata, Mayo
SSGC

Programacin en Stata

Ciclos

Ciclos.
Permiten repetir comandos, bloques de
cdigo, instrucciones individuales,
operaciones matriciales, etc.

forvalues
Permite ejecutar bloques de cdigo para los
valores que tome una variable, con
incrementos (negativos o positivos)
arbitrarios.

SSGC

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin 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
aadindole un sufijio _1 utilizamos:
use d:\SSGC\Ejemplos\Ventas.dta,
clear
foreach var of varlist year-ventas{
rename `var' `var'_1
}
Note el guin entre year-ventas. Esto indica todas las variables que
se encuentren entre year y ventas.

SSGC

Introduccin a Stata, Mayo

Programacin en Stata

Bifurcaciones

Bifurcaciones.
As como podemos seleccionar un
subconjunto de observaciones o variables
con la opcin if, podemos incluirlo en
cualquier bloque de cdigo 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
Introduccin a Stata, Mayo
SSGC

Programacin en Stata

Bifurcaciones

Bifurcaciones.
As como podemos seleccionar un
subconjunto de observaciones o variables
con la opcin if, podemos incluirlo en
cualquier bloque de cdigo 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
Introduccin a Stata, Mayo
SSGC

Programacin 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'
Introduccin a Stata, Mayo
SSGC

Programacin en Stata

Bifurcaciones.

Bifurcaciones if:
ejemplos.

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'
Introduccin a Stata, Mayo
SSGC

Programacin en Stata

Ejercicios I

Ejercicios.
1. Encuentre la suma de las ventas de los
trimestres impares sin utilizar ciclos
(foreach, forvalues)

SSGC

Introduccin a Stata, Mayo

Programacin en Stata

Bifurcaciones: if
else

Bifurcaciones (ifelse).

Para crear una variable para indicar si una


observacin pertenece a una muestra,
incluyendo slo las observaciones que en una
distribucin uniforme [0,1] estn por debajo de
count
0.40.
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

Introduccin a Stata, Mayo

Programacin en Stata

Bifurcaciones: if
else

Bifurcaciones (ifelse).

Para crear una variable para indicar si una


observacin pertenece a una muestra,
incluyendo slo las observaciones que en una
distribucin uniforme [0,1] estn por debajo de
count
0.40.
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

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin en Stata

Mata

Programacin avanzada. Mata.


Mata es un lenguaje de programacin
matricial utilizado en Stata. Se puede
acceder al Mata desde la ventana de
comandos. Especificamos mata, luego el
cdigo del programa, y al final, end.

SSGC

Introduccin a Stata, Mayo

Programacin 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 nmero 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.
Introduccin
a Stata,
Mayo
SSGC

Programacin 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 nmero 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.
Introduccin
a Stata,
Mayo
SSGC

Programacin en Stata

Eigenvalues/Eigenve
ctors

Clculo 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


a Stata, Mayo
propios en L, y susIntroduccin
respectivos vectores
SSGC

Programacin 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

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin en Stata

Transpuesta y
races .

Transpuesta de una matriz

Para hallar la transpuesta de una matriz,


(apstrofe) luego del nombre de la matriz
mata
en
MATA.
A = (1, 2 \ 9, 4)
A

Raz de una matriz. Para hallar la raz de


una matriz utilizamos sqrt, este
procedimiento funciona tambin para otras
funciones escalares.

SSGC

Introduccin a Stata, Mayo

Programacin en Stata

Transpuesta y
races .

Transpuesta de una matriz

Para hallar la transpuesta de una matriz,


(apstrofe) luego del nombre de la matriz
mata
en
MATA.
A = (1, 2 \ 9, 4)
A

Raz de una matriz. Para hallar la raz de


una matriz utilizamos sqrt, este
procedimiento
funciona tambin para otras
mata
funciones
A = (1, 2 \ escalares.
9, 4)
A =sqrt(A)
A
end

SSGC

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin 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

Introduccin a Stata, Mayo

Programacin en Stata

Sistema de
ecuaciones

Sistema de ecuaciones (MATA)


Mata ofrece diferentes funciones para
resolver sistemas de ecuaciones AX=B,
como la funcin lusolve(A, B). Para
estimar una regresin lneal de las ventas, y
elgen
tiempo
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 cdigo nos muestra los coeficientes de la regresin, que se
puede comprobar utilizando el comando en Stata >>
regress ventas tiempo

SSGC

Introduccin a Stata, Mayo

Programacin en Stata

Sistema de
ecuaciones

Sistema de ecuaciones (MATA)


Mata ofrece diferentes funciones para
resolver sistemas de ecuaciones AX=B,
como la funcin lusolve(A, B). Para
estimar una regresin lneal de las ventas, y
elgen
tiempo
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 cdigo nos muestra los coeficientes de la regresin, que se
puede comprobar utilizando el comando en Stata >>
regress ventas tiempo

SSGC

Introduccin a Stata, Mayo

Programacin en Stata

Polinomios

Manipulacin de polinomios
Hallando las races de un polinomio
(polyroots).
Suponga que queremos hallar las races de
3+5x+x2 = 0
clear
mata
polyroots((3,5,1))
end

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

Introduccin a Stata, Mayo

Programacin en Stata

Polinomios

Manipulacin de polinomios
Hallando las races de un polinomio
(polyroots).
Suponga que queremos hallar las races de
3+5x+x2 = 0
clear
mata
polyroots((3,5,1))
end

Evaluacin de
polinomios(polyeval).

clear
Suponga
que queremos sustituir por x=1 en
mata
3+5x+x
= 0
polyeval 2((3,5,1),1)
end

SSGC

Introduccin a Stata, Mayo

APENDICE:
APENDICE: Algunos
Algunos comandos
comandos
importantes
importantes
Juan Amlcar Prez
Statistical Services Group
Mayo 2011

SSGC

Introduccin a Stata, Mayo

Comandos importantes Comandos tiles


help : ayuda en un comando especfico
findit : referencias en lnea de algn tpico o
comando.
ssc : acceso a las rutinas SSC
log : Graba sesin 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.
a Stata,
Mayo
exit SSGC
: sale de stata Introduccin
(Si los resuoltados
han

Manipulacin de
Comandos importantes
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 ordenacin 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 numrica a partir de
categrica
Introduccin
a Stata, Mayo
recode
:
recodifica
variables
categricas
SSGC

Manipulacin de
Comandos importantes
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
estadstico
tab : genera tabulaciones de 1 y 2 vas.
table : genera tabla de resumen estadstico
SSGC

Introduccin a Stata, Mayo

Comandos
Comandos importantes
estadsticos

Comandos tiles:

summarize : estadsticos descriptivos


correlate : matriz de correlacin
ttest : prueba de hiptesis, muestras
apareadas.
anova : Anisis de varianza
regress : regresin mnimos cuadrados
predict : genera predicciones estimaciones,
residuos, errores.
test : prueba de hiptesis lineal entre
parmetros.
logit, logistic : modelo logstico, regresin
Introduccin
a
Stata,
Mayo
logstica
SSGC

Comandos series
Comandos importantes
temporales

Comandos tiles en Anlisis de


Series Temporales

arima : modelos Box-Jenkins con errores


ARMA
arch : modelos de heterocedasticidad
autorregresiva condicional.
dfgls : prueba de raz unitaria
corrgram : estimacin del correlograma
var : vector autoregressions (basica
ytructural)
vec : vector errorcorrection models
(cointegracin)
Introduccin a Stata, Mayo
SSGC

Comandos importantes Grficos

Comandos tiles para generar


grficos

twoway (scatter ventas tiempo) (lfit ventas


tiempo)

SSGC

Introduccin a Stata, Mayo

Das könnte Ihnen auch gefallen