stata b asico intermedio aplicado a la investigaci on econ omica - … · 2018-06-26 · manejo de...

79
Stata asico Intermedio Aplicado a la Investigaci´on Econ´ omica Juan Carlos Abanto Orihuela 5 de febrero de 2009 UdecomBooks

Upload: others

Post on 25-Mar-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

StataBasico Intermedio

Aplicado a la Investigacion Economica

Juan Carlos Abanto Orihuela

5 de febrero de 2009

UdecomBooks

Page 2: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

2

Stata Basico IntermedioAplicado a la Investigacion Economica

[email protected]

Page 3: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

Indice general

Indice general 3

1. Introduccion al Stata 51.1. Iniciando Stata . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2. Tipos de Archivos en Stata . . . . . . . . . . . . . . . . . . . . . 61.3. Estructura Basica de Stata . . . . . . . . . . . . . . . . . . . . . 61.4. Principales Comandos de Trabajo y Analisis . . . . . . . . . . . 7

1.4.1. Las Bitacoras . . . . . . . . . . . . . . . . . . . . . . . . 71.4.2. La Base de Datos . . . . . . . . . . . . . . . . . . . . . . 71.4.3. Append, Merge, Collapse . . . . . . . . . . . . . . . . . . 9

2. Manejo de Datos 152.1. Cargando los Datos en Stata . . . . . . . . . . . . . . . . . . . . 152.2. Etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3. Comando IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4. Comando SUMMARIZE . . . . . . . . . . . . . . . . . . . . . . 182.5. Comando SPLIT . . . . . . . . . . . . . . . . . . . . . . . . . . 182.6. Creando Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 192.7. KEEP y DROP . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.8. Reestructurando los Datos . . . . . . . . . . . . . . . . . . . . . 242.9. Muestreos Probabilısticos . . . . . . . . . . . . . . . . . . . . . . 262.10. Generacion de Numeros Aleatorios . . . . . . . . . . . . . . . . 262.11. Percentiles, Cuartiles, Deciles . . . . . . . . . . . . . . . . . . . 27

3. Analisis Grafico con Stata 313.1. Visualizando Algunos Comandos . . . . . . . . . . . . . . . . . 313.2. TWOWAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.3. TWOWAY y SCATTERPLOT . . . . . . . . . . . . . . . . . . 383.4. Combinando TWOWAY Y SCATTERPLOT . . . . . . . . . . . 40

3.4.1. Filtro de Graficos . . . . . . . . . . . . . . . . . . . . . . 403.4.2. Union de Graficos . . . . . . . . . . . . . . . . . . . . . . 40

3.5. Opciones para Edicion de Graficos . . . . . . . . . . . . . . . . . 433.6. Trabajando con Esquemas y Graficos Adicionales . . . . . . . . 47

3

UdecomBooks

Page 4: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

4 INDICE GENERAL

3.6.1. Esquemas . . . . . . . . . . . . . . . . . . . . . . . . . . 473.6.2. Graficos de Barras Verticales . . . . . . . . . . . . . . . . 493.6.3. Graficos de Barras Horizontales . . . . . . . . . . . . . . 493.6.4. Graficos de Cajas . . . . . . . . . . . . . . . . . . . . . . 503.6.5. Graficos de Pastel . . . . . . . . . . . . . . . . . . . . . . 51

4. Analisis de Regresion Lineal 554.1. Regresion Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . 554.2. Diagnostico de los Resultados . . . . . . . . . . . . . . . . . . . 59

4.2.1. Efecto Influencia . . . . . . . . . . . . . . . . . . . . . . 594.3. Normalidad del Residuo . . . . . . . . . . . . . . . . . . . . . . 624.4. Homocedasticidad del Residuo . . . . . . . . . . . . . . . . . . . 634.5. Multicolinealidad . . . . . . . . . . . . . . . . . . . . . . . . . . 644.6. Linealidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.7. Especificacion del modelo . . . . . . . . . . . . . . . . . . . . . 654.8. Independencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5. Variables Categoricas 695.1. Estimacion con Variables Categoricas . . . . . . . . . . . . . . . 695.2. El Comando Xi . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.3. Pruebas de Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . 725.4. Creacion de Variables Dummys . . . . . . . . . . . . . . . . . . 755.5. Bucles y Programas . . . . . . . . . . . . . . . . . . . . . . . . . 75

Bibliografıa 81

Stata Basico IntermedioAplicado a la Investigacion Economica

[email protected]

Page 5: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

Sesion 1

Introduccion al Stata

1.1. Iniciando Stata

Stata es una poderosa herramienta en aplicaciones economicas. Puede ayu-darnos a analizar facil y eficientemente, series de tiempo, paneles, y data deseccion cruzada. Nos dara las herramientas que necesitamos para organizar ymanejar un gran tamano de data, obteniendo resultados de analisis estadısti-cos.

En esta sesion introduciremos las nociones basicas del software, para pos-teriormente realizar un analisis estadıstico y familiarizarnos con el manejo ymodificacion de la base de datos.

Veamos como se presenta Stata al iniciarse. (ver Figura 1.1)

Figura 1.1: Pantalla de Inicio

5

UdecomBooks

Page 6: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

6 1. Introduccion al Stata

Los comandos de stata estan implementados en el menu el cual esta organizadopor topicos. Ası nosotros podemos trabajar interactivamente y de manera muysimple, sin embargo sigue siendo util el uso de comandos para realizar el analisisdado que da pie al manejo de programas, o estructuras de programacion. (verFigura 1.2)

Figura 1.2: Barra de Comandos

1.2.Tipos de Archivos en Stata

En STATA, distinguimos 3 tipos de archivos importantes:

Archivo de extension dta, para la generacion de base de datos, en ella sealmacenara informacion de las variables con su respectiva extension.

Archivo de extension log, smcl, para la generacion de bitacoras, en ella seguardaran los resultados de manera ordenada, sin tener que pasarlos a ninguntipo de archivo de texto.

Archivo de extension do, que es un archivo de ejecucion, donde se elaborael programa.

Archivo de extension gph, para la generacion de graficos almacenados enla carpeta de trabajo

1.3.Estructura Basica de Stata

Siempre que trabajemos en STATA, es recomendable que mantengamoscierta estructura. (ver Figura 1.3)

Page 7: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

1.4. Principales Comandos de Trabajo y Analisis 7

Figura 1.3: Estructura Basica

1.4.Principales Comandos de Trabajo y Anali-

sis

Ahora veamos los principales comandos de trabajo, los cuales haran quelos futuros analisis econometricos sean simples de realizar.

1.4.1.Las Bitacoras

En estos objetos se guardara la informacion tal y cual aparecen en la ven-tana Result, aunque tambien podrıamos indicarle al programa que deseamossolo guardar los comandos y no los resultados.

log using clase1.logo tambien

cmdlog using clase1.log

1.4.2.La Base de Datos

El uso de la base de datos es vital para nuestro analisis, a continuacionpresentamos los comandos que nos ensenara a trabajar con esta.

use auto.dta

UdecomBooks

Page 8: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

8 1. Introduccion al Stata

use auto.dta if foreign==1

use auto.dta in 1/10

use make mpg using auto.dta

save auto01.dta

Repasemos lo que hemos aprendido:Ya sabemos como limpiar la memoria de Stata, tambien sabemos como ampliaresta memoria para trabajar con data de gran capacidad. Sabemos como fijarel path de trabajo, como crear una rutina y como cargar la base de datos anuestro espacio de trabajo. Ahora vamos a trabajar con la base de datos paraempezar nuestro analisis.

use auto01.dta

browse

replace mpg=20 if mpg==19

save, replace

list make

list make price

describe

codebook

summarize mpg weight

summarize mpg weight if foreign

summarize price if mpg<21.3

summarize price if mpg>=21.3

summarize price, detail

tabulate mpg

table mpg

table rep78, contents(n mpg)

table rep78, contents(n mpg mean mpg sd mpg median mpg)

table rep78, c(n mpg mean mpg sd mpg median mpg) format(%9.2f)

sort mpg

gsort mpg

gsort -mpg

sort foreign

by foreign: summarize price

Page 9: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

1.4. Principales Comandos de Trabajo y Analisis 9

count

count if foreign==0

count if foreign==1

by foreign: count

generate orden=_n

rename orden num_obs

by foreign: egen prom_mill=mean(mpg)

drop num_obs

keep make price mpg prom_mill

1.4.3.Append, Merge, Collapse

El comando append y merge nos ayudara a unir bases de datos inte-grandolas en una sola. Append, pegara hacia abajo o verticalmente y Merge,pegara hacia el costado o de forma horizontal.

clear

use base1, clear

list

use base2, clear

list

use base3, clear

list

use base4, clear

list

Vamos a empezar observando cada una de las bases de datos que tenemos,veamos la figura1.4 Empecemos nuestra tarea en Stata, podemos observar que

Figura 1.4: Bases de Datos

UdecomBooks

Page 10: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

10 1. Introduccion al Stata

la base de datos Base1 tiene los mismos campos (columnas) que la base dedatos Base2, pero diferentes filas, seria util, unir ambas bases.

Abramos entonces, la base de datos Base1 y peguemosla con la base dedatos Base2, una union vertical.

use base1.dta, clear

list

append using base2

list

save base12.dta, replace

list

Hagamos lo mismo con las bases de datos Base3 y Base4 y observemos losresultados:

use base3.dta, clear

list

append using base4

list

save base34.dta, replace

list

¿Por que la variable la variable sexo se anadio 2 veces como columna?¿porque no se unio en una sola columna?

use base3.dta, clear

list

rename Sexo sexo

list

save base03.dta, replace

use base03.dta, clear

list

append using base4

list

save base034.dta, replace

Ahora si resulto bien la union vertical. Veamos la base12 que tenıamosantes.

Ahora mi interes es fusionar ambas bases de datos, para ello, primero debe-mos ordenar ambas bases segun la variable con la que vamos a fusionar (lavariable comun).

use base034.dta, clear

list

sort nombre

list

Page 11: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

1.4. Principales Comandos de Trabajo y Analisis 11

save base034s.dta, replace

use base12.dta, clear

list

sort nombre

list

save base12s.dta, replace

Ya tenemos las 2 bases de datos ordenadas, ahora vamos a fusionarlas

clear

use base12s.dta, clear

list

merge nombre using base034s.dta

list

save basetotal.dta, replace

