manual del curso stata_rpl

66
Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva 1 Universidad del Mar Campus Huatulco Curso-Taller Introducción al manejo de Stata Dr. Ricardo de la Peña Leyva Agosto de 2015.

Upload: arturo-martinez

Post on 10-Dec-2015

25 views

Category:

Documents


11 download

DESCRIPTION

curso de stata

TRANSCRIPT

Page 1: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

1

Universidad del Mar

Campus Huatulco

Curso-Taller

Introducción al manejo de

Stata

Dr. Ricardo de la Peña Leyva

Agosto de 2015.

Page 2: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

2

Contenido

Sesión previa. El entorno de Stata ....................................................................................................... 4

Results............................................................................................................................................... 4

Variables ........................................................................................................................................... 4

Review .............................................................................................................................................. 4

Command ......................................................................................................................................... 4

Properties ......................................................................................................................................... 5

Datos (.dta) ....................................................................................................................................... 6

Sintaxis (.do) ..................................................................................................................................... 6

Output (.log) ..................................................................................................................................... 6

Extensiones (.ado) ............................................................................................................................ 6

Sesion 1. Un ejemplo sencillo .............................................................................................................. 7

� Preguntas de repaso ................................................................................................................ 8

Respuestas a las preguntas de repaso .......................................................................................... 9

Tarea 1. ..................................................................................................................................... 10

Sesion 2. Utilizando archivos de datos .............................................................................................. 12

� Preguntas de repaso ............................................................................................................. 12

Respuestas a las preguntas de repaso ...................................................................................... 12

Sesion 3. Describiendo datos. Parte 1 ............................................................................................... 14

Sesión 3. Describiendo datos. Parte 2. .............................................................................................. 17

� Preguntas de repaso ............................................................................................................. 18

Respuestas a las preguntas de repaso ........................................................................................ 19

Tarea 2. ....................................................................................................................................... 21

Sesión 4. Grupos y suconjuntos de datos .......................................................................................... 22

Comparación y valores perdidos ................................................................................................. 22

� Preguntas de repaso ............................................................................................................. 23

Respuestas a las preguntas de repaso ...................................................................................... 23

Sesión 5. Cambiando valores a los datos........................................................................................... 26

� Preguntas de repaso ........................................................................................................... 27

Respuestas a las preguntas de repaso ...................................................................................... 28

Sesión 6. Creación de variables binarias o dummy ........................................................................... 32

Sesión 7. Limpiando datos ................................................................................................................. 35

� Preguntas de repaso ............................................................................................................. 37

Page 3: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

3

Respuestas a las preguntas de repaso ...................................................................................... 38

Sesion 8. Los estudiantes: un repaso y graficos ................................................................................ 41

� Preguntas de repaso ............................................................................................................. 43

Respuestas a preguntas de repaso ............................................................................................ 43

Sesion 9. Estimación econométrica ................................................................................................... 45

Sesion 10. Un modelo econométrico para la economía estadounidense ........................................ 52

Tarea 3. ..................................................................................................................................... 55

El caso de un modelo econométrico cuadratico ............................................................................ 56

Sesion 11. El modelo de consumo para Mexico (Primera Parte) ...................................................... 58

Tarea 4. ..................................................................................................................................... 60

Sesion 11. El modelo de consumo para Mexico (Segunda Parte) ..................................................... 61

Page 4: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

4

Sesión previa. El entorno de Stata

Stata se organiza en diversas ventanas que nos aportan información y nos permiten

realizar distintas operaciones. Las principales ventanas en Stata son Review, Results,

Command, Variables, Properties

Results En esta ventana encontramos el logo de Stata, la versión del programa que se está

usando y la memoria que tenemos disponible para cargar los datos y el número de

variables. En esta ventana de resultados, como su nombre lo indica, se tendrán todo tipo

de resultados sobre los comandos que se ejecuten; también aparecen mensajes de lo

que se está haciendo o lo que está ejecutando el programa, así como mensajes si

cometemos algún tipo de error. Los colores de las palabras nos indican si son resultados

de un comando, si es un comando o si es un error. Esta opción de los 4 colores está

predefinida pero se puede cambiar. Con clic derecho sobre la ventana podemos copiar,

imprimir el texto, o establecer las preferencias para esta ventana.

Variables Esta ventana, que aparece a un lado de la ventana de resultados, muestra las variables

que contiene el archivo que se abrió o del fichero que actualmente se tiene en memoria,

también nos muestra información de las etiquetas de cada una de las variables; así como

la información relevante de cada variable (Name, Label, Type y Format). Puede utilizarse

para introducir los nombres de las variables en la ventana de comandos haciendo click

sobre la variable. Igualmente, situándonos en la variable y haciendo click derecho se

puede introducir comentarios a esa variable. Para ver las notas de un fichero se puede

usar el comando .notes list.

Review La ventana de revisión, muestra una lista de los comandos que recientemente se han

ejecutado desde que se abrió algún tipo de archivo, sea de datos (*.dta), un do-file (*.do)

o un log (*.log). Desde esta ventana se pueden incluir comandos tecleados con

anterioridad en la ventana command, con hacer click una vez en el mismo. Y haciendo

click dos veces se copia y ejecuta.

Command Esta es la ventana donde se deben escribir los comandos que se desean ejecutar. Se

pueden recuperar comandos escritos anteriormente o posteriormente con la tecla ePág

o AvPág, hasta llegar al comando buscado, o también se pueden buscar en la ventana

Review y darle click. Otra ayuda importante en esta ventana es la opción de completar

automáticamente el nombre de una variable tecleada parcialmente con la tecla Tab.

Page 5: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

5

Properties En esta ventana se presentan las propiedades y características de las variables cargadas

en las bases de datos.

En general, Stata permite ser usado por medio de ventanas con la opción del menú

principal convencional. Una vez que se selecciona una opción del menú, se puede buscar

y seleccionar la opción de lo que se desea hacer (inmediatamente el programa abre otra

ventana, donde se define la tarea que deseamos que realice el programa). La otra opción

es por comandos o programación, que se debe hacer directamente en la ventana de

comandos o creando un do-file.

Muchos de los comandos de Stata se pueden abreviar a las primeras letras. Por ejemplo:

el comando describe se puede escribir des, teniendo el mismo resultado. Es

fundamental tener cuidado en el uso de los comandos porque este software es muy

sensible al uso de mayúsculas y minúsculas. Todos los comandos de Stata se escriben en

minúsculas, mientras que los nombres de las variables pueden ir en mayúsculas,

minúsculas o combinaciones.

Ejemplo: Stata puede trabajar como calculadora usando el comando display

display 2+2

Los comandos pueden ser abreviados:

di 2+2

La barra de herramientas contiene iconos que permiten abrir y guardar archivos,

imprimir y manipular ventanas, entre otros. Algunas herramientas muy importantes

son:

Log Begin/Close/Suspend/Resume,

New Do-File Editor,

Data Editor (Edit),

Data Editor (Browser).

Estos dos ultimos presentan los datos en forma de hoja de cálculo, sin importar qué tan

grande sea el conjunto de datos. El Do-File Editor, le permite construir un archivo de

comandos de Stata o .do-.le., para ser ejecutado en su totalidad o por partes. El Log

Begin/Close/Suspend/Resume permite abrir, cerrar, suspender o resumir archivos Log.

Page 6: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

6

Datos (.dta) Los datos que utilizaremos en stata los guardaremos en formato .dta, que es el formato

propio de Stata. De todos modos, Stata tiene la capacidad de importar datos en muy

diversos formatos (Excel, SPSS, ASCII, CSV, etc).

Sintaxis (.do) Los archivos de sintaxis se guardan en formato .do, y por eso los conocemos cómo do-

files. En realidad son archivos de texto que podemos editar en múltiples programas,

pero nos sirven para conservar la sintaxis de nuestro trabajo.

Output (.log) Si queremos conservar los resultados lo podemos hacer en un ‘log file’. Podemos elegir

dos tipos, aunque el más recomendable es .log, que no tiene formato y nos garantiza

compatibilidad con otros editores de textos.

Extensiones (.ado) Es uno de los puntos fuertes de Stata. Los usuarios pueden escribir funciones y

comandos nuevos y distribuirlos gratuitamente. De este modo, la potencia del programa

se multiplica, ya que allí donde la distribución oficial no llega, sí lo hacen los usuarios.

Page 7: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

7

Sesion 1. Un ejemplo sencillo

Cargando datos, generando una nueva variable, guardando una

base de datos y creando archivos log.

Comenzaremos dando doble clic al icono del programa ubicado en el escritorio de la

computadora. Escribiremos los siguientes comandos en la ventana command y al mismo

tiempo damos enter después de cada línea escrita:

clear

input a b c

1 5 10

0 8 7

1 4 6

end

generate d=c-b

list

browse

save myfile

Cuando se abre Stata es importante saber donde se esta trabajando, es decir, en que

carpeta se están guardando los resultados o desde que carpeta vamos a llamar la base

de datos, etc. Si no se sabe la carpeta o directorio donde Stata esta ubicado podemos

averiguarlo escribiendo el comando pwd. En mi caso, el directorio es

D:\Documents\Stata13

Al instalar Stata, varios archivos son creados para su uso posterior. El mas utilizado es el

archivo “Stata” cuya dirección esta indicada en la parte inferior izquierda de la pantalla;

es aquí donde se guardan los datos y resultados si no se especifica otra ruta, escriba la

palabra sysdir en la barra de comandos. La ruta de estos archivos puede ser modificada

utilizando el comando sysdir set nombre del archivo seguido por la nueva dirección. La

ruta del archivo “Stata” o directorio de trabajo también puede ser modificada

escribiendo el comando cd seguido por la nueva ruta. Para este caso escribiremos lo

siguiente (tambien puede realizarse a través de las ventanas).

cd "D:\Desktop\CURSO de STATA"

Page 8: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

8

La ventaja de indicar desde un comienzo en que carpeta de la computadora se esta

trabajando, es que evita indicar la ruta completa de los archivos cada vez que queramos

abrir o guardar una base de datos. Obviamente esto tiene sentido cuando para un

trabajo específico tenemos todos los archivos necesarios en la misma carpeta. Por

ejemplo, si estamos trabajando con información de tres bases de datos distintas, y

queremos dejar la información relevante para el estudio en una sola base datos (más

adelante veremos como hacer esto), lo ideal es trabajar en una sola carpeta, y no tener

las tres bases de datos repartidas en carpetas distintas. Si no están en la misma carpeta

no es útil indicarle el directorio al comienzo, ya que igual cuando llamemos a cada una

de las bases de datos, al estar en carpetas distintas, tendremos que cambiar la ruta.

� Preguntas de repaso

o Data Security Plans

1. El comando input introduce datos a la memoria de Stata. ¿Cuál es el resultado

del comando input? En otras palabras, ¿donde se guardaron esos números?

2. ¿Qué es lo que hace el comando generate?

3. Los comandos list y browse muestran el contenido de la memoria de Stata.

