You are on page 1of 36

Algunos temas importantes de Stata

Juan D. Barn
juandbaron@gmail.com

Mtodos Cuantitativos de Economa Regional y urbana


Universidad Autnoma de Occidente
26 de mayo de 2011
Versin : 1.1

Copyright 2011: La reproduccin total o parcial de este material est prohibida


Material provisional y sujeto a cambios

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Sesin 10

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

1. Sintaxis de comandos en Stata


(una vez ms)

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

[by varlist:] command [varlist] [=exp]

[if exp] [in range] [weight], options

Los comandos de Stata tienen esta sintaxis (con excepciones)


Los parntesis cuadrados me dicen que esas partes son opcionales
(calificadores y opciones)
varlist es una lista de nombres de variables
command es un comando de Stata (entre ellos los que hemos visto)
exp es una expresin algebraica
range es un rango de observaciones
weight es una expresin de ponderadores
options es una lista de opciones del comando

Ejemplos:
.
.
.
.
.
.

sysuse auto, clear


bysort foreign: summ price trunk if price >= 2000 , detail
list _all in 1/20
list trunk mpg if price>6000
assert price>0
regress price trunk if (price > 6000) & (foreign ==1)
3

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

2. Operadores y expresiones

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Ejemplos de expresiones:
.
.
.
.
.
.
.

2+2+8
precio/trunk
precio>20 & trunk >= 10
precio>20 | foreign == 1
edad == 25
ln(precio)
saldo*4/1000

Estas expresiones pueden ser usadas en donde aparezca exp


(piense en la ayuda de Stata). Ej.:
generate newvar = exp [if] [in]

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Operadores
Stata tiene diferentes tipos de operadores que se pueden usar en las
expresiones

Aritmticos

Lgicos

Relacionales
(numricos y de texto)

suma

&

>

mayor que

resta

<

menor que

multiplicacin

no

>=

mayor o igual que

divisin

no

<=

menor o igual que

potencia

==

igual

negacin

!=

no igual (diferente)

~=

no igual (diferente)

concatenar texto

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Ejemplos

.
.
.
.
.
.
.

sysuse auto
generate weight2 =
count if rep78 > 4
count if rep78 > 4
list make if rep78
generate mujer = 1
replace mujer = 0

weight^2
& weight < 3000
== 5 | mpg > 25
if genero == 1
if genero == 0

Note que cuando se asigna (o se define) una variable, un scalar o una


macro, se usa un solo igual =. Cuando se requiere evaluar una
expresin se usan dos ==.

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

3. Generacin de variables
(comando generate)

El comando replace me permite reemplazar los valores de una variable ya


creada. Este puede ser combinado con las expresiones if e in
Ejemplos:
.
.
.
.
.

generate mivar01 = 2+2 if precio == 0


generate mivar02 = ln(2+2) in 10/30
generate mivar03 = mivar01 + mivar02 if (precio != 0) in 2/100
generate nombres = Juan David
replace nombres = reverse(nombres)

Notas:
Las nombres de las variables es mejor limitarlos a 8 caracteres,
sin espacio, sin caracteres extraos y empezando con letra
Para Stata, la variable Precio es diferente de la variable precio
10

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

El comando generate nos permite crear nuevas variables. Este puede ser
combinado con las expresiones if e in

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

4. Funciones

La ltima diapositiva tena algunos ejemplos de funciones. Las


funciones hacen la vida ms fcil. En Stata, funcionan de la misma
manera que en otros programas

Hay funciones matemticas, de texto, de programacin, de matrices,


de series de tiempo, de fechas y horas

Para ver las funciones disponibles:

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

. help functions

Ejemplos:
. display ln(20.3)
. display wordcount(Este es un ejemplo)
.
.
.
.
.

generate
generate
generate
generate
generate

lnsalario
aleatorio
ejemplo
srprice
nombrel

=
=
=
=
=

