You are on page 1of 19

Taller de Stata1

Primer semestre 2017

1
Material construido en base al taller de Fernanda Rojas, preguntas a
pantojabernardita@gmail.com
Bernardita Pantoja Primer semestre 2017 1 / 19
Introducción

Stata es un paquete estadístico diseñado para el análisis descriptivo de


datos y la implementación de diferentes técnicas de estimación. Su
utilidad radica en la utilización de grandes bases de datos, las que se
componen de variables y no matrices. Tiene muchos usuarios, por lo
que es fácil encontrar ayuda en internet.

Bernardita Pantoja Primer semestre 2017 2 / 19


Do-files y Log-files

Ambos son parecidos a una ventana de cuadro de texto. En los


Do-files se escriben los comandos de las tareas que se realizan y
quedan guardados en un archivo con extensión .do. En los Log-files se
pueden guardar los outputs o resultados de los ejercicios que se han
realizado tal como se ven en la ventana de resultados y son archivos
con extensión .log.
Es altamente recomendado utilizar un Do-file en cualquier ejercicio en
el que se requiere usar Stata. Un Do-file guarda los comandos para
que luego Stata los lea y ejecute de principio a final, de esta forma no
es necesario volver a escribir las tareas que realizamos en la ventana
de comandos.

Bernardita Pantoja Primer semestre 2017 3 / 19


Antes de comenzar

Current Directory “cd”: Este comando le indica a Stata el directorio en


el cual trabajaremos. A partir de esto podremos llamar a las bases de
datos ubicadas en el directorio correspondiente. Ahí mismo se
guardarán los resultados de las regresiones o gráficos que se hagan en
Stata.
Cargar datos “use”: Luego de indicar el directorio en el que
trabajaremos es fácil cargar la base de datos cuando esta se encuentra
en formato .dta y se usa el comando use.
Liberar memoria “clear”: borra todo lo que se haya hecho antes, solo se
verán los output en la ventana de resultados, pero no habrán variables.

Bernardita Pantoja Primer semestre 2017 4 / 19


Algunos comandos útiles para manejo de base de datos

save ejemplo1.dta - guarda la base de datos tal como haya quedado


hasta ese momento.
save ejemplo1.dta, replace - reemplaza la base de datos ya existente,
con lo que haya quedado hasta ese momento.
describe - describe la base de datos.
browse - muestra la base de datos, sin posibilidades de modificarla.
edit - permite editar la base de datos.
sort (variable) - ordena la base de datos en términos de una variable,
ejemplo: ordenar muestra por ingreso de menor a mayor.
sum - muestra principales características de los datos.

Bernardita Pantoja Primer semestre 2017 5 / 19


Algunos comandos útiles para la creación y gestión de
variables
generate o gen - comando para generar variables.
egen - Usa funciones ya definidas para crear una nueva variable.
rename - permite cambiar el nombre de una variable.
gsort[+/-] - ordena ascendente o descendentemente los datos.
drop - desecha algunas variables y/o observaciones, se puede utilizar con ”if ”.
keep - mantiene algunas variables y/o observaciones, se puede utilizar con ”if ”.
replace - modifica los valores de una variable que ya existe, se puede utilizar con
”if ”.
codebook - entrega media, sd, rango, cantidad de missing values, y más.
inspect - entrega la distribución, y otros.
count - cuenta el número de observaciones.
collapse var1, by (var2) - colapsa var1 en su promedio, para cada grupo definido
por el conjunto de observaciones de var2 que tienen el mismo valor (Se puede
utilizar con suma, mediana, entre otros).
label var nombre-variable "nombre-etiqueta" - asigna una etiqueta a cada variable.
Bernardita Pantoja Primer semestre 2017 6 / 19
Gráficos

Los gráficos se guardan en formato .gph y se pueden modificar a partir del


archivo .gph en el editor de gráficos de Stata, que luego es posible guardar
en formato de imagen.
histogram variable - entrega la densidad de la variable.

twoway (tipo de gráfico x y)


kdensity [opciones] - grafica la densidad de una variable a la que se le puede
superponer una normal.
Recordar guardar los gráficos, porque no se guardan automáticamente.
Bernardita Pantoja Primer semestre 2017 7 / 19
Ejemplos de gráficos twoway
Algunos de los gráficos twoway más importantes son scatter y line
Para un gráfico de dispersión la opción es scatter
Ejemplo usando scatter - graph twoway scatter y x.
Stata usa como etiqueta del eje la etiqueta de esa variable.
Se pueden agregar opciones adicionales como una línea de regresión
(lfit) o con intervalos de confianza (lfitci)
Ejemplo: twoway scatter y x || qfitci y x if MV<0 || qfitci y x if MV>0

Bernardita Pantoja Primer semestre 2017 8 / 19


Ejemplos de gráficos twoway

Ejemplo usando line - graph twoway line y x


Podemos utilizar más de una variable y - graph twoway line y1 y2 x

Bernardita Pantoja Primer semestre 2017 9 / 19


Tipos de variables

Las variables numéricas se almacenan según los siguientes tipos:


byte - almacenadas en 1 byte.
int - almacenadas en 2 bytes.
long - almacenadas en 4 bytes.
float - almacenadas en 4 bytes.
double - almacenadas en 8 bytes.
Se puede reducir la cantidad de memoria que consumen los datos
utilizando el comando compress.
Las variables que contienen texto se almacenan como string. Al igual que
con variables numéricas se puede optimizar memoria para estas variables.
Ejemplo: no deberíamos almacenar una variable string con largo máximo 6
como str20.

Bernardita Pantoja Primer semestre 2017 10 / 19


Comandos para cambiar tipos de variables