La figura1.5 nos muestra la base de datos total.

Figura 1.5: Base Total

El comando collapse sirve para convertir una base de datos que contienevariables para diversas unidades de estudio, en una base de datos que contieneestadısticos de dichas variables (medias, medianas, sumas etc). Permite obte-ner estadısticos para unidades mas grandes (en un sentido jerarquico), comopor ejemplo, pasar de datos por individuo a datos por hogar, de datos pordistritos a datos por provincia (agregacion)

En el comando se especifican aquellas variables que se ”colapsan” y lascondiciones que se imponen para dicha transformacion. Algunas variables puedenser colapsadas segun su suma, otras segun su media, etc. (ver figura1.6)

Aquellas variables que no se especifican desaparecen automaticamente dela base de datos. Este comando crea una nueva base de datos y cierra la basede partida. Si deseamos quedarnos con esta base debemos grabarla.

UdecomBooks

Page 12: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

12 1. Introduccion al Stata

Figura 1.6: Estructura del comando “split”

use kids, clear

list

collapse age

list

use kids, clear

collapse age, by(famid)

list

use kids, clear

collapse(mean) avgage=age, by(famid)

list

use kids, clear

collapse (mean) avgage=age avgwt=wt, by(famid)

list

use kids, clear

collapse (mean) avgage=age avgwt=wt (count) numkids=birth, by(famid)

list

use kids, clear

tabulate sex, generate(sexdum)

Page 13: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

1.4. Principales Comandos de Trabajo y Analisis 13

list famid sex sexdum1 sexdum2

collapse (count) numkids=birth (sum) girls=sexdum1 boys=sexdum2, by(famid)

list famid boys girls numkids

Basado en los WDI, genere una base de datos con los totales de CO2 emi-tidos por region, para el ano 2002. Genere tambien una base con la poblacionmundial a lo largo del tiempo.

UdecomBooks

Page 14: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

14 1. Introduccion al Stata

RETO 1

. La base “enaho01-2004-300-oct-nov.dta” contiene datos del modulo 300 dela ENAHO recopilados entre octubre y noviembre de 2004, mientras que“enaho01-2004-300-dic.dta” contiene los datos del mismo modulo para di-ciembre de ese mismo ano. Ambas bases estan a nivel de individuos. Se pidejuntar estos datos en un solo archivo que debe ser grabado con el nombre:“Personas.dta”.

. A la base “Personas.dta” anada las siguientes variables:

Las 5 variables de Necesidades Basicas Insatisfechas (nbi1 al nbi5) desdela base de datos “enaho01-2004-100.dta”. Recuerde que esta base fuerecopilada a nivel de hogares en el mismo periodo.

La variable sobre tipo de vivienda (p101).

. Usando el archivo “enaho01-2004-300-oct-nov.dta” (modulo de educacion anivel de individuos) realice las siguiente tarea:

Obtenga una nueva base (colapsada) que contenga para cada hogar:el promedio de edad de sus miembros (ver p208a), el porcentaje dehombres en el hogar (ver p207), el maximo nivel educativo aprobadopor algun miembro del hogar (ver p301a).

Page 15: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

Sesion 2

Manejo de Datos

2.1. Cargando los Datos en Stata

Ahora vamos a empezar el tratamiento de los datos pero antes, hagamosun pequeno ejercicio con la base de datos auto.dta

use auto.dta

describe

summarize

generate price2=2*price

describe

save auto2.dta

generate price3=3*price

save auto2.dta

save auto2.dta, replace

generate price4=4*price

use auto.dta

use auto.dta, clear

clear

2.2. Etiquetas

Aprendamos a etiquetar a nuestras bases de datos o variables para poderidentificarlas en un futuro y ası poder trabajar de forma mas ordenada.

use auto.dta

describe

label data "Este archivo contiene datos de autos para el a~no 1978"

describe

label variable rep78 "Record de reparacion en 1978"

label variable price "Precio del carro en 1958"

label variable mpg "Millas por galon para el carro"

15

UdecomBooks

Page 16: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

16 2. Manejo de Datos

label variable foreign "Origen del carro, extranjero o domestico"

describe

label define foreignl 0 "domestico" 1 "extranjero"

label values foreign foreignl

describe

table foreign

ttest mpg, by(foreign)

save auto3.dta

Hagamos un ejercicio similar con la base de datos iraninos.dta

clear

use iraninos.dta

set more off

label define sexow 0 "mujer"

label define sexow 1 "hombre", add

describe

browse

label values sexo sexow

describe

browse

label drop sexow

label define getareow 0 "prematuro"

label define getareow 1 "rec.nac.", add

label define getareow 2 "lactante", add

label define getareow 3 "escolares", add

label values getareo getareow

label define oliguriaw 0 "no oliguria"

label define oliguriaw 1 "oliguria", add

label values oliguria oliguriaw

label define congenitow 0 "no congenito"

label define congenitow 1 "congenito", add

label values congenito congenitow

label define sepsisw 0 "no sepsis"

label define sepsisw 1 "sepsis", add

label values sepsis sepsisw

label define tipodaow 0 "asfixia neonat"

Page 17: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

2.3. Comando IF 17

label define tipodaow 1 "nta", add

label define tipodaow 2 "nti", add

label define tipodaow 3 "nefro tox", add

label values tipodao tipodaow

label define finalw 0 "vivo"

label define finalw 1 "muerto", add

label values final finalw

Observemos que la variable dependiente en esta base de datos es final,muerte de una persona debido a una falla renal aguda. Las variables explicati-vas serian sepsis y tipodano, mientras que las de control serian sexo, getareo.Probablemente oliguria y congenito sean variables que me indiquen el nivelespecifico de la enfermedad (serian variables no tan claras en este ejemplo).

2.3.Comando IF

La estructura del comando IF es facil de recordar, la figura2.1 nos muestrael esquema base.

Figura 2.1: Estructura del comando “if”

clear

use auto.dta

keep make rep78 foreign mpg price

tabulate rep78 foreign

tabulate rep78 foreign if (rep78 >=4)

tabulate rep78 foreign if (rep78 >=4), column nofreq

list if (rep78 >= 4)

list if (rep78 >= 4) & !missing(rep78)

summarize price if (rep78 == 1) | (rep78 == 2)

summarize price if (rep78 <= 2)

summarize price if (rep78 == 3) | (rep78 == 4) | (rep78 == 5)

summarize price if (rep78 >= 3)

summarize price if (rep78 >= 3) & !missing(rep78)

Cabe resaltar que luego de la sentencia “if” usamos “ & ” para decir “y”,usamos “ == ” para decir “igual a”, y usamos “ ! ” para negar algo o decir“no”.

UdecomBooks

Page 18: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

18 2. Manejo de Datos

2.4.Comando SUMMARIZE

Esta estructura es mas compleja y mas difıcil de recordar, sin embargo lasiguiente forma general (ver figura2.2), nos ayudara a recordarla y usarla demanera mas apropiada.

Figura 2.2: Estructura del comando “summarize”

use auto

summarize

summarize price mpg

summarize mpg price if (foreign == 1)

summarize mpg price if (foreign == 1) & (mpg <30)

summarize mpg price if (foreign == 1) & (mpg <30) , detail

Si queremos trabajar con observaciones del 1 al 10

summarize in 1/10

Tambien podrıa estar interesado en el resumen estadıstico para carros ex-tranjeros y domesticos, por separado, para ello usamos el comando by:

by foreign: summarize

2.5.Comando SPLIT

El comando split separa el contenido de una variable tipo string en dos omas partes, usando un caracter que indica separacion, de modo que se generannuevas variables tipo string. (ver figura2.3)

Es util para separar palabras, codigos u otras partes de una variable tipostring de informacion multiple. Por ejemplo, en el siguiente caso (ver figura2.4),queremos separar el tipo de documento del numero, en dos variables.

Aquı, el objetivo es que la variable string “documento” se parta en dosvariables string, una que contenga el tipo de documento y otra el numero deeste documento.

Page 19: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

2.6. Creando Variables 19

Figura 2.3: Estructura del comando “split”

Figura 2.4: Base Documentos

use "split y destring", clear

split documento, parse("-") destring

use "split y destring", clear

split documento, parse("-")

destring documento2, replace

Si desearamos concatenar dos variables cualquiera sean estas, y generaruna variable tipo string, el comando a usar debera ser:

egen docum=concat(documento1 documento2), punct("/")

Donde la opcion punct permite especificar el separador entre las distintaspartes al conformar una unica variable. Por ejemplo, espacio sera punct(“ ”),o coma , punct(,) o guion , punct(-).

2.6.Creando Variables

Trabajemos con la base de datos auto, y con la variable length (longituddel auto en pulgadas)

use auto, clear

summarize length

generate length_feet = length / 12

UdecomBooks

Page 20: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

20 2. Manejo de Datos

generate length_feet = length / 12

replace length_feet = length / 12

summarize length lenght_feet

generate length2 = length^2

summarize length2

generate loglen = log(length)

summarize loglen

summarize length

generate zlength = (length - 187.93) / 22.27

summarize zlength

Observemos la variable mpg (millaje por galon)

tabulate mpg

No nos es muy facil el analisis de esta variable, podrıamos mejorar supresentacion si la clasificaramos por rangos.

generate mpg3 = .

replace mpg3 = 1 if (mpg <= 18)

replace mpg3 = 2 if (mpg >= 19) & (mpg <=23)

replace mpg3 = 3 if (mpg >= 24) & (mpg <.)

tabulate mpg mpg3

Ahora podemos hacer un cruce de tablas entre la variable mpg3 y la variableforeign y observar el millaje de los carros domesticos y extranjeros.

¿Que es lo que se observa?

Mediante una remodificacion de los datos, podemos hacer lo mismo en unascuantas lıneas, mediante el uso de rangos y el comando recode.

generate mpg3a = mpg

recode mpg3a min/18=1 19/23=2 24/max=3

tabulate mpg mpg3a

Veamos un ejemplo con categorıas, ahora deseamos crear una variable quenos muestre el millaje de los carros respecto a su origen, esta tomara el valorde “0” para valores por debajo de la media de mpg en el grupo domestico yextranjero y “1” para valores por encima de la media de mpg en los gruposdomestico y extranjero.

sort foreign

by foreign: summarize mpg, detail

¿Que observamos?

Page 21: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

2.6. Creando Variables 21

generate mpgfd = mpg