ln(salario)
uniform()
int(100*aleatorio)
sum(price)
wordcount(names)
12

13
La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

5. Generacin de variables
(comando egen)

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

El comando egen es una extensin del comando generate que provee


funciones de creacin de variables a partir de nuevas funciones
Las funciones adicionales de egen se pueden ver con: . help egen

Ejemplos:
.
.
.
.
.
.

sysuse auto, clear


egen pricepr = mean(price)
egen mvars = rowmean(price trunk weight)
egen eje01 = total(foreign)
egen rank = rank(mpg)
egen racesex = group(race sex)

15

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

6. Creacin de variables dummy

Una variable dummy, o ficticia, es una variable que toma dos valores,
en general 1 o 0 (tambin variable binaria o dictoma)

El nombre de la variable hace referencia al grupo que toma el valor 1.


Ej.: si la variable se llama mujer (dummy de mujer), se entiende que la
variable toma valor 1 si la persona es mujer y 0 en otro caso

A menudo las vars. dummy se crean a partir de variable categricas.


Use cualquiera de los comando vistos para saber los valores (ej. tab)

Suponga que la variable genero toma nicamente dos valores:


1 para hombres y 2 para mujeres. Formas de crear vars. dummy:
.

tabulate genero, gen(d_)

.
.

generate mujer = (genero==1)


generate hombre = (genero==2)

.
.

generate mujer
replace mujer

= 1 if (genero == 1)
= 0 if (genero == 2)
17

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

7. Missing values

Un missing value, o valor faltante, se reconoce en la base de datos


por un punto . en las variables numricas o por un espacio en
blanco en las variables de texto
. sysuse auto, clear
. list rep78 in 1/10

Otros missing values .a, .b, .c, ., .z

Cualquier nmero es menor que los missing value


. assert 5 < .
. assert 5 > .

Al crear variables dummy tenga mucho cuidado si la variable


categrica tiene missing values. Si la categrica tiene valores
faltantes, las dummy creadas a partir de ella deben tenerlos tambin

Antes de generar una dummy revise si la variable tiene valores


faltantes:
. codebook missing
. tab rep78, missing

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

19

La forma correcta de crear variables dummy cuando hay missing


values es cualquiera de las siguientes. Suponga que la variable
genero tiene missing values:
.

tabulate genero, gen(d_)

generate mujer = (genero == 1) if !missing(genero)

generate mujer = (genero == 1) if (genero !=.)

.
.
.

generate mujer = 1 if (genero == 1)


replace mujer = 0 if (genero == 2)
replace mujer = . if (genero == .)

Si la variable categrica es de texto, simplemente use alrededor de


los valores (o texto) que toma la variable
20

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

8. Macros y escalares

Un escalar, scalar, es una expresin que contiene un nmero o una


expresin de texto

Una vez defino el escalar, puedo invocarlo por su nombre

Puedo usar las funciones numricas y de texto

Para ver los contenidos de los escalares definidos:

Para ver el contenido de un escalar: .

Ejemplos
. scalar
. scalar
. scalar
. scalar
. scalar
. scalar

a =
b =
c =
d =
dir
b

dis

scalar dir

ejemplo

1345
sqrt(2) + a
Hola Mundo
word(c,2)

22

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Macros
En Stata una macro es una forma rpida de escribir algo: una cosa
que representa a otra

Por ejemplo,
. local misvars = edad peso genero
. regress outcome `misvars
Es idntico a:
. regress outcome edad peso genero

La forma de definir una macro es:

Para obtener el contenido de una macro local (reemplazarlo donde se


quiera) lo que tiene que hacer es escribir: `macroname
(comilla izquierda: alt+96; comilla derecha: alt+39 )

. local macroname = exp

. local ejemplo Juan Pedro Camilo, Alejandro


. display `ejemplo
. display `ejemplo

23

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Las macros pueden contener cualquier cosa:

Ejemplos
. local myif precio > 20 & trunk == 10
. local nombres genero edad aos colegio matematicas

