You are on page 1of 21

3.

Introducción a Stata

Econometría I. Profesor Jaime Sarmiento


Última revision: Julio 28 de 2017
Algunas características
 Tipos de Stata según tamaño base de datos (IC, SE, MP)
 Trabaja con la memoria del computador (capacidad
depende del manejo del sistema operativo)
 Permita manejo mediante ventanas o líneas de comandos
 Ayuda y nuevas rutinas disponibles desde Internet
 Respeta uso de minúsculas y mayúsculas en comandos,
opciones y nombres de variables
Ventanas de Stata

1
Datos
 Extensión de las bases es .dta
 Separador de miles (,) y decimales (.)
 Abrir una base existente (automóviles de 1978): auto.dta
 Ventana: File/Open
 Comando: use filename [, clear nolabel] (use F:/auto.dta)
 Especificando Carpeta
 cd F:\
 use auto
Datos
 Limpiando base de datos de la memoria: clear
 Descripción datos:
 Ventana: Data/Describe data/Describe data in memory
 Comando: describe
 Creación/edición: Editor de datos
 Tipos: texto, númerico, númerico con etiquetas
 Missing values: en númerico es (.)
 Etiquetas
 Variable: label variable varname ["label"]
 Valores:
 Definir: label define lblname # "label" [# "label" ...]
 Asignar a variables: label values varlist [lblname|.]
Sintaxis de comandos
 Comandos ayuda: help, search (opción net)

 Sintaxis básica:
[prefix: ] command [varlist] [=exp] [if exp] [in range] [weight] [, options]

 […]: Opciones y calificadores


 prefix: Comando que repite ejecución de command o modifica el
input u output de command
 varlist: lista de nombres de las variables
 command: Comando de Stata
 exp: Expresión algebraica
 range: Rango de observaciones
 weight: Cómo se ponderan las observaciones
 options: Lista de opciones del comando
Ejercicio 1
 Crear una base de datos que contenga la siguiente
información socioeconómica de los estudiantes de
Econometría I de su grupo:
 Edad (años)
 Sexo (Mujer, Hombre)
 Mujer (0 Hombre 1 Mujer)
 Estatura (cm)
 Estatus_laboral (0 Trabaja 1 No trabaja)
 Guarde la base de datos en su computador con el
nombre ecov_2017_2
Expresiones
 Operadores

Relational
Arithmetic Logical (numeric and string)
+ addition & and > greater than
- subtraction | or < less than
* multiplication ! not >= > or equal
/ division ~ not <= < or equal
^ power == equal
- negation != not equal
+ string concatenation ~= not equal

 Funciones
help functions

 Errores
El programa genera mensajes si se cometió un error
Algunos ejemplos de comandos
 Estadísticas descriptivas:
summarize [varlist] [if] [in] [weight] [, options]

Ejemplos:
 sum
 by foreign: sum length
 sum length if price>=6165.257
 sum length price in 1/10

 Tabla de frecuencias:
tabulate varname [if] [in] [weight] [, options]

 Mostrar textos y valores de expresiones escalares:


display [“”] [exp]
Variables, observaciones
 Crear
 generate: generate [type] newvar[:lblname] =exp [if] [in]
 egen: egen [type] newvar = fcn(arguments) [if] [in]
 Remplazar
 replace: replace oldvar =exp [if] [in]

 Eliminar/Mantener (drop/keep)
 Variables: {drop|keep} varlist
 Observaciones: {drop|keep} if exp
 Rango de obs.: {drop|keep} in range [if exp]
Ejercicio 1 (continuación)
 Con la base de datos ecov_2017_2, realice las siguientes
actividades:
 Estadísticos descriptivos de todas las variables
 Tabla de frecuencias entre variables Mujer y Estatus_laboral
 Promedio de estatura por sexo
 Genere la variable de la edad al cuadrado
Archivos do y log
 do
 Archivo con un conjunto de comandos a ejecutar
 Archivo de texto con extensión .do
 Inclusión de comentarios en un do: *texto, //texto//
 Corriendo un do: {do|run} filename [, nostop ]

 Log
 Archivo en el que se puede guardar lo que aparece en la ventana de