recode mpgfd min/18=0 19/max=1 if foreign==0

recode mpgfd min/24=0 25/max=1 if foreign==1

by foreign: tabulate mpg mpgfd

El comando recode cambia los valores de una variable de acuerdo a lasreglas especificadas.

recode opiniongob (1=4 nada) (2=3 poco) (3=2 "mas o menos") ///

(4=1 bastante) (.=0 "no opina"), gen(opina)

Tambien podemos usar una extension del commando generate, egen me per-mitira crear expresiones mas complejas aun, tales como medias, desviacionesestandar, maximos, mınimos, etc.

egen minimo_p=min(price)

egen median_p=median(price)

egen std_p=std(price), mean(0) std(1)

Nota1: Tipo de Datos

En Stata existen dos clases de datos a usar:

. Datos numericos, dentro de estos podemos encontrar la siguiente clasifi-cacion:

Figura 2.5: Datos Tipo Numericos

. Datos cadena de texto, dentro de estos podemos encontrar la siguiente clasi-ficacion:

Figura 2.6: Datos Tipo Cadena

UdecomBooks

Page 22: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

22 2. Manejo de Datos

Logicamente debemos considerar que un uso de datos con mayor poderde almacenaje se traducira en mayor tamano de bytes usados, lo cual restaraespacio a nuestro disco de almacenaje.

Generemos algunas variables como ejemplo:

generate double x=2

generate str2 y="maria"

list y

¿Que notamos?, ¿Como saber rapidamente si una variable es de ciertotipo? Si desearamos convertir una variable string a una variable numerica ouna variable numerica a una string, podrıamos usar los comandos encode ydecode, veamos esto:

clear

use auto.dta

encode make, generate(A)

label list A

describe make A

decode A, generate(B)

describe make A B

O tambien podrıamos usar la siguiente sentencia:

generate str2 Z="am"

generate int P=real(Z)

describe Z P

2.7.KEEP y DROP

A veces no desearemos tener todas las variables en el espacio de trabajo,muchas veces desearemos trabajar solo con algunas variables de nuestra basede datos.

use auto

describe

keep make mpg price

describe

use auto, clear

drop displacement gear_ratio

describe

Page 23: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

2.7. KEEP y DROP 23

use auto , clear

tabulate rep78 , missing

drop if missing(rep78)

tabulate rep78 , missing

use auto , clear

keep if (rep78 <= 3)

tabulate rep78, missing

clear

Ya hemos visto como el uso de keep, drop, keep if y drop if, puede sernosutil si queremos eliminar variables innecesarias y ası tener mas memoria detrabajo. Ahora veamos en la figura2.7 la estructura del comando use y loscriterios de seleccion.

Figura 2.7: Estructura del comando “use”

use make price mpg using auto.dta

describe

clear

use auto.dta if (rep78 <= 3)

tabulate rep78, missing

clear

use auto.dta if (rep78 >= 4) & (rep78 <.)

tabulate rep78, missing

clear

use make mpg price rep78 if (rep78 <= 3) using auto.dta

describe

tabulate rep78

UdecomBooks

Page 24: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

24 2. Manejo de Datos

clear

use make mpg price rep78 using auto.dta if (rep78 <= 3)

describe

tabulate rep78

clear

use make mpg if (rep78 <= 3) using auto

¿Que sucedio con esta sentencia?

2.8.Reestructurando los Datos

A veces nos sera util reestructurar la forma como los datos son presentados,especialmente para trabajar con datos panel, para ello nos sera de utilidadaprender los comandos con anticipacion.

clear

use ingfam.dta

list

Figura 2.8: Base “ingfam”

La forma como se presenta la data, es la forma ancha o “wide”, a nosotrosnos podrıa interesar, sin embargo, trabajar con la forma larga o “long” de ladata, para ello debemos modificar la estructura de esta base de datos de lasiguiente manera:

reshape long ingfam, i(codfam) j(a~no)

list

“Long” le dice al comando reshape, si se desea ir de una forma long auna wide o viceversa, “ingfam” le dice a Stata que la raız de la variable a serconvertida a la forma long es ingfam, “i” le dice a stata que la variable codfamsera considerada como identificador de los individuos, “j” indica a Stata quela parte variable de ingfam sera considerada e incorporada como una variableano.

Page 25: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

2.8. Reestructurando los Datos 25

reshape wide

list

reshape long

list

Veamos una base de datos que nos brinda informacion sobre los las alturasde un conjunto de ninos de 1 y 2 anos de edad

use ni~noaltpes, clear

list codfam nacimiento alt1 alt2

Figura 2.9: Base “ninoaltpes”

Veamos como podemos transformar esta base de datos a una forma “long”.¿Cual es la raız de la variable que sera convertida de la forma wide a la formalong? ¿Que variables identifican a los individuos en la estructura wide? ¿Comollamaremos a la variable que contendra a los sufijos de la variable raız?

reshape long alt, i( codfam nacimiento) j(edad)

list codfam nacimiento edad alt

use ni~noaltpes,clear

list codfam nacimiento alt1 alt2 pes1 pes2

reshape long alt pes, i( codfam nacimiento) j(edad)

list codfam nacimiento edad alt pes

use ingpadmad.dta, clear

list

A nosotros nos podrıa interesar que la variable “nombre” y la variable “ing”se estructuren de una forma long, pero los sufijos “p” y “m” son del tipo cadenao string, ya no son numeros. ¿Como podemos estructurar nuestro comando eneste caso?

reshape long nombre ing, i(codfam) j(padmad) string

list

UdecomBooks

Page 26: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

26 2. Manejo de Datos

Figura 2.10: Base “ingpadmad”

2.9.Muestreos Probabilısticos

En las encuestas, las observaciones son escogidas a partir de un proce-so aleatorio. Ası, las probabilidades de seleccion para distintas observacionespueden diferir en funcion a la forma como se lleve a cabo dicho proceso deseleccion aleatorio.

Las ponderaciones de muestreo son iguales (o proporcionales) al inverso dela probabilidad de seleccion. En otras palabras, los ponderadores (o factoresde expansion) pueden ser interpretados como el numero de elementos de lapoblacion que el elemento muestreado representa. En consecuencia, no teneren cuenta los ponderadores de la muestra en los procedimientos estadısticosgenera estimaciones sesgadas al valor verdadero de la poblacion. Ası mismo,su omision altera las desviaciones estandar de nuestras estimaciones.

Los factores de expansion nos permiten pasar de la muestra al conjunto dela poblacion. Ellos son necesarios tambien para tener en cuenta las diferentestasas de muestreo segun dominios geograficos, etc.

La mayorıa de comandos de stata pueden ponderar datos. Stata propor-ciona cuatro tipos de ponderaciones, la que mas se emplea es la asociada a losfactores de expansion, que se indica con la opcion pweight que permite identi-ficar los pesos que indican la inversa de la probabilidad de que la observacionsea incluida debido al diseno del muestreo.

table x1 x2 [pweight=pesopob]

table x1 x2 [pw=pesopob]

2.10.Generacion de Numeros Aleatorios

Crearemos un archivo vacıo para 100 observaciones:

set obs 100

Generamos numeros aleatorios con distribucion uniformes U(0,1)

gen x = uniform()

Luego generamos numeros aleatorios con distribucion normal N(0,1)

Page 27: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

2.11. Percentiles, Cuartiles, Deciles 27

gen y = invnorm(uniform())

Para generar una variable con distribucion uniforme U(a,b)

generate y = a + (b-a) * uniform()

Para generar una variable con distribucion normal N(u,o)

generate z = u + o * invnorm(uniform())

Generemos una variable notas, igual a U(0,20) + N(0,1)

gen notas = 20*uniform() + invnorm(uniform())

Trunquemosla en el rango de 0 a 20

replace notas = clip(notas, 0, 20)

format notas %3.1f

Generemos una variable sexo que sea 1 si es hombre y 0 si es mujer

gen sexo = uniform() > 0.5

Generemos una variable ingreso que valla del 2000 al 2007

gen ingreso = 2000 + floor(8*uniform())

2.11.Percentiles, Cuartiles, Deciles

Las medidas de posicion son muy importantes en el analisis estadıstico,probabilıstica y regresional.

Los cuartiles son medidas estadısticas de posicion que tienen la propiedadde dividir la serie estadıstica en cuatro grupos de numeros iguales de terminos.

De manera similar los deciles dividen a la serie en diez partes iguales y lospercentiles dividen a los terminos de la serie en cien grupos iguales. Ası comola mediana divide la serie o distribucion en dos partes iguales, existen trescuartiles, nueve deciles y noventa y nueve percentiles que dividen en cuatro,diez y cien partes iguales a la distribucion.

De estas tres ultimas medidas de posicion los cuartiles son las de mayoraplicacion.

Se emplean generalmente en la determinacion de estratos o grupos corre-spondientes a fenomenos socio-economicos, monetarios o teoricos.

XTILE

El comando xtile genera una variable categorica (eg: 1, 2, 3) segun el cuantilen que se encuentra cada observacion.

UdecomBooks

Page 28: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

28 2. Manejo de Datos

