You are on page 1of 79

Stata

B
asico
Aplicado a la Investigaci
on Econ
omica

Juan Carlos Abanto Orihuela


25 de enero de 2013

Stata B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

Indice general
Indice general

1. Introducci
on al Stata
1.1. Iniciando Stata . . . . . . . . . . .
1.2. Tipos de Archivos en Stata . . . . .
1.3. Estructura Basica de Stata . . . . .
1.4. Principales Comandos de Trabajo y
1.4.1. Las Bitacoras . . . . . . . .
1.4.2. La Base de Datos . . . . . .
1.4.3. Append, Merge, Collapse . .

. . . . .
. . . . .
. . . . .
Analisis
. . . . .
. . . . .
. . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

5
5
6
6
7
7
7
9

2. Manejo de Datos
2.1. Cargando los Datos en Stata . . . .
2.2. Etiquetas . . . . . . . . . . . . . .
2.3. Comando IF . . . . . . . . . . . . .
2.4. Comando SUMMARIZE . . . . . .
2.5. Comando SPLIT . . . . . . . . . .
2.6. Creando Variables . . . . . . . . . .
2.7. KEEP y DROP . . . . . . . . . . .
2.8. Reestructurando los Datos . . . . .
2.9. Muestreos Probabilsticos . . . . . .
2.10. Generacion de N
umeros Aleatorios
2.11. Percentiles, Cuartiles, Deciles . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

15
15
15
17
18
18
19
22
24
26
26
27

.
.
.
.
.
.
.
.

31
31
33
38
40
40
40
43
47

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

3. An
alisis Grafico con Stata
3.1. Visualizando Algunos Comandos . . . . . . . . .
3.2. TWOWAY . . . . . . . . . . . . . . . . . . . . . .
3.3. TWOWAY y SCATTERPLOT . . . . . . . . . .
3.4. Combinando TWOWAY Y SCATTERPLOT . . .
3.4.1. Filtro de Graficos . . . . . . . . . . . . . .
3.4.2. Union de Graficos . . . . . . . . . . . . . .
3.5. Opciones para Edicion de Graficos . . . . . . . . .
3.6. Trabajando con Esquemas y Graficos Adicionales
3

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

INDICE GENERAL

4
3.6.1.
3.6.2.
3.6.3.
3.6.4.
3.6.5.

Esquemas . . . . . . . . . . . .
Graficos de Barras Verticales . .
Graficos de Barras Horizontales
Graficos de Cajas . . . . . . . .
Graficos de Pastel . . . . . . . .

4. An
alisis de Regresi
on Lineal
4.1. Regresion 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. Especificacion del modelo . .
4.8. Independencia . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

5. Variables Categ
oricas
5.1. Estimacion con Variables Categoricas
5.2. El Comando Xi . . . . . . . . . . . .
5.3. Pruebas de Hipotesis . . . . . . . . .
5.4. Creacion de Variables Dummys . . .
5.5. Bucles y Programas . . . . . . . . . .
Bibliografa

Stata B
asico
Aplicado a la Investigaci
on Economica

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

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
administracion@giddea.com

Sesi
on 1
Introducci
on al Stata
1.1.

Iniciando Stata

Stata es una poderosa herramienta en aplicaciones economicas. Puede ayudarnos a analizar facil y eficientemente, series de tiempo, paneles, y data de
seccion cruzada. Nos dara las herramientas que necesitamos para organizar y
manejar un gran tama
no de data, obteniendo resultados de analisis estadsticos.
En esta sesion introduciremos las nociones basicas del software, para posteriormente realizar un analisis estadstico y familiarizarnos con el manejo y
modificacion de la base de datos.
Veamos como se presenta Stata al iniciarse. (ver Figura 1.1)

Figura 1.1: Pantalla de Inicio


5

1. Introducci
on al Stata

Los comandos de stata estan implementados en el men