¿Donde están los resultados de todos los comandos ejecutados? ¿Que

resultados nos da el comando log?

4. El comando save guarda un archivo permanente. ¿Dónde està el archivo creado

“myfile”?

5. ¿Qué es lo que contiene el archivo “myfile"?

6. ¿Que sucede si escribes el comando generate antes del comando input?:

generate d=c-b

input a b c

1 5 10

0 8 7

1 4 6

end

7. ¿Qué sucede si escribes la variable “C” en mayúsculas en el comando generate?

input a b c

1 5 10

Page 9: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

9

0 8 7

1 4 6

end

generate d=C-b

8. ¿Cual es la diferencia entre el comando list y el comando edit?

Respuestas a las preguntas de repaso

1. Los numeros fueron almacenados en la memoria (RAM) de la computadora. Los

datos almacenados conceptualmente son tres renglones (observaciones) y tres

columnas (variables, asi como en una hoja de Excel.

2. Creó una nueva variable nombrada “d” con un valor en cada observación.

3. Todos los resultados de las acciones realizadas se presentan en la ventana de

resultados. Una excepción es browse, el cual abre una nueva ventana. El

comando log crea un archivo permanente con el contenido de la ventana de

resultados mientras escribes los comandos.

input a b c

1 5 10

0 8 7

1 4 6

end

generate d=c-b

log using mylog.log

list

log close

save myfile

Aquí el comando log crea un archivo llamado mylog.log que contiene los resultados de

la lista de los comandos utilizados y de alguno otro contenido de la ventana de

resultados. Tambien se puede crear el archivo log desde el principio: file>log>begin y

poner nombre al archivo. Despues al finalizar es necesario cerrar el archivo log.

Page 10: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

10

/* Para agregar mas resultados a un archivo log existente, se

escribe la opcion append */

log using mylog.log, append

/* Para reemplazar un archivo log, se escribe la opción replace

*/

log using mylog.log, replace

/* Noten que la opción replace borrará el contenido de la versión

previa del log */

4. El archivo guardado y el archivo log creado con los comandos pueden

encontrarse con el comando del present working directory (pwd). Se puede

cambiar con el comando cd y después escribir la ruta. Stata automáticamente

agrega el sufijo “.dta” a los archivos creados con el comando sabe

5. Contiene un archivo con extensión .dta el cual tiene tres observaciones de cuatro

variables.

6. El resultado seria un error: “c not found”, es decir, el programa no encuentra la

variable c.

7. El programa reporta el siguiente mensaje "C not found", porque Stata distingue

entre mayúsculas y minisculas.

8. Ambos comandos sirven para visualizar las observaciones en pantalla, se puede

utilizar edit o bien list seguido por el nombre de la variable o variables que se

desean visualizar. La diferencia entre edit y list es que el primero despliega toda

la hoja de cálculo mientras el segundo despliega en la ventana de resultados.

Tarea 1.

1. Introducir los siguientes datos a Stata a través del Data Editor. Luego escibir en

la ventana de comandos lo siguiente: list, des y su. Describa los resultados.

Guarde el archivo.

Nombre Edad Peso Genero

Maria 12 123 F

Pedro 65 215 M

Joel 31 187 M

Page 11: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

11

Luisa 15 89 F

Antonia 43 150 F

Petra 8 58 F

Luis 76 126 M

Enrique 50 312 M

Page 12: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

12

Sesion 2. Utilizando archivos de datos

Limpiando la memoria, utilizando un archivo de Stata, guardando

cambios en los archivos

En la Sesion 1 creamos un acrhivo permamente de Stata llamado myfile.dta. Este

ejercicio usará este archivo. Escribe estos comandos y observa los resultados (no se les

olvide cambiar de directorio de trabajo):

clear

use myfile

drop d

save myfile

save myfile,replace

Tambien existe otros comandos para abrir bases de datos como:

/* Bases de datos en la red */

webuse

/* Base de datos cargados en su directorio de Stata */

sysuse

� Preguntas de repaso

1. El comando clear command remueve datos de la memoria de Stata. ¿Por qué

necesitamos este comando antes de copiar el nuevo archivo de datos dentro de la

memoria de Stata?

2. ¿Para que se utilizan los comandos use y drop?

3. ¿Por qué se reporta el mensaje de error: file myfile.dta already exists cuando uno

escribe el comando sabe?

4. ¿Cuál es la utilidad del comando clear?

Respuestas a las preguntas de repaso

Page 13: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

13

1. El Stata solo puede mantener un conjunto de datos en la memoria. En este

sentido, el programa protege los datos si accidentalmente se reescribe y

destruye los datos en la memoria. Stata requiere que la memoria sean limpiada

antes de iniciar el trabajo.

2. Este comando se utiliza para trabaja con el archivo que se esta requiriendo.

Asume que el archivo tiene la siguiente ruta:

“D:\Desktop\CURSO de STATA"\myfile.dta"

Por su parte el comando drop borra una o dos variables. En este ejemplo solo lo

utilizamos de manera simple y superficial. Se verá más a detalle en la siguiente sesión.

3. Stata notifica cuando se pretende reescribir un archivo que ya existe. Esto da la

oportunidad para reconsiderar si realmente se desea modificar el archivo

existente. La opción de reescribirlo se logra escribiendo:

save myfile,replace

4. El programa debe estar limpio, sin ninguna base de datos ya cargada. Para

limpiar el programa de otras bases de datos se debe utilizar el comando clear. Si

he estado trabajando una base de datos previamente la cual se ha modificado y

no he guardado estas modificaciones, al intentar abrir una nueva base de datos

sin limpiar antes arrojará el mensaje de error.

Page 14: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

14

Sesion 3. Describiendo datos. Parte 1

Describiendo las variables: media, distribución de frecuencias y

tipos de variables

Utilizaremos ahora una base de datos real. El archivo es Divorcios.dta. Los comandos de

principio son los siguientes:

log using "D:\Desktop\Divorcios.smcl"

cd "D:\Desktop\CURSO de STATA"

use "D:\Desktop\CURSO de STATA\Datos del

Curso\divorciosECU2010.dta", clear

Ahora haremos una pequeña descripción de los datos contenidos en la base de datos

con el comando:

des

Podemos hacer uso del comando Help para conocer el significado de los comandos, por

ejemplo,

help summarize

Luego podemos utilizar el comando summarize para visualizar lo siguiente:

provhabm byte %20.0g prov Provincia Habitual del Divorciado

instm byte %24.0g edu Nivel de Instrucción De La Divorciada

hijom byte %10.0g Número de Hijos de la Divorciada

edadm byte %10.0g edad Edad de la Divorciada

provhabh byte %20.0g prov Provincia Habitual del Divorciado

insth byte %24.0g edu Nivel de Instrucción del Divorciado

hijoh byte %10.0g Número de Hijos del Divorciado

edadh byte %10.0g edad Edad del Divorciado

duramat byte %10.0g Duración del Matrimonio

mesmat byte %10.0g mes Mes del Matrimonio

aniomat int %10.0g Año del Matrimonio

mesdiv byte %10.0g Mes de Divorcio

aniodiv int %10.0g Año del Divorcio

prov byte %20.0g prov Provincia de Inscripción

codmes byte %10.0g mes Mes de Inscripción

codanio int %10.0g Año de Inscripción

variable name type format label variable label

storage display value

size: 346,389

vars: 16 25 Jul 2011 09:08

obs: 18,231

Contains data from D:\Desktop\CURSO de STATA\Datos del Curso\divorciosECU2010.dta

. des

Page 15: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

15

Se recomienda revisar ampliamente esta información valiosa para el análisis. Un

comando interesante es tabstat, pero antes revisemos este comando con la ayuda

de Stata.

help tabstat

/* Vamos a estimar la edad promedio en la que los hombres se

divorcian

tabstat edadh

/* Ahora quizás estemos interesados en un minimo, máximo,

desviación estándar y la media de la edad de los divorciados */

tabstat edadh, stat(mean sd min max)

/* Ahora quiero comparar la información anterior con la edad de

las mujeres */

tabstat edadh edadm, stat(mean sd min max) /* Una conclusión es

que las mujeres se divorcian mas jóvenes */

/* ¿Que tanto duran los matrimonios según la encuesta? */

tabstat duramat

/* Podríamos suponer que la duración del matrimonio varía de

acuerdo al mes de casamiento */

tabstat duramat, by( mesmat ) /* la gente que se casa en mayo dura

más, en promedio*/

/* Con mayor información */

provhabm 18231 13.54945 13.56756 1 88

instm 18231 3.883605 2.259265 0 9

hijom 18231 .8349515 .9957223 0 9

edadm 18022 37.59605 10.94813 16 91

provhabh 18231 14.41704 15.33311 1 90

insth 18231 3.823542 2.229623 0 9

hijoh 18231 .106083 .4683531 0 9

edadh 18164 40.63984 11.50872 17 95

duramat 18231 14.11376 10.1806 0 62

mesmat 18231 6.538808 3.493198 1 12

aniomat 18231 1995.42 10.18968 1947 2010

mesdiv 18231 6.404147 3.387501 1 12

aniodiv 18231 2009.64 1.138875 1963 2010

prov 18231 11.36087 5.656412 1 24

codmes 18231 6.421864 3.385818 1 12

codanio 18231 2010 0 2010 2010

Variable Obs Mean Std. Dev. Min Max

Page 16: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

16

tabstat duramat, s(mean sd min max ) by(mesmat)

/* Podriamos pensar que las personas con mayor educación duran

mas en el matrimonio, ¿es asi? */

tabstat duramat, by( insth )

tabstat duramat, by( instm )

/* ¿Tendrá que ver la relación entre edades de las personas la

causa de su divorcio? */

/* Vamos a crear una nueva variable que sea 1 cuando el nivel de

instrucción de los divorciados sean diferentes y 0 cuando sea

iguales */

generate edu_dif=( insth != instm )

/* Ahora vamos a tabular la duración del matrimonio por la nueva

variable */

tabstat duramat, by( edu_dif )

/* Se observa que cuando los niveles educativos son diferentes

los matrimonios duran menos años */

Page 17: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

17

Sesión 3. Describiendo datos. Parte 2.

Describiendo las variables: media, distribución de frecuencias y

tipos de variables

Ahora utilizaremos otra base de datos. Se refiere a la Encuesta sobre servicios de salud

en Tanzania en 1999. Copie cada uno de los siguientes comandos y pégalos en la

ventana de comandos y presiona enter. Observe los resultados. Nota que las letras en

negritas son abreviaciones aceptables (No se olviden de comenzar un archivo log).

clear /* Limpia la memoria */

cd "D:\Desktop\CURSO de STATA"

use "D:\Desktop\CURSO de STATA\Datos del Curso\EXAMPFAC.DTA",

clear

describe

summarize

codebook

su pill-natural /* Tabula las variables pill hasta la natural */

su fphour* /* Tabula todas las variables fphour */

tab factype authorit

codebook urbrur facname

tabulate urbrur

tab urbrur, nolabel missing plot

/* nolabel muestra el valor numérico pero el valor de la etiqueta,

missing muestra cuantas observaciones tienen valores perdidos y

plot proporciona una comparación grafica de las frecuencias */

/* Tabula las variables cruzadas */

tab factype urbrur

/* Tabula las variables separadas */

tab1 factype urbrur

/* Tabula las variables cruzadas */

Page 18: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

18

tab2 factype urbrur

/* Estima porcentaje por fila, por columna y por celda */

tab2 factype urbrur, row col cell

� Preguntas de repaso

1. El comando describe detalla cada una de las variables. ¿A qué se refieren los

términos “double”, “str42”, “byte”, etc. de la segunda columna? ¿Los colores

indican algo?

2. ¿Cómo puedo especificar el tipo de datos que deseo utilizar?

3. El comando summarize reporta el número de observaciones, media, desviación

estándar, mínimo y máximo para cada variable. ¿Por qué es el número de

observaciones es diferente para algunas variables, incluso para facname es 0?

4. ¿Cómo puedo resumir un conjunto específico de variables?

5. ¿Cuándo es útil el comando codebook?

6. ¿Qué es lo que hacen las opciones nolabel, missing, y plot sobre el comando

tabulate?

7. ¿Cómo puedo obtener tablas cruzadas?

0.00 0.40 0.00 0.40

0.00 1.25 0.00 0.40

0.00 100.00 0.00 100.00

ConsultHosp 0 2 0 2

type Rural Urban Mixed Total

Facility 1=Rural 2=Urban 3=Mixed

.00404858

. display 2/494

.0125

. display 2/160

Total 236 160 98 494

Other 1 2 1 4

Clinic 5 24 4 33

Dispensary 153 74 48 275

HealthCentre 48 23 12 83

OtherHosp 7 7 4 18

RegHosp 3 13 0 16

DistHosp 19 15 29 63

ConsultHosp 0 2 0 2

type Rural Urban Mixed Total

Facility 1=Rural 2=Urban 3=Mixed

Page 19: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

19

8. ¿Qué hace el comando lookfor?

Respuestas a las preguntas de repaso

1. Se refieren a los tipos de cada variable. La siguiente tabla describe cada uno de

las tipos de variables que se utiliza en Stata:

Type Min Max Precision Bytes Type

----------------------------------------------------------------

byte -2 digits 2 digits 2 digits 1 integer

int -4 digits 4 digits 4 digits 2 integer

long -9 digits 9 digits 9 digits 4 integer

float -10**38 10**36 10**-8 4 real

double -10**307 10**307 10**-16 8 real

str1 1 1 1 string

o Secure Data Facility

Stata trabaja con distintos tipos de variables, de momento vamos a fijarnos en las dos

grandes categorías de variables que podemos encontrar: numéricas y de texto o de

cadena. Para saber qué tipo de variable es cada una, podemos usar el comando describe,

o ver la ventana properties si la tenemos abierta.

Las variables numéricas se almacenan en Stata según uno de los siguientes tipos: byte,

int, long, float (por defecto) y double. Las variables de tipo byte son almacenadas en 1

byte, las de tipo int en 2 bytes, las de tipo long y float en 4 bytes y las de tipo double en

8 bytes.

Las variables alfanuméricas, es decir, las que contienen texto, son de tipo cadena

(string), que se denota por str#. En cuanto al formato de visualización, es decir, la forma

en que los datos son presentados, es el siguiente: para variables numéricas, viene

expresado como %w.d, seguido de uno de estos tres formatos: e, f, g. Con w denotamos

un número entero que especifica la anchura del formato, mientras que d indica el

número de dígitos que siguen al punto decimal. Para variables alfanúmericas, el formato

es %ws, donde s indica string y w es un número entero que indica la anchura dada a la

variable. Por defecto, el formato que asigna Stata a los distintos tipos de variable es:

byte %8.0g

int %8.0g

long %12.0g

Page 20: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

20

float %9.0g

double %10.0g

str# %#s (ó %9s si la anchura es menor de 9)

Es posible cambiar el formato de visualización de las variables con el comando format.

Por ejemplo, si en nuestros datos la variable var1 es tipo float, formato %9.0g., y

queremos darle formato %10.2g la instrucción será:

format var1 %10.2g

Los colores señalan el tipo de variable. Por ejemplo en nuestra base de datos:

2. Se puede especificar el tipo de datos escribiendo el comando generate:

gen byte a=0

El formato de visualización no afecta a la precisión de almacenamiento de los datos. La

cantidad de memoria que consumen nuestros datos puede reducirse con el comando

compress. Este comando reduce el tamaño de los datos del siguiente modo: double pasa

a long, int o byte, float pasa a int o byte, long pasa a int o byte, int pasa a byte, y string

pasa a longitud de cadena más corta.

3. La columna de “Obs” muestra el número de observaciones para variables

numéricas. Para variables alfanuméricas, es decir, las que contienen texto, como

Page 21: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

21

facname son de tipo cadena (string), que se denota por str#, las observaciones

son siempre 0.

4. Existen dos maneras para especificar un conjunto de datos, ambas son

mostradas en el ejemplo:

pill-natural (nos da la primera variable y la última variable)

fphour* (nos da todas las variables cuya base tengan fphour )

Estos dos métodos funcionan con todos los comandos de Stata. Para usar el primer

método, es necesario conocer la posición de cada variable en el archivo de datos de

Stata. Utilice el comando describir para ver esas posiciones, o buscarlos en la ventana

Variables.

5. El comando codebook informa sobre las variables: estadísticas descriptivas,

etiquetas, detalle de los valores missing, etc. Si no se especifican variables,

codebook despliega estas estadísticas para todas las variables de la base de

datos

6. Esas tres opciones proporcionan información extra acerca de la variable en

cuestión:

nolabel muestra el valor numérico pero el valor de la etiqueta

missing muestra cuantas observaciones tienen valores perdidos

plot proporciona una comparación grafica de las frecuencias

7. Las dos maneras de obtener frecuencias de dos variables son (comandos

equivalentes):

tab factype urbrur

tab2 factype urbrur

8. El comando lookfor sirve para encontrar variables en la base de datos, por

ejemplo, si queremos cual de las variables se refiere a factype. En cambio, el

comando summarize permite obtener la estadística descriptiva básica de las

variables:

lookfor factype

summarize

Tarea 2.

Page 22: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

22

1. Obtenga una base de datos de sus compañeros de clase (Edad, Sexo, Ciudad,

Preparatoria, Horas frente a internet, etc.), describa esos datos de acuerdo con

los comandos vistos hasta ahora en el curso.

Sesión 4. Grupos y suconjuntos de datos

Comparación y valores perdidos Continuaremos con los datos de la Encuesta sobre Servicios de Salud en Tanzania. Copia

y pega los siguientes comandos en la ventana de comandos, presiona enter y observa lo

que resulta (No es necesario copiar los comentarios (palabras dentro de los corchetes /* */))

clear

cd "D:\Desktop\CURSO de STATA"

use "D:\Desktop\CURSO de STATA\Datos del Curso\EXAMPFAC.DTA",

clear

/* Para obtener los hospitales propiedad del gobierno */

tab factype if authorit==1

/* Antigüedad de los hospitales menores o igual a 4 años */

su age if factype<=4

/* Disponibilidad de condones en otros hospitales, clínicas u

otros así como valores perdidos */

tab malecond if authorit==4 | (authorit>=7 & authorit<=9), missing

/* Ordena las variables por ubicación, luego reporta la edad

promedio del servicio por ubicación urbana o rural */

sort urbrur

by urbrur: su age

/* Antigüedad promedio de las instalaciones que ofrecen la

planificación familiar por ubicación urbano-rural */

by urbrur: su age if pill<.

/* Muestra las primeras 10 observaciones en la memoria */

list factype authorit urbrur in 1/10

/* También pude ser útil los siguientes comandos son iguales */

Page 23: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

23

tabstat age, by(urbrur) stats(mean n)

table urbrur, contents (mean age n age)

� Preguntas de repaso

1. Stata proporciona una forma condicional de implementar muchos de sus

comandos. La subcomando if restringe el comando a observaciones que

deseamos conocer cierta información. El if va al final del comando pero antes de

la coma que separa al comando de las opciones. En este caso, la calificación es

que la autoridad es 1 (gobierno). ¿Entonces cuál es la diferencia entre

authorit=1 vs. authorit==1

2. El signo == sign es llamado operador relacional. ¿Qué otros operadores están

disponibles en Stata?

3. El comando sort coloca las observaciones en la memora en forma ascedente de

acuerdo a los valores de una o mas variables. En este caso, la variable es

authority. By requiere que la base de datos esté ordenada por la(s) variables(s)

que usemos. A menudo esto no es así, y entonces tenemos dos opciones: o

ordenar previamente la base de datos usando la instrucción sort, o combinar

ambas instrucciones en un solo comando usando el comando bysort, que se usa

exactamente igual que by. ¿Qué hace el comando sort factype urbrur?

4. by sirve para segmentar la ejecución de la ordenación y hacerlo por los grupos

definidos por la variable que acompañe a by. El operador by es uno de los pocos

elementos en Stata que rompe con la estructura básica de la sintaxis, puesto que

se escribe delante del comando y no después como el resto. Así, escribiremos by

variable: comando. ¿Cuándo deberías usar by en lugar de tab2 para obtener

datos separados por grupos?

5. ¿Qué significa la frase pill<.?

6. ¿Qué son los valores perdidos?

7. ¿Cuál es otra manera de escribir utilizando _n, "en 1/10"?

Respuestas a las preguntas de repaso

1. Un simple igual (=) significa darle el valor a una variable, es decir, significa

asignación. Un doble signo igual (==) significa comparación. Recordemos:

Page 24: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

24

= asigna un valor

== evalua una expresión con falso/verdadero

/* Por ejemplo */

replace income = 0 if income == -1

/* le estamos ordenando que reemplace el valor de income con = 0

donde el income sea -1 */

2. Aquí esta una lista de operadores en Stata

== igual a

> mayor que

>= mayor o igual que

< menos que

<= less than or equal to

~ not

! not

& y

| o

+ suma

- resta

* multiplicacion

/ division

^ potencia

3. Pone los datos en orden ascendente de factype, y dentro de cada valor de

factype ordena los datos en orden ascendente de urbrur. El comando gsort le

permite ordenar en orden descendente, así como orden ascendente.

4. El comando tab2 funciona mejor con datos categóricos. Mientras que la opción

by trabaja mejor con variables continúas. Por ejemplo, si a y b son variables

categóricas:

by a: tab b

/* Esto es del mismo modo */

Page 25: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

25

tab2 a b

5. Significa la variable menos que los valores perdidos

6. Prácticamente siempre nuestros datos serán incompletos. Es decir, tendremos

observaciones para las cuales no dispondremos de toda la información de todas

las variables. En esos casos hablamos de ‘casos perdidos’ o ‘valores perdidos’.

Con Stata podemos trabajar con ellos de diversos modos. Por defecto, cuando

le pedimos a Stata una tabla de frecuencias de una variable, omite los valores

perdidos. Esto, que en general resulta útil, a veces puede no interesarnos, puesto

que pueden contener información interesante. Así, cuando pidamos una tabla

de frecuencias con el comando tabulate, si añadimos al final del comando la

opción missing el programa considerará y nos mostrará también los casos

perdidos.

/* Este comando por ejemplo, incluye los valores perdidos de edad

*/

tab factype if age>=25

/* Si no se quieren es necesario excluir expresamente que */

tab factype if age>=25 & age<.

7. Se puede escribir:

list factype authorit urbrur if _n <= 10

Page 26: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

26

Sesión 5. Cambiando valores a los datos

Reemplazando valores, recodificando variables, editando datos y

etiquetando datos

Continuaremos con la base de datos 1999 Tanzania Facility Survey. Aquí tenemos los

siguientes comandos:

clear

cd "D:\Desktop\CURSO de STATA"

use "D:\Desktop\CURSO de STATA\Datos del Curso\EXAMPFAC.DTA",

clear

/* Como precaucion, hacer una copia de la variable que se desea

recodificar */

gen factype2=factype

/* Cambiando 8 valores de factype2 dentro de 4 valores*/

replace factype2= 1 if factype2 >= 2 & factype2 <= 4

replace factype2= 2 if factype2 == 5

replace factype2= 3 if factype2 == 6

replace factype2= 4 if factype2 == 7 | factype2 == 9

/* El comando recode hace lo anterior de manera más eficiente */

recode factype2 2/4=1 5=2 6=3 7 9=4

/* Para cambiar el nombre de una variable */

rename factype2 tipo

/* Para etiquetar una variable */

label variable tipo "Tipo de servicio recodificado"

/* Para etiquetar para cada categoría en una variable es un proceso

de dos pasos */

/*Paso 1: necesitas crear la etiqueta usando label define, escribe

*/

label define fac 1 "Hospital" 2 "HealthCenter" 3 "Dispensary" 4

"Other"

Page 27: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

27

/*Paso 2: Asignar esa etiqueta a la variable con esas categorías

usando label values: */

label values tipo fac

/* Ponerle etiqueta a la base de datos */

label data "1999 Tanzania Facility Survey"

/* Borra la variable original factype */

drop factype

/*Borra las observaciones de la variable antigüedad mayor a 40*/

drop if age>40

browse

edit

Podemos observar que para renombrar variables, se escribe:

rename [antiguo nombre] [nuevo nombre]

En nuestro ejemplo, renombramos de la siguiente manera:

rename factype2 tipo

De igual manera para agregar o modificar la etiqueta de una variable, escribimos:

label variable [var name] “Text”

label variable tipo "Tipo de servicio recodificado"

Con el comando labelbook el programa enlistara todas las etiquetas de la base de datos.

Toma en cuenta que definir etiquetas no es lo mismo que crear variables.

Es importante sugerir que nunca se trabaje con la variable original, es decir, siempre hay

que mantener la variable original.

El comando recode crea una nueva variable sin modificar la original. La sintaxis básica

de este comando es:

recode varname value = value value = value ...

� Preguntas de repaso

Page 28: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

28

1. El comando replace modifica valores específicos de una variable existente. ¿Qué

sucede con los siguientes comandos? Pegue los resultados:

clear

cd "D:\Desktop\CURSO de STATA"

use "D:\Desktop\CURSO de STATA\Datos del Curso\EXAMPFAC.DTA",

clear

gen factype3=factype

replace factype3= 4 if factype3 == 7 | factype3 == 9

replace factype3= 3 if factype3 == 6

replace factype3= 2 if factype3 == 5

replace factype3= 1 if factype3 >= 2 & factype3 <= 4

2. ¿Qué sucede con los valores perdidos de factype2?

3. ¿A cuántas variables puedes cambiarle el nombre con un solo comando rename?

4. ¿Cómo puedo cambiar una variable existente y el valor de sus etiquetas?

5. ¿Cuál es la diferencia entre browse and edit?

6. ¿Qué hace el comando generate?

Respuestas a las preguntas de repaso

1. Todas las observaciones de la variable factype3 es igual con 1.

gen factype3=factype

(3 missing values generated)

replace factype3= 4 if factype3 == 7 | factype3 == 9

Total 500 100.00

9 4 0.80 100.00

7 35 7.00 99.20

6 275 55.00 92.20

5 84 16.80 37.20

4 18 3.60 20.40

3 16 3.20 16.80

2 65 13.00 13.60

1 3 0.60 0.60

factype3 Freq. Percent Cum.

. tab factype3

Page 29: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

29

replace factype3= 3 if factype3 == 6

replace factype3= 2 if factype3 == 5

replace factype3= 1 if factype3 >= 2 & factype3 <= 4

Se sugiere siempre, por precaución, hacer una copia de la variable que se desea

recodificar:

/* Escriba y ejecute los siguientes comandos */

gen age2=age

tab age2

/* Luego escriba lo siguiente y observe lo que sucede */

Total 500 100.00

6 275 55.00 100.00

5 84 16.80 45.00

4 57 11.40 28.20

3 16 3.20 16.80

2 65 13.00 13.60

1 3 0.60 0.60

factype3 Freq. Percent Cum.

. tab factype3

(39 real changes made)

. replace factype3= 4 if factype3 == 7 | factype3 == 9

Total 500 100.00

5 84 16.80 100.00

4 57 11.40 83.20

3 291 58.20 71.80

2 65 13.00 13.60

1 3 0.60 0.60

factype3 Freq. Percent Cum.

. tab factype3

Total 500 100.00

4 57 11.40 100.00

3 291 58.20 88.60

2 149 29.80 30.40

1 3 0.60 0.60

factype3 Freq. Percent Cum.

. tab factype3

Total 500 100.00

1 500 100.00 100.00

factype3 Freq. Percent Cum.

. tab factype3

Page 30: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

30

replace age2 = . if age2>20

tab age2, missing

2. No se cambiaron los valores perdidos en los ejemplos de replace o recode, ellos

se mantienen perdidos.

3. Solo a una.

4. El comando es label def y label val Por ejemplo, las ultimas 10 variables

pill-natural tienen sus etiquetas con el formato respuesta de yes/no:

label def yesno 1 "Yes" 2 "No"

label val pill yesno

label val inject yesno

….. etc.

label val natural yesno

Sabemos también que para cambiar la etiqueta de una variable, simplemente escribe

una nueva etiqueta después del comando laber var:

label var factype "Type of facility"

Para cambiar la etiqueta de una variable, se tienen dos opciones:

Borrar la etiqueta existente y recrarla con los cambios, o

Crear una nueva etiqueta y reasignar una variable a la nueva etiqueta.

El comando describe muestra cuales variables tienen etiqueta y de tenerlas, muestra

como se llaman. Usando este comando podemos ver que la variable urbrur tiene la

etiqueta urb. Aquí la borramos urb y la recreamos con nuevos valores:

label drop urb

label def urb 1 "RURAL" 2 "URBAN" 3 "MIXED"

label val urbrur urb

5. Ambos comandos muestra los datos en un formato tipo Excel. El comando Edit

permite hacer cambios a la base de datos sin registrarlos, mientras que el

comando browse solo permite ver la base de datos.

Page 31: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

31

6. El comando generate o gen permite crear una variable, para ello escribimos:

generate [nuevavariable] = [expresión]

También se puede generar constantes. Por ejemplo:

gen x=5

gen y=4*15

gen z = y/x

Page 32: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

32

Sesión 6. Creación de variables binarias o dummy

Para crear una variable dummy especificamos que la variable tomará valores de 0 y 1 y

valores perdidos. Para esta sesión utilizaremos el archivo auto.dta. Vamos a crear una

variable dummy para el origen de los autos. La base de datos señala que pueden ser

domésticos o extranjeros. Nuestra variable tendrá el valor de 1 si es doméstico y 0 si es

extranjero: tabulate foreign, generate(dummy)

Se crea una variable binaria para cada valor que se encuentra en foreign, poniéndoles el

nombre dummy1 y dummy2 (o el nombre que se elija, pero siempre asignará valores

correlativos a las variables binarias generadas).

También se puede crear por la vía:

generate dummymed=0

replace dummymed=1 if foreign==0

En cualquiera de estos dos casos se debe tener cuidado si hay missing values, puesto

que se estaría asignando un cero a algo que en realidad es un missing. Para arreglar el

problema se puede hacer

replace dummymed=. if foreign==.

Otro ejemplo, es:

gen edu=1 if prima==1;

replace edu=2 if secun==1;

replace edu=3 if uni==1;

(ésta dummy vale 1,2,3).

Supongamos que se necesita generar una dummy que indique que un auto tiene ya un

millaje muy alto y está próximo a descomponerse. El millaje es una variable continua, y

queremos que la dummy indique cuando esté por arriba de 30.

/*Opción 1: comando simple */

generate retiro = mpg>30

Page 33: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

33

Esto crea una variable llamada retiro igual con 1 si la expresión es cierta (el millaje está

por arriba de 30) e igual con 0 si la expresión no es cierta. Con tab retiro se observa que

casi el 7% de los autos se encuentran en esa condición.

/* Opción 2: dos comandos */

generate retiro=1 if mpg>30

replace retiro=0 if mpg<=30

/* También es importante escribir */

replace retiro =. si mpg ==.

El ejemplo anterior implicó la creación de una variable ficticia basada en una variable

continua, mpg. Los datos a menudo incluye las variables categóricas, que son variables

que toman valores numéricos que no son inherentemente significativa pero en vez

corresponden a diferentes categorías (región, raza y sexo son ejemplos variables que a

menudo están codificados de esta manera).

* Supongamos que elaboramos la base de datos y escribimos *

input sexo

1

1

1

1

0

1

0

1

1

0

end

label def sexo 1 "Femenino" 0 "Masculino"

label values sexo sexo

Page 34: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

34

/* Hemos creado una variable numérica y la etiquetamos con nombres

*/

/* Luego se procede a convertirla en dummy con el proceso inverso

*/

gen dumi=0 if sexo==0

replace dumi=1 if sexo==1

bro sexo dumi

Page 35: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

35

Sesión 7. Limpiando datos

Trabajando con do-files, documentando, outliers, ids duplicados.

Como se ha mencionado en sesiones anteriores, existen dos formas de trabajar en

STATA, en forma interactiva y en forma programada. La primera forma consiste en ir

ejecutando los comandos directamente en la ventana de comando, los resultados se

obtienen inmediatamente en la ventana de resultados. Al trabajar de esta forma, la

única manera de ir registrando todo lo realizado es mediante los archivos log. Sin

embargo, esta forma de trabajar tiene la desventaja de que una vez que uno ha realizado

varias modificaciones a la base de datos y uno quiere volver atrás, se pierde todo lo

realizado y hay que volver a reconstruir todo con ayuda del log.

La manera más ordenada de trabajar en STATA cuando se requiere hacer varias

modificaciones a la base de datos y obtener varias estadísticas de ella, es programar

todos los comandos en un archivo do.

El archivo do no es más que un archivo de texto que permite escribir las instrucciones

para la ejecución de comandos en Stata.

Cuando escribamos un do-file, existen una serie de símbolos que nos resultarán muy

útiles. Comentarios: en nuestros archivos de sintaxis, es conveniente introducir

numerosos comentarios para recordarnos lo que estamos haciendo cuando retomemos

el trabajo. Por supuesto, no queremos que Stata lea estos elementos, que sólo tienen

carácter informativo para nosotros mismos. Para eso, podemos usar los siguientes

símbolos:

Un asterisco (*) al principio de la línea, convierte toda la línea en un comentario

(representado en verde)

El símbolo /* abre un comentario y */ lo cierra

Saltos de línea: Tres /// le dicen a Stata que el resto de la línea es un comentario

y que el comando sigue en la línea de abajo.

Para abrir el archivo do escibimos el comando:

doedit

A continuación se puede empezar a escribir los comandos para transformar la base de

datos, para obtener estadísticas, etc. Exactamente de la misma forma que lo haría en la

ventana de comandos pero ahora en forma más ordenada. Es importante

constantemente ir corriendo el do-file para detectar los errores que se están

cometiendo. Escribimos lo siguiente en la ventana abierta:

Page 36: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

36

*Aquí podemos poner el nombre de nuestro trabajo Curso de Stata*

clear

cd "D:\Desktop\CURSO de STATA"

use "D:\Desktop\CURSO de STATA\Datos del Curso\EXAMPFAC.DTA",

clear

gen factype2= factype /* aquí podemos poner un comentario,

después de un comando */

gen factype3= factype // esto funciona tambien

*¿Cuales son los datos raros en la información sobre la

antiguedad?*

ta age

/* Observamos que hay un dato raro 1998 años!!!*/

list facid facname factype authorit if age == 1998

/* Vemos que ese dato es erróneo, lo cambiamos por 1 */

replace age= 1 if age == 1998

* Para encontrar los valores duplicados de facid usando el

comando duplicates*

duplicates list facid

list facid factype authorit if facid == 1001

/* También podemos mirar los valores duplicados de facid usando

_n.*/

sort facid

list facid factype authorit if facid == facid[_n-1]

#delimit;

list facid factype authorit if facid == facid[_n-1]| facid ==

facid[_n+1];

#delimit cr

* Borra la observación duplicada cuando factype and authorit

son valores perdidos.

Page 37: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

37

drop if facid == 1001 & missing(factype)

El do-file quedaría asi:

Luego damos clic sobre el botón "Execute (do)"

Una manera de ir documentando mi trabajo para luego tener un documento para mi

archivo do es el siguiente comando:

cmdlog using “nombre del archivo”

Lo anterior crea un archivo del block de notas para luego ser usado para un do-file

� Preguntas de repaso

1. ¿Qué sucede si escribimos en un do-file lo siguiente?:

/*

ta age

list facid facname factype authorit if age == 1998

replace age= 1 if age == 1998

Page 38: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

38

2. Cuando se ejecuta ta edad, la pantalla se detuvo el desplazamiento y --More--

apareció en la parte inferior. ¿Qué significa eso?

3. ¿Qué acción realiza el comando duplicates?

4. ¿Por qué se muestra una segunda forma de comprobar si hay duplicados?

5. El carácter _n es el número de secuencia de la observación actual en la memoria.

¿Qué significa facid [_n-1] ?¿Qué sucede si escribimos lo siguiente?:

gen id=_n

move id facid

label variable id "identificacion del hospital"

6. ¿Qué pasa si hay más de una variable id?

7. ¿Qué hace el comando #delimit y #delimit Cr?

8. ¿Cuál es la diferencia entre crear un bloc de notas y un archivo log?

Respuestas a las preguntas de repaso

1. Todo lo que está encerrado en los comentarios es tratado como un comentario

y no se ejecuta. Esta es una forma práctica para bloquear partes de un archivo

de tareas que no se desea ejecutar.

2. Cuando los resultados de un comando de Stata se llenan más de una pantalla,

Stata hace una pausa para que revise lo que está actualmente en la pantalla.

Cuando desea continuar, pulse la barra espaciadora para ver otra página, o pulse

la tecla Intro para ver otra línea.

3. El comando duplicates busca listas, etiquetas, o gotas duplicados. En este caso

sólo estamos enumerando los duplicados para que pueda explorar más a fondo.

4. Antes del comando duplicates es necesario utilizar [_n] para comprobar si hay

duplicados. A pesar de que ya no lo necesita para comprobar si hay duplicados,

es útil saber acerca de [_n] para la programación más avanzada.

5. Se puede pensar a cada variable como una columna en Excel y _n es el número

de fila. Por ejemplo, facid es la primera variable, que sería la columna A en Excel.

Para hacer referencia a la celda de la tercera fila, se escribe A3 en Excel. Del

mismo modo, en Stata facid [3] es el valor de facid para la tercera observación

en la memoria.

Se creó una nueva variable llamada id con la información de la variable facid,

luego movimos la columna al primer sitio para luego ponerle la etiqueta.

Page 39: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

39

También podemos utilizar _N para crear una variable con el número total de

casos en la base de datos, por ejemplo:

gen total=_N

move total id

label variable total "numero total de establecimientos

encuestados"

6. Si hay más de una variable Identificación, es necesario ordenar y comprobar

todos los identificadores de duplicados utilizando el operador lógico.

Supongamos que hay 3 identificadores:

sort id1 id2 id3

list id1 id2 id3 if id1 == id1[_n-1] & id2 == id2[_n-1] & id3 ==

id3[_n-1]

Una vez más, nos gustaría señalar que el comando duplicates comando es mucho más

fácil de usar que ese método:

duplicates list id1 id2 id3

Hemos mostrado el método que utiliza _n porque hay muchos casos en la programación

donde desea referirse a las observaciones antes o después de un caso particular. Esta

matriz implícita es potente y bien vale la pena entender y recordar para otras

aplicaciones.

7. En un archivo do, Stata supone que cada comando no tiene más de 1 línea de

largo, y que cada línea termina en un retorno de carro (al pulsar la tecla Intro, un

editor de texto inserta un símbolo de retorno de carro). Si desea escribir un

comando que es más de una línea larga, puede utilizar #delimit; para decirle

Stata que busque un punto y coma en lugar de un retorno de carro. A partir de

ahí, debe finalizar cada comando, si una o más líneas de largo, con un punto y

coma. Para volver al retorno de carro, use cr #delimit.

Hay otras maneras de continuar un solo comando en más de una línea. Una

forma es escribir / * al final de una línea, y * / al principio de la siguiente línea

(para terminar el comentario):

list facid factype authorit if facid == facid[_n-1] /*

*/ | facid == facid[_n+1]

Page 40: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

40

Otra manera es colocar ///, el cual le dice a Stata que continue leyendo la siguiente línea

como continuación de la línea anterior:

list facid factype authorit if facid == facid[_n-1] ///

| facid == facid[_n+1]

8. La diferencia entre los siguientes comandos es que:

/* Crea un bloc de notas con comandos solamente */

cmdlog using practica

set more off

/* Crea un archivo log con resultados y comandos */

log using practica.log

log close

Page 41: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

41

Sesion 8. Los estudiantes: un repaso y graficos

Creando graficos para visualizar datos

Utilizaremos la base de datos “Estudiantes” que es un archivo de Excel. En este apartado

haremos un breve repaso de lo que hemos vista hasta ahora.

Para obtener una descripción general de la base de datos del formato y cada tipo de

variable

*Comenzamos con nuestro trabajo *

Describe

/*Vamos a renombrar algunas variables */

rename lastname Clave

rename firstname Nombre

rename city Ciudad

rename state Estado

rename gender Genero

rename studentstatus Estatus

rename major Materia

rename country Pais

rename age Edad

rename averagescoregrade Promedio

rename heightin Peso

rename newspaperreadershiptimeswk Lectura

/* Agregamos etiquetas también, como por ejemplo */

label data "Encuesta a estudiantes"

label variable Pais "Nombre del Pais de origen"

label variable Nombre "Nombre del estudiante"

label variable Lectura "Horas que el alumno dedica a la lectura

de la prensa"

/* Luego hacemos una tabla de distribución de frecuencias para

las materias */

Page 42: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

42

tab Materia

/* Ya sabemos que el comando table proporciona las frecuencias y

estadísticas descriptivas por categoría. Aquí unos ejemplos */

table Genero, contents(freq mean Edad mean Promedio )

table Materia, contents(freq mean Edad mean sat mean Promedio

mean Lectura)

tabstat Edad sat Promedio Peso Lectura, s(mean median sd var count

range min max)

*Si es muy largo el renglón podemos poner /// o /* y */

/*Tambien se puede estimar estadística descriptiva por subgrupos

(por ejemplo, género, edad, etc) */

tabstat Edad sat Promedio Peso Lectura, s(mean median sd var count

range min max) by(Genero)

/*Podemos observar que Stata permite calcular distribución de

frecuencias para una variable o varias variables */

tab Genero

tab Genero Estatus, column row

/* Tambien podemos calcular las calificaciones promedio del SAT

por género y materia */

tab Genero Materia, sum(sat)

/*Ahora podemos hacer tablas cruzadas con tres variables*/

bysort Estatus: tab Genero Materia, column row

/* tablas cruzadas con tres variables con estadísticos de una

cuarta variable */

bysort Estatus: tab Genero Materia, sum(sat)

/* Supongamos que queremos conocer la nacionalidad y el género de

los estudiantes menores a 20 años */

list Genero Pais if Edad<20

/* Ordenar alfabéticamente las ciudades */

sort Ciudad

/* Para ordenar de mayor a menor el id */

Page 43: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

43

gsort –id

/* Ordenando alfabéticamente las materias y de mayor puntuación

en el sat */

gsort +Materia –sat

/* Recordemos que los símbolos | = “o”, & = “y” y != “diferente”

*/

Los gráficos de sectores son representaciones de los datos en un círculo cuyos

segmentos representan proporcionalmente la frecuencia de los valores contenidos en

una o varias variables. La instrucción mínima para realizar gráficos de sectores es la

siguiente:

scatter sat Edad

scatter sat Edad, mlabel(Clave)

scatter sat Edad, mlabel(Clave) || lfit sat Edad

scatter sat Edad, mlabel(Clave) || lfit sat Edad, yline(30)

xline(1800)

scatter sat Edad, || lfit sat Edad, mlabel(Clave) by(Materia,

total)

histogram Edad, frequency

histogram Edad, frequency normal

� Preguntas de repaso

Escriba los comandos para graficar la siguiente información:

1. ¿Cuantos hombres y mujeres?

2. ¿Cuantos graduados?

3. ¿Cuántos son en las materias de economía, política y matemáticas?

4. ¿De que país son?

5. ¿Cual es la estructura de la sintaxis para tablas cruzadas?

Respuestas a preguntas de repaso

1. Tab Genero

Page 44: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

44

2. tab Estatus

3. tab Materia

4. tab Pais

5. tab [variable by rows] [variable by column]

Page 45: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

45

Sesion 9. Estimación econométrica

Estructura básica de la sintaxis

Los comandos en Stata tienen una estructura básica común, que podemos resumir del

siguiente modo:

(by variables1:) comando (variables1) if expresión2 in intervalo3,

opciones4

1. Las variables son las que aparecen en la ventana de variables. Para anotar alguna

sintaxis no hay necesidad de escribir la variable: es mejor hacer doble clic sobre la

variable respectiva (y así se evitan errores de digitación). Así se transporta el nombre

de la variable a la ventana de comandos.

2. La expresión suele tomar estructura de fórmula matemática. 3. Indica un grupo

de observaciones. Por ejemplo in 5/12 quiere decir que solo se tomen en cuenta

las observaciones desde la 5 a la 12.

4. Opciones: Dependen del comando seleccionado.

Los componentes de la sintaxis que se encuentran entre paréntesis pueden omitirse

en algunos casos.

Para ejecutar una sintaxis con by variables: previamente debe ordenar la base de

datos a partir de esa variable. En tal caso la sintaxis será:

sort variable y después si puede escribir la sintaxis completa.

Muchos comandos se pueden abreviar. Generalmente solo se necesitan las tres

primeras letras del comando (a veces menos). Esto no es aplicable a las opciones.

El programa es sensible a mayúsculas. Esto quiere decir que si una variable se llama

Edad, será diferente de otra variable llamada edad, y diferente de otra denominada

EDAD. Los comandos siempre deben ir en minúsculas. El programa no reconoce

tildes ni la letra ñ.

El programa procesa básicamente variables que tengan valores numéricos. Si una

variable es de texto, se puede pasar a números con el comando:

encode variable, generate (nueva variable)

Ahora, utilizaremos en las siguientes sesiones la metodología del análisis econometrico

propuesto por Gujarati. En términos generales, la metodología econométrica tradicional

se ajusta a los siguientes lineamientos:

Page 46: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

46

1. Planteamiento de la teoría o de la hipótesis.

2. Especifi cación del modelo matemático de la teoría.

3. Especifi cación del modelo econométrico o estadístico de la teoría.

4. Obtención de datos.

5. Estimación de los parámetros del modelo econométrico.

6. Pruebas de hipótesis.

7. Pronóstico o predicción.

8. Utilización del modelo para fi nes de control o de políticas.

Para ilustrar estos pasos, consideremos la conocida teoría keynesiana de consumo. Los

datos para esta práctica se hallan en el archivo Gujarati.

1. Planteamiento de la teoría o hipótesis

Keynes plantea: “La ley psicológica fundamental… consiste en que los hombres [y las

mujeres], como regla general y en promedio, están dispuestos a incrementar su

consumo a medida que aumenta su ingreso, pero no en la misma cuantía del aumento

en su ingreso”. En pocas palabras, Keynes postula que la propensión marginal a

consumir (PMC), es decir, la tasa de cambio del consumo generado por una unidad

(digamos, un dólar) de cambio en el ingreso, es mayor que cero pero menor que uno.

2. Especificación del modelo matemático de consumo

A pesar de haber postulado una relación positiva entre el consumo y el ingreso, Keynes

no especifica la forma precisa de la relación funcional entre ambas cosas. Por

simplicidad, un economista matemático puede proponer la siguiente forma de la

función keynesiana de consumo:

Y = β1 + β2X 0 < β2 < 1

donde Y = gasto de consumo y X = ingreso, y donde β1 y β2, conocidos como los

parámetros del modelo, son, respectivamente, los coefi cientes del intercepto y de la

pendiente.

El coeficiente de la pendiente β2 mide la PMC. Esta ecuación plantea que el consumo

está relacionado linealmente con el ingreso, y es un ejemplo de un modelo matemático

de la relación entre consumo e ingreso, llamada en economía función consumo. Un

modelo es simplemente un conjunto de ecuaciones matemáticas. Si el modelo tiene una

sola ecuación, como en el ejemplo anterior, se denomina modelo uniecuacional,

mientras que si tiene más de una ecuación, se conoce como modelo multiecuacional

(consideraremos más adelante este tipo de modelos). En la ecuación anterior la variable

Page 47: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

47

que aparece al lado izquierdo del signo de la igualdad se llama variable dependiente, y

la(s) variable(s) del lado derecho se llama(n) variable(s) independiente(s), o

explicativa(s). Así, en la función keynesiana de consumo, el consumo (gasto) es la

variable dependiente, y el ingreso, la explicativa.

3. Especificación del modelo econométrico de consumo

El modelo puramente matemático de la función de consumo dado en la ecuación

anterior es de interés limitado para el econometrista, pues supone una relación exacta

o determinista entre el consumo y el ingreso. Pero las relaciones entre las variables

económicas suelen ser inexactas. Así, si fuéramos a obtener información sobre gasto de

consumo e ingreso disponible (es decir, después de impuestos) de una muestra de, por

ejemplo, 500 familias mexicanas y graficar estos datos, con el gasto de consumo en el

eje vertical y en el eje horizontal el ingreso disponible, no esperaríamos que las 500

observaciones quedaran exactamente sobre la línea recta de la ecuación porque,

además del ingreso, otras variables afectan el gasto de consumo, como el tamaño de la

familia, las edades de sus miembros, su religión, etcétera. Para dar cabida a relaciones

inexactas entre las variables económicas, el econometrista modificaría la función

determinista de consumo en la ecuación anterior de la siguiente manera:

Y = β1 + β2X + u

donde u, conocida como término de perturbación o de error, es una variable aleatoria

(estocástica) con propiedades probabilísticas bien defi nidas. El término de perturbación

u representa todos los factores que afectan el consumo pero que no se consideran en el

modelo en forma explícita.

La ecuación es un ejemplo de un modelo econométrico. Más técnicamente, dicha

ecuación es un ejemplo de un modelo de regresión lineal. La función econométrica de

consumo plantea como hipótesis que la variable dependiente Y (consumo) está

relacionada linealmente con la variable explicativa X (ingreso), pero que la relación entre

las dos no es exacta: está sujeta a variaciones individuales.

4. Obtención de información

Para estimar el modelo econométrico dado en la ecuación anterior, esto es, para

obtener los valores numéricos de β1 y β2, son necesarios los datos. Aunque tendremos

más que decir en el siguiente capítulo sobre la importancia crucial de los datos para el

análisis económico, por el momento observemos unas cifras relacionadas con la

economía de Estados Unidos de 1960 a 2005, que se presentan en el archivo. La variable

Y en esta tabla es el gasto de consumo personal (GCP) agregado (para la economía en

su conjunto), y la variable X, el producto interno bruto (PIB), una medida del ingreso

Page 48: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

48

agregado, ambos medidos en miles de millones de dólares de 2000. Por consiguiente,

los datos están en términos “reales”, es decir, se midieron en precios constantes (2000).

5. Estimación del modelo econométrico

Antes de cualquier estimación. Graficamos los datos con un diagrama de dispersión.

scatter gcpy pibx

Se observa una relación positiva casi perfecta entre las variables. La siguiente labor es

estimar los parámetros de la función consumo. La estimación numérica de los

parámetros da contenido empírico a la función consumo. Por el momento, note que la

técnica estadística conocida como análisis de regresión es la herramienta principal para

obtener las estimaciones.

Con esta técnica y los datos obtenemos los siguientes valores estimados de β1 y β2, a

saber, −281.4845 y 0.7204. Así, la función consumo estimada es

Yˆ = −281.4845 + 0.7204X

El acento circunflejo (sombrero) sobre Y indica que es un valor estimado. En la fi gura se

muestra la función consumo estimada (es decir, la línea de regresión).

twoway (lfit gcpy pibx ) (scatter gcpy pibx )

Page 49: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

49

Como se aprecia en la figura, la línea de regresión se ajusta bien a los datos, pues los

puntos que corresponden a los datos están muy cercanos a ella. En esta gráfica vemos

que de 1960 a 2005 el coeficiente de la pendiente (es decir, la PMC) fue de alrededor de

0.72, lo que indica que para el periodo muestral un incremento de un dólar en el ingreso

real produjo, en promedio, un incremento cercano a 72 centavos en el gasto de consumo

real.

Decimos “en promedio” porque la relación entre consumo e ingreso es inexacta; como

se deduce de la figura, no todos los puntos correspondientes a los datos están

exactamente en la recta de regresión. Con palabras sencillas, podemos decir que, de

acuerdo con los datos, el promedio o media del gasto de consumo aumentó alrededor

de 72 centavos por cada peso de incremento en el ingreso real.

6. Pruebas de hipótesis

En el supuesto de que el modelo ajustado sea una aproximación razonablemente buena

de la realidad, tenemos que establecer criterios apropiados para comprobar si los

valores estimados obtenidos en una ecuación, por ejemplo, concuerdan con las

expectativas de la teoría que estamos probando. De acuerdo con los economistas

“positivos”, como Milton Friedman, una teoría o hipótesis no verificable mediante la

evidencia empírica no puede ser admisible como parte de la investigación científica.

Como ya señalamos, Keynes esperaba que la PMC fuera positiva pero menor que 1. En

el ejemplo observamos que la PMC es alrededor de 0.72. Pero antes de aceptar este

resultado como confirmación de la teoría keynesiana de consumo, debemos averiguar

si esta estimación está lo bastante abajo de la unidad para convencernos de que no se

trata de un suceso debido al azar o de una peculiaridad de los datos. En otras palabras,

¿es 0.72 estadísticamente menor que 1? Si lo es, puede apoyar la teoría de Keynes.

2000

4000

6000

8000

2000 4000 6000 8000 10000 12000PIB (X)

Fitted values GCP (Y)

Page 50: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

50

Tal confirmación o refutación de las teorías económicas con fundamento en la evidencia

muestral se basa en una rama de la teoría estadística conocida como inferencia

estadística (pruebas de hipótesis). A lo largo de un curso de econometria se analiza

como realizar en la práctica este proceso de inferencia.

7. Pronóstico o predicción

Si el modelo escogido no refuta la hipótesis o la teoría en consideración, servirá para

predecir el (los) valor(es) futuro(s) de la variable dependiente Y, o de pronóstico, con

base en el (los) valor(es) futuro(s) conocido(s) o esperado(s) de la variable explicativa, o

predictora, X.

Para ilustrarlo, suponga que queremos predecir la media del gasto de consumo para

2006. El valor del PIB para 2006 fue de 11,319.4 millones de pesos. Colocamos esta cifra

del PIB en el lado derecho de la ecuación estimada y obtenemos:

display -281.4845+0.7204*11319.4

Yˆ2006 = −281.4845 + 0.7204 (11,319.4)

= 7,873.0113

Por tanto, con ese valor del PIB, la media o el promedio del gasto de consumo previsto

es de alrededor de 7,873 millones de pesos. El valor real del gasto de consumo registrado

en 2006 fue de 8 044 millones de pesos. El modelo estimado, por tanto, subpredijo el

gasto de consumo real por casi 174 000 millones de dólares. Se diría que el error de

predicción es de aproximadamente 174 000 millones de pesos, que representa

alrededor de 1.5% del valor real del PIB para 2006. En algún curso de econometria es

comun averiguar si un error de esa naturaleza es “pequeño” o “grande”. Pero lo que

ahora importa es observar que tales errores de predicción son inevitables, dada la

naturaleza estadística del análisis.

8. Uso del modelo para fines de control o de políticas

Suponga que tenemos la función keynesiana de consumo estimada dada. Suponga

además que el gobierno considera que un nivel de gasto de aproximadamente 8,750

(miles de millones de dólares de 2000) mantendrá la tasa de desempleo en su nivel

actual de cerca de 4.2 por ciento (estimación para principios del 2006). ¿Qué nivel de

ingreso garantizará la cantidad de gasto de consumo fijado como meta?

7873.0113

. display -281.4845+0.7204*11319.4

Page 51: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

51

Si los resultados de la regresión dados en la ecuación parecen razonables, la aritmética

simple mostrará que

8,750 = −281.4845 + 0.7204 (PIB2006)

display (8750+281.4845)/0.7204

que da X = 12 537, aproximadamente. Es decir, un nivel de ingresos de alrededor de 12,

537 (miles de millones) de pesos, con una PMC de cerca de 0.72, producirá un gasto

aproximado de 8 750 millones de pesos.

Como indican estos cálculos, un modelo estimado sirve para fines de control o de

políticas públicas. Mediante una mezcla apropiada de política fi scal y monetaria, el

gobierno puede manejar la variable de control X para producir el nivel deseado de la

variable objetivo Y.

Page 52: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

52

Sesion 10. Un modelo econométrico para la

economía estadounidense

Comenzaremos esta práctica describiendo la base de datos. El archivo “Economia de EU”

se refiere al desempeño de la economía estadounidense en la década de los noventa.

Son datos anuales de las tasas de crecimiento del PIB, PIB per capita, consumo privado

inversión productividad del trabajo manufacturero desepleo y la inflación.

Las primeras dos variables (PIB y PIB per capita) pueden ser consideradas como variables

dependientes y el consumo, la inversión y la productividad pueden ser vistas como

variales independientes que tienen efectos sobre el crecimiento del PIB. El desempleo y

la inflación están intrisecamente correlacionadad, y queda a criterio de ustedes incluirlas

en nuestro modelo de crecimiento.

Primero, es importante conocer la base de datos y hacerle las modificaciones necesarias

como etiquetar las variables, etc.

rename ao Ano

label variable pib "tasa de crecimiento del PIB"

label variable consumo "Tasa de crecimiento del Consumo privado"

label variable inversion "Tasa de crecimiento de la Inversion"

label variable desempleo "Tasa de Desempleo"

label variable pibpercapita "Tasa de crecimiento del PIB per

capita "

label variable inflacion "Tasa de Inflacion"

label variable productivi "Tasa de crecimiento de Productividad

del trabajo en la industria manufacturera"

Tambien es importante escribir el siguiente comando para que Stata reconozca a la

variable Año como la variable tiempo:

tsset ano, year

Ahora, comenzamos con el comando summarize, que nos permite estimar el minimo y

máximo valor, la media aritmética, y la desviación estándar de cada variable.

sum

Page 53: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

53

/* Si se desea conocer el comportamiento con percentiles */

summarize, detail

/* Si solo estamos interesados en una variable */

summarize inflacion, detail

/* Si nos interesa un subconjunto de datos, podemos utilizar

filtro, por ejemplo, los años de la administración de Clinton*/

summarize if Ano>=1993 & Ano<=2000

/* Si queremos contrastar ese periodo con las administraciones

de la familia Bush */

summarize if Ano<1993 | Ano>2000

/* Si queremos verificar todo el periodo excepto los años

electorales */

summarize if Ano~= 2000 & Ano~=1996 & Ano~=1992

Supongamos que se desea verificar la relación entre variables. Por ejemplo, queremos

observar que tan correlacionados están las variables consumo privado y la inversión con

el PIB de la economía estadounidense. Para ello graficamos estas variables:

line pib consumo inversion Ano

/* Podemos explorar la relacion entre variables */

scatter pib consumo

scatter pib inversion

scatter pib productivi

/* Muy útil es el siguiente grafico */

graph matrix pib consumo inversion

Como recordatorio: el comando tsset introduce una variable tiempo en Stata. Por

ejemplo:

/* Si es anual */

Page 54: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

54

generate time = (1960) + _n -1

format t %ty

tsset time

/* Si es mensual */

generate time = m(1960m7) + _n -1

format t %tm

tsset time

/* Si es trimestral */

generate time = q(1995q7) + _n -1

format t %tq

tsset time

Antes de hacer una regresión, es recomendable verificar las correlaciones cruzadas.

Podemos utilizar el siguiente comando:

correlate pib consumo inversion desempleo pibpercapita inflacion

productivi

De acuerdo a la matriz de correlacion podemos señalar que PIB y el PIB per capita están

estrechamente relacionados, pero se puede notar también que cada una de estas

variables tiene una conecccion distinta con la tasa de desempleo. De hecho, el PIB per

capita presenta una alta correlacion negativa con el desempleo (41.43%), contra un

30.35% con el PIB. La inflación y el desempleo presente un grado positivo de correlacion

(35.90%).

Ahora podemos comenzar con una regresión lineal simple. Por ejemplo podemos

verificar la posible relación entre la tasa de crecimiento del PIB con el consumo privado

y la tasa de crecimiento de la inversión.

Antes, es necesario plantear los primeros cuatro pasos de la metodología del análisis

econométrico según Gujarati. Luego, llegamos al quinto paso, con la estimación de la

ecuación de regresión.

De la misma manera, aplicamos el siguiente comando para encontrar las principales

variables que afectan al PIB, el modelo a estimar es:

PIB= b1 + b2Co + b3I – b4D + b5In + b6PR + U

Page 55: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

55

Donde: PIB= PIB, Co= consumo, I= Inversion, D=Desempleo, In=Inflacion y U=termino de error

regress pib consumo inversion desempleo inflacion productivi

/* Con el modelo completo inicial se generan los valores

pronosticados de la variable dependiente y los residuos del

modelo para luego graficarlos, para ello escribimos */

predict lnpibfit

scatter lnpibfit Ano

predict errores, resid

scatter errores Ano

/* Una variable aleatoria distribuida normal es aquella que

gráficamente tiene la siguiente forma*/

set obs 200

gen obs=_n

tsset obs

generate normal=invnorm(uniform())

line normal obs

Tarea 3.

1. Analice los resultados obtenidos en el modelo de regresión lineal, ¿Qué se puede

decir de la prueba de bondad de ajuste? ¿Son las variables son estadísticamente

significativas?

2. Supongamos que se desea modifciar la forma funcional de la ecuación de

regresión y en lugar de estimarla de forma lineal, deseamos que sea en

logaritmos (modelo Log-log), podemos escribir lo siguiente:

gen lnpib=ln(pib)

gen lnconsumo=ln(consumo)

gen lninversion=ln(inversion)

gen lnproductivi=ln(productivi)

gen lndesempleo=ln(desempleo)

gen lninflacion=ln(inflacion)

Page 56: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

56

¿Si estimamos la siguiente ecuación de regresión, se modifica sustancialmente los

resultados?

regress lnpib lnconsumo lninversion lndesempleo lninflacion

lnproductivi

3. ¿Como podría mejorarse el modelo anteriormente estimado?

4. ¿Qué utilidad tiene guardar los errores o residuos de la ecuación de regresión

estimada?

El caso de un modelo econométrico cuadratico

Supongamos que, en general, el modelo es de la forma siguiente:

Y = ßo + ß1X + ß

2 X

2 + ......... + ß

kX

k + ε

Los siguientes datos de la tabla 1 corresponden al tiempo de secado de cierto barniz y

a la cantidad de un aditivo con que se intenta reducir el tiempo de secado:

Cantidad de aditivos del barniz (grs) Tiempo de secado (hrs)

X Y 0 12 1 10.5 2 10 3 8 4 7 5 8 6 7.5 7 8.5 8 9

/* Graficar los datos, y probar que es razonable suponer una

relación parabólica */

scatter y x

/* Para ajustar un polinomio de segundo grado por el método de

mínimos cuadrados, generamos primero una variable que sea el

cuadrado de la variable X */

gen x2=x*x

Page 57: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

57

/* El modelo a estimar es Y = ß0 + ß1X + ß2 X2 + U. Luego

hacemos la regresión de la siguiente manera */

reg y x x2

Los resultados de la regresión son:

Y (gorrito) = 12.1848 – 1.8465*X + 0.1829* X2

( R2 = 0.9226 )

Obsérvese que ambos coeficientes son estadísticamente significativos (probabilidad

asociada es menor a 0.05) además de que no hay evidencia de probable regresión

espuria (relación entre las variables que en realidad no existe) al ser la R2 (0.9226)

menor que el estadístico DW (2.65).

Usando el modelo estimado se predice el tiempo de secado del barniz cuando se han utilizado X = 6.5 gramos de un aditivo: Y = 12.2 – 1.85 (6.5) + 0.183(6.5)2

di 12.2 -1.85*(6.5) + 0.183*(6.5*6.5)

7.90675

Por consiguiente, el tiempo de secado es de 7.9 horas.

_cons 12.18485 .4199999 29.01 0.000 11.15715 13.21255

x2 .1829004 .0294444 6.21 0.001 .1108526 .2549483

x -1.846537 .2448197 -7.54 0.000 -2.445589 -1.247485

y Coef. Std. Err. t P>|t| [95% Conf. Interval]

Total 20.7222222 8 2.59027778 Root MSE = .51675

Adj R-squared = 0.8969

Residual 1.6021645 6 .267027417 R-squared = 0.9227

Model 19.1200577 2 9.56002886 Prob > F = 0.0005

F( 2, 6) = 35.80

Source SS df MS Number of obs = 9

. reg y x x2

Page 58: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

58

Sesion 11. El modelo de consumo para Mexico

(Primera Parte)

En esta practica, estimaremos un modelo del consumo privado para la Mexico a partir

de una especificación convencional que incluye el ingreso, la inflación y el consumo

privado.

El modelo especificado es:

CPt= b1 + b2Y + b3CPt-1 – b4P + b5Pt-1 + Ut

Donde: CPt= consumo privado en el periodo t, CPt-1= consumo privado en el periodo t-1,

Y= PIB y Pt-1 = Nivel de precios en el periodo t-1.

Utilizaremos la base de datos “Datos Anuales” que es un archivo de Excel. Escriban los

siguientes comandos:

clear

cd "D:\Desktop\CURSO de STATA"

log using "D:\Desktop\consumo.smcl"

*Podemos hacer un Do-file y después correrlo con la siguiente

información*

/* Vamos agregar etiquetas a las variables */

label variable yp "PIB percapita"

label variable i "Formacion Bruta de capital fijo privado"

label variable it "Formacion Bruta de capital fijo total"

label variable e "Empleo"

label variable p "Precios internos"

label variable tc "Tipo de cambio nominal"

label variable c "Consumo privado"

label variable y "PIB de Mexico"

/* Definiremos la variable aos como la variable tiempo */

tsset aos, year

/* Si la variable tiempo fueran trimestre en lugar de year se

pone q */

Page 59: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

59

/* Se introducen tambien variables rezagadas con la letra l*/

gen lcp1=l.cp

gen lp1=l.p

Es recomendable graficar las variables antes de realizer cualquier estimacion. En este

caso graficaremos el PIB, Consumo y Precios:

line cp aos

/* Si se quiere graficar varias variables (cp e y por ejemplo)

en un mismo gráfico el comando */

line cp y aos

/* Un comando útil para graficar un diagrama de dispersión */

twoway scatter cp y

/* Podemos graficar la variable dependiente con una

independiente y obtener también la recta de regresión */

twoway (lfit cp y) (scatter cp y)

/* Un grafico útil es */

graph matrix cp y p, half maxis(ylabel(none) xlabel(none))

/* Para obtener el histograma */

hist cp

/* Tambien podemos escribir */

histogram cp, frequency

/* O también */

histogram cp, frequency normal

/* La estadística descriptiva de la base de datos se obtienen

con el comando */

summarize cp y p

describe cp y p

correlate cp y, covariance

Page 60: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

60

/* Estimamos la ecuacion siguiente CPt= b1 + b2Y + b3CPt-1 – b4P +

b5Pt-1 + Ut */

regress cp lcp1 y p lp1

Tarea 4.

1. Si escribimos lo siguiente, que hace Stata?

gen dcp= d.cp

gen const=10

gen r1 = runiform() Random numbers, uniformly distributed between 0 and 1

gen r2 = rnormal() Random numbers, with a standard normal distribution.

gen r3 = rnormal(5,2) Random numbers, with a normal distribution using mean

5 and standard

deviation 2. Alternatively, you could use “gen r3 = 5 + 2 *

rnormal()”, or “gen r3 = 5 + 2 * invnorm(runiform())”

gen r4 = rchi2(27) Random numbers, with a chi-squared distribution with 27

degrees of freedom.

gen r5 = rt(27) Random numbers, with a t-distribution with 27 degrees of

freedom.

2. En el ejercicio analizamos solo las variables consumo, PIB y los precios, ¿en que

medida se asocian todas demas las variables contenidas en el archivo con el

consumo privado?

3. ¿Qué interpretación puede darse al modelo estimado (regress cp lcp1 y p lp1)?

4. ¿Pueden mejorar los resultados si se estima el modelo en logaritmos?

Page 61: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

61

Sesion 11. El modelo de consumo para Mexico

(Segunda Parte)

Continuaremos con el modelo de regresión estimado CPt= b1 + b2Y + b3CPt-1 – b4P + b5Pt-

1 + Ut

Escribiremos lo siguiente.

* El modelo estimado *

/* Hacemos la regresion */

regress cp lcp1 y p lp1

/* Primero, guardamos los errores con el comando predict

inmediatamente de realizar la regresión */

predict errores, resid

/* Si notan en la ventana de variables una nueva variable se ha

creado. Los graficamos con el comando */

line errores aos

/* Otra manera es */

rvfplot, yline (0)

/// Los graficos de los errores no parecen cumplir con el

supuesto de ruido blanco. Podemos guardar los valores estimados

de cp del modelo de la siguiente manera ///

predict cpestimado, xb

/// Aparece una nueva variable llamada cpestimado. Ahora los

graficamos junto con los valores originales para ver el ajuste

del modelo ///

line cp cpestimado aos

/// Observese que la variable dependiente no ajusta bien a los

valores estimados. Es necesario validar los supuestos del modelo

antes de hacer cualquier interpretación o inferencia ///

/* Ahora hacemos la prueba de normalidad a los errores del

modelo */

hist errores

Page 62: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

62

*Prueba de Normalidad*

/// De acuerdo con el grafico, los errores se distribuyen como

una normal pero no es suficiente para aceptar la hipótesis, asi

que es necesario realizar la prueba ///

sktest errores

/// Se observa que la probabilidad asociada a la prueba de

normalidad es de 0.5895 y se requiere sea mayor de 0.05, para

que se acepte la hipótesis de una distribución normal en los

errores, por tanto, hay normalidad en los errores de este modelo

///

*Test de autocorrelación*

/* Para ver si los errores no están corelacionados, hacemos la

prueba de autocorrelación */

estat bgodfrey

/* La probabilidad es menor a 0.05 por lo que se rechaza la

hipótesis de no autocorrelación en los errores de este modelo */

*Podemos estimar el estadístico DW */

estat dwatson

/* es muy lejano de 2 */

*Test de homocedasticidad*

/*Ya se validaron dos supuestos, pero falta probar que en los

errores exista homocedasticidad, para ello escribimos el

siguiente comando */

estat hettest

/* De acuerdo con los resultados la probabilidad asociada a la

prueba de homocedasticidad es de 0.18, lo cual es mayor a 0.05,

por tanto, se acepta la hipótesis de homocedasticidad */

*Corrigiendo autocorrelacion*

/*Podriamos intentar corregir la autocorrelación con Metodo

iterativo de Cochrane Orcutt */

prais cp l.cp y p l.p, corc

///En la salida anterior, se puede observar el numero de

iteraciones que realizó el algoritmo (en este caso fueron 10),

Page 63: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

63

la regresión transformada, y el DW del modelo original y el DW

del modelo corregido. Se puede concluir, con el nuevo DW=2.09,

que ya no existe autocorrelación ///

/* Guardamos los los errores nuevamente en esta nueva regresión

*/

predict errores1, resid

*Luego los graficamos*

line errores1 aos

/* Y le aplicamos las pruebas de normalidad y homocedasticidad */

sktest errores1

El do-file de todo el modelo econométrico realizado en esta última sesión es el siguiente:

*Podemos hacer un Do-file y después correrlo con la siguiente

información*

/* Vamos agregar etiquetas a las variables */

label variable yp "PIB percapita"

label variable i "Formacion Bruta de capital fijo privado"

label variable it "Formacion Bruta de capital fijo total"

label variable e "Empleo"

label variable p "Precios internos"

label variable tc "Tipo de cambio nominal"

label variable c "Consumo privado"

label variable y "PIB de Mexico"

/* Definiremos la variable aos como la variable tiempo */

tsset aos, year

/* Si la variable tiempo fueran trimestre en lugar de year se

pone q */

/* Vamos a crear nuevas variables en logaritmos */

Page 64: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

64

gen lcp=ln(cp)

gen ly=ln(y)

gen lp=ln(p)

/* Se introducen tambien variables rezagadas */

gen c1=l.c

gen lp1=l.p

/* Si se quiere graficar varias variables (cp e y por ejemplo)

en un mismo gráfico el comando */

line cp y aos

/* Un comando útil para graficar un diagrama de dispersión */

twoway scatter cp y

graph matrix cp y p, half maxis(ylabel(none) xlabel(none))

/* Podemos graficar la variable dependiente con una independiente

y obtener también la recta de regresión */

twoway (lfit cp y) (scatter cp y)

/* Para obtener el histograma */

hist cp

/* Tambien podemos escribir */

histogram cp, frequency

/* O también */

histogram cp, frequency normal

/* La estadística descriptiva de la base de datos se obtienen con

el comando */

summarize cp y p

describe cp y p

correlate cp y, covariance

/* Estimamos la ecuacion siguiente CPt= b1 + b2Y + b3CPt-1 – b4P

+ b5Pt-1 + Ut */

Page 65: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

65

regress cp l.cp y p l.p

/* Primero, guardamos los errores con el comando */

predict errores, resid

/* Si notan en la ventana de variables una nueva variable se ha

creado. Los graficamos con el comando */

line errores aos

/* Otra manera e */

rvfplot, yline (0)

/// Los graficos de los errores no parecen cumplir con el

supuesto de ruido blanco. Podemos guardar los valores estimados

de cp del modelo de la siguiente manera ///

predict cpestimado, xb

/// Aparece una nueva variable llamada cpestimado. Ahora los

graficamos junto con los valores originales para ver el ajuste

del modelo ///

line cp cpestimado aos

/// Observese que la variable dependiente no ajusta bien a los

valores estimados. Es necesario validar los supuestos del modelo

antes de hacer cualquier interpretación o inferencia ///

/* Ahora hacemos la prueba de normalidad a los errores del modelo

*/

hist errores

*Prueba de Normalidad*

/// De acuerdo con el grafico, los errores se distribuyen como

una normal pero no es suficiente para aceptar la hipótesis, asi

que es necesario realizar la prueba ///

sktest errores

/// Se observa que la probabilidad asociada a la prueba de

normalidad es de 0.5895 y se requiere sea mayor de 0.05, para

que se acepte la hipótesis de una distribución normal en los

errores, por tanto, hay normalidad en los errores de este modelo

///

*Test de autocorrelación*

Page 66: Manual Del Curso STATA_RPL

Curso-Taller Introducción al manejo de Stata | Ricardo de la Peña Leyva

66

/* Para ver si los errores no están corelacionados, hacemos la

prueba de autocorrelación */

estat bgodfrey

/* La probabilidad es menor a 0.05 por lo que se rechaza la

hipótesis de no autocorrelación en los errores de este modelo */

*Podemos estimar el estadístico DW */

estat dwatson

/* es muy lejano de 2 */

*Test de homocedasticidad*

/*Ya se validaron dos supuestos, pero falta probar que en los

errores exista homocedasticidad, para ello escribimos el siguiente

comando */

estat hettest

/* De acuerdo con los resultados la probabilidad asociada a la

prueba de homocedasticidad es de 0.18, lo cual es mayor a 0.05,

por tanto, se acepta la hipótesis de homocedasticidad */

*Corrigiendo autocorrelacion*

/*Podriamos intentar corregir la autocorrelación con Metodo

iterativo de Cochrane Orcutt */

prais cp l.cp y p l.p, corc

///En la salida anterior, se puede observar el numero de

iteraciones que realizó el algoritmo (en este caso fueron 10),

la regresión transformada, y el DW del modelo original y el DW

del modelo corregido. Se puede concluir, con el nuevo DW=2.09,

que ya no existe autocorrelación ///

/* Guardamos los los errores nuevamente en esta nueva regresión

*/

predict errores1, resid

*Luego los graficamos*

line errores1 aos

/* Y le aplicamos las pruebas de normalidad y homocedasticidad

*/

sktest errores1