material2.pdf
-
Upload
e-david-morales-p -
Category
Documents
-
view
88 -
download
2
Transcript of material2.pdf
StataBasico Intermedio
Aplicado a la Investigacion Economica
Juan Carlos Abanto Orihuela
16 de enero de 2010
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
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 79
Stata Basico IntermedioAplicado a la Investigacion Economica
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
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Podemos tabular la variable merge para ver si se pegaron correctamente lasbases de datos, o tambien observar la columna final merge en caso de baseschicas como esta.
tab _merge
Analicemos los resultados. Hay tres posibles valores que puede tomar estavariable segun lo muestra la figura1.6. Si toma el valor de 1 nos indicara quees una observacion que solo se encuentra en la base matriz, si toma el valorde 2 nos indicara que es una observacion que proviene de la base esclava, y sitoma el valor de 3, nos indicara que la observacion proviene de ambas bases.
Stata Basico IntermedioAplicado a la Investigacion Economica
12 1. Introduccion al Stata
Figura 1.6: tab merge
El comando collapse sirve para convertir una base de datos que contiene vari-ables 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.7)
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.
Figura 1.7: Estructura del comando “split”
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
1.4. Principales Comandos de Trabajo y Analisis 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 emi-tidos por region, para el ano 2002. Genere tambien una base con la poblacionmundial 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 Basico IntermedioAplicado a la Investigacion Economica
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).
Stata Basico IntermedioAplicado a la Investigacion Economica
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
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"
Stata Basico IntermedioAplicado a la Investigacion Economica
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”.
Stata Basico IntermedioAplicado a la Investigacion Economica
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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?
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
30 2. Manejo de Datos
Stata Basico IntermedioAplicado a la Investigacion Economica
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
32 3. Analisis Grafico con Stata
Figura 3.2: Grafico de Cajas
Figura 3.3: Scatter y Ajuste Lineal
Figura 3.4: Grafico Matricial
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
34 3. Analisis Grafico con Stata
Figura 3.6: Opciones del “twoway”
Figura 3.7: Opciones del “twoway”
Figura 3.8: Opciones del “twoway”
Stata Basico IntermedioAplicado a la Investigacion Economica
3.2. TWOWAY 35
Figura 3.9: Opciones del “twoway”
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
3.2. TWOWAY 37
Figura 3.12: Mas opciones del “twoway”
Stata Basico IntermedioAplicado a la Investigacion Economica
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
3.3. TWOWAY y SCATTERPLOT 39
Figura 3.13: Connect
Figura 3.14: Connect sort cmissing
Stata Basico IntermedioAplicado a la Investigacion Economica
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
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"))
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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) ///
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
48 3. Analisis Grafico con Stata
Figura 3.24: Scatter y esquema vg blue
Stata Basico IntermedioAplicado a la Investigacion Economica
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
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) ///
Stata Basico IntermedioAplicado a la Investigacion Economica
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
54 3. Analisis Grafico con Stata
Stata Basico IntermedioAplicado a la Investigacion Economica
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
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
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:
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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).
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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)
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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?
Stata Basico IntermedioAplicado a la Investigacion Economica
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
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
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
Stata Basico IntermedioAplicado a la Investigacion Economica
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
display _b[hsize] / (2*_b[hsizesq])
¿Si el SAT score aumenta 100 puntos, que tan probable es que el GPAaumente 0.25 puntos?
display (_b[sat] - .0025) / _se[sat]
display ttail(4130, 15.52)
display ttail(4130, 1.52)
display ttail(413, 1.52)
display ttail(41, 1.52)
Stata Basico IntermedioAplicado a la Investigacion Economica
5.3. Pruebas de Hipotesis 73
Afortunadamente, Stata hace pruebas de hipotesis de manera muy “intu-itiva”
test sat = .0025
Otras pruebas:
test sat = .002
test sat = .0014
reg colgpa sat verbmath tothrs hsperc hsize hsizesq, robust
¿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
¿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
Stata Basico IntermedioAplicado a la Investigacion Economica
74 5. Variables Categoricas
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 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
Stata Basico IntermedioAplicado a la Investigacion Economica
5.4. Creacion de Variables Dummys 75
¿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
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
76 5. Variables Categoricas
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:
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
Stata Basico IntermedioAplicado a la Investigacion Economica
5.5. Bucles y Programas 77
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 ingresodel 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:
Stata Basico IntermedioAplicado a la Investigacion Economica
78 5. Variables Categoricas
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
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.
Stata Basico IntermedioAplicado a la Investigacion Economica
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