xtile nuevavar = variable , nquantiles(#)

xtile tercio = notas, n(3)

PCTILE

El comando pctile genera una variable con los puntos de corte entre cadacuantil.

pctile nuevavar = variable , nquantiles(#)

pctile cortes = notas, n(3)

Por ejemplo, generemos una variable decimo que sea 1 si es decimo superior,y 0 caso contrario. Hagalo de 2 formas distintas

xtile es_decimo = notas, n(10)

replace es_decimo= (es_decimo==10)

summarize notas, detail

gen es_decimo = notas > r(p90)

pctile corte_dec = notas, n(10)

gen es_decimo = notas > corte_dec[9]

Muestre en las notas, el promedio, el maximo, el mınimo, por sexo. Muestrela probabilidad de ser decimo superior, por ano de ingreso

tab es_decimo tercio

tabstat notas, by(es_decimo)

tabstat notas, by(sexo) stat(mean max min)

tabstat es_decimo, by(ingreso) format(%3.2f)

Page 29: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

2.11. Percentiles, Cuartiles, Deciles 29

RETO 2

El sostenido crecimiento de la economıa peruana en los ultimos anos haprovocado que en la actualidad observemos un boom de inversiones a nivel des-centralizado. Ası, diversas actividades economicas que antes se desarrollabansolo en Lima han empezado a mirar el interior del paıs como plazas alternativaspara expandir sus negocios. Con este fin, la recientemente fundada empresa deconsultorıa Grupo IDDEA S.A.C. le ha pedido su colaboracion para desarrollarlas siguientes tareas en Stata.

. En el modulo “sumarias” (que contiene variables calculadas de ingreso ygasto) se le pide identificar cada hogar con el nombre de la localidad querepresenta segun la variable “ubigeo” (distrito). Ademas, en este modulo de-bera crear una nueva variable que indique el departamento al que pertenececada hogar (esta variable debe tener un value map con los nombres de los24 departamentos y el Callao). Para esta tarea usted cuenta con la base dedatos ubigeo.dta.

. Con una sola instruccion (un solo comando) muestre las siguientes estadısti-cas descriptivas para el gasto per capita en todos los departamentos del paıs(percentil 99, media, desviacion estandar, rango).

. El INEI calcula las estadısticas de pobreza bajo el metodo del gasto, para locual utilizara la variable “gasto total” y la dividira entre el total de personasen el hogar para calcular el gasto per capita. Luego generara una variableque valga uno en caso el hogar supere la lınea de pobreza per capita (linea06)y cero en caso contrario. Finalmente, se le pide estimar para cada departa-mento cual es el nivel de pobreza considerando que un individuo es pobre sipertenece a un hogar pobre.

. Con el modulo de educacion construya una tabla que muestre para cada do-minio geografico el porcentaje de personas segun nivel educativo alcanzado,para lo cual considerara solo tres niveles: 1, al menos primaria incompleta,2, Al menos secundaria completa y 3, superior.

. Al modulo educacion anada la variable gasto per capita, calculado en la basesumaria como el cociente entre gasto total y total de miembros del hogar.Luego, cree una variable que contenga los cuartiles (1,2,3,4) del gasto percapita y construya una tabla cruzada entre el nivel educativo y la nuevavariable que ha creado para todas aquellas personas que no residen en LimaMetropolitana.

UdecomBooks

Page 30: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

30 2. Manejo de Datos

Page 31: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

Sesion 3

Analisis Grafico con Stata

Ahora vamos a trabajar con los principales graficos en Stata. Muchos deestos graficos son de bastante utilidad para observar los problemas inherentesal analisis de regresion que observaremos en la proxima seccion.

3.1. Visualizando Algunos Comandos

clear

use auto.dta

histogram mpg

Figura 3.1: Histograma

graph box mpg

graph box mpg, by(foreign)

31

UdecomBooks

Page 32: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

32 3. Analisis Grafico con Stata

Figura 3.2: Grafico de Cajas

Figura 3.3: Scatter y Ajuste Lineal

Figura 3.4: Grafico Matricial

Page 33: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.2. TWOWAY 33

3.2.TWOWAY

El S&P 500 es el ındice mas seguido para tener una idea del desempenogeneral de las acciones estadounidenses. Este ındice consiste de las acciones de500 empresas que fueron seleccionadas por su tamano, liquidez (que tan faciles comprar o vender sus tıtulos) y representatividad por actividad economi-ca, incluyendo 400 industriales, 20 del sector transporte, 40 de servicios y 40financieras. Solo se toman en cuenta empresas estadounidenses. Vale la penadestacar que el peso de cada accion dentro del ındice corresponde a la propor-cion que representa el valor de mercado de la empresa dentro del total de las500 empresas que conforman el ındice. El valor de mercado del capital es igualal precio por accion multiplicado por el numero total de acciones.

Usemos la base de datos S&P 500.(ver figura3.5

clear

use s&p.dta

describe

Figura 3.5: Indice S&P

UdecomBooks

Page 34: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

34 3. Analisis Grafico con Stata

Figura 3.6: Opciones del “twoway”

Figura 3.7: Opciones del “twoway”

Figura 3.8: Opciones del “twoway”

Page 35: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.2. TWOWAY 35

Figura 3.9: Opciones del “twoway”

UdecomBooks

Page 36: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

36 3. Analisis Grafico con Stata

Usemos una nueva base de datos:

clear

use highschool.dta

describe

Figura 3.10: Base Highschool

graph twoway histogram read

graph twoway kdensity read

graph twoway (histogram read) (kdensity read)

graph twoway function y=normden(x), range(-4 4)

Figura 3.11: Histograma y Kernel

Page 37: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.2. TWOWAY 37

Figura 3.12: Mas opciones del “twoway”

UdecomBooks

Page 38: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

38 3. Analisis Grafico con Stata

3.3.TWOWAY y SCATTERPLOT

twoway scatter read write , scheme(economist)

twoway scatter write read, msymbol(square) msize(small) mcolor(black)

twoway scatter write read, mfcolor(red) mlcolor(black) mlwidth(medthick)

twoway scatter read write if id <=10, mlabel(id) mlabposition(2) ///

mlabsize(large) mlabcolor(green)

twoway scatter read write if id <=10,mlabel(ses) mlabangle(90) ///

mlabposition(2) mlabgap(3)

egen mread = mean(read), by(write)

label variable mread "Nota prom lectura x grupo de escritura"

twoway scatter mread write, connect(l) sort

twoway scatter mread write, connect(l)

twoway scatter mread write, connect(l) clwidth(thick) clcolor(red) ///

clpattern(shortdash) sort

egen sdread = sd(read), by(write)

label variable sdread "SD prom nota de lectura x grupo de escritura"

twoway scatter sdread write, connect(l) sort cmissing(n)

twoway scatter sdread write, connect(l) sort cmissing(y)

Page 39: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.3. TWOWAY y SCATTERPLOT 39

Figura 3.13: Connect

Figura 3.14: Connect sort cmissing

UdecomBooks

Page 40: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

40 3. Analisis Grafico con Stata

3.4.Combinando TWOWAY Y SCATTERPLOT

3.4.1.Filtro de Graficos

twoway scatter read write, by(female)

twoway scatter read write, by(female ses)

twoway scatter read write, by(ses female, cols(2))

Figura 3.15: Opcion “by”

3.4.2.Union de Graficos

twoway (scatter read write) (lfit read write) , ytitle(Nota ///

de lectura)

Page 41: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.4. Combinando TWOWAY Y SCATTERPLOT 41

Figura 3.16: Opcion “ytitle” de un grafico

twoway (scatter read write) (lfit read write), name(scatter)

twoway (scatter read write, mlabel(id)) (lfit read write, ///

range(30 70)), by(ses female) ytitle(Nota de lectura)

Figura 3.17: Nombre a un grafico

twoway (scatter read write) (scatter math write)

twoway (scatter read write) (scatter math write) (lfit read ///

write) (lfit math write)

UdecomBooks

Page 42: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

42 3. Analisis Grafico con Stata

twoway (scatter read write) (scatter math write) (lfit read ///

write) (lfit math write), legend(label(3 "Ajuste Lineal") ///

label(4 "Ajuste Lineal")) legend(order(1 3 2 4))

twoway (scatter read write) (scatter math write) (lfit read ///

write, pstyle(p1) range(25 80) ) (lfit math write, ///

pstyle(p2) range(25 80) ), legend(label(3 "Ajuste Lineal") ///

label(4 "Ajuste Lineal")) legend(order(1 3 2 4))

Figura 3.18: Editando la legenda de un grafico

separate write, by(female)

graph twoway (scatter write0 read) (scatter write1 read), ///

ytitle(Nota de Escritura) legend(order(1 "Hombres" 2 "Mujeres"))

graph twoway (scatter write0 read) (scatter write1 read) ///

(lfit write0 read) (lfit write1 read), ytitle(Nota de ///

Escritura) legend(order(1 "Hombres" 2 "Mujeres" 3 "Aj. ///

Lineal Hombres" 4 " Aj. Lineal Mujeres"))

Page 43: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.5. Opciones para Edicion de Graficos 43

Figura 3.19: Ordenando la legenda de un grafico

3.5.Opciones para Edicion de Graficos

El esquema siguiente nos ayudara a entender los principales comandos deedicion de graficos. Podemos guiarnos de estos para poder tener una mejorpresentacion en nuestros graficos.

graph twoway scatter read write, title("Grafica de Dispersion ///

entre Lectura y Escritura")

Figura 3.20: Antes de la edicion

UdecomBooks

Page 44: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

44 3. Analisis Grafico con Stata

graph twoway scatter read write, ///

ytitle(Nota del Examen de Escritura) ///

xtitle(Nota del Examen de Lectura)

graph twoway scatter read write, ///

title("Grafica de Dispersion entre Lectura y Escritura ", ///

size(large) color(red) position(12) ring(1)) ///

ytitle(Nota del Examen de Escritura) ///

xtitle(Nota del Examen de Lectura)

graph twoway scatter read write, ///

title("Grafica de Dispersion entre Lectura y Escritura ", ///

size(large) color(red) position(12) ring(1) box bcolor(white) ///

blcolor(red) bmargin(medium)) ///

ytitle(Nota del Examen de Escritura) ///

xtitle(Nota del Examen de Lectura)

graph twoway scatter read write, ///

title("Grafica de Dispersion entre Lectura y Escritura " ///

"Muestra de 200 Estudiantes", linegap(3) size(large) color(red) ///

position(12) ring(1) box bcolor(white) blcolor(red) ///

bmargin(medium)) ///

ytitle(Nota del Examen de Escritura) ///

xtitle(Nota del Examen de Lectura)

graph twoway scatter read write, ///

title("Grafica de Dispersion entre Lectura y Escritura ", ///

size(large) color(red) position(12) ring(9) box bcolor(white) ///

blcolor(red) bmargin(medium)) ///

ytitle(Nota del Examen de Escritura) ///

xtitle(Nota del Examen de Lectura) ///

subtitle("Muestra de 200 Estudiantes") ///

note(Datos de Escuela Secundaria y Superior) ///

caption(Grupo IDDEA.SAC)

graph twoway scatter read write, ///

title("Grafica de Dispersion entre Lectura y Escritura ", ///

size(large) color(red) position(12) ring(9) box bcolor(white) ///

blcolor(red) bmargin(medium)) ///

ytitle(Nota del Examen de Escritura) ///

xtitle(Nota del Examen de Lectura) ///

subtitle("Muestra de 200 Estudiantes") ///

note(Datos de Escuela Secundaria y Superior, size(medium) ///

Page 45: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.5. Opciones para Edicion de Graficos 45

position(5))

caption(Grupo IDDEA.SAC, size(vsmall) position(5))

graph twoway scatter read write, ///

title("Grafica de Dispersion entre Lectura y Escritura ", ///

size(large) color(red) position(12) ring(9) box bcolor(white) ///

blcolor(red) bmargin(medium)) ///

ytitle(Nota del Examen de Escritura, color(white)) ///

xtitle(Nota del Examen de Lectura, color(white)) ///

subtitle("Muestra de 200 Estudiantes", color(white)) ///

note(Datos de Escuela Secundaria y Superior, color(white) ///

size(medium) position(5)) ///

caption(Grupo IDDEA.SAC,color(green) size(small) position(5)) ///

graphregion( color(navy) ) ///

plotregion( fcolor(teal) )

Figura 3.21: Despues de la edicion

UdecomBooks

Page 46: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

46 3. Analisis Grafico con Stata

use encuesta.dta

graph hbar commute, over(division)

graph hbar commute, over(division) asyvar

graph bar propval100, over(nsw) over(division) nofill asyvars ///

ylabel(0(10)80)

twoway scatter ownhome propval100, xlabel(#10) ylabel(#5)

twoway scatter ownhome propval100, xscale(alt)

twoway scatter propval100 rent700 ownhome, ylabel(0(10)100) ///

yscale(alt)

twoway (scatter propval100 ownhome) (scatter rent700 ownhome, ///

yaxis(2))

twoway scatter ownhome propval100 [aweight=rent700], msize(small) ///

scheme(vg_outm) yscale(alt) xscale(alt)

Figura 3.22: Grafico de burbujas

use s&p.dta

Page 47: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.6. Trabajando con Esquemas y Graficos Adicionales 47

tw (rarea high low date) (spike volmil date)

tw (rarea high low date) (spike volmil date, yaxis(2))

tw (rarea high low date) (spike volmil date, yaxis(2)), ///

yscale(range(500 1400) axis(1))

tw (rarea high low date) (spike volmil date, yaxis(2)), ///

yscale(range(500 1400) axis(1)) yscale(range(0 5) axis(2))

tw (rarea high low date) (spike volmil date, yaxis(2)), ///

yscale(range(500 1400) axis(1)) yscale(range(0 5) axis(2)) ///

scheme(vg_teal)

Figura 3.23: Diferentes escalas

3.6.Trabajando con Esquemas y Graficos Adi-

cionales

3.6.1.Esquemas

use encuesta.dta

scatter propval100 rent700 ownhome, scheme(vg_blue)

UdecomBooks

Page 48: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

48 3. Analisis Grafico con Stata

Figura 3.24: Scatter y esquema vg blue

Page 49: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.6. Trabajando con Esquemas y Graficos Adicionales 49

3.6.2.Graficos de Barras Verticales

use nlsw.dta

graph bar ttl_exp

graph bar prev_exp tenure ttl_exp

graph bar (median) prev_exp tenure ttl_exp

graph bar (median) prev_exp tenure (mean )ttl_exp

graph bar (mean) meanwage=wage (median ) medwage=wage

graph bar prev_exp tenure, over(occ5)

graph bar prev_exp tenure, over(occ5) percentages

graph bar prev_exp tenure, over(occ5) percentages stack

use highshool.dta

graph bar write, over( race) over( female) over( ses) ///

legend(rows(1) stack) blabel(bar, format(%4.1f) size(vsmall)) ///

bargap(10) percent scheme(vg_blue)

Figura 3.25: Bar y esquema vg green

3.6.3.Graficos de Barras Horizontales

use nlsw.dta

graph hbar wage, over(occ5)

graph hbar wage, over(occ5) over(collgrad)

graph hbar wage,over(urban2) over(occ5) over(collgrad)

UdecomBooks

Page 50: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

50 3. Analisis Grafico con Stata

graph hbar wage,over(urban3) over(union) missing

graph hbar wage,over(grade4) over(union)

graph hbar wage,over(grade4, gap(*.3)) over(union)

graph hbar wage,over(grade4, gap(*3)) over(union)

graph hbar wage,over(occ7)

graph hbar wage,over(occ7, sort(1))

graph hbar wage,over(occ7, sort(1) descending)

graph hbar wage hours,over(occ7)

graph hbar wage hours,over(occ7, sort(1))

graph hbar wage hours,over(occ7, sort(2))

graph hbar wage hours,over(occ7, sort(2)) over(married)

graph hbar wage hours,over(occ7, sort(2)) over(married, ///

descending) asyvars

graph hbar wage hours,over(occ7, sort(2)) over(married, ///

descending) asyvars stack

graph hbar wage,over(occ7, label(alternate)) over(collgrad)

Figura 3.26: Hbar y esquema vg rose

3.6.4.Graficos de Cajas

use nlsw.dta

graph box wage, over(grade4)

graph box wage, over(grade4) nooutsides

graph box wage, over(grade4) nooutsides over(union)

graph box wage, over(grade4) nooutsides over(union) ///

Page 51: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.6. Trabajando con Esquemas y Graficos Adicionales 51

asyvars

graph box wage, over(grade4) nooutsides over(union) ///

asyvars over(urban2)

graph hbox tenure, nooutsides over(occ7)

graph hbox tenure, nooutsides over(occ7, sort(1))

graph hbox prev_exp tenure, nooutsides over(occ7, ///

sort(1))

graph hbox prev_exp tenure, nooutsides over(occ7, ///

sort(1)) over(collgrade)

graph hbox prev_exp tenure, nooutsides over(occ7, ///

sort(1)) over(collgrad)

graph hbox ttl_exp tenure, nooutsides over(urban2) ///

over(married) by(union)

graph hbox ttl_exp tenure, nooutsides over(urban2) ///

over(married) by(union, total)

graph hbox ttl_exp tenure, nooutsides over(urban2) ///

over(married) by(union, total row(1))

graph hbox ttl_exp tenure, nooutsides over(urban2) ///

over(married) by(union, total cols(1))

Figura 3.27: Hbox y esquema vg teal

3.6.5.Graficos de Pastel

use nlsw.dta

graph pie, over(occ7)

UdecomBooks

Page 52: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

52 3. Analisis Grafico con Stata

graph pie, over(union)

graph pie, over(union) missing

graph pie, over(occ7)

graph pie, over(occ7) noclockwise

graph pie, over(occ7) noclockwise sort

graph pie, over(occ7) sort pie(3, explode)

graph pie, over(occ7) sort pie(3, explode color(cyan)) ///

pie(7, explode(5) color(gold))

graph pie, over(occ7)

graph pie, over(occ7) plabel(_all sum)

graph pie, over(occ7) plabel(_all sum) scheme(economist)

graph pie, over(occ7) plabel(_all percent) scheme(economist)

graph pie, over(occ7) plabel(_all name) scheme(economist)

graph pie, over(occ7) plabel(_all name, gap(-5)) ///

plabel(_all percent, gap(5) format("%2.0f")) scheme(economist)

graph pie, over(occ7) plabel(_all name, gap(-5)) ///

plabel(_all percent, gap(5) format("%2.0f")) ///

legend(title(Ocupacion) position(9) cols(1) stack) ///

scheme(economist)

Figura 3.28: Pie y esquema economist

Page 53: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

3.6. Trabajando con Esquemas y Graficos Adicionales 53

RETO 3

CLASIFICACION DE RIESGOSLa base de datos “deudores”, tiene informacion acerca de la edad, sexo,

distrito, ingresos, deuda, y calificacion de la deuda, para 19,000 deudores.

. ¿Cual es la edad promedio de la muestra? Analice la distribucion de la edad,con un histograma.

. ¿Que AFP tiene mas clientes? Realice una grafica sustentando su respuesta.

. Genere una dummy mal pagador, que sea 1 si el deudor esta atrasado consus deudas

. ¿Que % de hombres y mujeres son mal pagadores? ¿Quienes ganan mas, enpromedio?

. ¿A que edad las personas se atrasan menos? Realice una grafica sustentandosu respuesta.

. Genere una nueva base de datos a nivel de distrito, con el numero de per-sonas, el salario promedio, y el % de deudores atrasados.

. Guarde solo los distritos con al menos 100 personas.

. ¿Que distritos son los mas ricos? ¿En cuales la gente es peor pagadora?Realice una grafica sustentando sus resultados.

UdecomBooks

Page 54: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

54 3. Analisis Grafico con Stata

Page 55: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

Sesion 4

Analisis de Regresion Lineal

4.1. Regresion Lineal

Ahora vamos a trabajar con las herramientas que hemos aprendido y va-mos a generar relaciones econometricas. Empecemos con evaluar una regresionMCO.

use elemapi.dta

regress api00 acs_k3 meals full

Nuestras expectativas son que un mejor rendimiento academico, este rela-cionado con un tamano de clase pequeno, pocos estudiantes recibiendo comida

55

UdecomBooks

Page 56: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

56 4. Analisis de Regresion Lineal

gratuita, y un alto porcentaje de profesores que tengan sus credenciales deensenanza completa.

regress api00 acs_k3 meals full

Ahora debemos observar los coeficientes de los resultados de nuestra regre-sion, y su significancia. Estos coeficientes deben ser coherentes con nuestrasexpectativas. ¿Que es lo que observamos?

Antes de decir que esta regresion es correcta debemos hacer un conjuntode pruebas.

describe

list in 1/5

list api00 acs_k3 meals full in 1/10

codebook api00 acs_k3 meals full yr_rnd

summarize api00 acs_k3 meals full

summarize acs_k3, detail

tabulate acs_k3

list snum dnum acs_k3 if acs_k3 < 0

list dnum snum api00 acs_k3 meals full if dnum == 140

histogram acs_k3

graph box acs_k3

stem acs_k3

stem full

tabulate full

tabulate dnum if full <= 1

count if dnum==401

Hemos encontrado 3 problemas en la data, valores perdidos, valores nega-tivos insertados de manera incorrecta y proporciones introducidos como por-centajes.

Page 57: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

4.1. Regresion Lineal 57

regress api00 acs_k3 meals full

Luego de corregir la data podemos volver a estimar la regression y observar:

use elemapi2.dta

regress api00 acs_k3 meals full

Digamos que estamos interesados en saber cual es la relacion entre el nu-mero de estudiantes y el rendimiento academico.

regress api00 enroll

Primero debemos fijarnos en el test F, y ver si es significativo, lo cual nosmostrara la significancia del modelo. El R2 nos dira que tanto de la varianzade nuestra variable endogena, es explicado por los regresores. Luego debemosobservar la significancia de los parametros, ver si sus signos son acorde con lateorıa. La constante es el valor predecido para cuando nuestra explicativa seacero.

Podemos observar tambien que Stata nos presenta la descomposicion de lavarianza. La varianza total esta particionada en la varianza explicada por lasvariables independientes (model) y la varianza que no es explicada por dichasvariables(residual). Sabemos que existe una suma de cuadrados asociada a lastres partes de la varianza. Conceptualmente estas son:

SST =∑

(y − y)2

SSR =∑

(y − y)2

SSM =∑

(y − y)2

Ası pues se puede comprobar que SST=SSM+SSR, ademas debemos recordartambien que R2=SSM/SST.Tambien podemos observar los grados de libertad, asociados con cada partede las varianzas. La varianza total tiene N-1 gl, los gl del modelo son K-1, losgl del residuo simplemente es la diferencia entre el total menos el modelo.Observamos tambien las medias cuadraticas, es decir la division de la suma decuadrados entre sus gl. Con estas nosotros podemos calcular el valor del testF=MSM/MSR, lo cual nos da el ajuste del modelo.El Root MSE es la desviacion estandar del error (raız cuadrada de MSR).

Obtengamos los valores predichos o estimados para el rendimiento academi-co con nuestro modelo y guardemos dichos valores en la variable fv

predict fv

Veamos los valores estimados y los reales:

UdecomBooks

Page 58: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

58 4. Analisis de Regresion Lineal

list api00 fv in 1/10

scatter api00 enroll

twoway (scatter api00 enroll) (lfit api00 enroll)

Veamos los outliers

twoway (scatter api00 enroll, mlabel(snum)) (lfit api00 enroll)

Ahora obtengamos el residuo de la regresion

predict e, residual

Ups, problemas en los coeficientes y sus significado, entonces ¿Que hacer?

regress api00 ell meals yr_rnd mobility acs_k3 acs_46 full ///

emer enroll, beta

De esta manera podemos comparar un coeficiente con otro, dado que todostienen la misma medida ahora.

Un nuevo comando, busquemos en la red.

findit listcoef

listcoef

Observacion SD=desviacion estandar observada, desviacion estandar de lavariable YSD del Error= desviacion estandar del error: MSE (error estandar de la predic-cion) bstdx=coeficientes de la regresion con las variables x(estandarizadas) yla variable Y(en su unidad original)bstdy=coeficientes de la regresion con las variables x(en su unidad original) yla variable Y(estandarizada)bstdxy=coeficientes de la regresion con las variables x(estandarizadas) y lavariable Y(estandarizada)

Veamos una prueba de hipotesis

test ell==0

test ell

Veamos una prueba de hipotesis conjunta

test acs_k3 acs_46

Veamos la correlacion entre las variables

correlate api00 ell meals yr_rnd mobility acs_k3 acs_46 full ///

emer enroll

Page 59: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

4.2. Diagnostico de los Resultados 59

Veamos otra opcion para correlacionar variables

pwcorr api00 ell meals yr_rnd mobility acs_k3 acs_46 full ///

emer enroll, obs sig

La normalidad Solo el residuo necesita tener una distribucion normal, no lasvariables para que se validen los test. Los coeficientes estimados no requierenuna normalidad de residuos.

Seria bueno sin embargo poseer variables que posean una distribucion nor-mal.

histogram enroll

histogram enroll, normal bin(20)

histogram enroll, normal bin(20) xlabel(0(100)1600)

kdensity enroll, normal

graph box enroll

symplot enroll

qnorm enroll

pnorm enroll

Veamos todas las posibilidades

ladder enroll

gladder enroll

Ajustemos a nuestra mejor eleccion

generate lenroll = log(enroll)

hist lenroll, normal

4.2.Diagnostico de los Resultados

4.2.1.Efecto Influencia

Ahora vamos a centrarnos en el diagnostico de nuestros resultados. Vemoslos problemas que podrıan presentarse. Para ello debemos considerar los efectosde outliers (una observacion con un amplio residuo, que indica una muestrapeculiar o un error en la data), leverage (medida de cuan lejos una variableindependiente esta desviada de su media, puede afectar los coeficientes dela regresion) y el efecto influencia (observacion que al removerla, cambia laestimacion de los coeficientes radicalmente. dicho problema se le atribuye a unleverage o a un outlier)

Usemos para esto, la base de datos disenada por Alan Agresti y BarbaraFinlay (Prentice Hall, 1997).

UdecomBooks

Page 60: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

60 4. Analisis de Regresion Lineal

use crimen.dta

describe

sum crimenes asesinatos pcturb pctblanco pctnivedu pobreza soltero

graph matrix crimenes pcturb pobreza soltero

Figura 4.1: Crimenes, pcturb, pobreza y soltero

Observamos algunas irregularidades. Vemos en muchos graficos puntos queestan apartados del resto ¿de que estados seran?

scatter crimenes pcturb, mlabel(estado)

scatter crimenes pobreza, mlabel(estado)

scatter crımenes soltero, mlabel(estado)

¿Que observamos?

regress crimenes pcturb pobreza soltero

predict r, rstudent

stem r

sort r

list estadoid estado r in 1/10

list estadoid estado r in -10/l

findit hilo

hilo r estado

Page 61: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

4.2. Diagnostico de los Resultados 61

list r crimenes pcturb pobreza soltero if abs(r) > 2

predict lev, leverage

stem lev

hilo lev estado, show(5) high

Analizar aquellos puntos con leverage mayores a (2k+2)/n

display (2*3+2)/51

list crimenes pcturb pobreza soltero estado lev if lev >.156

Veamos el leverage y los residuos cuadrados

lvr2plot, mlabel( estado)

list estado crimenes pcturb pobreza soltero if estado=="dc" | ///

estado=="ms"

Veamos los Cook’s D

predict d, cooksd

list crimenes pcturb pobreza soltero estado d if d>4/51

Veamos la influencia

predict dfit, dfits

list crimenes pcturb pobreza soltero estado dfit if abs(dfit)> ///

2*sqrt(3/51)

Evaluemos que pasarıa con los coeficientes si se borrara la informacionen algunas variables, ¿estos cambiarıan? Es decir, ¿nuestros coeficientes sonrobustos o no?

dfbeta

list estado DFpcturb DFpobreza DFsoltero in 1/5

El valor de dfbeta para una observacion, significara que de ser incluida enel analisis (comparativamente a no ser incluida) incrementara el coeficiente debeta, en dicho valor multiplicado por el error estandar del beta correspondiente.Un dfbeta mayor a 2/sqrt(n) necesita ser investigado.

display 2/sqrt(51)

scatter DFpcturb DFpobreza DFsoltero estadoid, ylabel(-1(.5)3) ///

yline(.28 -.28)

scatter DFpcturb DFpobreza DFsoltero estadoid, ylabel(-1(.5)3) ///

yline(.28 -.28) mlabel(estado estado estado)

list DFsoltero estado crimenes pcturb pobreza soltero if ///

abs( DFsoltero) > 2/sqrt(51)

UdecomBooks

Page 62: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

62 4. Analisis de Regresion Lineal

Veamos el efecto influencia a traves de regresiones parciales, de maneragrafica.

avplot soltero, mlabel( estado)

avplots

regress

regress crimenes pcturb pobreza soltero if estado !="dc"

Si bien podemos buscar outliers con variables pertenecientes al modelo,tambien podemos hacerlo con variables que no estan incluidas en el modelo.

regress crimenes pcturb pobreza soltero

avplot pctblanco

regress crimenes pcturb pobreza soltero pctblanco

4.3.Normalidad del Residuo

La normalidad del residuo es requerida por muchas investigaciones si nosotrosdeseamos validar las pruebas de hipotesis sobre t-value y F-value. Ojo, la nonormalidad del residuo no invalidad la regresion. Una regresion valida requiereque el residuo sea identica e independientemente distribuida, no requiere quelas variables explicativas sean distribuidas de forma normal. Si no como ex-plicarıamos el uso de variables dummys en nuestras regresiones.

use elemapi2,clear

regress api00 meals ell emer

predict r, resid

Analisis grafico de normalidad

kdensity r, normal

pnorm r

qnorm r

Page 63: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

4.4. Homocedasticidad del Residuo 63

Test de NormalidadTest de Lawrence C. Hamilton

findit iqr

iqr r

Test de Shapiro-Wilk W (Ho: Normalidad)

swilk r

4.4.Homocedasticidad del Residuo

Supuesto crucial en un modelo MCO, la varianza de sus residuos debe serconstante. Si la varianza no es constante entonces hay heterocedasticidad quebien podrıa ser modelada a traves de un modelo de volatilidad.

Deteccion

rvfplot, yline(0)

Figura 4.2: Homocedasticidad del residuo

Test de Heterocedasticidad (Ho: Varianza constante)

Test de White

estat imtest

Test de Breusch y Pagan

UdecomBooks

Page 64: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

64 4. Analisis de Regresion Lineal

estat hettest

El analisis grafico no nos muestra un problema serio de heterocedasticidad.Ası que no lo corregiremos por ahora.

4.5.Multicolinealidad

Cuando dos variables explicativas estan altamente relacionadas, podemoshablar de multicolinealidad. Para detectar la multicolinealidad nosotros usa-remos el factor de inflacion de varianza (VIF) Aquella variable cuyo vif seamayor a 10 debera ser investigada.

regress api00 meals ell emer

vif

regress api00 acs_k3 avg_ed grad_sch col_grad some_col

vif

¿Que podriamos decir de esta regresion?, ¿porque presentaria problemasde multicolinealidad?

regress api00 acs_k3 grad_sch col_grad some_col

vif

findit collin

collin acs_k3 avg_ed grad_sch col_grad some_col

collin acs_k3 grad_sch col_grad some_col

4.6.Linealidad

Uno de los supuestos del Modelo Lineal General es la linealidad de para-metros especificada en mi regresion. Si estamos frente a un ajuste no lineal,entonces nosotros tendremos problemas dado que estamos forzando una lıneacomo ajuste de nuestra relacion no lineal.

Analicemos solo a una variable.

regress api00 enroll

twoway (scatter api00 enroll) (lfit api00 enroll) (lowess api00 enroll)

regress api00 meals some_col

predict r, resid

scatter r meals

scatter r some_col

Page 65: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

4.7. Especificacion del modelo 65

No se vio una clara no linealidad, entonces usemos algo mas efectivo

acprplot meals, lowess lsopts(bwidth(1))

acprplot some_col, lowess lsopts(bwidth(1))

Tampoco se ve un problema grave de no linealidad. Usemos una data masinteresante.

use nations.dta

describe

regress birth gnpcap urban

acprplot gnpcap, lowess

acprplot urban, lowess

graph matrix birth gnpcap urban, half

kdensity gnpcap, normal

Transformemos un dato

generate lggnp=log(gnpcap)

label variable lggnp "log-10 of gnpcap"

kdensity lggnp, normal

Regresionemos con el dato transformado

regress birth lggnp urban

acprplot lggnp, lowess

4.7.Especificacion del modelo

Un error en la especificacion del modelo puede ocurrir cuando uno o masvariables relevantes son omitidas del modelo o una o mas variables relevantesson incluidas en el modelo. Una mala especificacion puede afectar los parame-tros estimados.

Digamos que estamos corriendo una regresion entre el tamano de la clase yel rendimiento academico, un incremento en la primera influira incrementandola segunda, evaluaremos la especificacion del modelo, para ello usaremos lossiguientes comandos

use elemapi2, clear

regress api00 acs_k3

Un par de metodos Linktest, esta basado en la idea de que si el modeloesta bien especificado, entonces no deberıamos encontrar variables independi-entes que sean significativas. El comando crea 2 variables nuevas, una variable

UdecomBooks

Page 66: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

66 4. Analisis de Regresion Lineal

estimada, y el cuadrado de dicha estimacion. Se evalua el modelo con ambasvariables, la estimacion y hat deberıa ser significativa pues es el valor estimado,pero su cuadrado no deberıa serlo, pues de estar bien especificado el modelo,la estimacion al cuadrado no deberıa tener mucho poder explicativo.

Linktest

Ovtest

regress api00 acs_k3 full

linktest

ovtest

regress api00 acs_k3 full meals

linktest

ovtest

4.8.Independencia

Los errores asociados a una observacion no deberıan estar asociados a loserrores de alguna otra observacion. En nuestro caso, al haber recolectado datosde 8 tipos de escuela es probable que estudiantes dentro de sus escuelas tiendana ser mas parecidos que estudiantes de otra escuela, esto producirıa errores noindependientes. El problema de autocorrelacion es muy comun en series detiempo, en la cual nosotros evaluamos el test DW para ver la autocorrelacionde primer orden. Si quisieramos especificar este analisis en nuestra data, po-drıamos considerar a la variable snum como el tiempo

use elemapi2, clear

tsset snum

regress api00 enroll

dwstat

predict r, resid

scatter r snum

¿Que observamos?

Page 67: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

4.8. Independencia 67

RETO 4

. Trabajar con el archivo “gobusa5089.dta” y contestar las siguientes pregun-tas:

¿Identificar las variables y opinar respecto a cada variable, realizarun analisis grafico y estadıstico para comprender la base de datos?.¿Identificar las variables de polıtica y las variables apolıticas?

¿Elaborar una tabla de correlaciones entre la variable tax y las variablespolıticas y comentar los resultados sobresalientes?.

Responder a lo siguiente: ¿Quienes cobran mas impuestos, los esta-dos con gobiernos divididos o los estados con gobiernos unificados?,¿que tan seguro estas de su respuesta?.

Marco teorico mınimo. Existen varias teorıas respecto del impacto de losfactores polıticos y economicos sobre la polıtica tributaria en cada estado:

Las teorıas apolıticas dicen que las variables socioeconomicas y de-mograficos (ingreso, poblacion, grupos de edad) son los principales de-terminantes de los impuestos.

Entre las teorıas polıticas, algunos dicen que los factores polıticos par-tidistas (partido en el gobierno y/o congreso local, mayorıa democrataen el congreso o no, etc.) tambien son importantes.

Mientras que otros dicen que son las variables polıticas no-partidistas(gobierno dividido, margen de la primera fuerza en el congreso local,etc.) las que afectan los impuestos, y no tanto la ideologıa o identidaddel partido en el poder (democrata vs. republicano).

Especifica al menos tres regresiones (con errores estandar robustos) parala variable tax y compara sus resultados. Interpreta brevemente los coefi-cientes, su bondad de ajuste, etc. y explica cual de ellos es preferible a losotros. (Tip: no incluyas la variable spend en tu regresion).

Pruebas de hipotesis

Controlando por otros factores, la relacion entre poblacion e impuestoses no lineal.

Controlando por otros factores, los gobernadores democratas cobranmas impuestos que los no democratas.

Manteniendo otros factores constantes, los estados con mayorıa democra-ta en el congreso local cobran mas impuestos que los gobiernos sinmayorıa democrata.

UdecomBooks

Page 68: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

68 4. Analisis de Regresion Lineal

Manteniendo otros factores constantes, los gobiernos divididos cobranmenos impuestos que los gobiernos no divididos.

El impacto del gobierno dividido cambia si solo consideramos el perıodo1975-1989 en la regresion.

Manteniendo otros factores constantes, una vez que controlamos porquien tiene la mayorıa en el congreso (demmaj1), el margen de estamayorıa (dem1) no tiene un impacto en los impuestos.

Interpretando regresiones:

¿Cual es la bondad de ajuste de un modelo sin variables polıticas? ¿Cuantopoder explicativo adicional se consigue al incluir las variables polıticas?¿Que variables polıticas importan mas, las partidistas o las no partidistas?(ojo, esta pregunta requiere cierta interpretacion de la R2 ajustada de variosmodelos, ası como la magnitud y significancia de tus coeficientes).

Predicciones:

¿Cuanto cambian los impuestos per capita si el ingreso per capita aumenta enuna desviacion estandar? Calcula este cambio en dolares y como proporcionde los impuestos promedio de la muestra.

¿Cuanto cambian los impuestos cuando la mayorıa democrata en el congresolocal pasa de 10 a 30 %? Calcula este cambio en dolares y como proporcionde los impuestos promedio de la muestra.

Page 69: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

Sesion 5

Variables Categoricas

5.1. Estimacion con Variables Categoricas

Habıamos usado variables continuas anteriormente, sin embargo es posibleusar variables categoricas en un analisis de regresion pero requiere un trabajoextra en la interpretacion, el analisis y diagnostico de los resultados.

use elemapi2.dta, clear

describe api00 some_col yr_rnd mealcat

codebook api00

codebook some_col

codebook yr_rnd

codebook mealcat

Uso de variables dummy Regresionemos el rendimiento academico con lavariable que nos indica si el alumno esta en el programa year-round o no

regress api00 yr_rnd

twoway (scatter api00 yr_rnd) (lfit api00 yr_rnd)

tabulate yr_rnd, sum(api00)

Observamos un parametro negativo en la regresion, para nuestra variabledummy. Esto significa que si dicha variable toma el valor de cero la medida delrendimiento de los alumnos sera su media considerando solo a aquellos alumnosque no estan en el programa o sistema de ensenanza, mientras que si la variabletoma el valor de uno, la medida del rendimiento sera la media considerandosolo a aquellos alumnos que si estan bajo este sistema de ensenanza.

ttest api00, by(yr_rnd)

anova api00 yr_rnd

display 10.7815^2

codebook mealcat

regress api00 mealcat

69

UdecomBooks

Page 70: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

70 5. Variables Categoricas

Pero esta variable mealcat es una variable intervalo, podrıamos generar tresvariables a partir de esta, de tal forma que podamos definir a cada sub variablecomo un valor cada vez que mealcat pertenezca a cierto intervalo.

tabulate mealcat, gen(mealcat)

list mealcat mealcat1 mealcat2 mealcat3 in 1/10, nolabel

regress api00 mealcat2 mealcat3

La constante es la media para el grupo1. El coeficiente de mealcat2 es lamedia del grupo 2 menos la media del grupo1, y el coeficiente de mealcat3 esla media del grupo3 menos la media del grupo1.

Los resultados nos dicen que los tres grupos difieren de sus medidas derendimientos.

test mealcat2 mealcat3

tabulate mealcat, summarize(api00)

5.2.El Comando Xi

Lo mismo podemos hacer con el comando “xi”,

xi : regress api00 i.mealcat

test _Imealcat_2 _Imealcat_3

Si desearamos omitir el tercer grupo y no el primero, entonces deberıamosusar el siguiente comando:

char mealcat[omit] 3

xi : regress api00 i.mealcat

Nosotros podemos hacer el mismo analisis usando el comando “anova”

anova api00 mealcat

anova, regress

Aquı vemos que siempre la ultima categorıa es borrada y reemplazada conla constante.

Los beneficios del comando “anova” es que te da el efecto total de meal-cat sin necesitar el uso del comando test como lo hacıamos con el comando“regress”.

Volvamos a nuestras regresiones:

regress api00 yr_rnd

xi : regress api00 i.mealcat

Page 71: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

5.2. El Comando Xi 71

Y ahora vamos a estimar el rendimiento academico usando una variabledicotomica mas:

xi : regress api00 i.mealcat yr_rnd

test _Imealcat_1 _Imealcat_2

anova api00 yr_rnd mealcat

anova, regress

Dado que este modelo solo tiene efectos principales, sin interacciones, lainterpretacion del coeficiente de ”yr rnd”, es la diferencia entre escuelas consistema year round y escuelas sin ese sistema de ensenanza, el primer coeficientepara la variable “mealcat” es la diferencia entre mealcat=1 y mealcat=3, elsegundo es la diferencia entre mealcat=2 y mealcat=3 (siendo mealcat=3 lavariable categorica de referencia y la cual es estimada por la variable)

Finalmente los resultados indican que las diferencias entre un sistema deensenanza year-round y un sistema de ensenanza sin year-round es significativoy las diferencias entre los tres grupos mealcat tambien son significativos.

Veamos algunas interacciones con las variables categoricas:

xi : regress api00 i.mealcat*yr_rnd

Ahora incluiremos la interaccion entre mealcat y yr rnd Y testeamos lasignificancia:

test _ImeaXyr_rn_1 _ImeaXyr_rn_2

Si deseamos testear el efecto de yr rnd para mealcat=1:

test _b[yr_rnd] +_b[_ImeaXyr_rn_1] ==0

Puedo ver un testeo sobre todos los efectos principales e iteraciones sin lanecesidad de recurrir al comando test:

anova api00 yr_rnd mealcat yr_rnd*mealcat

regress api00 yr_rnd some_col

predict yhat

scatter yhat some_col

UdecomBooks

Page 72: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

72 5. Variables Categoricas

Para correr un Anova necesitamos indicarle que la variable a evaluar tienecaracterısticas de continuidad:

anova api00 yr_rnd some_col, cont(some_col)

INTERACCIONES

regress api00 some_col if yr_rnd==0

predict yhat0 if yr_rnd==0

scatter yhat0 api00 some_col if yr_rnd==0, connect(l i)

msymbol(i o) sort

regress api00 some_col if yr_rnd==1

predict yhat1 if yr_rnd==1

scatter yhat1 api00 some_col if yr_rnd==1, connect(l i)

msymbol(i o) sort

5.3.Pruebas de Hipotesis

El GPA (Grade Point Average, o promedio de notas) es una medida de lacalidad de su trabajo academico a nivel universitario. Algunos patrones suelenutilizar al GPA como un factor clave cuando les ofrezcan trabajo a egresadosde la universidad. Es por eso que resulta de suma importancia mantener unbuen GPA durante toda su carrera universitaria.

El examen de aptitud SAT (Scholastic Aptitude Test - Examen de apti-tudes escolares) es un examen estandarizado para admision a universidadesen EEUU. El rango de este, varia entre los 600 y 2400 puntos, consta de 3secciones, matematica, lectura critica, y escritura.

use GPA.dta, clear

desc

sum

reg colgpa sat verbmath tothrs hsperc hsize, robust

reg colgpa sat verbmath tothrs hsperc hsize hsizesq, robust

¿Si el SAT score aumenta 100 puntos, que tan probable es que el GPAaumente 0.25 puntos?

Afortunadamente, Stata hace pruebas de hipotesis de manera muy “intu-itiva”

¿Que pasa con la regresion si solo tomamos las primeras 2000 observacionesde la muestra?

reg colgpa sat verbmath tothrs hsperc hsize hsizesq ///

if _n<2000, robust

Page 73: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

5.3. Pruebas de Hipotesis 73

¿Que pasa si solo incluimos a las mujeres en la regresion?

reg colgpa sat verbmath tothrs hsperc hsize hsizesq ///

if female==1, robust

¿Que pasa si incluimos solo a las mujeres blancas?

reg colgpa sat verbmath tothrs hsperc hsize hsizesq ///

if female==1 & white==1, robust

¿Como les va a los hombres y mujeres en el SAT?

summ sat

summ sat if female ==1

summ sat if female ==1 & white==1

generate lhsize = log(hsize)

reg colgpa sat verbmath tothrs hsperc lhsize, robust

reg colgpa sat verbmath tothrs hsperc lhsize female ///

white black athlete, robust

generate mm = female * white * athlete

summ mm female white athlete

reg colgpa sat verbmath tothrs hsperc lhsize female ///

white black athlete mm, robust

Un modelo simple con variables interactivas:

xi: reg colgpa sat i.female*i.white

USEMOS LA BASE DE DATOS Salario2.dta

use Salario2.dta, clear

describe

Esta es una base de datos para explicar los salarios mensuales (wage)

summ

summ IQ, detail

hist IQ

hist wage

summ wage, detail

sktest IQ wage

REGRESIONES ROBUSTAS PARA SALARIOS

UdecomBooks

Page 74: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

74 5. Variables Categoricas

reg wage educ exper IQ, robust

summ educ exper

corr IQ educ exper

predict yhat, xb

summ yhat wage

Introduciendo una variable mas: MARRIED

reg wage educ exper IQ married, robust

EFECTOS INTERACTIVOS ENTRE VARIABLES CONTINUAS

generate edex=educ*exper

generate edumarr= educ*married

summ educ exper marr edex edumarr

Modelo Base:

reg wage educ exper IQ married , robust

Modelo con EDEX:

reg wage educ exper IQ married edex, robust

Modelo con EDUC*MARRIED y EDUC*EXPER:

reg wage educ exper IQ married edex edumarr, robust

corr educ exper edex

Modelo sin interaccion EDEX y dejando EDUMARR:

reg wage educ exper IQ married edumarr, robust

xi: reg wage educ exper i.black*i.married IQ, robust

reg wage educ exper IQ, robust

¿Que pasa si tienes 10 anos de educacion y 5 de experiencia?

lincom 10*educ + 5*exper

reg wage educ exper IQ married , robust

lincom 10*educ + 5*exper + married

HACIENDO PRUEBAS DE HIPOTESIS PARA UNA O MAS VARIABLES:

Pruebas F

test educ

test educ = 70

test educ = 80

Page 75: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

5.4. Creacion de Variables Dummys 75

Una prueba F tambien prueba la significancia CONJUNTA de un GRUPOde variables

reg wage educ exper IQ married tenure urban black meduc feduc, robust

test feduc meduc

test meduc

test tenure meduc

test tenure meduc black

5.4.Creacion de Variables Dummys

Existen tres formas de crear variables dicotomicas:

Si partimos de una variable cualitativa de multiples categorıas, entoncescon la especificacion “XI” sera posible la creacion de variables dicotomicas,reestructurando la variable categorica.

Una segunda forma de crear variables dicotomicas, es a traves de un co-mando “if” condicionando a una variable continua, la variable que se obtendra,sera entonces, mi variable latente.

La ultima forma de creacion es mediante el comando “input”, donde seespecificara el nombre de las variables y la introduccion de datos es de maneramanual.

5.5.Bucles y Programas

El uso de bucles en Stata o Eviews, no es muy usual, dado que estos pro-gramas implementan una plataforma orientada al usuario en lugar de a unprogramador.

input famid inc1-inc12

1 3281 3413 3114 2500 2700 3500 3114 3319 3514 1282 2434 2818

2 4042 3084 3108 3150 3800 3100 1531 2914 3819 4124 4274 4471

3 6015 6123 6113 6100 6100 6200 6186 6132 3123 4231 6039 6215

end

Ahora vamos a visualizarlo con un listado.

list famid inc1-inc12, clean

Si deseamos calcular una cantidad de 10 % en impuestos pagados por cadames, una manera simple de hacer esto computo a las 12 variables es medianteuna multiplicacion simple:

UdecomBooks

Page 76: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

76 5. Variables Categoricas

generate taxinc1 = inc1 * .10

generate taxinc2 = inc2 * .10

generate taxinc3 = inc3 * .10

generate taxinc4 = inc4 * .10

generate taxinc5 = inc5 * .10

generate taxinc6 = inc6 * .10

generate taxinc7 = inc7 * .10

generate taxinc8 = inc8 * .10

generate taxinc9 = inc9 * .10

generate taxinc10= inc10 * .10

generate taxinc11= inc11 * .10

generate taxinc12= inc12 * .10

Lo cual resulta algo tedioso, imagınense si tuvieran mas de 12 variablesdentro del computo. Ahora aplicaremos un criterio de programacion simple,estructurando un bucle que nos ayude a implementar el calculo de manerarapida y ordenada.

foreach var of varlist inc1-inc12 {

generate tax‘var’ = ‘var’ * .10

}

Ahora “var” es el contador, que cambiara de acuerdo al listado de variables,desde inc1 hasta inc12; dentro del looping, se podra acceder a “var” mediantecomillas, tales como “ ‘var’ ”.

¿Que sucede si usamos un contador numerico?

generate incqtr1 = inc1 + inc2 + inc3

generate incqtr2 = inc4 + inc5 + inc6

generate incqtr3 = inc7 + inc8 + inc9

generate incqtr4 = inc10+ inc11+ inc12

list incqtr1 - incqtr4

En forma mas rapida.

foreach qtr of numlist 1/4 {

local m3 = ‘qtr’*3

local m2 = (‘qtr’*3)-1

local m1 = (‘qtr’*3)-2

generate incqtr‘qtr’ = inc‘m1’ + inc‘m2’ + inc‘m3’

}

list incqtr1 - incqtr4

¿Si comparamos ingresos?, digamos que deseamos generar dummys talesque, indiquen “1” cuando el ingreso del mes actual sea menor que el ingreso

Page 77: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

5.5. Bucles y Programas 77

del mes anterior, y “0” cuando el ingreso del mes actual sea mayor o igual queel ingreso del mes anterior.

foreach curmon of numlist 2/12 {

local lastmon = ‘curmon’ - 1

generate lowinc‘curmon’ = 1 if ( inc‘curmon’ < inc‘lastmon’ )

replace lowinc‘curmon’ = 0 if ( inc‘curmon’ >= inc‘lastmon’ )

}

Listamos para observar los resultados

list famid inc1-inc12, clean noobs

list famid lowinc2-lowinc12, clean noobs

Otra manera de hacer lo mismo:

forvalues curmon = 2/12 {

local lastmon = ‘curmon’ - 1

generate lowinc‘curmon’ = 1 if ( inc‘curmon’ < inc‘lastmon’ )

replace lowinc‘curmon’ = 0 if ( inc‘curmon’ >= inc‘lastmon’ )

}

Veamos ahora un comando tambien util para programar, el comando WHILE:

Ejemplo:

local i=1

while ‘i’ <=10 {

display ‘i’

local i=‘i’+1

}

Stata provee de la especificacion de programas que el usuario bien podriacrear. Crearemos un programa basico, “HOLA MUNDO”

program define Super

display "HOLA MUNDO"

end

UdecomBooks

Page 78: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

78 5. Variables Categoricas

Si deseamos crear otro programa con el mismo nombre, Stata nos mostraraun mensaje de error diciendonos que existe un programa con ese nombre porlo que debemos eliminarlo primero:

program drop Super

y ahora si podemos correr el programa.

Page 79: Stata B asico Intermedio Aplicado a la Investigaci on Econ omica - … · 2018-06-26 · Manejo de Datos 2.1.Cargando los Datos en Stata Ahora vamos a empezar el tratamiento de los

Bibliografıa

[1] Moya, Rufino - Estadıstica Descriptiva.

[2] Moya, Rufino; Saravia, Gregorio. -Probabilidad e Inferencia Estadıstica.

[3] Wooldridge, Jeffrey M. - Introduccion a la Econometrıa.

[4] Gujarati, Damodar - Fundamentos de Econometrıa

79

UdecomBooks