u el cual esta organizado
por topicos. As nosotros podemos trabajar interactivamente y de manera muy
simple, sin embargo sigue siendo u
til el uso de comandos para realizar el analisis
dado que da pie al manejo de programas, o estructuras de programacion. (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 extension dta, para la generacion de base de datos, en ella se
almacenara informacion de las variables con su respectiva extension.
Archivo de extension log, smcl, para la generacion de bitacoras, en ella se
guardaran los resultados de manera ordenada, sin tener que pasarlos a ning
un
tipo de archivo de texto.
Archivo de extension do, que es un archivo de ejecucion, donde se elabora
el programa.
Archivo de extension gph, para la generacion de graficos 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 Economica

www.giddea.com
administracion@giddea.com

1.4. Principales Comandos de Trabajo y An


alisis

Figura 1.3: Estructura Basica

1.4.

Principales Comandos de Trabajo y An


alisis

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

1.4.1.

Las Bit
acoras

En estos objetos se guardara la informacion tal y cual aparecen en la ventana Result, aunque tambien podramos indicarle al programa que deseamos
solo guardar los comandos y no los resultados.
log using clase1.log
o 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 continuacion


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
administracion@giddea.com

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, tambien 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 analisis.
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 Economica

www.giddea.com
administracion@giddea.com

1.4. Principales Comandos de Trabajo y An


alisis

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 integrandolas 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
administracion@giddea.com

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 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 los
resultados:
use base3.dta, clear
list
append using base4
list
save base34.dta, replace
list
Por que la variable la variable sexo se a
nadio 2 veces como columna?por
que 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 tenamos
antes.
Ahora mi interes 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 Economica

www.giddea.com
administracion@giddea.com

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 tambien 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 observacion que solo se encuentra en la base matriz, si toma el valor
de 2 nos indicara que es una observacion que proviene de la base esclava, y si
toma el valor de 3, nos indicara que la observacion proviene de ambas bases.

Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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
estadsticos de dichas variables (medias, medianas, sumas etc). Permite obtener estadsticos para unidades mas grandes (en un sentido jerarquico), como
por ejemplo, pasar de datos por individuo a datos por hogar, de datos por
distritos a datos por provincia (agregacion)
En el comando se especifican aquellas variables que se colapsan y las condiciones que se imponen para dicha transformacion. 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 automaticamente 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 region, para el a
no 2002. Genere tambien una base con la poblacion
mundial a lo largo del tiempo.
Stata B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

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 region, para el a
no 2002. Genere tambien una base con la poblacion
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
administracion@giddea.com

14

1. Introducci
on al Stata

RETO 1
. La base enaho01-2004-300-oct-nov.dta contiene datos del modulo 300 de
la ENAHO recopilados entre octubre y noviembre de 2004, mientras que
enaho01-2004-300-dic.dta contiene los datos del mismo modulo para diciembre de ese mismo a
no. Ambas bases estan a nivel de individuos. Se pide
juntar estos datos en un solo archivo que debe ser grabado con el nombre:
Personas.dta.
. A la base Personas.dta a
nada las siguientes variables:
Las 5 variables de Necesidades Basicas 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).
. Usando el archivo enaho01-2004-300-oct-nov.dta (modulo de educacion a
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 maximo nivel educativo aprobado
por alg
un miembro del hogar (ver p301a).

Stata B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

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 Economica

www.giddea.com
administracion@giddea.com

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 facil 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
administracion@giddea.com

18

2. Manejo de Datos

2.4.

Comando SUMMARIZE

Esta estructura es mas compleja y mas difcil de recordar, sin embargo la


siguiente forma general (ver figura2.2), nos ayudara a recordarla y usarla de
manera mas 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
Tambien podra estar interesado en el resumen estadstico para carros extranjeros 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 o


mas partes, usando un caracter que indica separacion, de modo que se generan
nuevas variables tipo string. (ver figura2.3)
Es u
til para separar palabras, codigos u otras partes de una variable tipo
string de informacion 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 Economica

www.giddea.com
administracion@giddea.com

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 generar
una 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 distintas
partes al conformar una u
nica 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 (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
administracion@giddea.com

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, podramos mejorar su
presentacion si la clasificaramos 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 domesticos y extranjeros.
Que es lo que se observa?
Mediante una remodificacion de los datos, podemos hacer lo mismo en unas
cuantas lneas, 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 categoras, 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
Que observamos?
Stata B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

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)
Tambien podemos usar una extension del commando generate, egen me permitira crear expresiones mas complejas aun, tales como medias, desviaciones
estandar, maximos, mnimos, 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 clasificacion:

Figura 2.5: Datos Tipo Numericos


. Datos cadena de texto, dentro de estos podemos encontrar la siguiente clasificacion:

Figura 2.6: Datos Tipo Cadena

Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

22

2. Manejo de Datos

Logicamente debemos considerar que un uso de datos con mayor poder


de almacenaje se traducira 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
Que notamos?, Como saber rapidamente si una variable es de cierto
tipo? Si desearamos convertir una variable string a una variable numerica o
una variable numerica a una string, podramos 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 tambien podramos 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 Economica

www.giddea.com
administracion@giddea.com

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 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 B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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 u


til reestructurar la forma como los datos son presentados,
especialmente para trabajar con datos panel, para ello nos sera de utilidad
aprender 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 nosotros
nos podra 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 raz de la variable a ser
convertida a la forma long es ingfam, i le dice a stata que la variable codfam
sera considerada como identificador de los individuos, j indica a Stata que
la parte variable de ingfam sera considerada e incorporada como una variable
a
no.
Stata B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

2.8. Reestructurando los Datos

25

reshape wide
list
reshape long
list
Veamos una base de datos que nos brinda informacion sobre los las alturas
de un conjunto de ni
nos 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.
Cual es la raz de la variable que sera convertida de la forma wide a la forma
long? Que variables identifican a los individuos en la estructura wide? Como
llamaremos a la variable que contendra a los sufijos de la variable raz?
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 podra 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. Como 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
administracion@giddea.com

26

2. Manejo de Datos

Figura 2.10: Base ingpadmad

2.9.

Muestreos Probabilsticos

En las encuestas, las observaciones son escogidas a partir de un proceso aleatorio. As, las probabilidades de seleccion para distintas observaciones
pueden diferir en funcion a la forma como se lleve a cabo dicho proceso de
seleccion aleatorio.
Las ponderaciones de muestreo son iguales (o proporcionales) al inverso de
la probabilidad de seleccion. En otras palabras, los ponderadores (o factores
de expansion) pueden ser interpretados como el n
umero de elementos de la
poblacion que el elemento muestreado representa. En consecuencia, no tener
en cuenta los ponderadores de la muestra en los procedimientos estadsticos
genera 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 de
la poblacion. Ellos son necesarios tambien para tener en cuenta las diferentes
tasas de muestreo seg
un dominios geograficos, etc.
La mayora de comandos de stata pueden ponderar datos. Stata proporciona cuatro tipos de ponderaciones, la que mas se emplea es la asociada a los
factores de expansion, que se indica con la opcion pweight que permite identificar los pesos que indican la inversa de la probabilidad de que la observacion
sea incluida debido al dise
no del muestreo.
table x1 x2 [pweight=pesopob]
table x1 x2 [pw=pesopob]

2.10.

Generaci
on de N
umeros Aleatorios

Crearemos un archivo vaco para 100 observaciones:


set obs 100
Generamos n
umeros aleatorios con distribucion uniformes U(0,1)
gen x = uniform()
Luego generamos n
umeros aleatorios con distribucion normal N(0,1)
Stata B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

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 estadstico,


probabilstica y regresional.
Los cuartiles son medidas estadsticas de posicion que tienen la propiedad
de dividir la serie estadstica en cuatro grupos de n
umeros iguales de terminos.
De manera similar los deciles dividen a la serie en diez partes iguales y los
percentiles dividen a los terminos de la serie en cien grupos iguales. As como
la mediana divide la serie o distribucion 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 distribucion.
De estas tres u
ltimas medidas de posicion los cuartiles son las de mayor
aplicacion.
Se emplean generalmente en la determinacion de estratos o grupos correspondientes a fenomenos socio-economicos, monetarios o teoricos.
XTILE
El comando xtile genera una variable categorica (eg: 1, 2, 3) seg
un el cuantil
en que se encuentra cada observacion.
Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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 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 mnimo, por sexo. Muestre
la probabilidad de ser decimo 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 Economica

www.giddea.com
administracion@giddea.com

2.11. Percentiles, Cuartiles, Deciles

29

RETO 2
El sostenido crecimiento de la economa peruana en los u
ltimos a
nos ha
provocado que en la actualidad observemos un boom de inversiones a nivel descentralizado. As, diversas actividades economicas que antes se desarrollaban
solo en Lima han empezado a mirar el interior del pas como plazas alternativas
para expandir sus negocios. Con este fin, la recientemente fundada empresa de
consultora Grupo IDDEA S.A.C. le ha pedido su colaboracion para desarrollar
las siguientes tareas en Stata.
. En el modulo sumarias (que contiene variables calculadas de ingreso y
gasto) se le pide identificar cada hogar con el nombre de la localidad que
representa seg
un la variable ubigeo (distrito). Ademas, en este modulo debera 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.
. Con una sola instruccion (un solo comando) muestre las siguientes estadsticas descriptivas para el gasto per capita en todos los departamentos del pas
(percentil 99, media, desviacion estandar, rango).
. El INEI calcula las estadsticas de pobreza bajo el metodo del gasto, para lo cual utilizara la variable gasto total y la dividira entre el total de
personas en el hogar para calcular el gasto per capita. Luego generara una
variable que valga uno en caso el hogar supere la lnea 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.
. Con el modulo de educacion construya una tabla que muestre para cada dominio geografico el porcentaje de personas seg
un 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 a
nada la variable gasto per capita, calculado en la base
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
administracion@giddea.com

30

Stata B
asico
Aplicado a la Investigaci
on Economica

2. Manejo de Datos

www.giddea.com
administracion@giddea.com

Sesi
on 3
An
alisis Grafico con Stata
Ahora vamos a trabajar con los principales graficos en Stata. Muchos de
estos graficos son de bastante utilidad para observar los problemas inherentes
al 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. 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 Economica

www.giddea.com
administracion@giddea.com

3.2. TWOWAY

3.2.

33

TWOWAY

El S&P 500 es el ndice mas 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 (que tan facil
es comprar o vender sus ttulos) y representatividad por actividad economica, incluyendo 400 industriales, 20 del sector transporte, 40 de servicios y 40
financieras. Solo se toman en cuenta empresas estadounidenses. Vale la pena
destacar que el peso de cada accion dentro del ndice corresponde a la proporcion 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 accion 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
administracion@giddea.com

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 Economica

www.giddea.com
administracion@giddea.com

3.2. TWOWAY

35

Figura 3.9: Opciones del twoway

Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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 Economica

www.giddea.com
administracion@giddea.com

3.2. TWOWAY

37

Figura 3.12: Mas opciones del twoway

Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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 Economica

www.giddea.com
administracion@giddea.com

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
administracion@giddea.com

40

3.4.
3.4.1.

3. An
alisis Grafico con Stata

Combinando TWOWAY Y SCATTERPLOT


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: Opcion 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 Economica

www.giddea.com
administracion@giddea.com

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 B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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 Economica

www.giddea.com
administracion@giddea.com

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


edicion de graficos. Podemos guiarnos de estos para poder tener una mejor
presentacion en nuestros graficos.

graph twoway scatter read write, title("Grafica de Dispersi


on ///
entre Lectura y Escritura")

Figura 3.20: Antes de la edicion

Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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
on 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
on 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
on 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
on 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
on 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 Economica

www.giddea.com
administracion@giddea.com

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
on 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 B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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 Economica

www.giddea.com
administracion@giddea.com

3.6. Trabajando con Esquemas y Gr


aficos Adicionales
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))

