Curso Nivelación Stata

download Curso Nivelación Stata

of 36

Transcript of Curso Nivelación Stata

  • 8/20/2019 Curso Nivelación Stata

    1/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    1

    Curso Nivelación STATAMagíster en Políticas Públicas

     Javiera E. Vásquez N.1 

    1  Investigadora, Centro de Microdatos, Departamento de Economía, Universidad de Chile( [email protected]). Cualquier error es responsabilidad exclusiva del autor. Se agradece a J.Eguiguren los comentarios y cooperación en la elaboración de este apunte.

  • 8/20/2019 Curso Nivelación Stata

    2/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    2

    TABLA DE CONTENIDOS

    INTRODUCCIÓN 3 

    I.  UNA PEQUEÑA INTRODUCCIÓN AL PROGRAMA 4 

    II.  COMO ORGANIZAR EL TRABAJO EN STATA 6 

    III.  ¿CÓMO CARGAR UNA BASE DE DATOS? 8 

    IV.  LEYENDO LOS DATOS 15 

    IV.1. DESCRIBE  16 IV.2. CODEBOOK  17 IV.3. EDIT  20 IV.4. IST; INSPECT; DUPLICATES; COUNT; ORDER   22 IV.5. SUM  25 IV.6. TABULATE  28 

    V.  MODIFICACIÓN DE UNA BASE DE DATOS. 38 

    V.1. MODIFICACIÓN DE VARIABLES DE UNA BASE DE DATOS  38 V.2. UNIR BASES DE DATOS: MERGE Y APPEND  42 V.3. CONDENSAR UNA BASE DE DATOS: COLLAPSE  47 

    V.4. CAMBIAR LA ESTRUCTURA DE LA BASE DE DATOS: RESHAPE  48 V.5. ELIMINAR VARIABLES: KEEP Y DROP  51 V.6. CREAR VARIABLES: GENERATE Y EGEN  52 

    VI.  APLICANDO LO APRENDIDO 56 

    VI.1. UN EJEMPLO APLICADO  56 VI.2. ARCHIVOS LOG  60 VI.3. ARCHIVOS DO: PARA TRABAJAR EN FORMA PROGRAMADA EN STATA 61 

    VII.  CREAR MATRICES PARA GUARDAR LOS DATOS 69 

    VIII.  CICLOS RECURSIVOS 71 

    IX.  GRÁFICOS 72 

    X.  AYUDA: HELP 83 

  • 8/20/2019 Curso Nivelación Stata

    3/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    3

    Introducción 

    Este documento pretende los introducir el uso del programa STATA, mediante laentrega de conceptos y comandos básicos para el inicio en este software. En unaprimera parte haremos una pequeña introducción al programa, luego veremosbrevemente como se carga una base de datos, y en una tercera parte se verá cual esla manera más adecuada de trabajar con ella. Adicionalmente, en una cuarta parte severán los comandos que comúnmente se utilizan para inspeccionar una base de datosy obtener estadísticas descriptivas de sus variables, específicamente veremoscomandos como sum, el cual nos entrega un set de estadísticas básicas de la variable,descr i be,  y varios otros. En una quinta parte se enseñara como se pueden modificarlas bases de datos, especialmente, cambiando el nombre de las variables, unir basesde datos, eliminar y agregar variables, cambiar la estructura de ellas y crear nuevasvariables a partir de las variables existentes.

    En una sexta parte se aplicará lo aprendido y a partir de ese ejercicio se introducirá lautilidad de los archivos log y do. En la séptima parte se mostrará cómo podemosplasmar la información que nos interesa de los datos en diferentes tipos de gráficos.Finalmente en la octava y última parte se enseñará la utilidad del comando hel p, elcual nos será de gran utilidad para poder avanzar y utilizar stata cuando no tenemosmuy claro cual es el comando a utilizar.

    Es importante aclarar que gran parte de los comandos de stata se puede hacermediante la utilización directa del comando, o mediante la utilización de ventanas.Durante este curso veremos ambas formas.

    Un concepto importante de entender antes de comenzar a utilizar este softwareestadístico, es el de Base de Datos, el primer paso para poder trabajar con STATA escargar la base de datos. Una base de datos en un conjunto (matriz) de información,tenemos filas y columnas, las que en su conjunto forman la base de datos.Generalmente se organiza de forma tal que las variables se representan por columnasy las observaciones por filas. Por ejemplo, si estamos estudiando las variablesescolaridad e ingreso para las mujeres. Nuestra base de datos tendrá dos columnas,donde cada una de ellas representa la escolaridad e ingreso, y cada fila representa unamujer.

    escolaridad Ingreso10 80.00012 120.00013 110.0004 85.0005 70.0008 65.00017 450.00021 1.200.0002 60.000

  • 8/20/2019 Curso Nivelación Stata

    4/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    4

    I.  Una pequeña introducción al programaSTATA es una aplicación completa e integrada, basada en comandos, que tiene todoslos elementos necesarios para realizar análisis estadístico, manejo de datosestadísticos y gráficos. Las versiones mas nuevas de STATA (a partir de la versión 8.0)posee una forma más fácil de utilizar, que consiste simplemente en hacer clic enventanas con las opciones de análisis y procesamiento de datos, además tiene laopción “antigua” mediante los comandos. El programa posee una ayuda en línea, es unprograma fácil y rápido de utilizar.

    ¿Cómo se ve STATA? 

    Cuando abrimos el programa, inmediatamente podemos distinguir 4 ventanas:

      Review: en esta ventana aparecen los comandos que han sido utilizadosdurante la sección en turno.  Results: muestra los resultados de la aplicación de los comandos, sólo losresultados más recientes son visibles en esta ventana  Variables: en esta venta se presenta el listado de variables que se encuentranen la base de datos que se este trabajando  Commands: corresponde a la ventana donde introducen los comandos paraobtener el resultado deseado. Sirve para utilizar STATA en forma interactiva.

  • 8/20/2019 Curso Nivelación Stata

    5/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    5

    Los íconos de la parte superior tienen los siguientes usos:

    Abrir una base de datos

    Guardar una base de datos, una vez que ha sido modificada en el programa

    Imprimir los resultados de la ventana de resultados (STATA Results)

    Comenzar o abrir un archivo l o g . Estos archivos tienen un formato de texto ypermiten ir guardando todos los resultados.

    Abrir el editor de do-file. Los archivos d o son archivos con esta extensión que nospermiten en forma ordenada escribir todo lo que queremos hacer en nuestra base de

    datos: cambiar la base de datos, sacar estadísticas, etc…, y luego presionando

    correr dicho do y obtener los resultados.2 Permite ver y editar la Base de Datos.

    Es igual al EDITOR, pero no permite eliminar variables ni observaciones.

    Es para detener la ejecución de un comando.

    2 Lo ideal es combinar la utilización de un d o  y un l o g ; el primero permite tener en forma ordenada todoslos comandos que se están utilizando y todas las instrucciones que se quieren ejecutar, mientras que elsegundo guarda en un archivo de texto todos los resultados que surgen de este archivo do.

  • 8/20/2019 Curso Nivelación Stata

    6/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    6

    II. Como organizar el trabajo en STATACuando se abre STATA es importante saber donde se esta trabajando, es decir, en quecarpeta se están guardando los resultados o desde que carpeta vamos a llamar la basede datos, etc. Si no se sabe la carpeta o directorio donde STATA esta ubicado podemosaveriguarlo escribiendo el comando pwd :

    pwd

    C: \ dat a  →  Este resultado nos indica que estamos ubicados en el disco C delcomputador en la carpeta data

    Para cambiar el directorio o carpeta se debe realizar lo siguiente:

    cd C: \ Ni vel aci on_St at a

    Utilizo el comando cd   y entrego la nueva ruta. En este caso le estoy indicando alprograma que se ubique en la carpeta “Nivelacion_Stata” que se encuentra en el discoC del computador.

    La ventaja de indicar desde un comienzo en que carpeta del computador se estatrabajando, es que evita indicar la ruta completa de los archivos cada vez que

    queramos abrir o guardar una base de datos, o abrir o guardar un log. Obviamenteesto tiene sentido cuando para un trabajo específico tenemos todos los archivosnecesarios en la misma carpeta.

    Por ejemplo, si estamos trabajando con información de tres bases de datos distintas, yqueremos dejar la información relevante para el estudio en una sola base datos (másadelante veremos como hacer esto), lo ideal es trabajar en una sola carpeta, “Nivelacion_Stata”, 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 queigual cuando llamemos a cada una de las bases de datos, al estar en carpetasdistintas, tendremos que cambiar la ruta.

    Importante: los sistemas operativos más nuevos permiten que las carpetas tengan

    nombres con espacio en blanco, por ejemplo, “Nivelacion Stata”. Sin embargo, STATAno va a reconocer una carpeta que tenga espacios en blanco en el nombre, a no serque se indique la ubicación de esta carpeta entre comillas. Por este motivo, se debeevitar  llamar a una carpeta con la que van a trabajar en STATA con nombres quecontengan espacios en blanco.3 

    3 Esto problema es común cuando trabajan en el Escritorio del computador, ya que la carpeta en este casoes C:\Documents and Settings\...., tiene espacios en blanco.

  • 8/20/2019 Curso Nivelación Stata

    7/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    7

    Supongamos que la carpeta en que vamos a tratar se llama “Nivelacion Stata”, en laprimera línea del siguiente cuadro podemos apreciar que al entregar la ubicación de lacarpeta utilizando el comando cd , el programa nos entrega un error “invalid syntax”,esto se debe a que el nombre de la carpeta tiene espacios en blanco. Si agregamoscomillas a la ruta no se produce el error.

    Nota: si al introducir un comando no apareceun punto blanco después de ejecutado elcomando, significa que no se termino o no seha terminado de ejecutar. Además, siempreque aparezcan letras rojas significa que hayun error, la ayuda para el error la puedenencontrar pinchando r(198).

    En resumen, para trabajar ordenadamente en STATA es conveniente crear una carpeta

    para cada trabajo independiente, esta carpeta debe tener una ruta que no contengaespacios en blanco en los nombres.

  • 8/20/2019 Curso Nivelación Stata

    8/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    8

    III.  ¿Cómo cargar una base de datos?Las bases de datos en formato Stata tienen extensión .dta. Las versiones antiguas delsoftware no se pueden abrir bases de datos que han sido trabajadas y guardas en unaversión más moderna, cuando intentemos hacer esto el programa entregará un errorindicando que la base no tiene formato Stata.

    Antes de abrir una base de datos se tienen que cumplir dos condiciones:

    1-  El programa debe estar limpio, sin ninguna base de datos ya cargada.Para limpiar el programa de otras bases de datos se debe utilizar elcomando clear. Si he estado trabajando una base de datos previamente lacual se ha modificado y no he guardado estas modificaciones, al intentar

    abrir una nueva base de datos sin limpiar antes arrojará el siguiente error:

    no; dat a i n memory woul d be l ost  

    2-  El programa debe tener suficiente memoria. Para entregarle memoria aStata se debe utilizar el comando set mem . Por ejemplo, si la base de datosque deseamos cargar pesa 100 MB, en la ventana S t a t a Co m m a n d   debemos tipear:

    set mem 100m 

    Si Ud. no agrega memoria y los 10 MB que vienen asignados al abrir elprograma no son suficientes, el programa arrojará el siguiente error:

    no r oomt o add more obser vat i ons

    Esto también puede suceder cuando se ha trabajado en la base de datos yse han creado muchas variables: en un momento el programa se puede

    quedar sin memoria. En este caso se debe limpiar el programa (borrar labase de datos) utilizando el comando clear; entregarle más memoria alprograma utilizando set mem ; abrir la base de datos y realizar todonuevamente. Por esta razón es fundamental que Ud., cuando comience atrabajar, asigne la memoria necesaria para todas las variables que esperagenerar.

  • 8/20/2019 Curso Nivelación Stata

    9/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    9

    El comando general para entregar memoria a Stata es:

    set mem #[ b| k| m| g] [ , per manent l y]

    con la opción “permanently” la cantidad de memoria ingresada semantendrá cada vez que se inicie nuevamente el programa.

    Existen distintas formas de cargar una base de datos:

    1-  Utilizando una base ya grabada con la extensión de STATA, es decir,disponer de la base de datos como n o m b r e .d t a En este caso podemos

    apretar el icono y buscar la ubicación de la base de datos. Tambiénpodemos hacerlo dirigiéndonos a File/Open… 

    2-  Otra forma es tipear en S t a t a Co m m a n d    use “[disco en que laguardaremos] \ [ruta de acceso] \ [nombre de archivo.dta]”, clear. Porejemplo: 

    use "C: \ Ni vel aci on_St at a\ i ngr eso. dt a", cl ear

    o simplemente

    use i ngr eso. dt a, cl ear

    si ya le hemos indicado previamente a Stata que vamos a trabajar en lacarpeta Nivelacion_Stata del disco C.

    Notar que en ambos casos el comando incorpora la opcion “, clear”, esto nosgarantiza que la base de datos sea abra si es que ya existe otra base dedatos previa en el programa, esta opción ahorra el paso previo de ejecutarel comando clear antes de abrir la base de datos.

    Recuerde que si la carpeta en la que esta trabajando tiene espacios enblanco, debo poner comillas al llamar la base de datos, de lo contrarioaparecerá el siguiente error:

  • 8/20/2019 Curso Nivelación Stata

    10/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    10

    Esto porque Stata cree que el nombre de la carpeta es simplementeNivelacion. Si utilizamos comillas no se produce el error.

    Ahora si el nombre de la carpeta o el nombre de la base esta mal ingresadoen el comando se produce el siguiente error:

    3-  Traspasar los datos de un archivo Excel o similar copiando lainformación de este archivo al EDITOR de STATA.

    Esto se hace copiando en el archivo Excel las columnas (variables) quequeremos traspasar como base de datos a STATA (Ctr+C). Luego nos

    dirigimos a STATA abrimos el EDITOR y pegamos la información(Ctr+V). Obviamente antes de hacer esto se debe haber limpiado Stata conel comando clear.

    Algunos aspectos relevantes antes de copiar los datos de Excel a Stata:

      Para Stata, como para cualquier otro software norteamericano, elseparador de miles es la coma (,), y el separador de decimales es el punto(.); Si el computador en el que esta trabajando no esta configurado de estaforma, debe dirigirse a inicio → Panel de Control → Opciones regionales, deidioma, y de fecha y hora → Configuración regional y de idioma → Opcionesregionales, pichar personalizar, aquí se puede cambiar la configuraciónnumérica indicando que el símbolo decimal es “.” Y el símbolo de separaciónde miles “,”.  Todas las variables que son numéricas, deben estar en formatonumérico antes de ser exportadas.

    El siguiente cuadro muestra lo que resulta de pasar la base de datosbase.xls a Stata:

  • 8/20/2019 Curso Nivelación Stata

    11/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    11

    El color rojo indica que la variable no es numérica.

    Generalmente las bases de datos muy grandes no vienen en excel, ya queeste programa es limitado en cuanto al número de filas (observaciones) ynúmero de columnas (variables). El número máximo de filas es de 65.536, yel número máximo de columnas es de 256.

    4-  Otra forma de cargar bases de datos es mediante el comando i n s h e e t  ,este comando permite cargar bases de datos en formato ASCII (texto)mediante el siguiente comando:

    i nsheet usi ng C: \ Ni vel aci on_St at a\ j uni o05. t xt

    o al t er nat i vament e:

  • 8/20/2019 Curso Nivelación Stata

    12/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    12

  • 8/20/2019 Curso Nivelación Stata

    13/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    13

    Cuando las bases de datos vienen el texto y son muy grandes no se puedenver utilizando un block de notas, en estos casos se recomienda utilizar elprograma TextPad que puede ser descargado gratuitamente

    (www.textpad.com). Siempre es recomendable inspeccionar la base dedatos en texto antes de ser traspasada a Stata.

    5-  Si la base de datos tiene otro formato, por ejemplo, SPSS (.sav), dbase(.dbf), Access (.mbd), etc; existe un software llamado Stat Transfer, quepermite transformar base de datos desde y a diversos formatos. 

    Luego para guardar la base de datos utilizamos el comando save:

    1-  Si quiere reescribir la base de datos antigua:

    save C: \ Ni vel aci on_St at a\ i ngr esos. dt a, r epl ace

    Es importante escribir replace, sino el programa les enviara un errordiciendo que la base de datos ya existe.

  • 8/20/2019 Curso Nivelación Stata

    14/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    14

    2-  Si quiere guardar la base de datos con un nuevo nombre no esnecesario tipear replace:

    save C: \ Ni vel aci on_Stat a\ i ngr esos_new. dt a

    Una vez que los datos han sido cargados, se puede optimizar el espacio queestos ocupan utilizando el comando c o m p r e ss  , este comando comprime labase de datos. Es muy útil cuando trabajamos con bases de datos grandes. 

    Hasta ahora hemos aprendido como cargar una base de datos en Stata, en lo quesigue se verán los comandos básicos para analizar una base de datos.

    Entonces, con los comandos recién estudiados, comencemos por abrir la base dedatos:

    cd C: \ Ni vel aci on_St at aset mem 100muse i ngr eso. dt a, cl ear

  • 8/20/2019 Curso Nivelación Stata

    15/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    15

    IV. Leyendo los datos

    Existen varios comandos que nos permiten obtener información preliminar acerca dede los datos y estadísticas acerca de ellos. Veremos básicamente los comandosdescr i be, codebook, edi t , sum, t ab, i nspect , count y dupl i cat e.  

    Antes de ver detallamente cada uno de estos comandos descriptivos es necesarioaclarar que cada uno de ellos puede ser utilizado para ver el comportamiento degrupos de observaciones mediante las opciones by e i f . Por ejemplo: by sexo:codebook, el cual nos mostrara la aplicación del comando codebook  separado paracada sexo o codebook i f sexo==1, el cual nos mostrará la aplicación del comandocodebook para el sexo que este codificado con el número 1.

    También podemos leer los datos usando las ventanas correspondientes, tal como loobservamos en la siguiente figura:

    Como podemos ver, si vamos a la opción Data y luego seguimos la opción Describedata, veremos una serie de opciones que veremos a continuación, tal como elcomando describe o el codebook. También mediante la opción Data podemosdirectamente ver el editor de stata.

  • 8/20/2019 Curso Nivelación Stata

    16/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    16

    IV.1. Describe

    El comando describe entrega información de todas las variables que se encuentran enla base de datos. Esta información incluye el tipo de almacenamiento (byte, int, long,float, double, string)4, el formato de los datos, la variable que contiene el label(etiqueta), y la descripción de la variable. Además entrega información de número deobservaciones, número de variables y tamaño de la base de datos.

    . descr i be 

    Cont ai ns dat a f r om C: \ Ni vel aci ón_I \ i ngr eso. dt aobs: 252, 748

    var s: 5 19 Mar 2006 12: 01si ze: 5, 307, 708 ( 49. 4% of memory f r ee)

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

    st or age di spl ay val uevar i abl e name t ype f ormat l abel var i abl e l abel- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -esc byt e %8. 0g escol ari dad ( años)expr f l oat %9. 0g exper i enci a l abor aldhombre f l oat %9. 0g genero ( 1 hombre 0 muj er )i ngr eso f l oat %9. 0g i ngr eso l abor alf ol i o l ong %8. 0g- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Cuando la base de datos es muy grande y sólo se quiere obtener información dealgunas de las variables contenidas en ella, después de describe (o simplemente d ) seingresa la lista de variables de las cuales Ud. desea una descripción.

    Otras formas de utilizar el comando describe:

    4 Ver Anexo A sobre el tipo de almacenamiento de datos

  • 8/20/2019 Curso Nivelación Stata

    17/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    17

    Para usar el comando mediante el uso de ventanas basta con seguir el mismo

    esquema recién mostrado y hacer doble clic sobre Describe variables in memory.

    Luego se escribe el nombre de la variable de la cual quiero la descripción y si quisiese,por ejemplo, una descripción especifica, puedo aplicar alguna de las opciones que seobservan en la ventana anterior.

    IV.2. Codebook

    Existen otras formas de obtener una descripción de las variables en la base de datos,una de las mejores es usar el comando codebook. Al igual que con el comandodescribe, al tipear simplemente codebook se va a describir cada variable. El siguientecuadro muestra la diferencia entre ambos comandos:

  • 8/20/2019 Curso Nivelación Stata

    18/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    18

    Claramente el comando codebook  es más completo, presenta la etiqueta de lavariable, el formato, el rango de los datos, si esta codificada en números enteros(units: 1), cuantas observaciones no tienen dato de esta variable, el promedio, ladesviación estándar, y los percentiles.

    Tanto el comando describe  como el comando codebook  nos permite distinguir dostipos de variables, las numéricas y las no numéricas. Sólo se pueden obtenerestadísticas de los datos cuando las variables son numéricas, aunque muchas veces esmás fácil visualizar la base de datos cuando las variables tienen nombres en vez denúmeros o códigos. Por ejemplo, en la variable dhombre de la base de datos vemossólo unos y ceros, siempre tenemos que tener en mente que uno significa hombre ycero mujer.

    También podemos aplicar el comando vía la utilización de ventanas, lo que es similar al

    caso de describe, con la salvedad de que el doble click se hace sobre “Describe datacontents (codebook)”. Ahí se pone el nombre de la variable que queremosinspeccionar:

  • 8/20/2019 Curso Nivelación Stata

    19/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    19

    Otra función que podemos aplicar sobre la misma ventana es condicionarla a algo,como, por ejemplo, que la inspección sea sólo para lo hombres:

  • 8/20/2019 Curso Nivelación Stata

    20/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    20

    IV.3. Edit

    Otra forma de conocer o tener una visión más amplia de la base de datos es medianteel comando edit; el que nos mostrará una planilla donde podremos ver la base de

    datos completa; sus variables y todas sus observaciones. También lo podemos hacervía ventanas mediante la opción “Data” y luego “Data editor”

  • 8/20/2019 Curso Nivelación Stata

    21/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    21

    Al igual que en los casos anteriores también se puede realizar la misma operación víael comando edit y también podemos editar una matriz mas pequeña especificando lasvariables que queramos incluir utilizando la encuesta casen 2003, por ejemplo “edi tsexo eci vi l edad esc” 

  • 8/20/2019 Curso Nivelación Stata

    22/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    22

    IV.4. ist; inspect; duplicates; count; order

    Un comando bastante útil, similar al edit; es el list; el cúal despliega los datos en laventana de resultados (Stata Results); en vez de enviarnos al editor.

  • 8/20/2019 Curso Nivelación Stata

    23/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    23

    Otro comando; el cual asegura que una variable es una codificación única dentro deuna base de datos, es el comando duplicates report. Este comando se usageneralmente para chequear que no existan observaciones duplicadas (foliosduplicados) dentro de una base de datos. Si tenemos la siguiente base de datos:

  • 8/20/2019 Curso Nivelación Stata

    24/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    24

    El resultado que entrega aplicar este comando a la variable “id” es el siguiente:

    Finalmente, existen otros dos comandos interesantes para inspeccionar la base dedatos: inspect y count.

    El comando inspect  muestra la distribución de la variable, la cantidad deobservaciones con valor cero, con valores mayores a cero y sin dato, así como lacantidad de número enteros y no enteros en la variable. Por ejemplo:

  • 8/20/2019 Curso Nivelación Stata

    25/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    25

    El comando count, lo que hace es contar tal como lo dice su nombre. Por ejemplo:

    Un comando adicional; que si bien no sirve para inspeccionar la base de datos, si noayuda a inspeccionarla; ya que nos permite ordenar las variables de la manera quemás nos acomode. Este comando es order el cual se utiliza de la siguiente manera:

    order f ol i o edad esc i ngr eso dhombr e sexo

    y nos entregará la base de datos de tal forma que al aplicar el comando edit la primeravariable que veremos será folio, luego edad, luego años de escolaridad, etc.

    IV.5. Sum

    El comando sum   entrega estadísticas básicas: número de observaciones, promedio,desviación estándar, mínimo y máximo, de las variables que se especifiquen. Si sólo seescribe sum  en Stata Command, se muestran las estadísticas de todas las variables enla base de datos.

  • 8/20/2019 Curso Nivelación Stata

    26/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    26

    . sum Var i abl e | Obs Mean Std. Dev. Mi n Max

    - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -esc | 180914 8. 319069 4. 286882 0 21

    expr | 252748 59. 3625 101. 0047 0 5045dhombre | 252748 . 4987854 . 4999995 0 1i ngreso | 76993 195579. 2 361822 1002 2. 19e+07

    f ol i o | 252748 126374. 5 72962. 21 1 252748

    Si nos interesan las estadísticas de una sola variable, por ejemplo, escolaridad:

    . sum esc

    Var i abl e | Obs Mean Std. Dev. Mi n Max- - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    esc | 180914 8. 319069 4. 286882 0 21

    Si requerimos las estadísticas de escolaridad, pero separado para hombres y mujeres,primero se debe ordenar la base de datos por género (sort dhombre) y luego hacer unsum  utilizando el comando by:

    . sor t dhombre

    . by dhombre: sum esc

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- > dhombr e = 0

    Var i abl e | Obs Mean Std. Dev. Mi n Max- - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    esc | 91557 8. 29598 4. 30015 0 21

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- > dhombr e = 1

    Var i abl e | Obs Mean Std. Dev. Mi n Max- - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    esc | 89357 8. 342726 4. 273139 0 21

  • 8/20/2019 Curso Nivelación Stata

    27/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    27

    Esto mismo se podría hacer alternativamente utilizando if :

    . sum esc i f dhombre==0

    Var i abl e | Obs Mean Std. Dev. Mi n Max- - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    esc | 91557 8. 29598 4. 30015 0 21

    . sum esc i f dhombre==1

    Var i abl e | Obs Mean Std. Dev. Mi n Max- - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    esc | 89357 8. 342726 4. 273139 0 21

    Si al comando sum   le agregamos detail  después de una “,”; STATA entrega unacantidad más amplia de estadísticas sobre la variables. Además de las ya descritasentrega los percentiles, la varianza, la asimetría y la kurtosis.

    . sum esc, det ai l

    escol ar i dad (años)- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Per cent i l es Smal l est1% 0 05% 0 0

    10% 2 0 Obs 18091425% 5 0 Sum of Wgt . 180914

    50% 8 Mean 8. 319069Largest Std. Dev. 4. 286882

    75% 12 2190% 13 21 Var i ance 18. 3773595% 15 21 Skewness - . 128663299% 17 21 Kurt osi s 2. 403091

    Todo lo anterior se puede hacer también mediante ventanas, especificaremos sólo uncaso, donde se pide un sum de la variable esc y se pide una descripción detallada, loque se obtiene mediante la opción “Display additional statistics”

  • 8/20/2019 Curso Nivelación Stata

    28/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    28

    IV.6. Tabulate

    El comando tabulate  (o tab) permite hacer tablas con las variables de interés. Latabla más sencilla se realiza de la siguiente forma:

    . t ab dhombre

    genero ( 1 |hombr e 0 |

    muj er) | Fr eq. Per cent Cum.- - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    0 | 126, 681 50. 12 50. 121 | 126, 067 49. 88 100. 00

    - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tot al | 252, 748 100. 00

    Esta tabla indica el número de observaciones total y de cada una de las categorías dela variable, el porcentaje que cada uno representa sobre el total y el porcentajeacumulado.

  • 8/20/2019 Curso Nivelación Stata

    29/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    29

    El comando tab1  permite hacer esto mismo pero para varias variables

    simultáneamente:. t ab1 dhombre esc

    - > t abul at i on of dhombre

    genero ( 1 |hombr e 0 |

    muj er) | Fr eq. Per cent Cum.- - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    0 | 126, 681 50. 12 50. 121 | 126, 067 49. 88 100. 00

    - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tot al | 252, 748 100. 00

    - > t abul at i on of esc

    escol ar i dad |( años) | Fr eq. Per cent Cum.

    - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -0 | 10, 833 5. 99 5. 991 | 2, 481 1. 37 7. 362 | 5, 434 3. 00 10. 363 | 9, 193 5. 08 15. 444 | 10, 303 5. 69 21. 145 | 7, 512 4. 15 25. 296 | 19, 165 10. 59 35. 897 | 7, 004 3. 87 39. 768 | 20, 503 11. 33 51. 09

    9 | 10, 582 5. 85 56. 9410 | 12, 984 7. 18 64. 1211 | 9, 384 5. 19 69. 3012 | 35, 263 19. 49 88. 7913 | 4, 820 2. 66 91. 4614 | 3, 965 2. 19 93. 6515 | 3, 156 1. 74 95. 3916 | 3, 177 1. 76 97. 1517 | 3, 853 2. 13 99. 2818 | 881 0. 49 99. 7719 | 292 0. 16 99. 9320 | 122 0. 07 100. 0021 | 7 0. 00 100. 00

    - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Tot al | 180, 914 100. 00

    Además, con este comando, se pueden realizar cruces entre variables, por ejemplo:

  • 8/20/2019 Curso Nivelación Stata

    30/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    30

    . t ab esc dhombre

    | genero ( 1 hombre 0escol ar i da | muj er )

    d ( años) | 0 1 | Tot al- - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - -

    0 | 5, 842 4, 991 | 10, 8331 | 1, 198 1, 283 | 2, 4812 | 2, 709 2, 725 | 5, 4343 | 4, 571 4, 622 | 9, 1934 | 5, 284 5, 019 | 10, 3035 | 3, 818 3, 694 | 7, 5126 | 9, 915 9, 250 | 19, 1657 | 3, 501 3, 503 | 7, 004

    8 | 9, 791 10, 712 | 20, 5039 | 5, 173 5, 409 | 10, 58210 | 6, 435 6, 549 | 12, 98411 | 4, 707 4, 677 | 9, 38412 | 18, 245 17, 018 | 35, 26313 | 2, 672 2, 148 | 4, 82014 | 2, 180 1, 785 | 3, 96515 | 1, 523 1, 633 | 3, 15616 | 1, 596 1, 581 | 3, 17717 | 1, 929 1, 924 | 3, 85318 | 326 555 | 88119 | 92 200 | 29220 | 45 77 | 12221 | 5 2 | 7

    - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - -

     Tot al | 91, 557 89, 357 | 180, 914

    Si en vez de las frecuencias uno quiere ver el porcentaje, que sume 100% en formahorizontal (filas), se debe agregar a lo anterior una coma y la palabra row  y ponerademás nofreq  (para que no se muestre las frecuencias):

  • 8/20/2019 Curso Nivelación Stata

    31/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    31

    . t ab esc dhombre, r ow nof r eq

    | genero ( 1 hombre 0escol ar i da | muj er )

    d ( años) | 0 1 | Tot al- - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - -

    0 | 53. 93 46. 07 | 100. 001 | 48. 29 51. 71 | 100. 002 | 49. 85 50. 15 | 100. 003 | 49. 72 50. 28 | 100. 004 | 51. 29 48. 71 | 100. 005 | 50. 83 49. 17 | 100. 006 | 51. 73 48. 27 | 100. 007 | 49. 99 50. 01 | 100. 008 | 47. 75 52. 25 | 100. 009 | 48. 88 51. 12 | 100. 00

    10 | 49. 56 50. 44 | 100. 0011 | 50. 16 49. 84 | 100. 0012 | 51. 74 48. 26 | 100. 0013 | 55. 44 44. 56 | 100. 0014 | 54. 98 45. 02 | 100. 0015 | 48. 26 51. 74 | 100. 0016 | 50. 24 49. 76 | 100. 0017 | 50. 06 49. 94 | 100. 0018 | 37. 00 63. 00 | 100. 0019 | 31. 51 68. 49 | 100. 0020 | 36. 89 63. 11 | 100. 0021 | 71. 43 28. 57 | 100. 00

    - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - - Tot al | 50. 61 49. 39 | 100. 00

  • 8/20/2019 Curso Nivelación Stata

    32/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    32

    Si se quiere que los porcentajes sumen 100% en forma vertical (columnas) debemos

    hacer lo siguiente:. t ab esc dhombre, col nof r eq

    | genero ( 1 hombre 0escol ar i da | muj er )

    d ( años) | 0 1 | Tot al- - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - -

    0 | 6. 38 5. 59 | 5. 991 | 1. 31 1. 44 | 1. 372 | 2. 96 3. 05 | 3. 003 | 4. 99 5. 17 | 5. 084 | 5. 77 5. 62 | 5. 695 | 4. 17 4. 13 | 4. 156 | 10. 83 10. 35 | 10. 59

    7 | 3. 82 3. 92 | 3. 878 | 10. 69 11. 99 | 11. 339 | 5. 65 6. 05 | 5. 85

    10 | 7. 03 7. 33 | 7. 1811 | 5. 14 5. 23 | 5. 1912 | 19. 93 19. 04 | 19. 4913 | 2. 92 2. 40 | 2. 6614 | 2. 38 2. 00 | 2. 1915 | 1. 66 1. 83 | 1. 7416 | 1. 74 1. 77 | 1. 7617 | 2. 11 2. 15 | 2. 1318 | 0. 36 0. 62 | 0. 4919 | 0. 10 0. 22 | 0. 1620 | 0. 05 0. 09 | 0. 0721 | 0. 01 0. 00 | 0. 00

    - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - - Tot al | 100. 00 100. 00 | 100. 00

    Si deseamos que se muestren ambos porcentajes:

    t ab esc dhombre, col r ow nof r eq

    También se pueden hacer tablas utilizando el comando by, primero ordenando deacuerdo a la variable que voy a realizar las tablas, por ejemplo:

    sor t dhombreby dhombre: t ab esc

    Este código entrega dos tablas de la variable escolaridad, una para los hombres y otrapara las mujeres. Lo mismo es posible de ser realizado utilizando el condicional if:

  • 8/20/2019 Curso Nivelación Stata

    33/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    33

    t ab esc i f dhombre==0t ab esc i f dhombre==1

    También se puede utilizar el comando tabulate para generar variables dicotómicas.Por ejemplo, si se quiere generar variables dicotómicas para cada año de escolaridad:

    M⎩

    ⎨⎧

    =

    ⎩⎨⎧

    =

    nosi

    educacióndeañostienesiesc

    nosi

    educacióndeañostienesiesc

    0

    112

    0

    011

     

    Se puede hacer de la siguiente forma:

    t ab esc, gener ate( esc)

    Si los años de educación toman valores que van desde 0 a 21, se generarán 22variables dicotómicas.

    Supóngase ahora que se requiere hacer un cuadro con los años de escolaridad, pero envez de entregar la frecuencia o porcentaje de observaciones en cada categoría, serequiere que muestre una estadística de otra variable, por ejemplo, el promedio deingreso. Para realizar este tipo de tablas se debe usar el comando tab agregándoledespués de una coma la palabra summarize. Para el ejemplo citado debería utilizar elsiguiente código:

  • 8/20/2019 Curso Nivelación Stata

    34/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    34

    . t ab esc, summar i ze( i ngr eso) means| Summar y of| i ngr eso

    escol ar i dad | l abor al( años) | Mean

    - - - - - - - - - - - - +- - - - - - - - - - - -0 | 96996. 2351 | 104083. 112 | 108236. 243 | 112638. 814 | 119092. 965 | 119745. 976 | 136860. 847 | 121445. 45

    8 | 131005. 639 | 147939. 4110 | 169646. 7511 | 171547. 6112 | 196789. 4713 | 234377. 2714 | 267368. 3815 | 337808. 9516 | 394113. 7717 | 599325. 818 | 865582. 6119 | 918467. 220 | 1127102. 921 | 744900. 67

    - - - - - - - - - - - - +- - - - - - - - - - - -

     Tot al | 195714. 26

    Por último, el comando tabstat permite realizar tablas con las siguientes estadísticas:

  • 8/20/2019 Curso Nivelación Stata

    35/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    35

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -mean pr omedi ocount cuenta el número de obser vaci ones que t i ene val orn i gual que countsum sumamax máxi momi n mí ni mor ange r ango=max- mi nsd desvi aci ón estándarvar var i anzacv coef i ci ent e de var i aci on ( sd/ mean)semean err or est ándar de l a medi a = sd/ sqrt ( n)skewness asi met r í akurt osi s kur t osi smedi an medi ana ( l o mi smo que p50)p1 1st per cent i l ep5 5t h per cent i l ep10 10t h percent i l ep25 25t h percent i l ep50 50t h percent i l e ( i gual que l a medi ana)p75 75t h percent i l ep90 90t h percent i l ep95 95t h percent i l ep99 99t h percent i l ei qr r ango i nt er quant i l = p75 - p25q equi val ent e a especi f i car "p25 p50 p75"- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Al poner  by(nombre)  especifica que las estadísticas deben ser entregadasseparadamente para cada valor de la variable “nombre”.

    Por ejemplo, si se quiere obtener el promedio, la mediana, el máximo y el mínimo deingreso por género, se puede realizar de la siguiente forma:

    . t abst at i ngr eso, st at i st i cs( mean p50 max mi n) by(dhombre)

    Summary f or vari abl es: i ngr esoby cat egor i es of : dhombre (gener o (1 hombre 0 muj er ) )

    dhombr e | mean p50 max mi n- - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    0 | 162629. 1 104000 9130004 10021 | 210198. 5 120000 2. 19e+07 1500

    - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

     Tot al | 195579. 2 120000 2. 19e+07 1002- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Como hemos visto en los casos anteriores también podemos tabular usando lasventanas:

  • 8/20/2019 Curso Nivelación Stata

    36/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    36

    Si quisiéramos graficar escolaridad contra sexo hacemos doble click sobre “Table ofsummary statistics” observamos el dibujo que viene y ponemos “esc” en “Rowvariable” y “sexo” sobre “Column variable”.

  • 8/20/2019 Curso Nivelación Stata

    37/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    37

  • 8/20/2019 Curso Nivelación Stata

    38/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    38

    V.  Modificación de una base de datos.

    En esta sección veremos como se pueden modificar las bases de datos, desde losnombres de sus variables y la generación de nuevas variables hasta la forma se comose pueden unir dos bases de datos

    V.1. Modificación de Variables de una base de datos

    Para lograr que una base de datos sea más amigable y sea entendida por cualquierusuario, es recomendable incorporar etiquetas a los números o códigos de lasvariables. Esto se hace mediante la utilización de variables secundarias llamadas valuelabels. Si una variable tiene una variable secundaria que entregue etiqueta a loscódigos que contiene, debería aparecer en el resultado del comando describe.

    Por ejemplo, la variable dhombre:

    No tiene asociada una variable secundaria que nos indique que significa el número 1 yel número 0 en esta variable.

    Entonces para etiquetar los códigos de una variable se deben realizar dos pasos:

    1-  Crear la variable secundaria (value label) que realice el nexo entre los códigos ysus etiquetas:

    l abel def i ne generol bl 1 “Hombr e” 0 “Muj er”

    2-  Indicar que la relación entre la variable y su variable secundaria con lasetiquetas:

    l abel val ues dhombr e generol bl

    Al hacer un describe de la variable “dhombre”, este indica que existe una variable quecontiene la etiqueta de los números o códigos de esta variable:

  • 8/20/2019 Curso Nivelación Stata

    39/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    39

    Si es que la base de datos que uno tiene ya viene con las variables secundarias deetiquetas (value labels), y queremos saber que código esta relacionado a que etiqueta,se debe utilizar el comando label list:

    Por otro lado si queremos en ese instante darle nombre a las variables y su respectivadescripción, hacemos doble click sobre la variable y nos aparecerá el siguiente cuadro:

  • 8/20/2019 Curso Nivelación Stata

    40/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    40

    En N a m e   escribimos el nombre de la variable y en L a b e l   su descripción.

    Adicionalmente existen otros dos tipos de etiquetas: para las variables y para la base

    de datos.

    Para etiqueta una variable (variable label) se utiliza el comando label var:

    l abel var f ol i o “ i dent i f i cador i ndi vi dual ”

    Para etiquetar la base de datos se utiliza el comando label data:

    l abel dat a “Base de I ngr esos Compl eta”

  • 8/20/2019 Curso Nivelación Stata

    41/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    41

    Para ver la base de datos en la pantalla se puede tipear en Stata Command la palabra

    edit  o , o alternativamente puedo tipear list

    Cuando una variable está en formato string (no numérico) no se pueden obtener, ladiferencia es que el primero de los comandos despliega la hoja de cálculo y el segundodespliega los datos en la ventana de resultados (Stata Results). También en el editorse puede introducir las etiquetas a las variables y a los códigos de cada variable.

    Cuando una variable está en formato string (no numérico) no se pueden obtener

    estadísticas de ella. Los comandos encode  y decode  cambian el formato de unavariable string a numérico y viceversa:

    encode var i abl e, gener ate( nueva_vari abl e)

  • 8/20/2019 Curso Nivelación Stata

    42/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    42

    Mediante este código generamos una nueva variable que le asigna un código a cada

    palabra distinta en la variable y deja como etiqueta la palabra.Ahora cuando la variable que no tiene formato numérico, pero en realidad es unnúmero sólo que al traspasarlo a la base de datos quedo en formato string, lorecomendable es utilizar el siguiente comando:

    gener at e nueva_var i abl e=r eal ( var i abl e)

    V.2. Unir bases de datos: merge y append

    Muchas veces es necesario combinar dos o más bases de datos para formar una sola.Para ello se pueden utilizar los comandos merge y append . El primero une dos bases de

    datos utilizando una variable en común (generalmente es un folio o código queidentifica las observaciones en la base de datos). Las dos bases de datos deben estarguardadas en formato .dta y deben estar ordenadas de acuerdo a la variable que se vaa pegar. El objetivo del comando  merge  es agregar variables (columnas) noobservaciones (filas). Supongamos que tenemos dos bases de datos, la primerallamada uno.dta contiene la siguiente información:

    i d esc 

    sexo edad

    123456789

    8911131520109

    122212111

    205545473231282635

    Y supongamos que tenemos otra base de datos (dos.dta) con la siguiente información:

    i d i ngr eso 

    134

    6891011

    8000099000110000

    13000015000020000011500098000

  • 8/20/2019 Curso Nivelación Stata

    43/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    43

    Entonces si queremos pegar (match-merge) la información de ambas bases de datos,

    para formar una sólo base de datos que contenga las variables: id, esc, sexo, edad eingreso, debemos realizar el siguiente procedimiento:

    1-  Ordenar la base de datos dos.dta (using data set) de acuerdo a las variablesque vamos a hacer el pegado (id) y guardar esta base de datos:

    sor t i d save dos. dt a, r epl ace

    2-  Abrir la base de datos uno.dta (master data set), ordenarla de acuerdo a id ypegar la información de la base dos.dta:

    use uno. dtasort i dmer ge id   usi ng dos. dt a

    La base de datos que resulta de esto es de la siguiente forma:

    i d esc 

    sexo edad i ngr eso _mer ge

    12

    34567891011

    89

    11131520109··

    12

    2212111··

    2055

    45473231282635··

    80000·

    99000110000

    ·130000

    ·15000020000011500098000

    31

    331313322

    Al realizar este pegue de datos, el programa generará una variable, si Ud. no le asignaun nombre se creará con el nombre _merge, pero Ud. puede darle el nombre quedesee de la siguiente forma:

    merge i d usi ng dos. dta, _merge( nombre)

  • 8/20/2019 Curso Nivelación Stata

    44/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    44

    Esta variable puede tomar tres valores:

    Ahora supongamos que no se dispone de la base ingreso.dta tal como fue presentadaanteriormente, sino que dispongo de dos bases de datos:

      Ingreso1.dta: que tiene la variable folio, esc, dhombre e ingreso  Ingreso2.dta: que tiene la variable folio y expr.

    Si quiero construir entonces una sola base de datos que contenga todas estas variablesen forma conjunta, debería realizar los siguientes pasos:

    use i ngr eso2. dt a (usi ng dat aset )sor t f ol i osave i ngr eso2. dt a, r epl aceuse i ngr eso1. dt a ( mast er dataset )sor t f ol i omer ge f ol i o usi ng i ngr eso2. dt a

    Lo que este pequeño código nos indica es que carguemos la base de datosingreso2.dta, la ordenemos (utilizando el comando sort) de acuerdo al identificador “folio”, y guardemos los cambios realizados (esta base de datos se denomina usingdataset). Luego abrimos la base de datos a la cual le vamos a pegar variables (masterdataset), ingreso1.dta, la ordenamos de acuerdo al identificador folio, y finalmente lepegamos la información que esta en la base ingreso2.dta utilizando el comando merge.

    Si alguna de las bases de datos no esta ordenada les arrojara un mensaje de error:

    usi ng data not sor t edmast er data not sor t ed

    Por otro lado, el comando append , anexa observaciones para el mismo conjunto devariables, es decir, agrega filas a la base de datos. Supongamos que además deuno.dta tenemos otra base de datos (tres.dta) que contiene las mismas variables quela primera pero para otros 10 individuos distintos:

     _merge=1 cuando la observación esta sólo en Master Dataset _merge=2 cuando la observación esta sólo en Using Dataset

    mer e=3 cuando las observaciones están en ambas bases de datos

  • 8/20/2019 Curso Nivelación Stata

    45/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    45

    i d esc

     

    sexo edad

    10111213141516171819

    89111315201094

    1222121112

    20554547323128263520

    Entonces podemos juntar estas 19 observaciones en una sola base de datos medianteel comando append , de la siguiente forma:

    use dos. dt aappend usi ng t r es. dt a

    El resultado es el siguiente:

    i d esc 

    sexo edad

    1234567891011121314

    1516171819

    891113152010989111315

    201094

    12221211112221

    21112

    2055454732312826352055454732

    3128263520

  • 8/20/2019 Curso Nivelación Stata

    46/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    46

    Supongamos ahora que no contamos con la base ingreso.dta, sino que tenemos dos

    bases de datos. La primera (ingreso3.dta) tiene las primeras 126.374 observaciones, yla segunda (ingreso4.dta) tiene las siguientes 126.374 observaciones. En total si juntamos ambas bases completamos las 252.748 observaciones de la base original(ingreso.dta).

    Podemos juntar la información de ambas bases en una sola de la siguiente forma:

    use i ngr eso3. dt aappend usi ng i ngreso4. dt a

    Podemos juntar bases de datos usando las ventanas también; en la opción “Data”existe la opción “Combine datasets” luego se hace doble clic en “Merge” o “Append” ynos sale una ventana que nos permite juntar dos o múltiples bases de datos:

    Luego, para el caso de merge, buscamos la base que le queremos añadir a la base queestamos usando y ponemos su dirección donde sale “Filnename of dataset on disk”,luego en “Key variables” ponemos el nombre de la variable mediante el cual queremosunir las dos bases de datos.

  • 8/20/2019 Curso Nivelación Stata

    47/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    47

    V.3. Condensar una base de datos: collapse

    En algunas ocasiones las bases de datos disponen de más de una observación por

    individuo, país, empresa, etc. Si nos interesa trabajar sólo con una observación porindividuo podemos condesar la base de datos mediante el comando collapse.

    Suponga que tiene una base de datos de hogares y que cada hogar tiene unaobservación para cada miembro del hogar que lo integra. Si cada hogar dispone de unidentificador único, entonces se puede formar una base de datos alternativa quecontenga una sola observación por hogar (en lugar de una observación por individuo)para cada una de las variables deseadas. Esta observación puede contener la media,desviación estándar, suma, u otro estadístico por hogar (sino se especifica calcula lamedia). Por ejemplo:

    col l apse ( mean) edad ( max) educaci on ( p50) i ngr eso, by( hogar )

    El código anterior crea una base de datos con cuatro variables (hogar, edad, educacióne ingreso) con una observación por hogar, la cual contiene el promedio de la edad porhogar, el máximo de la educación por hogar y la mediana del ingreso por hogar.

  • 8/20/2019 Curso Nivelación Stata

    48/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    48

    V.4. Cambiar la estructura de la base de datos: reshapePara explicar como se utiliza este comando primero vamos a definir dosrepresentaciones de las bases de datos: wide form (forma horizontal) y long form (forma vertical).

    Long form:

    Wide form:

    En la base de datos en forma vertical (long form) podemos ver que existe una variableque es constante al interior de un “grupo”, en este caso, al interior de una empresa,

  • 8/20/2019 Curso Nivelación Stata

    49/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    49

    tenemos una variable que varía al interior de este grupo, el precio, y una variable que

    me sirve para identificar las distintas observaciones al interior de un grupo, que es lavariable “año”.En la base de datos en forma horizontal (wide form), tengo una sola observación porempresa pero tengo más de una variable precio, una para cada año.

    El comando reshape me permite intercambiar las bases de datos entre estos dos tiposde formatos, de la siguiente forma:

    Long Wide

    r eshape l ong pr eci o, i ( Empr esa) j ( año) ( Wi de →Long)

    r eshape wi de pr eci o, i ( Empr esa) j ( año) ( Long →Wi de)

  • 8/20/2019 Curso Nivelación Stata

    50/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    50

     Wide Long

  • 8/20/2019 Curso Nivelación Stata

    51/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    51

    V.5. Eliminar variables: keep y drop

    Ahora, si se tiene una base de datos que contiene muchas variables y sólo se va atrabajar con algunas de ellas, se puede utilizar el comando keep para mantener en labase de datos sólo las variables que interesan. Por ejemplo:

    keep esc i ngr eso

    También podríamos requerir mantener todas las variables pero sólo un subconjunto delas observaciones, como por ejemplo, las de los hombres:

    keep i f dhombr e==1

    o las de las personas con menos de 12 años de escolaridad

    keep i f esc=200000

    El comando drop cumple el mismo rol que el comando keep, sin embargo, éste borraobservaciones o variables, en vez de mantenerlas. Para realizar lo mismo que hicimoscon el comando keep pero utilizando drop, se debería hacer lo siguiente:

    dr op expr dhombr e f ol i odrop i f dhombr e==0

    dr op i f esc>12drop i f i ngr eso

  • 8/20/2019 Curso Nivelación Stata

    52/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    52

    V.6. Crear variables: generate y egen

    Uno de los comandos más relevantes en STATA es generate (“gen” o “g”). Estecomando genera una nueva variable definida en base a una expresión numérica, lacual puede contener otras variables.

    El siguiente cuadro resume las expresiones más utilizadas:

    + suma >= Mayor o i gual & y- r est a > Mayor estr i ct o que | o* mul t i pl i caci ó

    n

  • 8/20/2019 Curso Nivelación Stata

    53/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    53

    Ejemplos:

    gener at e age2 = age*age ( gener a var i abl e edad al cuadrado)gen uni t pr = cost / quant i t ygen xl ag = x[ _n- 1]

    Otro ejemplo. En la base ingreso.dta se tienen los años de escolaridad (esc); a partirde esta variable se podría generar una nueva (tesc) con el nivel de educaciónalcanzado por cada individuo (Básica Incompleta, Básica Completa, Media Incompleta,etc..). Esto se hace con el siguiente código:

    g t esc=.r epl ace t esc=1 i f esc8 & esc12

    El comando replace, reemplaza observaciones que cumplen con cierta condición conel valor que uno especifica.

    Otro comando útil, similar a generate, es el comando egen. Este contiene una grancantidad de funciones pre-establecidas con las que se pueden generar nuevas

    variables. La diferencia con el comando generate  es que en este uno define comoquiere generar la variable (sumando, restando, multiplicando, etc.), sin embargo, elcomando egen tiene funciones ya establecidas, por ejemplo, el promedio, la desviaciónestándar, etc…

    Algunos ejemplos de estas funciones son:

      count ( x) : cr ea una var i abl e que cont i ene el numero deobser vaci ones ( di st i nt as de · ) en x.

      concat ( x y · · · z) : concat ena l as var i abl es ent r e par ént esi s,genera una var i abl e con f ormat o st r i ng ( no numéri co)

      gr oup( x y · · · z) : gener a una var i abl e que t omas l os val ores1, 2, … par a l os gr upos f or mados por l as var i abl es ent r epar ént esi s. El orden de l os grupos va a depender de cómo est énordenadas l as var i abl es ent r e par ént esi s.

      max(x) : gener a una var i abl e que cont i ene el máxi mo val or de x  mean(x) : gener a una vari abl e que cont i ene el promedi o de x  medi an( x) : gener a una var i abl e que cont i ene l a medi ana de x  mi n( x) : genera una var i abl e que cont i ene el mí ni mo val or de x

  • 8/20/2019 Curso Nivelación Stata

    54/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    54

      r max( x y · · · z) : ent r ega el máxi mo val or ent r e x, y, …, z para

    cada obser vaci ón ( f i l a)  r mean( x y · · · z) : ent r ega el pr omedi o de x, y, …, z par a cadaobservaci ón (f i l a)

      r mi n( x y · · · z) : ent r ega el mí ni mo val or ent r e x, y, …, z paracada obser vaci ón ( f i l a)

      r mi ss( x y · · · z) : ent r ega el númer o de mi ssi ng val ues ( si nobser vaci ón) en x, y, …, z par a cada obser vaci ón ( f i l a)

      r sum( x y · · · z) : ent r ega l a suma de x, y, …, z par a cadaobservaci ón (f i l a)

      seq( ) , f r om( a) t o(b) bl ock( c) : gener a una secuenci a de númer osde a hast a b en bl oques de c.

      sum( x) : gener a una var i abl e que cont i ene l a suma de x.

    La mayoría de estas funciones pueden ser combinadas con el comando by, el quepermite generar variables por diversas categorías. Por ejemplo, si se quiere crear elpromedio de la experiencia laboral para cada año de educación, se debe realizar losiguiente:

    egen promexpr =mean( expr ) , by( esc) óby esc: egen promexpr=mean( expr)

    La segunda forma requiere que la base de datos esté ordenada de acuerdo a lavariable utilizada en by, en este caso, debemos tipear antes:

    sort esc 

    En esta parte veremos de manera más aplicada los comandos utilizados en las clasesanteriores; para ello será necesario enseñar a usar los archivos do y los archivos log,que como veremos serán de gran utilidad, ya que nos permitirán ir guardandoinformación. Finalmente veremos el comando hel p; el cual es un comando auxiliar quenos permite encontrar los comandos necesarios para realizar un gama de funciones enstata.

    Como con casi todos los comandos también se pueden obtener los mismos resultados,mediante el uso de ventanas:

  • 8/20/2019 Curso Nivelación Stata

    55/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    55

    Luego de apretar doble clic sobre “Create new variable” podemos ver que es trivial laforma de generar otra variable.

  • 8/20/2019 Curso Nivelación Stata

    56/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    56

    VI. Aplicando lo aprendidoEn esta sección veremos de manera aplicada lo que hemos aprendido hasta ahora y enlos dos siguiente mostraremos a partir de está sección la utilidad de los archivos do ylog. El archivo log es el archivo donde se va guardando todo lo que aparece en laventana de resultados, mientras que el do es un archivo que nos permite programartodo el trabajo que queremos realizar en stata.

    VI.1. Un ejemplo aplicado

    Supongamos que, utilizando la encuesta casen 2003, queremos obtener la tasa depobreza y la tasa de indigencia; además el número de personas que caen en éstacategoría.

    El primer paso es establecer memoria (si no esta preestablecida en el programa) yluego abrir la base de datos:

    set mem 700muse C: \ Ni vel aci ón_St ata\ Casen2003. dt a

    también la apertura de la base de datos, se puede hacer de la manera alternativa quevimos en la primera parte.

    set mem 700mcd C: \ Ni vel aci ón_St at a\use Casen2003. dta

    Luego debemos empezar a generar las variables necesarias para encontrar las tasas depobreza e indigencia correspondiente. Como la encuesta CASEN se realiza a hogares ynosotros estamos interesados en el porcentaje de individuos pobres e indigentes y noen el porcentaje de hogares pobres e indigentes; lo que necesitamos es tener algúnindicador per capita.

    Como vimos en la clase anterior al aplicar el comando egen group(x) estamoscreando una variable que toma los valores 1,2,… para todos los valores que puedetomar x o la variable entre paréntesis. El orden de los grupos va a depender de cómoestén ordenadas las variables entre paréntesis. Por ejemplo; si la variable x fuese añode nacimiento del individuo y está tomará los valores 1980, 1981 y 1982; la variableque se genera a través de este comando es una variable que toma el valor de 1 paratodos aquellos que nacieron en 1980; el valor de 2 para todos lo que nacieron en 1981y el valor de 3 para los que nacieron en 1982.

  • 8/20/2019 Curso Nivelación Stata

    57/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    57

    Lo que generaremos a continuación es una variable que generará un identificador que

    será el mismo para los individuos que pertenecen a un mismo hogar y luego medianteel comando tab podemos ver el número de personas que existen por hogar y realizaruna pequeña inspección de la variable:

    egen i d=gr oup( segment o f ol i o)edi t i d np

  • 8/20/2019 Curso Nivelación Stata

    58/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    58

    En la tabla anterior podemos ver que hay hogares (68.153) e individuos (257.077);además podemos ver que el número de individuos por hogar varía. La variable i d tieneasignado un código por hogar y vemos que el hogar 13 tiene asociados 3 individuos, asu vez el hogar número 7 tiene asociados 2 individuos y en el hogar numero 4 son 5individuos.

    Ahora, sabiendo el número de personas que viven en el hogar, generaremos el ingresoper capita del hogar para lo cual tenemos que dividir el ingreso total del hogar por elnúmero de personas que viven en él. Veamos los diferentes tipos de personas queviven en el hogar: 

    t ab pco1

    parent esco con el | j ef e( a) hogar | Fr eq. Percent Cum.

    - - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - j ef e( a) de hogar | 68, 153 26. 51 26. 51cónyuge o par ej a | 47, 864 18. 62 45. 13

    hi j o( a) , hi j ast r o( a) | 104, 375 40. 60 85. 73padr e o madre | 1, 776 0. 69 86. 42

    suegr o(a) | 1, 166 0. 45 86. 87yerno o nuera | 3, 749 1. 46 88. 33

    ni et o( a) | 19, 044 7. 41 95. 74her mano( a) | 2, 828 1. 10 96. 84cuñado( a) | 942 0. 37 97. 21

    otr o f ami l i ar | 4, 875 1. 90 99. 10

    no f ami l i ar | 1, 675 0. 65 99. 75s. domést i co p. adent r o | 630 0. 25 100. 00- - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

     Tot al | 257, 077 100. 00

    Como vemos en algunas casas ocurre que hay personas que prestan serviciosdomésticos puertas adentro y generalmente para calcular el ingreso per capita delhogar debemos excluir a esas personas. Para ello generaremos una variable llamada s;la cual tomará el valor 1 si la personas pertenece al hogar y no presta servicios dentrode él; y toma el valor de 0 si la personas presta servicios dentro del hogar. Despuésgeneraremos el número de personas que pertenecen al hogar y no prestan serviciosdentro de él. Finalmente botamos la variable s, ya que la creamos sólo como unavariable momentánea para excluir a las personas que prestan servicios domésticos

    puertas adentro y ya tenemos la variable np, que es la que nos señala el número depersonas que realmente son parte del hogar.

    g s=1r epl ace s=0 i f pco1==12egen np=sum( s) , by( i d)drop s

  • 8/20/2019 Curso Nivelación Stata

    59/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    59

    Ahora, que tenemos el número de personas que pertenecen al hogar, estamos listos

    para crear la variable que nos indica el nivel de ingreso individual de los habitantes delpaís y poder separarlo de acuerdo al nivel de pobreza.

    g i ng=ytothaj / np

    Una persona es pobre si está recibe ingresos menores a $43.712 y vive en zonaurbana y $29.473 y está vive en zona rural. Una persona será indigente si recibeingresos menores a $21.856 y vive en zona urbana; y $16.842 si esta vive en zonarural. Como se está pidiendo el número y le porcentaje de pobres e indigentes,necesitamos clasificar a los individuos en alguna de las tres categorías posible; nopobres; pobres no indigentes e indigentes.

    g pobre=1 i f i ng

  • 8/20/2019 Curso Nivelación Stata

    60/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    60

    VI.2. Archivos log

    Existen dos formas de trabajar en Stata: interactiva y programada. Cuando se trabajaen forma programada se escribe en un archivo d o  todos los comandos que se quierenejecutar y luego se corre el programa de una vez para obtener los resultados, estoserá visto en la otra sección. Cuando se trabaja en forma interactiva, se ejecutan loscomandos directamente en la ventana Command, viendo los resultados en la ventanaResults. Cuando se trabaja de esta forma es importante ir registrando todos los pasosrealizados, en caso que se quiera repetir algo en una siguiente ocasión o simplementepara tener un respaldo de todo lo realizado. Para esto se utilizan los archivos l o g ,estos no son más que un archivo de texto que contiene todo los comandos ejecutadosy sus respectivos resultados.

    El archivo log del ejercicio visto anteriormente:

  • 8/20/2019 Curso Nivelación Stata

    61/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    61

    Siempre es recomendable abrir un archivo log al inicio de cualquier trabajo:

    l og usi ng cl ase1. l og

    Si el archivo log que estamos tratando de abrir ya existía, el programa nos entregaráel siguiente error:

    f i l e C: \ Ni vel aci on_St at a\ cl ase1. l og al r eady exi st s

    Frente a esto tenemos dos opciones, cual de ellas se tome depende de los objetivos:reemplazar el archivo ya existente, o seguir escribiendo en el archivo existente acontinuación de lo último ingresado.

    Para reemplazar el archivo existente:

    l og usi ng cl ase1. l og, r epl ace

    Para seguir a continuación del archivo existente:

    l og usi ng cl ase1. l og, append

    VI.3. Archivos do: para trabajar en forma programada en STATA

    Como se ha mencionado en clases anteriores, existen dos formas de trabajar enSTATA, en forma interactiva y en forma programada. La primera forma consiste en irejecutando los comandos directamente en la ventana de comando, los resultados seobtienen 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 harealizado varias modificaciones a la base de datos y uno quiere volver atrás, se pierdetodo 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 variasmodificaciones a la base de datos y obtener varias estadísticas de ella, es programartodos los comandos en un archivo do.

  • 8/20/2019 Curso Nivelación Stata

    62/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    62

    El archivo do no es mas que un archivo de texto que permite escribir las instrucciones

    para la ejecución de comandos en Stata.Para abrir el archivo do debemos pinchar el icono , y se abrirá la siguiente ventana:

    Por ejemplo, la forma típica de comenzar un do sería la siguiente:

    Este icono es para

    correr el do.

  • 8/20/2019 Curso Nivelación Stata

    63/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    63

    Con esto ya he abierto la base de datos. A continuación puedo empezar a escribir loscomandos 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 ahoraen forma más ordenada.

    Es importante constantemente ir corriendo el do para detectar los errores que se estáncometiendo.

    En el cuadro siguiente observamos el archivo do file correspondiente al ejemplo vistoen la sección 1;

    Al poner * antes de cualquierfrase, no se lee comocomando. Sirve para irhaciendo anotaciones

  • 8/20/2019 Curso Nivelación Stata

    64/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    64

    A continuación reportaremos las tasas de indigencia y pobreza para diferentescategorías:

    a. Por sexo del jefe de hogar

    En primer lugar será necesario crear una variable llamada sexoj h, el cual tomará elvalor de 1 si éste es hombre y 2 si éste es mujer. Luego se etiquetará la variabledándole el nombre de hombre cuando la variable sexoj h tome el valor 1 y mujercuando sexoj h tome el valor 2.

  • 8/20/2019 Curso Nivelación Stata

    65/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    65

    g sexoj h=sexo i f pco1==1

    l abel def i ne sexol bl 1 "Hombr e" 2 "Muj er"l abel val ues sexoj h sexol bl

    Ahora se generará una variable que tomará el valor de 1 para todos los miembros delhogar cuando esté es hombre y 2 para todos los miembros del hogar cuando este esmujer. Esto se hace generando una variable con el comandoegen sexoj hm=max(sexoj h) , by ( i d) el cual genera una variable que toma elnúmero mayor –asociado a la variable sexoj h-   por hogar; y como en los hogaresdonde el jefe de hogar es hombre el número mayor de la variable sexoj h  es 1 –lootros son missings- y en los hogares donde el jefe es mujer ese número es 2.

    egen sexoj hm=max(sexoj h) , by( i d)drop sexoj h

    r ename sexoj hmsexoj hl abel val ues sexoj h sexo

    edi t i d sexo sexoj h sexoj hm 

  • 8/20/2019 Curso Nivelación Stata

    66/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    66

  • 8/20/2019 Curso Nivelación Stata

    67/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    67

    t ab pobr e sexoj h [w=expr ] , col nof r eq

    Si t uaci on de | sexoj hpobr eza | hombr e muj er | Tot al

    - - - - - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - -I ndi gent e | 4. 24 6. 30 | 4. 70

    Pobr e no i ndi gent e | 13. 82 15. 00 | 14. 08No pobre | 81. 94 78. 70 | 81. 22

    - - - - - - - - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - - Tot al | 100. 00 100. 00 | 100. 00

    Podemos decir que  las personas que viven en hogares con jefes de hogar hombrestienen una tasa de indigencia es un 4.24%, y un porcentaje de pobres no indigentesigual a 13.82%, con lo cual la tasa de pobreza es un 18.06%. Por su parte laspersonas que viven en hogares con jefes de hogar mujer tienen una tasa de indigenciade 6.3%, y un porcentaje de pobres no indigentes un 15%, de esta forma la tasa depobreza es 21.3%.

    b. Número de personas del hogar

    Se generará una variable llamada cat eg_np la cual divide a los hogares en 8diferentes categorías, la cuales dependen del número de personas que tenga el hogar.La categorías 1, son los hogares que tienen un solo miembro, la segunda categoríasson los hogares que tienen dos miembros, y así hasta la octava categoría que incluyea los hogares que tienen 8 o más miembros.

    g cat eg_np=npr epl ace cat eg_np=8 i f np>=8t ab cat eg_np pobre [w=expr] , r ow nof r eq

    | Si t uaci on de pobr ezacat eg_np | I ndi gent e Pobr e no No pobr e | Tot al

    - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - -1 | 1. 96 2. 89 95. 15 | 100. 002 | 1. 95 4. 25 93. 81 | 100. 003 | 3. 15 9. 24 87. 60 | 100. 004 | 3. 76 12. 65 83. 58 | 100. 005 | 4. 74 16. 29 78. 97 | 100. 006 | 7. 08 18. 98 73. 94 | 100. 007 | 7. 41 22. 18 70. 41 | 100. 008 | 9. 73 24. 45 65. 82 | 100. 00

    - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - - Tot al | 4. 70 14. 08 81. 22 | 100. 00

    En esta tabla se puede apreciar como las tasas de pobreza e indigencia aumentan a medidaque aumenta el tamaño del hogar. En hogares de una persona el porcentaje de indigenteses 1.96%, y el porcentaje de pobres no indigentes es 2.89%. Por el contrario, en hogares

  • 8/20/2019 Curso Nivelación Stata

    68/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    68

    con 8 personas o más, el porcentaje de indigentes de 9.73% y de pobres no indigentes

    24.45, con lo cual la tasa de pobreza en estos hogares alcanza un 34.2%.c. Por educación del Jefe de hogar 

    En primer lugar será necesario crear una variable que determine el nivel de educación(años de educación) de las personas encuestadas y luego etiquetar aquellas variables.El nivel de educación viene determinado en la base de datos, sin embargo por ejercicioaquí se vuelve a generar una variable que determine el nivel educativo que la personaa alcanzado:

    g l educ=0 i f e7t==1 | e7t==4 | e7t==16r epl ace l educ=1 i f e7t==2 & e7c

  • 8/20/2019 Curso Nivelación Stata

    69/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    69

    t ab l educj h pobr e [w=expr ] , r ow nof r eq| Si t uaci on de pobr eza

    l educj h | I ndi gent e Pobr e no No pobr e | Tot al- - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - -

    0 | 7. 49 18. 53 73. 98 | 100. 001 | 7. 93 20. 58 71. 48 | 100. 002 | 5. 68 18. 99 75. 34 | 100. 003 | 5. 13 17. 09 77. 78 | 100. 004 | 3. 49 11. 19 85. 33 | 100. 005 | 0. 93 5. 27 93. 81 | 100. 006 | 1. 33 3. 59 95. 08 | 100. 007 | 0. 54 0. 51 98. 95 | 100. 00

    - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +- - - - - - - - - -

     Tot al | 4. 70 14. 08 81. 22 | 100. 00 

    En la tabla anterior se puede apreciar claramente como la tasa de pobreza e indigenciadisminuyen con el nivel educacional.

    VII.  Crear matrices para guardar los datos

    Una forma práctica de guardar la información proveniente de la aplicación del comandos u m  es a través de matrices. Cuando se hace un su m  de una variable, en la memoriatemporal del programa quedan guardadas las estadísticas; el nombre con el que cadauna de éstas se guarda se puede saber al tipear r e t u r n l i s t   después de hacer un sum.

    . sum esc

    Var i abl e | Obs Mean Std. Dev. Mi n Max- - - - - - - - - - - - - +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    esc | 180914 8. 319069 4. 286882 0 21

    . return l i s t

    scal ars :r ( N) = 180914

    r ( sum_w) = 180914r ( mean) = 8. 319068728788263r ( Var ) = 18. 37735307412638r ( sd) = 4. 28688150922397

    r ( mi n) = 0

    r ( max) = 21r ( sum) = 1505036

    Lo mismo se puede hacer después de un s u m , d e t a i l  :

    . sum esc, deta i l

    escol ar i dad (años)

  • 8/20/2019 Curso Nivelación Stata

    70/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    70

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Per cent i l es Smal l est

    1% 0 05% 0 0

    10% 2 0 Obs 18091425% 5 0 Sum of Wgt . 180914

    50% 8 Mean 8. 319069Largest Std. Dev. 4. 286882

    75% 12 2190% 13 21 Var i ance 18. 3773595% 15 21 Skewness - . 128663299% 17 21 Kurt osi s 2. 403091

    . return l i s t

    scal ars :r ( N) = 180914

    r ( sum_w) = 180914r ( mean) = 8. 319068728788263r ( Var ) = 18. 37735307412638r ( sd) = 4. 28688150922397

    r ( skewness) = - . 1286631597722507r ( kurt osi s) = 2. 403091261120855

    r ( sum) = 1505036r ( mi n) = 0r ( max) = 21r ( p1) = 0r ( p5) = 0

    r ( p10) = 2r ( p25) = 5r ( p50) = 8r ( p75) = 12r ( p90) = 13r ( p95) = 15r ( p99) = 17

    Supóngase que se requiere hacer la siguiente tabla de datos:

    Genero Ingresopromedio

    Escolaridadpromedio

    Experiencialaboral

    promedio.Hombre

    Mujer

    Esto puede hacerse generando una matriz de dos filas y tres columnas, paraposteriormente completar sus elementos con las estadísticas correspondientes. Paraesto primero se debe generar la matriz, llamémosla A.

    mat r i x A=J ( 2, 3, 0)

  • 8/20/2019 Curso Nivelación Stata

    71/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    71

    Luego se hace el primer s u m , de la variable ingreso para los hombres, y guardo este

    resultado en la posición [1,1] de la matriz:sum i ngr eso i f dhombre==1mat r i x A[ 1, 1] =r ( mean)

    Y así sucesivamente hasta completar toda la matriz:

    sum i ngr eso i f dhombre==0mat r i x A[ 2, 1] =r ( mean)sum esc i f dhombre==1mat r i x A[ 1, 2] =r ( mean)sum esc i f dhombre==0mat r i x A[ 2, 2] =r ( mean)

    sum expr i f dhombre==1mat r i x A[ 1, 3] =r ( mean)sum expr i f dhombre==0mat r i x A[ 2, 3] =r ( mean)

    Con esto se completa la matriz. Luego para que se vea, en Stata Results se tipea elcomando m a t r i z l is t  :

    . matr i x l i s t A

    A[ 2, 3]c1 c2 c3

    r 1 210198. 54 8. 3427264 58. 336718r 2 162629. 12 8. 2959796 60. 383309

    Esta matriz se puede copiar, seleccionando la matriz en la ventana de resultadosapretando el botón derecho y pinchando “copy table”; luego se puede llevar a unarchivo Excel para su edición.

    VIII.  Ciclos recursivos

    El comando w h i le    permite ejecutar una función en forma recursiva mientras ciertacondición se cumpla. Por ejemplo:

    l ocal iwhi l e `i ’

  • 8/20/2019 Curso Nivelación Stata

    72/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    72

    IX. Gráficos 

    En STATA se pueden realizar gráficos de todos los tipos. Esto, al igual que otrasfunciones preestablecidas, no requiere del conocimiento de todos los comandos, ya quepinchando “Graphics” aparecen todas las opciones y en cada una de ellas un cuadro deopciones bastante completo:

  • 8/20/2019 Curso Nivelación Stata

    73/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    73

    Por ejemplo, si queremos realizar un histograma nos aparece el siguiente cuadro:

    Donde se nos presentan varias opciones, como hacer el gráfico por cierta categoría(por ejemplo género) a través del comando by, condicionar el gráfico a cierto grupo através del comando if, introducir factores de expansión, ajustar una densidad normal,ajustar una densidad estimada en forma no paramétrica (kernel), y poner títulos,etiquetas, etc…

  • 8/20/2019 Curso Nivelación Stata

    74/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    74

    Veamos algunos ejemplos….1.  Utilizando la base de datos ingreso.dta realicemos un histograma de la

    variable escolaridad. Esto se hace mediante el siguiente comando:

    hi st ogr am l educ

    Pero hagámoslo un poco más elaborada:

    hi stogram esc, yt i t l e( Densi dad) xt i t l e( Ni vel de Educaci ón)t i t l e( Di str i buci ón del ni vel de escol ar i dad, col or( gr een) )

  • 8/20/2019 Curso Nivelación Stata

    75/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    75

    En el gráfico observamos que el número de personas con educación va cayendo amedida que aumenta el nivel educativo. Sin embargo observamos que se observa ungran número de personas sobre el número 1, lo que equivale a educación básicaincompleta, y luego observamos otro peca en el número 4, lo que equivale a educaciónmedia completa.

    Ahora hagamos este mismo gráfico pero separando a los hombres de las mujeres:

    hi st ogr am l educ, yt i t l e( Densi dad) xt i t l e( Ni vel de Educaci ón) by( sexo ,t i t l e( Di t r i buci ón del ni vel de escol ar i dad, col or ( green) ) )

  • 8/20/2019 Curso Nivelación Stata

    76/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    76

  • 8/20/2019 Curso Nivelación Stata

    77/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    77

    2.  Ahora realicemos un gráfico de dispersión entre años escolaridad e ingreso:

    t woway ( scat t er i ng esc) i f esc

  • 8/20/2019 Curso Nivelación Stata

    78/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    78

    Pero; ¿qué ocurre con ambos gráficos?, ocurre que no se observa una correlación entreel nivel de ingresos y el nivel de escolaridad, debido a que los ingresos muy altosdistorsionan la distribución. A continuación mostraremos un grafico de puntos junto asu línea de regresión, pero que sólo toma en cuenta a los individuos que tieneningresos menores a un millón de pesos.

    t woway ( scat t er i ng esc) ( l f i t i ng esc ) i f i ng

  • 8/20/2019 Curso Nivelación Stata

    79/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    79

    3.  Hagamos un gráfico de barras con el ingreso promedio por sexo y situación depobreza:

    gr aph bar ( mean) i ng, over ( sexo, l abel ( l absi ze( smal l ) ) ) over ( pobr e,l abel ( l absi ze( smal l ) ) ) yt i t l e( I ngr eso pr omedi o) t i t l e( I ngr eso pr omedi opor género y si t uaci ón de pobr eza)

  • 8/20/2019 Curso Nivelación Stata

    80/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    80

    Este gráfico nos muestra que para los indigentes y los pobres no indigentes el nivel deingreso entre hombres y mujeres es similar, sin embargo para los individuos no pobres

    el ingreso de los hombres supera al ingreso de las mujeres.

  • 8/20/2019 Curso Nivelación Stata

    81/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    81

    Un gráfico útil son los “box plots”, estos entregan información sobre el centro,

    dispersión, simetría y observaciones extremas, en un solo gráfico. Por ejemploobservamos en el siguiente box-plot del ingreso per cápita. La línea horizontal dentro dela caja muestra la mediana. La caja muestra el rango intercuartil y, correspondiente ala diferencia entre el ingreso del percentil 75 y del percentil 25.  La línea superiorhorizontal se establece en un valor igual al percentil 75 más 1,5  veces el rangointercuartil. La línea inferior horizontal, por su parte, se fija en un  valor igual alpercentil 25 menos 1,5 veces el rango intercuartil. Todos los valores  superiores oinferiores a estas líneas representan valores extremos (outliers) de la  distribución.Podemos ver que los números o coinciden realizando un sum detail, el que se muestraa continuación del box-plot.

  • 8/20/2019 Curso Nivelación Stata

    82/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    82

  • 8/20/2019 Curso Nivelación Stata

    83/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    83

    X.  Ayuda: Help

    La ayuda que trae este programa es bastante amigable y fácil de utilizar. Si Ud. Sedirige a “Help” se despliega un cuadro con diferentes opciones, puede buscar ayudapor contenidos, por comandos, etc…, en “What’s new” encontrará todas las novedadesdel programa, que nuevos comandos hay y podrá descargarlos haciendo un update.

    Por ejemplo, supongamos se quiere saber como calcular correlación entre variables.Entonces se debe buscar en “Search”:

  • 8/20/2019 Curso Nivelación Stata

    84/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    84

    Dependiendo que este buscando pincha el comando (en azul), y se abrirá una ventanacon una completa ayuda sobre el comando.

  • 8/20/2019 Curso Nivelación Stata

    85/86

     

    DEPARTAMENTO DE ECONOMÍA – UNIVERSIDAD DE CHILE 

    85

    Para que el Help de STATA le sea realmente útil es fundamental que Ud. aprenda a leerla sintaxis de cada comando. Por ejemplo, en este caso la sintaxis del comandocorr el at e es la siguiente:

    cor r el at e [ var l i st ] [ i f ] [ i n] [ wei ght ] [ , cor r el at e_opt i ons]

  • 8/20/2019 Curso Nivelación Stata

    86/86

     

    Esta sintaxis nos indica que el commando correlate puede ser utilizado entregando ellistado de variables, sino se entrega el default es considerar todas las variables en labase de datos. Se puede utilizar la opción if, in y weight todas ellas antes de la coma,la que es utilizada también en forma opcional para poner algunas opciones delcomando. Entonces siempre lo que aparece en paréntesis cuadrados son alternativasopcionales del comando. Más adelante de la sintaxis, se indican cuales son estas “correlate_options”, también se presenta una descripción general del comando y susopciones.

    A continuación se muestra otro ejemplo de sintaxis, para el comando t abl e:

    t abl e rowvar [ col var [ supercol var] ] [ i f ] [ i n] [ wei ght ] [ , opt i ons]

    Recordemos que todo lo que esta entre paréntesis cuadrado son opciones voluntariasde comando. En este caso rowvar no esta entre paréntesis cuadrado, significa quedebemos obligadamente señalar la variable fila en la tabulación, es voluntario indicarla variable de columna, si no se indica la tabulación resultante es una distribución de lavariable sola, si se indica colvar la tabla será un cruce entre rowvar y colvar. Esteejemplo nos permite notar la diferencia en aquellos insumos del comando que sonobligatorios de los que son voluntarios.

    Puede ser que algunos de los comandos que aparezcan Ud. no los tenga cargados, eneste caso si se encuentra conectado a Internet los podrá bajar online. Aparecerá algode la siguiente forma:

    Donde pinchando la palabra en azul se puede descargar el comando, así como suayuda.

    Una forma más completa de buscar ayuda es a través de los manuales, estos ademásde traer una ayuda sobre los comandos generalmente contiene toda una descripciónt ó i d ll P j l l d d l d ió li l li l