destring - Transforma una variable string a una numérica cuando los


datos son números.
destring var1, gen(newvar1)
tostring - Convierte una variable numérica en string.
tostring var1, gen(newvar1)
decode - Extrae las etiquetas de datos numéricos y los convierte en
una variable string.
decode var1, gen(newvar1)
encode - Crea una variable nueva numérica en base a las etiquetas
que se pueden extraer de una variable con formato string.
encode var1, gen(newvar1)
recode - Crea una nueva variable en base a la recodificación de otra.
recode var1 (condición), gen(newvar1)

Bernardita Pantoja Primer semestre 2017 11 / 19


Manejo de múltiples bases de datos

append - Permite ampliar la base de datos verticalmente. Tenemos dos o más bases de
datos con las mismas variables pero con distintas observaciones y nos gustaría que todas
las bases de datos compongan una sola.
append using filename, options
merge - Permite unir bases de datos de forma horizontal, es decir, agregamos variables a
la base de datos que estamos utilizando (master data) pero manteniendo las unidades de
observación. Las nuevas variables provienen de la (using data), que tiene las mismas
unidades de observación que la primera. Los datos deben estar ordenados según la unidad
de observación previo a ser ejecutado el merge. Cuando se unen las bases de datos se crea
una nueva variable llamada -merge que define cómo fueron unidos los datos.
merge 1:1 var1 using “ejemplo1.dta"
merge m:1 var1 using “ejemplo1.dta"
merge 1:m var1 using “ejemplo1.dta"
*No se debe usar el comando merge m:m, en caso de creer necesario usarlo se deben
revisar las bases de datos.

Bernardita Pantoja Primer semestre 2017 12 / 19


Series de tiempo y datos de panel

Cuando trabajamos con bases de datos que son series de tiempo o


tienen más de una dimensión como los datos de panel se le debe
especificar a Stata que esto es así.
El comando para indicar que los datos son series de tiempo es tsset.
tsset timevar
tsset panelvar timevar
El comando para indicar que los datos corresponden a un panel es
xtset.
xtset panelvar
xtset panelvar timevar

Bernardita Pantoja Primer semestre 2017 13 / 19


Macros globales y locales
Una macro corresponde a las variables en un programa. Permiten
almacenar strings o números que pueden ser leídos como parte de un
comando que se ejecuta. Cada vez que el nombre de una macro
aparece en un comando, el contenido de la macro es sustituido por el
nombre.
Las macro globales (global) son casi permanentes en la ejecución, se
pueden ejecutar mientras esté abierto Stata. Las macro locales (local)
son temporales y solo se pueden ejecutar por medio de un do-file o
programa.
Para sustituir los contenidos de una macro global, el nombre de ésta
se escribe con un signo peso $ antes, y para el caso de las macro
locales se escriben los nombres con comillas simples (‘ ‘).
Ejemplo de macro local:
variables = “ingreso edad sexo"
reg salud ‘variables’
Bernardita Pantoja Primer semestre 2017 14 / 19
Procesos iterativos:foreach

El comando foreach permite ejecutar loops sobre algún item, es para hacer tareas
repetitivas. Por ejemplo queremos crear variables nuevas que son potencias de otras:
set obs 100000
gen double u=(5-1)*runiform() + 1
u1=u
u2=u2
u3=u3
drop u
El problema anterior se puede resumir utilizando foreach:
foreach i in 1 2 3
gen u‘i‘=u‘i‘
drop u

Bernardita Pantoja Primer semestre 2017 15 / 19


Procesos iterativos: forevalues

El comando forvalues tiene más opciones que el anterior en lo referido


a macro numéricos. Permite realizar saltos entre rangos numéricos, es la
ejecución de un loop sobre valores consecutivos que se escriben de la siguiente
forma:
1/5= 1, 2, 3, 4, 5
2006(3)2012=2006, 2009, 2012
30(-5)5=30, 25, 20, ..., 5
Siguiendo el ejemplo anterior:
forvalues i=1(1)3
gen u‘i‘=u‘i‘
drop u

Bernardita Pantoja Primer semestre 2017 16 / 19


Procesos iterativos: while

Este comando ejecuta un conjunto de comandos entre llaves.


while exp {
stata commands
}
Ejemplo:
set obs 10
local i=1
while ‘i‘ < 40 {
gen u‘i‘=runiform()
local i= ‘i‘ + 1
}

Bernardita Pantoja Primer semestre 2017 17 / 19


Procesos iterativos: if

Este comando evalúa si la expresión entre paréntesis es verdadera o falsa


y puede ser útil dentro de otros procesos iterativos. Si es verdadero los
comandos entre paréntesis se ejecutan, si no se ignoran y se ejecutan los del
comando else:
if exp {
stata commands
}
else {
stata commands
}

Bernardita Pantoja Primer semestre 2017 18 / 19


Introducción a números pseudo-aleatorios

La simulación de Montecarlo es una metodología útil para investigar las


propiedades de estimadores y tests. El poder de la metodología está en que
se puede definir y controlar el ambiente estadístico en el que el investigador
especifica el proceso generador de datos y permite generar data que se utiliza
posteriormente. Para esto, antes debemos entender la generación de números
pseudo-aleatorios.
runiform() - genera números aleaotrios de distribución uniforme entre
[0,1).
rbinomial(n,p) - genera números aleatorios de distribución
binomial(n,p).
rnormal(µ, δ) - genera números aleatorios de distribución
normal(µ, δ).
Se puede establecer la seed a partir de la cual se generan los números, lo
que permite reproducir el ejercicio posteriormente - set seed número.
Bernardita Pantoja Primer semestre 2017 19 / 19

You might also like