47

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.
3.6.1.

Trabajando con Esquemas y Gr


aficos Adicionales
Esquemas

use encuesta.dta
scatter propval100 rent700 ownhome, scheme(vg_blue)

Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

48

3. An
alisis Grafico con Stata

Figura 3.24: Scatter y esquema vg blue

Stata B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

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
administracion@giddea.com

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 Economica

www.giddea.com
administracion@giddea.com

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
administracion@giddea.com

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 Economica

www.giddea.com
administracion@giddea.com

3.6. Trabajando con Esquemas y Gr


aficos Adicionales

53

RETO 3
DE RIESGOS
CLASIFICACION
La 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 con
sus deudas
. Que % de hombres y mujeres son mal pagadores? Quienes ganan mas, en
promedio?
. A que edad las personas se atrasan menos? Realice una grafica sustentando
su respuesta.
. Genere una nueva base de datos a nivel de distrito, con el n
umero de personas, 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 B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

54

Stata B
asico
Aplicado a la Investigaci
on Economica

3. An
alisis Grafico con Stata

www.giddea.com
administracion@giddea.com

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 econometricas. Empecemos con evaluar una regresion
MCO.
use elemapi.dta
regress api00 acs_k3 meals full

Nuestras expectativas son que un mejor rendimiento academico, 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 regresion, y su significancia. Estos coeficientes deben ser coherentes con nuestras
expectativas. Que es lo que observamos?
Antes de decir que esta regresion 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 Economica