resultados de una sesión
 Archivo con extensión .log
 Empezar un log: log using filename [, append replace [text|smcl] ]
 Cerrar un log: log close
 Ver un log: view filename.smcl
Escalares
 Guarda un único número o texto como una variable
 Un uso común es para guardar resultados de comandos
de estimación

 Crear: scalar scalar_name = exp


 Lista contenido: scalar { dir | list } [ _all | scalar_names ]
 Eliminar: scalar drop { _all | scalar_names }
Matrices
 Stata guarda matrices de números o textos

 Hay dos formas de trabajar con matrices


 Mediante comandos (generalmente uso del prefijo matrix)

 Programa mata (pensar en términos de matrices y/o para


programar)
 Invocar programa: mata
 Volver a Stata: end
Matrices: Mediante comandos
 Operadores
Operator Symbol
parentheses ()
transpose '
negation -
Kronecker product #
division by scalar /
multiplication *
subtraction -
addition +
column join ,
row join \

 Funciones
help matrix functions
Matrices: Mediante comandos
 Crear
matrix matrix_name = {matrix_expression, (#,..,# \ #,..,# \ #,..,#)}

 (, ):Separador números en columna


 (\): Separador números en fila

 Ver: matrix list matrix_name


 Directorio: matrix dir
 Renombrar: matrix rename oldname newname
 Eliminar: matrix drop {_all | matrix_name}
 Submatrices: matrix A = B[ri..rj, ck..cs]
 Substitución: matrix A[ri..rj, ck..cs] = B
 Matriz  Variable: svmat A
 Variable  Matriz: mkmat varlist [if] [in] [, matrix(matname) …]
Matrices: Mediante comandos
 Operadores
Operator Symbol
parentheses ()
transpose '
negation -
Kronecker product #
division by scalar /
multiplication *
subtraction -
addition +
column join ,
row join \

 Funciones
help matrix functions
Usando resultados de comandos de Stata

Clase r Clase e
 Comandos que analizan los datos  Comandos de estimación
pero no estiman parámetros  Guardan resultados en e()
 Guardan resultados en r()  Ejemplo:
 Resultados desparecen cuando regress mpg price weight
otro comando se ejecuta
ereturn list
 Ejemplo: matrix b = e(b)
use auto matrix list b
sum mpg
return list
scalar rango = r(max) – r(min)
display “rango mpg = ” rango
Macros
 Cadena/lista de caracteres
 Facilita programación al resumir la lista en un nombre,
cuando se trabaja con programas donde se repiten
ciertos comandos varias veces (looping, ej: simulaciones)
 Dos tipos:
 local: Existen solamente en un archivo do o una sesión
 global: Una vez definido, están en disponibles a través de
archivos do o una sesión
 Ejs:
global local
global variables “trunk weight length” local variables “trunk weight length”
sum $variables sum `variables'
Comandos looping
 Forma de repetir el mismo comando varias veces

 Comandos
 foreach: Repetir sobre ítems en una lista
 forvalues: Repetir sobre números consecutivos
 while: Repite comando hasta que no se cumpla una
condición
Comandos looping
 Ejemplo: Crear suma de 4 variables, cada variable proviene
de una distribución uniforme
set obs 100
set seed 10101

manual foreach forvalues while


generate x1 = runiform() drop x*
generate x2 = runiform() forvalues i = 1(1)4 {
generate x3 = runiform() gen x`i‘ = runiform()
generate x4 = runiform() }

gen sum = x1 + x2 + x3 +x4 quietly replace sum = 0 quietly replace sum = 0 quietly replace sum = 0
summarize sum foreach var of varlist x1 x2 x3 x4 { forvalues i = 1/4 { local i 1
quietly replace sum = sum + `var‘ quietly replace sum = sum + x`i‘ while `i‘ <= 4 {
} } quietly replace sum = sum + x`i‘
summarize sum summarize sum local i = `i‘ + 1
}
summarize sum