Stata B´ asico Aplicado a la Investigaci´ on Econ´ on omica omica
Juan Carlos Abanto Orihuela 25 de enero de 2013
2
Stata B´ asico asico Aplicado a la Investigaci´on on Econ´ omica omica
www.giddea.com
[email protected]
´Indice general ´Indice general
3
1. Introducci´ Introducci´ on on al Stata 1.1. Inician Iniciando do Stata Stata . . . . . . . . . . . . . . . . . 1.2. Tipos de de Archiv Archivos os en Stata Stata . . . . . . . . . . . 1.3. Estructu Estructura ra B´ asica asica de Stata . . . . . . . . . . . 1.4. Princip Principales ales Comando Comandoss de Trabajo y An´ alisis alisis . 1.4. 1.4.1. 1. Las Bit´ Bit´ acoras acoras . . . . . . . . . . . . . . 1.4. 1.4.2. 2. La Base Base de Dat Datos os . . . . . . . . . . . . 1.4.3. 1.4.3. Append, Append, Merge, Merge, Collap Collapse se . . . . . . . .
. . . . . . .
5 5 6 6 7 7 7 9
. . . . . . . . . . .
15 15 15 17 18 18 19 22 24 26 26 27
. . . . . . . .
31 31 33 38 40 40 40 43 47
2. Manejo Manejo de Datos Datos 2.1. Cargand Cargandoo los Datos Datos en Stata Stata . . . . 2.2. Etiqueta Etiquetass . . . . . . . . . . . . . . 2.3. 2.3. Coman Comando do IF IF . . . . . . . . . . . . . 2.4. Comando Comando SUMMAR SUMMARIZE IZE . . . . . . 2.5. Comando Comando SPLIT SPLIT . . . . . . . . . . 2.6. Creando Variables ariables . . . . . . . . . . 2.7. 2.7. KEEP KEEP y DRO DROP P . . . . . . . . . . . 2.8. Reestruc Reestructura turando ndo los los Datos Datos . . . . . 2.9. Muestreos Probabil Pro babil´´ısticos . . . . . . 2.10. Generaci´on o n de N´ umeros umeros Aleatorios Aleatorios 2.11. Percentiles, Cuartiles, Deciles . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
3. An´ alisis alisi s Grafico Gra fico con Stata 3.1. Visualizando Visualizando Algunos Algunos Comandos Comandos . . . . . . . . . 3.2. TWOWA TWOWAY . . . . . . . . . . . . . . . . . . . . . . 3.3. TWOWA TWOWAY y SCATTERPLOT SCATTERPLOT . . . . . . . . . . 3.4. Combinando TWOW TWOWAY Y SCATTERPLOT SCATTERPLOT . . . 3.4.1. Filtro de Gr´aficos aficos . . . . . . . . . . . . . . 3.4.2. Uni´on on de Gr´ aficos aficos . . . . . . . . . . . . . . 3.5. Opciones Opciones para para Edic Edici´ i´ on on de Gr´aficos aficos . . . . . . . . . 3.6. Trabajando rabajando con Esquema Esquemass y Gr´ aficos aficos Adicionales 3
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
´INDICE GENERAL
4 3.6.1. 3.6.2. 3.6.3. 3.6.4. 3.6.5.
Esquemas . . . . . . . . . . . . Gr´aficos de Barras Verticales . . Gr´aficos de Barras Horizontales Gr´aficos de Cajas . . . . . . . . Gr´aficos de Pastel . . . . . . . .
4. An´ alisis de Regresi´ on Lineal 4.1. Regresi´ on Lineal . . . . . . . . 4.2. Diagnostico de los Resultados . 4.2.1. Efecto Influencia . . . . 4.3. Normalidad del Residuo . . . . 4.4. Homocedasticidad del Residuo . 4.5. Multicolinealidad . . . . . . . . 4.6. Linealidad . . . . . . . . . . . . 4.7. Especificaci´ on del modelo . . . 4.8. Independencia . . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
5. Variables Categ´ oricas 5.1. Estimaci´on con Variables Categ´ oricas . 5.2. El Comando Xi . . . . . . . . . . . . . 5.3. Pruebas de Hip´ otesis . . . . . . . . . . 5.4. Creaci´on de Variables Dummys . . . . 5.5. Bucles y Programas . . . . . . . . . . . Bibliograf´ıa
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . .
47 49 49 50 51
. . . . . . . . .
55 55 59 59 62 63 64 64 65 66
. . . . .
69 69 70 72 75 75 79
www.giddea.com
[email protected]
Sesi´ on 1 Introducci´ on al Stata 1.1.
Iniciando Stata
Stata es una poderosa herramienta en aplicaciones econ´ omicas. Puede ayudarnos a analizar f´ acil y eficientemente, series de tiempo, paneles, y data de secci´on cruzada. Nos dar´ a las herramientas que necesitamos para organizar y manejar un gran tama˜ no de data, obteniendo resultados de an´ alisis estad´ısticos. En esta sesi´on introduciremos las nociones b´ asicas del software, para posteriormente realizar un an´ alisis estad´ıstico y familiarizarnos con el manejo y modificaci´on de la base de datos. Veamos como se presenta Stata al iniciarse. (ver Figura 1.1)
Figura 1.1: Pantalla de Inicio 5
6
1. Introducci´ on al Stata
Los comandos de stata est´ an implementados en el men´ u el cual esta organizado por t´ opicos. As´ı nosotros podemos trabajar interactivamente y de manera muy simple, sin embargo sigue siendo u´til el uso de comandos para realizar el an´ alisis dado que da pie al manejo de programas, o estructuras de programaci´ on. (ver Figura 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 extensi´ on dta, para la generaci´ o n de base de datos, en ella se almacenara informaci´ on de las variables con su respectiva extensi´ on. Archivo de extensi´ on log, smcl, para la generaci´ on de bit´ acoras, en ella se guardaran los resultados de manera ordenada, sin tener que pasarlos a ning´ un tipo de archivo de texto. Archivo de extensi´ on do, que es un archivo de ejecuci´ on, donde se elabora el programa. Archivo de extensi´on gph, para la generaci´on de gr´ aficos almacenados en la carpeta de trabajo
1.3.
Estructura B´ asica de Stata
Siempre que trabajemos en STATA, es recomendable que mantengamos cierta estructura. (ver Figura 1.3) Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
1.4. Principales Comandos de Trabajo y An´ alisis
7
Figura 1.3: Estructura B´ asica
1.4.
Principales Comandos de Trabajo y An´ alisis
Ahora veamos los principales comandos de trabajo, los cuales har´ a n que los futuros an´ alisis econom´etricos sean simples de realizar.
1.4.1.
Las Bit´ acoras
En estos objetos se guardara la informaci´ on tal y cual aparecen en la ventana Result, aunque tambi´ en podr´ıamos indicarle al programa que deseamos solo guardar los comandos y no los resultados. log using clase1.log o tambi´en cmdlog using clase1.log
1.4.2.
La Base de Datos
El uso de la base de datos es vital para nuestro an´alisis, a continuaci´on presentamos los comandos que nos ense˜ nara a trabajar con esta.
use auto.dta Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
8
1. Introducci´ on 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, tambi´ en sabemos como ampliar esta memoria para trabajar con data de gran capacidad. Sabemos como fijar el path de trabajo, como crear una rutina y como cargar la base de datos a nuestro espacio de trabajo. Ahora vamos a trabajar con la base de datos para empezar nuestro an´ alisis. use auto01.dta browse replace mpg=20 if mpg==19 save, replace list make list make price describe codebook summarize summarize summarize summarize summarize
mpg weight mpg weight if foreign price if mpg<21.3 price if mpg>=21.3 price, detail
tabulate mpg table table table table
mpg rep78, contents(n mpg) rep78, contents(n mpg mean mpg sd mpg median mpg) 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 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
1.4. Principales Comandos de Trabajo y An´ alisis
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 integr´ andolas en una sola. Append, pegara hacia abajo o verticalmente y Merge, pegara hacia el costado o de forma horizontal. clear use base1, list use base2, list use base3, list use base4, list
clear clear clear clear
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 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
10
1. Introducci´ on al Stata
la base de datos Base1 tiene los mismos campos (columnas) que la base de datos Base2, pero diferentes filas, seria u´til, unir ambas bases. Abramos entonces, la base de datos Base1 y peguemosla con la base de datos Base2, una uni´ on 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 los resultados: use base3.dta, clear list append using base4 list save base34.dta, replace list
¿Por qu´e la variable la variable sexo se a˜ nadi´o 2 veces como columna?¿por qu´e no se uni´ o 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 uni´on vertical. Veamos la base12 que ten´ıamos antes. Ahora mi inter´es es fusionar ambas bases de datos, para ello, primero debemos ordenar ambas bases seg´ un la variable con la que vamos a fusionar (la variable com´ un). use base034.dta, clear list sort nombre list Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
1.4. Principales Comandos de Trabajo y An´ alisis
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 Podemos tabular la variable merge para ver si se pegaron correctamente las bases de datos, o tambi´en observar la columna final merge en caso de bases chicas como esta. tab _merge
Analicemos los resultados. Hay tres posibles valores que puede tomar esta variable seg´ un lo muestra la figura1.6. Si toma el valor de 1 nos indicara que es una observaci´ on que solo se encuentra en la base matriz, si toma el valor de 2 nos indicara que es una observaci´ on que proviene de la base esclava, y si toma el valor de 3, nos indicara que la observaci´on proviene de ambas bases.
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
12
1. Introducci´ on al Stata
Figura 1.6: tab merge El comando collapse sirve para convertir una base de datos que contiene variables para diversas unidades de estudio, en una base de datos que contiene estad´ısticos de dichas variables (medias, medianas, sumas etc). Permite obtener estad´ısticos para unidades m´ as grandes (en un sentido jer´ arquico), como por ejemplo, pasar de datos por individuo a datos por hogar, de datos por distritos a datos por provincia (agregaci´ on) En el comando se especifican aquellas variables que se ”colapsan” y las condiciones que se imponen para dicha transformaci´ on. Algunas variables pueden ser colapsadas seg´ un su suma, otras seg´ un su media, etc. (ver figura1.7) Aquellas variables que no se especifican desaparecen autom´ aticamente de la base de datos. Este comando crea una nueva base de datos y cierra la base de partida. Si deseamos quedarnos con esta base debemos grabarla.
Figura 1.7: Estructura del comando “split” Basado en los WDI, genere una base de datos con los totales de CO2 emitidos por regi´ on, para el a˜ no 2002. Genere tambi´ en una base con la poblaci´ on mundial a lo largo del tiempo. Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
1.4. Principales Comandos de Trabajo y An´ alisis
13
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) 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 emitidos por regi´ on, para el a˜ no 2002. Genere tambi´en una base con la poblaci´ on mundial a lo largo del tiempo. use wdi,clear collapse (sum) co2 if year==2002, by(region) graph hbar (asis) co2, over(region) use wdi, clear collapse (sum) pop, by(year)
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
14
1. Introducci´ on al Stata
RETO 1 odulo 300 de La base “enaho01-2004-300-oct-nov.dta” contiene datos del m´ la ENAHO recopilados entre octubre y noviembre de 2004, mientras que “enaho01-2004-300-dic.dta” contiene los datos del mismo m´ odulo para diciembre de ese mismo a˜ no. Ambas bases est´an a nivel de individuos. Se pide juntar estos datos en un solo archivo que debe ser grabado con el nombre: “Personas.dta”. nada las siguientes variables: A la base “Personas.dta” a˜ Las 5 variables de Necesidades B´ asicas Insatisfechas (nbi1 al nbi5) desde la base de datos “enaho01-2004-100.dta”. Recuerde que esta base fue recopilada a nivel de hogares en el mismo periodo. La variable sobre tipo de vivienda (p101). odulo de educaci´ on a Usando el archivo “enaho01-2004-300-oct-nov.dta” (m´ nivel 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 de hombres en el hogar (ver p207), el m´ aximo nivel educativo aprobado por alg´ un miembro del hogar (ver p301a).
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
Sesi´ on 2 Manejo de Datos 2.1.
Cargando los Datos en Stata
Ahora vamos a empezar el tratamiento de los datos pero antes, hagamos un peque˜ no 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 poder identificarlas 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 reparaci´on en 1978" label variable price "Precio del carro en 1958" label variable mpg "Millas por galon para el carro"
15
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 label label label label
define define define define values
getareow 0 "prematuro" getareow 1 "rec.nac.", add getareow 2 "lactante", add getareow 3 "escolares", add 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" Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
2.3. Comando IF label label label label
define define define values
17
tipodaow 1 "nta", add tipodaow 2 "nti", add tipodaow 3 "nefro tox", add 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 explicativas serian sepsis y tipoda˜no, mientras que las de control serian sexo, getareo. Probablemente oliguria y congenito sean variables que me indiquen el nivel especifico de la enfermedad (serian variables no tan claras en este ejemplo).
2.3.
Comando IF
La estructura del comando IF es f´ acil de recordar, la figura2.1 nos muestra el 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) summarize summarize summarize summarize summarize
price price price price price
if if if if if
&
!missing(rep78)
(rep78 (rep78 (rep78 (rep78 (rep78
== <= == >= >=
1) | (rep78 == 2) 2) 3) | (rep78 == 4) | (rep78 == 5) 3) 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”. Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
18
2. Manejo de Datos
2.4.
Comando SUMMARIZE
Esta estructura es mas compleja y m´ as dif´ıcil de recordar, sin embargo la siguiente forma general (ver figura2.2), nos ayudara a recordarla y usarla de manera m´ as apropiada.
Figura 2.2: Estructura del comando “summarize”
use auto summarize summarize summarize summarize summarize
price mpg mpg price if (foreign == 1) mpg price if (foreign == 1) & (mpg <30) mpg price if (foreign == 1) & (mpg <30) , detail
Si queremos trabajar con observaciones del 1 al 10 summarize in 1/10
Tambi´en podr´ıa estar interesado en el resumen estad´ıstico para carros extranjeros y dom´esticos, 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 o m´as partes, usando un car´ acter que indica separaci´ on, de modo que se generan nuevas variables tipo string. (ver figura2.3) Es u ´ til para separar palabras, c´odigos u otras partes de una variable tipo string de informaci´ on m´ ultiple. Por ejemplo, en el siguiente caso (ver figura2.4), queremos separar el tipo de documento del n´ umero, en dos variables. Aqu´ı, el objetivo es que la variable string “documento” se parta en dos variables string, una que contenga el tipo de documento y otra el n´ umero de este documento. Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
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 dese´aramos concatenar dos variables cualquiera sean estas, y generar una variable tipo string, el comando a usar deber´a ser: egen docum=concat(documento1 documento2), punct("/")
Donde la opci´ on punct permite especificar el separador entre las distintas partes al conformar una u ´nica variable. Por ejemplo, espacio ser´ a punct(“ ”), o coma , punct(,) o gui´ on , punct(-).
2.6.
Creando Variables
Trabajemos con la base de datos auto, y con la variable length (longitud del auto en pulgadas) use auto, clear summarize length generate length_feet = length / 12 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
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 gal´ on) tabulate mpg
No nos es muy f´acil el an´alisis de esta variable, podr´ıamos mejorar su presentaci´ on si la clasific´aramos por rangos. generate replace replace replace tabulate
mpg3 = mpg3 = mpg3 = mpg3 = mpg mpg3
. 1 if (mpg <= 18) 2 if (mpg >= 19) & (mpg <=23) 3 if (mpg >= 24) & (mpg <.)
Ahora podemos hacer un cruce de tablas entre la variable mpg3 y la variable foreign y observar el millaje de los carros dom´esticos y extranjeros. ¿Qu´e es lo que se observa? Mediante una remodificaci´ on de los datos, podemos hacer lo mismo en unas cuantas 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 que nos muestre el millaje de los carros respecto a su origen, esta tomara el valor de “0” para valores por debajo de la media de mpg en el grupo domestico y extranjero y “1” para valores por encima de la media de mpg en los grupos domestico y extranjero. sort foreign by foreign: summarize mpg, detail
¿Qu´e observamos? Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
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 las reglas especificadas. recode opiniongob (1=4 nada) (2=3 poco) (3=2 "mas o menos") /// (4=1 bastante) (.=0 "no opina"), gen(opina)
Tambi´en podemos usar una extensi´ on del commando generate, egen me permitir´a crear expresiones mas complejas aun, tales como medias, desviaciones est´andar, m´aximos, 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: ericos, dentro de estos podemos encontrar la siguiente clasifica Datos num´ ci´on:
Figura 2.5: Datos Tipo Num´ericos Datos cadena de texto, dentro de estos podemos encontrar la siguiente cla-
sificaci´on:
Figura 2.6: Datos Tipo Cadena
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
22
2. Manejo de Datos
L´ogicamente debemos considerar que un uso de datos con mayor poder de almacenaje se traducir´ a en mayor tama˜ no de bytes usados, lo cual restara espacio a nuestro disco de almacenaje. Generemos algunas variables como ejemplo: generate double x=2 generate str2 y="maria" list y
¿Qu´e notamos?, ¿C´o mo saber r´ apidamente si una variable es de cierto tipo? Si dese´aramos convertir una variable string a una variable num´erica o una variable num´erica a una string, podr´ıamos usar los comandos encode y decode, 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 tambi´en podr´ıamos usar la siguiente sentencia: generate str2 generate int describe Z P
2.7.
Z="am" P=real(Z)
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 base de datos. use auto describe keep make mpg price describe use auto, clear drop displacement gear_ratio describe Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
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 sernos u ´ til si queremos eliminar variables innecesarias y as´ı tener mas memoria de trabajo. Ahora veamos en la figura2.7 la estructura del comando use y los criterios de selecci´ on.
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 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
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
¿Qu´e sucedi´ o con esta sentencia?
2.8.
Reestructurando los Datos
A veces nos ser´a u ´til reestructurar la forma como los datos son presentados, especialmente para trabajar con datos panel, para ello nos ser´ a de utilidad aprender los comandos con anticipaci´ on. clear use ingfam.dta list
Figura 2.8: Base “ingfam” La forma como se presenta la data, es la forma ancha o “wide”, a nosotros nos podr´ıa interesar, sin embargo, trabajar con la forma larga o “long” de la data, para ello debemos modificar la estructura de esta base de datos de la siguiente manera: reshape long ingfam, i(codfam) j(a~no) list
“Long” le dice al comando reshape, si se desea ir de una forma long a una wide o viceversa, “ingfam” le dice a Stata que la ra´ız de la variable a ser convertida a la forma long es ingfam, “i” le dice a stata que la variable codfam ser´a considerada como identificador de los individuos, “j” indica a Stata que la parte variable de ingfam ser´ a considerada e incorporada como una variable a˜no. Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
2.8. Reestructurando los Datos
25
reshape wide list reshape long list
Veamos una base de datos que nos brinda informaci´on sobre los las alturas de un conjunto de ni˜ n os de 1 y 2 a˜ nos de edad use ni~ noaltpes, clear list codfam nacimiento alt1 alt2
Figura 2.9: Base “ni˜ noaltpes” Veamos como podemos transformar esta base de datos a una forma “long”. ¿Cu´al es la ra´ız de la variable que ser´ a convertida de la forma wide a la forma long? ¿Qu´e variables identifican a los individuos en la estructura wide? ¿C´ omo llamaremos a la variable que contendr´ a 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 cadena o string, ya no son n´ umeros. ¿C´omo podemos estructurar nuestro comando en este caso? reshape long nombre ing, i(codfam) j(padmad) string list Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
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 proceso aleatorio. As´ı, las probabilidades de selecci´ on para distintas observaciones pueden diferir en funci´ o n a la forma como se lleve a cabo dicho proceso de selecci´on aleatorio. Las ponderaciones de muestreo son iguales (o proporcionales) al inverso de la probabilidad de selecci´on. En otras palabras, los ponderadores (o factores de expansi´on) pueden ser interpretados como el n´ umero de elementos de la poblaci´on que el elemento muestreado representa. En consecuencia, no tener en cuenta los ponderadores de la muestra en los procedimientos estad´ısticos genera estimaciones sesgadas al valor verdadero de la poblaci´ on. As´ı mismo, su omisi´on altera las desviaciones est´ andar de nuestras estimaciones. Los factores de expansi´on nos permiten pasar de la muestra al conjunto de la poblaci´on. Ellos son necesarios tambi´en para tener en cuenta las diferentes tasas de muestreo seg´ un dominios geogr´ aficos, etc. La mayor´ıa de comandos de stata pueden ponderar datos. Stata proporciona cuatro tipos de ponderaciones, la que m´ a s se emplea es la asociada a los factores de expansi´ on, que se indica con la opci´ on pweight que permite identificar los pesos que indican la inversa de la probabilidad de que la observaci´ on sea incluida debido al dise˜ no del muestreo. table x1 x2 [pweight=pesopob] table x1 x2 [pw=pesopob]
2.10.
Generaci´ o n de N´ umeros Aleatorios
Crearemos un archivo vac´ıo para 100 observaciones: set obs 100
Generamos n´ umeros aleatorios con distribuci´ on uniformes U(0,1) gen x = uniform()
Luego generamos n´ umeros aleatorios con distribuci´ on normal N(0,1) Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
2.11. Percentiles, Cuartiles, Deciles
27
gen y = invnorm(uniform())
Para generar una variable con distribuci´ on uniforme U(a,b) generate y = a + (b-a) * uniform()
Para generar una variable con distribuci´ on 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 posici´on son muy importantes en el an´alisis estad´ıstico, probabil´ıstica y regresional. Los cuartiles son medidas estad´ısticas de posici´ on que tienen la propiedad de dividir la serie estad´ıstica en cuatro grupos de n´ umeros iguales de t´erminos. De manera similar los deciles dividen a la serie en diez partes iguales y los percentiles dividen a los t´erminos de la serie en cien grupos iguales. As´ı como la mediana divide la serie o distribuci´on en dos partes iguales, existen tres cuartiles, nueve deciles y noventa y nueve percentiles que dividen en cuatro, diez y cien partes iguales a la distribuci´on. De estas tres u ´ ltimas medidas de posici´on los cuartiles son las de mayor aplicaci´on. Se emplean generalmente en la determinaci´ on de estratos o grupos correspondientes a fen´ omenos socio-econ´ omicos, monetarios o te´ oricos.
XTILE El comando xtile genera una variable categ´ orica (eg: 1, 2, 3) seg´ un el cuantil en que se encuentra cada observaci´ on. Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
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 cada cuantil. pctile nuevavar = variable , nquantiles(#) pctile cortes = notas, n(3)
Por ejemplo, generemos una variable d´ecimo que sea 1 si es d´ecimo superior, y 0 caso contrario. H´agalo 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 m´ aximo, el m´ınimo, por sexo. Muestre la probabilidad de ser d´ecimo superior, por a˜ no 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)
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
2.11. Percentiles, Cuartiles, Deciles
29
RETO 2 El sostenido crecimiento de la econom´ıa peruana en los ultimos ´ a˜ n os ha provocado que en la actualidad observemos un boom de inversiones a nivel descentralizado. As´ı, diversas actividades econ´ omicas que antes se desarrollaban solo en Lima han empezado a mirar el interior del pa´ıs como plazas alternativas para expandir sus negocios. Con este fin, la recientemente fundada empresa de consultor´ıa Grupo IDDEA S.A.C. le ha pedido su colaboraci´on para desarrollar las siguientes tareas en Stata. odulo “sumarias” (que contiene variables calculadas de ingreso y En el m´ gasto) se le pide identificar cada hogar con el nombre de la localidad que representa seg´ un la variable “ubigeo” (distrito). Adem´ as, en este m´odulo deber´a crear una nueva variable que indique el departamento al que pertenece cada hogar (esta variable debe tener un value map con los nombres de los 24 departamentos y el Callao). Para esta tarea usted cuenta con la base de datos ubigeo.dta. on (un solo comando) muestre las siguientes estad´ısti Con una sola instrucci´ cas descriptivas para el gasto per capita en todos los departamentos del pa´ıs (percentil 99, media, desviaci´on est´ andar, rango). etodo del gasto, pa El INEI calcula las estad´ısticas de pobreza bajo el m´ ra lo cual utilizar´ a la variable “gasto total” y la dividir´a entre el total de personas en el hogar para calcular el gasto per capita. Luego generar´ a una variable que 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 departamento cual es el nivel de pobreza considerando que un individuo es pobre si pertenece a un hogar pobre. odulo de educaci´ on construya una tabla que muestre para cada do Con el m´ minio geogr´ afico el porcentaje de personas seg´ un nivel educativo alcanzado, para lo cual considerar´ a solo tres niveles: 1, al menos primaria incompleta, 2, Al menos secundaria completa y 3, superior. odulo educaci´ on a˜ nada la variable gasto per c´ apita, calculado en la base Al m´ sumaria 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 per capita y construya una tabla cruzada entre el nivel educativo y la nueva variable que ha creado para todas aquellas personas que no residen en Lima Metropolitana.
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
30
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
2. Manejo de Datos
www.giddea.com
[email protected]
Sesi´ on 3 An´ alisis Grafico con Stata Ahora vamos a trabajar con los principales gr´ aficos en Stata. Muchos de estos gr´ aficos son de bastante utilidad para observar los problemas inherentes al an´alisis de regresi´on que observaremos en la pr´ oxima secci´on.
3.1.
Visualizando Algunos Comandos
clear use auto.dta histogram mpg
Figura 3.1: Histograma graph box mpg graph box mpg, by(foreign)
31
32
3. An´ alisis Grafico con Stata
Figura 3.2: Grafico de Cajas
Figura 3.3: Scatter y Ajuste Lineal
Figura 3.4: Grafico Matricial
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.2. TWOWAY
3.2.
33
TWOWAY
El S&P 500 es el ´ındice m´ as seguido para tener una idea del desempe˜ no general de las acciones estadounidenses. Este ´ındice consiste de las acciones de 500 empresas que fueron seleccionadas por su tama˜ no, liquidez (qu´e tan f´ acil es comprar o vender sus t´ıtulos) y representatividad por actividad econ´ omica, incluyendo 400 industriales, 20 del sector transporte, 40 de servicios y 40 financieras. S´ olo se toman en cuenta empresas estadounidenses. Vale la pena destacar que el peso de cada acci´ on dentro del ´ındice corresponde a la proporci´on que representa el valor de mercado de la empresa dentro del total de las 500 empresas que conforman el ´ındice. El valor de mercado del capital es igual al precio por acci´on multiplicado por el n´ umero 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
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
34
3. An´ alisis Grafico con Stata
Figura 3.6: Opciones del “twoway”
Figura 3.7: Opciones del “twoway”
Figura 3.8: Opciones del “twoway”
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.2. TWOWAY
35
Figura 3.9: Opciones del “twoway”
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
36
3. An´ alisis Grafico con Stata Usemos una nueva base de datos:
clear use highschool.dta describe
Figura 3.10: Base Highschool
graph graph graph graph
twoway twoway twoway twoway
histogram read kdensity read (histogram read) (kdensity read) function y=normden(x), range(-4 4)
Figura 3.11: Histograma y Kernel
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.2. TWOWAY
37
Figura 3.12: M´as opciones del “twoway”
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
38
3.3.
3. An´ alisis Grafico con Stata
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)
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.3. TWOWAY y SCATTERPLOT
39
Figura 3.13: Connect
Figura 3.14: Connect sort cmissing
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
40
3. An´ alisis Grafico con Stata
3.4.
Combinando TWOWAY Y SCATTERPLOT
3.4.1.
Filtro de Gr´ aficos
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: Opci´on “by”
3.4.2.
Uni´ on de Gr´ aficos
twoway (scatter read write) (lfit read write) , ytitle(Nota /// de lectura)
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.4. Combinando TWOWAY Y SCATTERPLOT
41
Figura 3.16: Opci´on “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)
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
42
3. An´ alisis 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"))
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.5. Opciones para Edici´ on de Gr´ aficos
43
Figura 3.19: Ordenando la legenda de un grafico
3.5.
Opciones para Edici´ on de Gr´ aficos
El esquema siguiente nos ayudara a entender los principales comandos de edici´o n de gr´ aficos. Podemos guiarnos de estos para poder tener una mejor presentaci´ on en nuestros gr´ aficos.
graph twoway scatter read write, title("Grafica de Dispersi´on /// entre Lectura y Escritura")
Figura 3.20: Antes de la edici´on
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
44
3. An´ alisis 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 Dispersi´o n 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 Dispersi´o n 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 Dispersi´o n 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 Dispersi´o n 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 Dispersi´o n 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) /// Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.5. Opciones para Edici´ on de Gr´ aficos
45
position(5)) caption(Grupo IDDEA.SAC, size(vsmall) position(5)) graph twoway scatter read write, /// title("Grafica de Dispersi´o n 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: Despu´es de la edici´ on
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
46
3. An´ alisis 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
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.6. Trabajando con Esquemas y Gr´ aficos 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 yscale(range(500 1400) axis(1))
volmil date, yaxis(2)), ///
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 Gr´ aficos Adicionales
3.6.1.
Esquemas
use encuesta.dta scatter propval100 rent700 ownhome, scheme(vg_blue)
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
48
3. An´ alisis Grafico con Stata
Figura 3.24: Scatter y esquema vg blue
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.6. Trabajando con Esquemas y Gr´ aficos Adicionales
3.6.2.
49
Gr´ aficos 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.
Gr´ aficos 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) Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
50
3. An´ alisis 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.
Gr´ aficos de Cajas
use nlsw.dta graph box wage, graph box wage, graph box wage, graph box wage,
over(grade4) over(grade4) nooutsides over(grade4) nooutsides over(union) over(grade4) nooutsides over(union) ///
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.6. Trabajando con Esquemas y Gr´ aficos 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.
Gr´ aficos de Pastel
use nlsw.dta graph pie, over(occ7) Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
52
3. An´ alisis 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(Ocupaci´ on) position(9) cols(1) stack) /// scheme(economist)
Figura 3.28: Pie y esquema economist
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
3.6. Trabajando con Esquemas y Gr´ aficos Adicionales
53
RETO 3 ´ DE RIESGOS CLASIFICACION La base de datos “deudores”, tiene informaci´ o n acerca de la edad, sexo, distrito, ingresos, deuda, y calificaci´ on de la deuda, para 19,000 deudores. ¿Cu´ al es la edad promedio de la muestra? Analice la distribuci´ on de la edad,
con un histograma. as clientes? Realice una grafica sustentando su respuesta. ¿Qu´e AFP tiene m´ Genere una dummy mal pagador, que sea 1 si el deudor est´a atrasado con
sus deudas as, en ¿Que % de hombres y mujeres son mal pagadores? ¿Quienes ganan m´ promedio? e edad las personas se atrasan menos? Realice una grafica sustentando ¿A qu´ su respuesta. umero de perso Genere una nueva base de datos a nivel de distrito, con el n´ nas, el salario promedio, y el % de deudores atrasados. Guarde solo los distritos con al menos 100 personas.
e distritos son los m´ a s ricos? ¿En cu´ales la gente es peor pagadora? ¿Qu´ Realice una grafica sustentando sus resultados.
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
54
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
3. An´ alisis Grafico con Stata
www.giddea.com
[email protected]
Sesi´ on 4 An´ alisis de Regresi´ on Lineal 4.1.
Regresi´ on Lineal
Ahora vamos a trabajar con las herramientas que hemos aprendido y vamos a generar relaciones econom´etricas. Empecemos con evaluar una regresi´ on MCO. use elemapi.dta regress api00 acs_k3 meals full
Nuestras expectativas son que un mejor rendimiento acad´emico, este relacionado con un tama˜ no de clase peque˜ no, pocos estudiantes recibiendo comida 55
56
4. An´ alisis de Regresi´ on Lineal
gratuita, y un alto porcentaje de profesores que tengan sus credenciales de ense˜ nanza completa. regress api00 acs_k3 meals full
Ahora debemos observar los coeficientes de los resultados de nuestra regresi´on, y su significancia. Estos coeficientes deben ser coherentes con nuestras expectativas. ¿Qu´e es lo que observamos? Antes de decir que esta regresi´ on es correcta debemos hacer un conjunto de 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 negativos insertados de manera incorrecta y proporciones introducidos como porcentajes. Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
4.1. Regresi´ on 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 relaci´ on entre el numero de estudiantes y el rendimiento acad´emico. regress api00 enroll
Primero debemos fijarnos en el test F, y ver si es significativo, lo cual nos mostrara la significancia del modelo. El R2 nos dir´a que tanto de la varianza de nuestra variable end´ ogena, es explicado por los regresores. Luego debemos observar la significancia de los par´ametros, ver si sus signos son acorde con la teor´ıa. La constante es el valor predecido para cuando nuestra explicativa sea cero. Podemos observar tambi´en que Stata nos presenta la descomposici´ on de la varianza. La varianza total esta particionada en la varianza explicada por las variables independientes (model) y la varianza que no es explicada por dichas variables(residual). Sabemos que existe una suma de cuadrados asociada a las tres partes de la varianza. Conceptualmente estas son:
(y − y¯) SS T = (y − yˆ) SS R =
SS M =
2
2
y − y¯)2 (ˆ
As´ı pues se puede comprobar que SST=SSM+SSR, adem´ as debemos recordar tambi´en que R2=SSM/SST. Tambi´en podemos observar los grados de libertad, asociados con cada parte de las varianzas. La varianza total tiene N-1 gl, los gl del modelo son K-1, los gl del residuo simplemente es la diferencia entre el total menos el modelo. Observamos tambi´en las medias cuadr´ aticas, es decir la divisi´on de la suma de cuadrados entre sus gl. Con estas nosotros podemos calcular el valor del test F=MSM/MSR, lo cual nos da el ajuste del modelo. El Root MSE es la desviaci´on estandar del error (ra´ız cuadrada de MSR). Obtengamos los valores predichos o estimados para el rendimiento acad´emico con nuestro modelo y guardemos dichos valores en la variable fv predict fv
Veamos los valores estimados y los reales: Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
58
4. An´ alisis de Regresi´ on 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 regresi´ on predict e, residual
Ups, problemas en los coeficientes y sus significado, entonces ¿Qu´e 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 todos tienen la misma medida ahora. Un nuevo comando, busquemos en la red. findit listcoef listcoef
Observaci´ on SD=desviaci´ on est´ andar observada, desviaci´ on est´ andar de la variable Y SD del Error= desviaci´on est´ andar del error: MSE (error est´ andar de la predicci´on) bstdx=coeficientes de la regresi´ on con las variables x(estandarizadas) y la variable Y(en su unidad original) bstdy=coeficientes de la regresi´ on con las variables x(en su unidad original) y la variable Y(estandarizada) bstdxy=coeficientes de la regresi´ on con las variables x(estandarizadas) y la variable Y(estandarizada) Veamos una prueba de hip´otesis test ell==0 test ell
Veamos una prueba de hip´otesis conjunta test acs_k3 acs_46
Veamos la correlaci´ on entre las variables correlate api00 ell meals yr_rnd mobility acs_k3 acs_46 full /// emer enroll Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
4.2. Diagnostico de los Resultados
59
Veamos otra opci´ on 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 distribuci´ on normal, no las variables para que se validen los test. Los coeficientes estimados no requieren una normalidad de residuos. Seria bueno sin embargo poseer variables que posean una distribuci´ on normal. 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. Vemos los problemas que podr´ıan presentarse. Para ello debemos considerar los efectos de outliers (una observaci´ on con un amplio residuo, que indica una muestra peculiar o un error en la data), leverage (medida de cuan lejos una variable independiente esta desviada de su media, puede afectar los coeficientes de la regresi´ on) y el efecto influencia (observaci´ on que al removerla, cambia la estimaci´on de los coeficientes radicalmente. dicho problema se le atribuye a un leverage o a un outlier) Usemos para esto, la base de datos dise˜nada por Alan Agresti y Barbara Finlay (Prentice Hall, 1997). Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
60
4. An´ alisis de Regresi´ on 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 gr´ aficos puntos que est´an apartados del resto ¿de que estados ser´ an? scatter scatter scatter
crimenes pcturb, mlabel(estado) crimenes pobreza, mlabel(estado) cr´ ımenes soltero, mlabel(estado)
¿Qu´e 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 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
4.2. Diagnostico de los Resultados
list r
61
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=="ms"
estado=="dc" |
///
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 informaci´ on en algunas variables, ¿estos cambiar´ıan? Es decir, ¿nuestros coeficientes son robustos o no? dfbeta list estado DFpcturb DFpobreza DFsoltero in 1/5
El valor de dfbeta para una observaci´on, significara que de ser incluida en el an´alisis (comparativamente a no ser incluida) incrementara el coeficiente de beta, en dicho valor multiplicado por el error est´ andar 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) Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
62
4. An´ alisis de Regresi´ on Lineal
Veamos el efecto influencia a trav´es de regresiones parciales, de manera grafica. avplot soltero, mlabel( estado) avplots regress regress
crimenes pcturb pobreza soltero if
estado !="dc"
Si bien podemos buscar outliers con variables pertenecientes al modelo, tambi´ en podemos hacerlo con variables que no est´ an 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 nosotros deseamos validar las pruebas de hip´otesis sobre t-value y F-value. Ojo, la no normalidad del residuo no invalidad la regresi´ on. Una regresi´on valida requiere que el residuo sea id´ entica e independientemente distribuida, no requiere que las variables explicativas sean distribuidas de forma normal. Si no como explicar´ıamos el uso de variables dummys en nuestras regresiones. use elemapi2,clear regress api00 meals ell emer predict r, resid
An´ alisis grafico de normalidad kdensity r, normal pnorm r qnorm r Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
4.4. Homocedasticidad del Residuo
63
Test de Normalidad Test 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 ser constante. Si la varianza no es constante entonces hay heterocedasticidad que bien podr´ıa ser modelada a trav´es de un modelo de volatilidad. Detecci´on 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 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
64
4. An´ alisis de Regresi´ on Lineal
estat hettest
El an´alisis grafico no nos muestra un problema serio de heterocedasticidad. As´ı que no lo corregiremos por ahora.
4.5.
Multicolinealidad
Cuando dos variables explicativas est´ an altamente relacionadas, podemos hablar de multicolinealidad. Para detectar la multicolinealidad nosotros usaremos el factor de inflaci´ on de varianza (VIF) Aquella variable cuyo vif sea mayor a 10 deber´ a ser investigada. regress api00 meals ell emer vif regress api00 acs_k3 avg_ed grad_sch col_grad some_col vif
¿Qu´ e podriamos decir de esta regresi´ on?, ¿porqu´e presentaria problemas de 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 par´ametros especificada en mi regresi´ on. Si estamos frente a un ajuste no lineal, entonces nosotros tendremos problemas dado que estamos forzando una l´ınea como ajuste de nuestra relaci´ on no lineal. Analicemos solo a una variable. regress api00 enroll twoway (scatter api00 enroll) (lfit api00 enroll) (lowess api00 enroll) regress predict scatter scatter
api00 meals some_col r, resid r meals r some_col
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
4.7. Especificaci´ on del mo delo
65
No se vio una clara no linealidad, entonces usemos algo mas efectivo acprplot meal acprplot meals, s, lowes lowess s lsopt lsopts(bwi s(bwidth(1 dth(1)) )) acprplot acprp lot some some_col, _col, lowe lowess ss lsopt lsopts(bwi s(bwidth(1 dth(1)) ))
Tampoco se ve un problema grave de no linealidad. Usemos una data mas interesante. use nati nations.d ons.dta ta describe regres reg ress s bir birth th gnp gnpcap cap urb urban an acprplot acprp lot gnpc gnpcap, ap, lowe lowess ss acprplot acprp lot urba urban, n, lowes lowess s graph gra ph mat matrix rix bir birth th gnp gnpcap cap urb urban, an, hal half f kdensity kdens ity gnpc gnpcap, ap, norm normal al
Transformemos un dato generate lggnp=log(gnpc lggnp=log(gnpcap) ap) label lab el var variab iable le lgg lggnp np "lo "log-1 g-10 0 of gnp gnpcap cap" " kdensity kdens ity lggn lggnp, p, norma normal l
Regresionemos con el dato transformado regress regres s bir birth th lgg lggnp np urb urban an acprplot acprp lot lggn lggnp, p, lowes lowess s
4.7. 4.7.
Espec Especifi ifica caci ci´ ´ on on del modelo
Un error en la especificaci´on on del modelo puede ocurrir cuando uno o mas variables relevantes son omitidas del modelo o una o mas variables relevantes son incluidas en el modelo. Una mala especificaci´ on puede afectar los par´ on ameametros estimados. Digamos que estamos corriendo una regresi´ on on entre el tama˜ no no de la clase y el rendimiento acad´ a cad´emico, emico, un incremento en e n la primera p rimera influir´ a incrementando la segunda, evaluaremos la especificaci´ on del modelo, para ello usaremos los on siguientes comandos use elem elemapi2, api2, clear regr re gres ess s api00 api00 ac acs_ s_k3 k3
Un par de m´etodos etodos Linktest, esta basado en la idea de que si el modelo esta bien especificado, especificado , entonces no deber´ deber´ıamos encontrar variables independientes indepe ndientes Stata B´ asico asico Aplicado a la Investigaci´on on Econ´ omica omica
www.giddea.com
[email protected]
66
4. An´ alisis de Regresion o ´n Lineal
que sean significativas. El comando crea 2 variables nuevas, una variable estimada, y el cuadrado de dicha estimaci´ on. on. Se eval´ ua u a el modelo con ambas variables, la estimaci´on on y hat deber´ deber´ıa ser significativ significativaa pues es el valor estimado, mado, pero su cuadrado cuadrado no deber´ deber´ıa serlo, serlo, pues de estar estar bien bien especific especificado ado el modelo, la estimaci´on on al cuadrado no deber deb er´´ıa tener ten er mucho pod poder er explicativo. e xplicativo. Linktest Ovtest regress regres s api api00 00 acs acs_k3 _k3 ful full l linktest ovtest regres regr ess s ap api0 i00 0 linktest ovtest
4.8. 4.8.
acs_ ac s_k3 k3 full full me meal als s
Inde In depen pende denc ncia ia
Los errores asociados a una observaci´ on on no deber´ deber´ıan estar asociados a los errores de alguna otra observaci´ observaci´ on. on. En nuestro nuestro caso, al haber recolectado recolectado datos de 8 tipos de escuela es probable que estudiantes dentro de sus escuelas tiendan a ser mas parecidos parecidos que estudiantes estudiantes de otra escuela, escuela, esto producir´ producir´ıa errores no independientes. El problema de autocorrelacion es muy com´ un en series de tiempo, en la cual nosotros evaluamos el test DW para ver la autocorrelaci´on on d dee primer orden. Si quisi´eramos eramos especificar este an´ alisis alisis en nuestra data, podr´ıamos ıamos considerar con siderar a la variable snum como el tiempo tiemp o use ele elemap mapi2, i2, cle clear ar tsset tsse t snum regress regr ess api0 api00 0 enrol enroll l dwstat predic pre dict t r, res resid id scatte sca tter r r snu snum m
¿Qu´ ¿Q u´e obs o bser ervamo vamos? s?
Stata B´ asico asico Aplicado a la Investigaci´on on Econ´ omica omica
www.giddea.com
[email protected]
4.8. Indep endencia
67
RETO 4 archivo “gobusa5089.dta” “gobusa5089.dta” y contestar contestar las siguientes siguientes pregun Trabajar con el archivo tas: ¿Ident ¿Identific ificar ar las variables ariables y opinar opinar respecto respecto a cada variable ariable,, realiza realizarr un an´ alisis alisis gr´afico afico y estad´ estad´ıstico para comprender comprender la base de datos?. ¿Identificar ¿Identi ficar las variables de pol´ıtica ıtica y las l as variables apol apo l´ıticas? ıtica s? ¿Elaborar una tabla de correlaciones entre la variable tax y las variables pol´ pol´ıticas y comentar los resultados sobresalientes?. Responder a lo siguiente: siguiente: ¿Qui´ ¿Qui´enes enes cobran m´ as as impuestos, los estados con gobiernos divididos o los estados con gobiernos unificados?, ¿qu´e tan seguro segur o est´as as de su respuesta?. Marco te´ orico orico m´ınimo. Existen varias teor te or´´ıas respecto del impacto de los factores facto res pol´ıticos ıticos y econ´ e con´omicos omicos sobre la pol´ pol´ıtica tributaria en cada estado: Las teor´ teor´ıas apol´ apol´ıticas dicen que las variables socioecon´ socio econ´ omicas o micas y demogr´aficos aficos (ingreso, poblaci´ on, grupos de edad) son los principales deon, terminantes de los impuestos. Entre las teor´ıas ıas pol´ıticas, ıtica s, algunos algun os dicen que los factores fact ores pol po l´ıticos ıtico s partidistas (partido (p artido en e n el gobierno y/o congreso cong reso local, lo cal, mayor´ mayor´ıa dem´ ocrata ocrata en el e l congreso congr eso o no, etc.) et c.) tambi´ ta mbi´ en en son so n importantes. imp ortantes. Mientras que otros dicen que son so n las variables pol´ pol´ıticas no-partidistas (gobierno dividido, margen de la primera fuerza en el congreso local, etc.) las que afectan los impuestos, impuestos, y no tanto la ideolog ideolog´ıa o identidad identidad del partido en el poder (dem´ ocrata ocrata vs. republicano). Especifica al menos tres regresiones (con errores est´ andar andar robustos) para la variable tax y compara sus resultados. Interpreta brevemente los coeficientes, su bondad de ajuste, etc. y explica cu´al al de ellos es preferible a los otros. (Tip: no incluyas la variable spend en tu regresi´on). on).
Pruebas de hip´ otesis otesis Controlando por otros factores, la relaci´ on on entre poblaci´ on on e impuestos es no lineal. Controlando por otros factores, los gobernadores dem´ ocratas ocratas cobran m´as as impuestos que los no dem´ocratas. ocratas. Manteniendo Manten iendo otros ot ros factores fac tores constante co nstantes, s, los estados estad os con mayor´ mayor´ıa dem´ ocrata en el congreso local cobran m´ as impuestos que los gobiernos sin as mayo mayorr´ıa dem´ de m´ocrata. ocrata. Stata B´ asico asico Aplicado a la Investigaci´on on Econ´ omica omica
www.giddea.com
[email protected]
68
4. An´ alisis de Regresi´ on Lineal Manteniendo otros factores constantes, los gobiernos divididos cobran menos impuestos que los gobiernos no divididos. El impacto del gobierno dividido cambia si s´olo consideramos el per´ıodo 1975-1989 en la regresi´ on. Manteniendo otros factores constantes, una vez que controlamos por qui´en tiene la mayor´ıa en el congreso (demmaj1), el margen de esta mayor´ıa (dem1) no tiene un impacto en los impuestos.
Interpretando regresiones: ¿Cu´al es la bondad de ajuste de un modelo sin variables pol´ıticas? ¿Cu´ anto poder explicativo adicional se consigue al incluir las variables pol´ıticas? ¿Qu´e variables pol´ıticas importan m´ as, las partidistas o las no partidistas? (ojo, esta pregunta requiere cierta interpretaci´ on de la R2 ajustada de varios modelos, as´ı como la magnitud y significancia de tus coeficientes).
Predicciones: ¿Cu´anto cambian los impuestos per c´ apita si el ingreso per c´ apita aumenta en una desviaci´ on est´ andar? Calcula este cambio en d´ olares y como proporci´ on de los impuestos promedio de la muestra. ¿Cu´anto cambian los impuestos cuando la mayor´ıa dem´ ocrata en el congreso local pasa de 10 a 30 %? Calcula este cambio en d´ olares y como proporci´ on de los impuestos promedio de la muestra.
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
Sesi´ on 5 Variables Categ´ oricas 5.1.
Estimaci´ on con Variables Categ´ oricas
Hab´ıamos usado variables continuas anteriormente, sin embargo es posible usar variables categ´ oricas en un an´ alisis de regresi´on pero requiere un trabajo extra en la interpretaci´ on, el an´alisis y diagnostico de los resultados. use elemapi2.dta, clear describe api00 some_col yr_rnd codebook api00 codebook some_col codebook yr_rnd codebook mealcat
mealcat
Uso de variables dummy Regresionemos el rendimiento acad´ emico con la variable 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 par´ ametro negativo en la regresi´ on, para nuestra variable dummy. Esto significa que si dicha variable toma el valor de cero la medida del rendimiento de los alumnos ser´ a su media considerando solo a aquellos alumnos que no est´ an en el programa o sistema de ense˜ nanza, mientras que si la variable toma el valor de uno, la medida del rendimiento ser´a la media considerando solo a aquellos alumnos que si est´an bajo este sistema de ense˜ nanza. ttest api00, by(yr_rnd) anova api00 yr_rnd display 10.7815^2 codebook mealcat regress api00 mealcat
69
70
5. Variables Categ´ oricas
Pero esta variable mealcat es una variable intervalo, podr´ıamos generar tres variables a partir de esta, de tal forma que podamos definir a cada sub variable como 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 la media del grupo 2 menos la media del grupo1, y el coeficiente de mealcat3 es la media del grupo3 menos la media del grupo1. Los resultados nos dicen que los tres grupos difieren de sus medidas de rendimientos. 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 dese´aramos omitir el tercer grupo y no el primero, entonces deber´ıamos usar el siguiente comando: char mealcat[omit] 3 xi : regress api00 i.mealcat
Nosotros podemos hacer el mismo an´alisis usando el comando “anova” anova api00 mealcat anova, regress
Aqu´ı vemos que siempre la ultima categor´ıa es borrada y reemplazada con la constante. Los beneficios del comando “anova” es que te da el efecto total de mealcat 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 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
5.2. El Comando Xi
71
Y ahora vamos a estimar el rendimiento acad´ emico usando una variable dicotomica 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, la interpretaci´ on del coeficiente de ”yr rnd”, es la diferencia entre escuelas con sistema year round y escuelas sin ese sistema de ense˜ nanza, el primer coeficiente para la variable “mealcat” es la diferencia entre mealcat=1 y mealcat=3, el segundo es la diferencia entre mealcat=2 y mealcat=3 (siendo mealcat=3 la variable categ´ orica de referencia y la cual es estimada por la variable)
Finalmente los resultados indican que las diferencias entre un sistema de ense˜ nanza year-round y un sistema de ense˜ nanza sin year-round es significativo y las diferencias entre los tres grupos mealcat tambi´ en son significativos. Veamos algunas interacciones con las variables categ´ oricas: xi : regress api00 i.mealcat*yr_rnd
Ahora incluiremos la interacci´on entre mealcat y yr rnd Y testeamos la significancia: 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 la necesidad 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 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
72
5. Variables Categ´ oricas
Para correr un Anova necesitamos indicarle que la variable a evaluar tiene caracter´ı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 Hip´ otesis
El GPA (Grade Point Average, o promedio de notas) es una medida de la calidad de su traba jo acad´emico a nivel universitario. Algunos patrones suelen utilizar al GPA como un factor clave cuando les ofrezcan trabajo a egresados de la universidad. Es por eso que resulta de suma importancia mantener un buen GPA durante toda su carrera universitaria. El examen de aptitud SAT (Scholastic Aptitude Test - Examen de aptitudes escolares) es un examen estandarizado para admisi´ on a universidades en EEUU. El rango de este, varia entre los 600 y 2400 puntos, consta de 3 secciones, matem´ atica, 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 display _b[hsize] / (2*_b[hsizesq])
¿Si el SAT score aumenta 100 puntos, que tan probable es que el GPA aumente 0.25 puntos? display display display display display
(_b[sat] - .0025) / _se[sat] ttail(4130, 15.52) ttail(4130, 1.52) ttail(413, 1.52) ttail(41, 1.52)
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
5.3. Pruebas de Hip´ otesis
73
Afortunadamente, Stata hace pruebas de hip´ otesis de manera muy “intuitiva” test sat = .0025 Otras pruebas: test sat = .002 test sat = .0014 reg colgpa sat verbmath tothrs hsperc hsize hsizesq, robust
¿Qu´e pasa con la regresi´ on si solo tomamos las primeras 2000 observaciones de la muestra? reg colgpa sat verbmath tothrs hsperc hsize hsizesq /// if _n<2000, robust
¿Qu´e pasa si solo incluimos a las mujeres en la regresi´ on? reg colgpa sat verbmath tothrs hsperc hsize hsizesq /// if female==1, robust
¿Qu´e pasa si incluimos s´olo 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
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
74
5. Variables Categ´ oricas
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 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 interacci´ on 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 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
5.4. Creaci´ on de Variables Dummys
75
¿Que pasa si tienes 10 a˜ nos de educaci´ on y 5 de experiencia? lincom 10*educ + 5*exper reg wage educ exper IQ married , robust lincom 10*educ + 5*exper + married
´ VARIABLES: HACIENDO PRUEBAS DE HIPOTESIS PARA UNA O M AS Pruebas F test educ test educ = 70 test educ = 80
Una prueba F tambi´ en prueba la significancia CONJUNTA de un GRUPO de 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.
Creaci´ on de Variables Dummys
Existen tres formas de crear variables dicotomicas: Si partimos de una variable cualitativa de m´ ultiples categor´ıas, entonces con la especificaci´ o n “XI” ser´ a posible la creaci´on de variables dicotomicas, reestructurando la variable categ´ orica. Una segunda forma de crear variables dicotomicas, es a trav´es de un comando “if” condicionando a una variable continua, la variable que se obtendr´ a, ser´a entonces, mi variable latente. La u´ ltima forma de creaci´ on es mediante el comando “input”, donde se especificara el nombre de las variables y la introducci´on de datos es de manera manual.
5.5.
Bucles y Programas
El uso de bucles en Stata o Eviews, no es muy usual, dado que estos programas implementan una plataforma orientada al usuario en lugar de a un programador. Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
76
5. Variables Categ´ oricas
input famid 1 3281 3413 2 4042 3084 3 6015 6123 end
inc1-inc12 3114 2500 2700 3500 3114 3319 3514 1282 2434 2818 3108 3150 3800 3100 1531 2914 3819 4124 4274 4471 6113 6100 6100 6200 6186 6132 3123 4231 6039 6215
Ahora vamos a visualizarlo con un listado. list famid inc1-inc12, clean
Si deseamos calcular una cantidad de 10 % en impuestos pagados por cada mes, una manera simple de hacer esto computo a las 12 variables es mediante una multiplicaci´on simple: generate generate generate generate generate generate generate generate generate generate generate generate
taxinc1 = taxinc2 = taxinc3 = taxinc4 = taxinc5 = taxinc6 = taxinc7 = taxinc8 = taxinc9 = taxinc10= taxinc11= taxinc12=
inc1 * .10 inc2 * .10 inc3 * .10 inc4 * .10 inc5 * .10 inc6 * .10 inc7 * .10 inc8 * .10 inc9 * .10 inc10 * .10 inc11 * .10 inc12 * .10
Lo cual resulta algo tedioso, imag´ınense si tuvieran mas de 12 variables dentro del computo. Ahora aplicaremos un criterio de programaci´ on simple, estructurando un bucle que nos ayude a implementar el c´ alculo de manera r´apida 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” mediante comillas, tales como “ ‘var’ ”. ¿Que sucede si usamos un contador num´ erico? generate generate generate generate
incqtr1 incqtr2 incqtr3 incqtr4
= = = =
inc1 + inc4 + inc7 + inc10+
inc2 + inc5 + inc8 + inc11+
inc3 inc6 inc9 inc12
list incqtr1 - incqtr4 Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
5.5. Bucles y Programas
77
En forma m´as r´apida. 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 tales que, indiquen “1” cuando el ingreso del mes actual sea menor que el ingreso del mes anterior, y “0” cuando el ingreso del mes actual sea mayor o igual que el 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 tambi´en u´til para programar, el comando WHILE:
Ejemplo: Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]
78
5. Variables Categ´ oricas
local i=1 while ‘i’ <=10 { display ‘i’ local i=‘i’+1 }
Stata provee de la especificaci´ on de programas que el usuario bien podria crear. Crearemos un programa b´ asico, “HOLA MUNDO” program define Super display "HOLA MUNDO" end
Si deseamos crear otro programa con el mismo nombre, Stata nos mostrara un mensaje de error dici´endonos que existe un programa con ese nombre por lo que debemos eliminarlo primero: program drop Super
y ahora si podemos correr el programa.
Stata B´ asico Aplicado a la Investigaci´on Econ´ omica
www.giddea.com
[email protected]