www.giddea.com
administracion@giddea.com

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 relacion entre el numero de estudiantes y el rendimiento academico.
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 dira que tanto de la varianza
de nuestra variable endogena, es explicado por los regresores. Luego debemos
observar la significancia de los parametros, ver si sus signos son acorde con la
teora. La constante es el valor predecido para cuando nuestra explicativa sea
cero.
Podemos observar tambien que Stata nos presenta la descomposicion 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:
X
SST =
(y y)2
X
SSR =
(y y)2
X
SSM =
(
y y)2
As pues se puede comprobar que SST=SSM+SSR, ademas debemos recordar
tambien que R2=SSM/SST.
Tambien 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 tambien las medias cuadraticas, es decir la division 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 desviacion estandar del error (raz cuadrada de MSR).
Obtengamos los valores predichos o estimados para el rendimiento academico 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
administracion@giddea.com

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 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 todos
tienen la misma medida ahora.
Un nuevo comando, busquemos en la red.
findit listcoef
listcoef
Observacion SD=desviacion estandar observada, desviacion estandar de la
variable Y
SD del Error= desviacion estandar del error: MSE (error estandar de la prediccion) bstdx=coeficientes de la regresion con las variables x(estandarizadas)
y la variable Y(en su unidad original)
bstdy=coeficientes de la regresion con las variables x(en su unidad original) y
la variable Y(estandarizada)
bstdxy=coeficientes de la regresion con las variables x(estandarizadas) y la
variable 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 B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

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 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 distribucion 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.
4.2.1.