. local COUNTER = 1
. local COUNTER 1
. local x = 2
. local y = ln(`x)
. local x 2
. global ejem01 c:\juan\utbpublica\ejemplo
. local ejem02 d:\pedro
. macro dir
. dis `ejem01
. dis $ejem01

24

Adems de las macros locales tambin hay macros globales


. global apellidos Prez Gmez Navarro Bernal Cepeda

Las globales tienen las mismas caractersticas de las macros locales

La diferencia entre una macro global y una local es que la local


desaparece una vez el archivo do termina de correr mientras que la
global permanece hasta que sea redefinida o hasta que se cierre Stata

Esa caracterstica hace que sea mejor no usar globales

Ver contenido de una macro local: . display `macroname


Ver contenido de una macro global: . display $macroname

En general, es mejor NO usar igual para definir las macros

Las macros pueden ser invocadas en cualquier momento, y en


cualquier comando o expresin

Las macros tienen unas funciones (extendidas) adicionales MUY


convenientes:
. help macros
25

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

9. Dnde quedan guardados los


resultados de los comandos de Stata?

Cada vez que ejecuta un comando en Stata, usted ve unos resultados.


Esos resultados, y otros, son guardados en retornos e() y r()
(estos retornos son macros)

Cada comando genera unas macros especficas

Usted puede asignar estos retornos a macros, escalares o matrices


(segn sea el caso) si necesita usarlos luego

Una vez un comando nuevo se ejecuta, los retornos se reemplazan


por los del nuevo comando. Los comandos de estimacin crean e()s.

Para ver los retornos despus de ejecutar un comando:


. ereturn list y . return list
.
.
.
.
.
.

sysdir auto, clear


summ price
return list
ereturn list
local medprecio = r(mean)
display `medprecio
28

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

10. Loops

Hay muchas tareas que por sus caractersticas mecnicas y


repetitivas pueden ser programadas fcilmente para que el
computador las realice automtica y eficientemente

Para ello, se utilizan los loops denominados foreach y forvalues

Para ver los detalles digite: .

En las siguientes diapositivas se dan unos ejemplos

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

help foreach

30

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Ejemplo de forvalues

forvalues i= 1(1)10 {
display Este es el nmero: `i
}

forvalues i= 1(2)100 {
forvalues j= 1(1)10 {
display La combinacin ij es |`i - `j|
}
}

31

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Ejemplo de foreach

clear all
sysuse auto
foreach x of varlist mpg-gear_ratio {
twoway (scatter price `x), name(g_`x)
}

32

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Ejemplo de foreach

clear all
sysuse auto
foreach x of varlist mpg-gear_ratio {
twoway (scatter price `x), name(g_`x)
generate `x2 = `x*`x
twoway (scatter price `x2), name(g_`x2)

33

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

11. Grficos en Stata:


archivos do y manejo interactivo

Stata genera grficos de muy buena calidad y de muchos tipos

Generar un grfico personalizado a partir de cdigo (con colores y


formatos especficos) requiere el conocimiento de muchos pequeos
comando y opciones
(el grfico por defecto es muy fcil de hacer, aunque feo)

Cuando usted realiza un grfico, o realiza otra actividad a travs del


men, Stata muestra el comando que lo gener en el output

SOLUCN: genere el grfico interactivamente y copie comando a su


archivo do. Luego se pueden ajustar pequeas cosas de ser
necesario

Puede hacer lo mismo con comandos que quiera usar pero que no
sepa. Use el men interactivo, haga lo que quiera y cpielo a su
archivo do una vez obtiene lo deseado

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

35

Es este sesin se han visto algunos temas importantes para el manejo


ms efectivo de Stata

Los temas se vieron rpidamente. Para ms detalles vea la ayuda o los


recursos que se encuentran en la pgina del curso

36

La reproduccin total o parcial de este material est prohibida. Material provisional y sujeto a cambios

Resumen

You might also like