Diagnostico de los Resultados


Efecto Influencia

Ahora vamos a centrarnos en el diagnostico de nuestros resultados. Vemos


los problemas que podran presentarse. Para ello debemos considerar los efectos
de outliers (una observacion 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 regresion) y el efecto influencia (observacion que al removerla, cambia la
estimacion 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
administracion@giddea.com

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 graficos puntos que
estan apartados del resto de que estados seran?
scatter
scatter
scatter

crimenes pcturb, mlabel(estado)


crimenes pobreza, mlabel(estado)
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 B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

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 Cooks 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 pasara con los coeficientes si se borrara la informacion
en algunas variables, estos cambiaran? Es decir, nuestros coeficientes son
robustos o no?
dfbeta
list estado DFpcturb DFpobreza DFsoltero in 1/5
El valor de dfbeta para una observacion, significara que de ser incluida en
el analisis (comparativamente a no ser incluida) incrementara el coeficiente de
beta, 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 B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

62

4. An
alisis de Regresi
on Lineal

Veamos el efecto influencia a traves 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,


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 nosotros deseamos validar las pruebas de hipotesis sobre t-value y F-value. Ojo,
la no normalidad del residuo no invalidad la regresion. Una regresion valida
requiere que el residuo sea identica e independientemente distribuida, no requiere que las variables explicativas sean distribuidas de forma normal. Si no
como explicaramos 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 Economica

www.giddea.com
administracion@giddea.com

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 podra 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 B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

64

4. An
alisis de Regresi
on 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, podemos


hablar de multicolinealidad. Para detectar la multicolinealidad nosotros usaremos el factor de inflacion de varianza (VIF) Aquella variable cuyo vif sea
mayor 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 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 parametros especificada en mi regresion. Si estamos frente a un ajuste no lineal,
entonces nosotros tendremos problemas dado que estamos forzando una lnea
como 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
predict
scatter
scatter

api00 meals some_col


r, resid
r meals
r some_col

Stata B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

4.7. Especificaci
on 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 mas
interesante.
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.

Especificaci
on del modelo

Un error en la especificacion 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 especificacion puede afectar los parametros estimados.
Digamos que estamos corriendo una regresion entre el tama
no de la clase y
el rendimiento academico, un incremento en la primera influira incrementando
la segunda, evaluaremos la especificacion del modelo, para ello usaremos los
siguientes comandos
use elemapi2, clear
regress api00 acs_k3
Un par de metodos Linktest, esta basado en la idea de que si el modelo esta
bien especificado, entonces no deberamos encontrar variables independientes
Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

66

4. An
alisis de Regresi
on Lineal

que sean significativas. El comando crea 2 variables nuevas, una variable estimada, y el cuadrado de dicha estimacion. Se eval
ua el modelo con ambas
variables, la estimacion y hat debera ser significativa pues es el valor estimado, pero su cuadrado no debera serlo, pues de estar bien especificado el
modelo, la estimacion al cuadrado no debera tener mucho poder explicativo.
Linktest
Ovtest
regress api00 acs_k3 full
linktest
ovtest
regress api00
linktest
ovtest

4.8.

acs_k3 full meals

Independencia

Los errores asociados a una observacion no deberan estar asociados a los


errores de alguna otra observacion. En nuestro caso, al haber recolectado datos de 8 tipos de escuela es probable que estudiantes dentro de sus escuelas
tiendan a ser mas parecidos que estudiantes de otra escuela, esto producira
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 autocorrelacion de primer orden. Si quisieramos especificar este analisis en nuestra
data, podramos 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 B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

4.8. Independencia

67

RETO 4
. Trabajar con el archivo gobusa5089.dta y contestar las siguientes preguntas:
Identificar las variables y opinar respecto a cada variable, realizar
un analisis grafico y estadstico para comprender la base de datos?.
Identificar las variables de poltica y las variables apolticas?
Elaborar una tabla de correlaciones entre la variable tax y las variables
polticas y comentar los resultados sobresalientes?.
Responder a lo siguiente: Quienes cobran mas impuestos, los estados con gobiernos divididos o los estados con gobiernos unificados?,
que tan seguro estas de su respuesta?.
Marco teorico mnimo. Existen varias teoras respecto del impacto de los
factores polticos y economicos sobre la poltica tributaria en cada estado:
Las teoras apolticas dicen que las variables socioeconomicas y demograficos (ingreso, poblacion, grupos de edad) son los principales determinantes de los impuestos.
Entre las teoras polticas, algunos dicen que los factores polticos partidistas (partido en el gobierno y/o congreso local, mayora democrata
en el congreso o no, etc.) tambien son importantes.
Mientras que otros dicen que son las variables polticas no-partidistas
(gobierno dividido, margen de la primera fuerza en el congreso local,
etc.) las que afectan los impuestos, y no tanto la ideologa o identidad
del partido en el poder (democrata vs. republicano).
Especifica al menos tres regresiones (con errores estandar robustos) para la
variable tax y compara sus resultados. Interpreta brevemente los coeficientes, su bondad de ajuste, etc. y explica cual de ellos es preferible a los otros.
(Tip: no incluyas la variable spend en tu regresion).
Pruebas de hip
otesis
Controlando por otros factores, la relacion entre poblacion e impuestos
es no lineal.
Controlando por otros factores, los gobernadores democratas cobran
mas impuestos que los no democratas.
Manteniendo otros factores constantes, los estados con mayora democrata en el congreso local cobran mas impuestos que los gobiernos sin
mayora democrata.
Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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 solo consideramos el perodo
1975-1989 en la regresion.
Manteniendo otros factores constantes, una vez que controlamos por
quien tiene la mayora en el congreso (demmaj1), el margen de esta
mayora (dem1) no tiene un impacto en los impuestos.

Interpretando regresiones:
Cual es la bondad de ajuste de un modelo sin variables polticas? Cuanto
poder explicativo adicional se consigue al incluir las variables polticas?
Que variables polticas importan mas, las partidistas o las no partidistas?
(ojo, esta pregunta requiere cierta interpretacion de la R2 ajustada de varios
modelos, as como la magnitud y significancia de tus coeficientes).
Predicciones:
Cuanto cambian los impuestos per capita si el ingreso per capita aumenta en
una desviacion estandar? Calcula este cambio en dolares y como proporcion
de los impuestos promedio de la muestra.
Cuanto cambian los impuestos cuando la mayora democrata en el congreso
local pasa de 10 a 30 %? Calcula este cambio en dolares y como proporcion
de los impuestos promedio de la muestra.

Stata B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

Sesi
on 5
Variables Categ
oricas
5.1.

Estimaci
on con Variables Categ
oricas

Habamos usado variables continuas anteriormente, sin embargo es posible


usar variables categoricas en un analisis de regresion pero requiere un trabajo
extra en la interpretacion, el analisis 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 academico 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 parametro negativo en la regresion, para nuestra variable
dummy. Esto significa que si dicha variable toma el valor de cero la medida del
rendimiento de los alumnos sera su media considerando solo a aquellos alumnos
que no estan en el programa o sistema de ense
nanza, mientras que si la variable
toma el valor de uno, la medida del rendimiento sera la media considerando
solo a aquellos alumnos que si estan 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, podramos 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 desearamos omitir el tercer grupo y no el primero, entonces deberamos
usar 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 categora 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 hacamos 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 Economica

www.giddea.com
administracion@giddea.com

5.2. El Comando Xi

71

Y ahora vamos a estimar el rendimiento academico 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
interpretacion 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 categorica 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 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 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
administracion@giddea.com

72

5. Variables Categ
oricas

Para correr un Anova necesitamos indicarle que la variable a evaluar tiene


caractersticas 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 trabajo academico 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 admision a universidades
en EEUU. El rango de este, varia entre los 600 y 2400 puntos, consta de 3
secciones, 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 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 Economica

www.giddea.com
administracion@giddea.com

5.3. Pruebas de Hip


otesis

73

Afortunadamente, Stata hace pruebas de hipotesis de manera muy intuitiva


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 observaciones
de 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 B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

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 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 B
asico
Aplicado a la Investigaci
on Economica

www.giddea.com
administracion@giddea.com

5.4. Creaci
on de Variables Dummys

75

Que pasa si tienes 10 a


nos de educacion 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 MAS
Pruebas F
test educ
test educ = 70
test educ = 80
Una prueba F tambien 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 categoras, entonces
con 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 comando if condicionando a una variable continua, la variable que se obtendra,
sera entonces, mi variable latente.
La u
ltima forma de creacion es mediante el comando input, donde se
especificara el nombre de las variables y la introduccion 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
administracion@giddea.com

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 multiplicacion 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, imagnense si tuvieran mas de 12 variables


dentro del computo. Ahora aplicaremos un criterio de programacion simple,
estructurando un bucle que nos ayude a implementar el calculo de manera
rapida y ordenada.
foreach var of varlist inc1-inc12 {
generate taxvar = 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 numerico?
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 Economica

www.giddea.com
administracion@giddea.com

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 incqtrqtr = incm1 + incm2 + incm3
}
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 lowinccurmon = 1 if ( inccurmon < inclastmon )
replace lowinccurmon = 0 if ( inccurmon >= inclastmon )
}
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 lowinccurmon = 1 if ( inccurmon < inclastmon )
replace lowinccurmon = 0 if ( inccurmon >= inclastmon )
}
Veamos ahora un comando tambien u
til para programar, el comando WHILE:

Ejemplo:
Stata B
asico
Aplicado a la Investigaci
on Econ
omica

www.giddea.com
administracion@giddea.com

78

5. Variables Categ
oricas

local i=1
while i <=10 {
display i
local i=i+1
}
Stata provee de la especificacion de programas que el usuario bien podria
crear. Crearemos un programa basico, 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 diciendonos 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 Economica

www.giddea.com
administracion@giddea.com

Bibliografa
[1] Moya, Rufino - Estadstica Descriptiva.
[2] Moya, Rufino; Saravia, Gregorio. -Probabilidad e Inferencia Estadstica.
[3] Wooldridge, Jeffrey M. - Introduccion a la Econometra.
[4] Gujarati, Damodar - Fundamentos de Econometra

79