Sei sulla pagina 1di 79

Stata

Basico
Aplicado a la Investigaci
on Econ
omica

Juan Carlos Abanto Orihuela

2 de marzo de 2016
2

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
Indice general

Indice general 3

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

2. Manejo de Datos 15
2.1. Cargando los Datos en Stata . . . . . . . . . . . . . . . . . . . . 15
2.2. Etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3. Comando IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4. Comando SUMMARIZE . . . . . . . . . . . . . . . . . . . . . . 18
2.5. Comando SPLIT . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6. Creando Variables . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.7. KEEP y DROP . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.8. Reestructurando los Datos . . . . . . . . . . . . . . . . . . . . . 24
2.9. Muestreos Probabilsticos . . . . . . . . . . . . . . . . . . . . . . 26
2.10. Generacion de Numeros Aleatorios . . . . . . . . . . . . . . . . 26
2.11. Percentiles, Cuartiles, Deciles . . . . . . . . . . . . . . . . . . . 27

3. An alisis Grafico con Stata 31


3.1. Visualizando Algunos Comandos . . . . . . . . . . . . . . . . . 31
3.2. TWOWAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3. TWOWAY y SCATTERPLOT . . . . . . . . . . . . . . . . . . 38
3.4. Combinando TWOWAY Y SCATTERPLOT . . . . . . . . . . . 40
3.4.1. Filtro de Graficos . . . . . . . . . . . . . . . . . . . . . . 40
3.4.2. Union de Graficos . . . . . . . . . . . . . . . . . . . . . . 40
3.5. Opciones para Edicion de Graficos . . . . . . . . . . . . . . . . . 43
3.6. Trabajando con Esquemas y Graficos Adicionales . . . . . . . . 47

3
4 INDICE GENERAL

3.6.1. Esquemas . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.6.2. Graficos de Barras Verticales . . . . . . . . . . . . . . . . 49
3.6.3. Graficos de Barras Horizontales . . . . . . . . . . . . . . 49
3.6.4. Graficos de Cajas . . . . . . . . . . . . . . . . . . . . . . 50
3.6.5. Graficos de Pastel . . . . . . . . . . . . . . . . . . . . . . 51

4. An alisis de Regresi on Lineal 55


4.1. Regresion Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2. Diagnostico de los Resultados . . . . . . . . . . . . . . . . . . . 59
4.2.1. Efecto Influencia . . . . . . . . . . . . . . . . . . . . . . 59
4.3. Normalidad del Residuo . . . . . . . . . . . . . . . . . . . . . . 62
4.4. Homocedasticidad del Residuo . . . . . . . . . . . . . . . . . . . 63
4.5. Multicolinealidad . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.6. Linealidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.7. Especificacion del modelo . . . . . . . . . . . . . . . . . . . . . 65
4.8. Independencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5. Variables Categ oricas 69


5.1. Estimacion con Variables Categoricas . . . . . . . . . . . . . . . 69
5.2. El Comando Xi . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.3. Pruebas de Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . 72
5.4. Creacion de Variables Dummys . . . . . . . . . . . . . . . . . . 75
5.5. Bucles y Programas . . . . . . . . . . . . . . . . . . . . . . . . . 75

Bibliografa 79

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
Sesi
on 1
Introducci
on 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 de
seccion cruzada. Nos dara las herramientas que necesitamos para organizar y
manejar un gran tama no de data, obteniendo resultados de analisis estadsti-
cos.
En esta sesion introduciremos las nociones basicas del software, para pos-
teriormente 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
6 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 www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
1.4. Principales Comandos de Trabajo y An
alisis 7

Figura 1.3: Estructura Basica

1.4. Principales Comandos de Trabajo y An


ali-
sis
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 ven-
tana 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 ensenara a trabajar con esta.

use auto.dta

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica administracion@giddea.com
8 1. Introducci
on al Stata

use auto.dta if foreign==1


use auto.dta in 1/10
use make mpg using auto.dta
save auto01.dta

Repasemos lo que hemos aprendido:


Ya sabemos como limpiar la memoria de Stata, 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 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 B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
1.4. Principales Comandos de Trabajo y An
alisis 9

count
count if foreign==0
count if foreign==1
by foreign: count

generate orden=_n
rename orden num_obs
by foreign: egen prom_mill=mean(mpg)
drop num_obs
keep make price mpg prom_mill

1.4.3. Append, Merge, Collapse


El comando append y merge nos ayudara a unir bases de datos integrando-
las 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 B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 de-
bemos 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 va-
riables para diversas unidades de estudio, en una base de datos que contiene
estadsticos de dichas variables (medias, medianas, sumas etc). Permite obte-
ner 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 con-
diciones 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 emi-
tidos por region, para el a
no 2002. Genere tambien una base con la poblacion
mundial a lo largo del tiempo.

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 emi-
tidos 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica administracion@giddea.com
14 1. Introducci
on al Stata

RETO 1

. La base enaho01a-2014-500 contiene datos del modulo 500 de la ENAHO


recopilados en el 2014, mientras que enaho01a-20114-300 contiene los da-
tos del modulo 300 para ese mismo a no. Ambas bases estan a nivel de indi-
viduos. Se pide importar las variables p301a (nivel de estudio alcanzado) y
p301b (ultimo ano de estudio cursado) del modulo 300 a la base del modulo
500. Guarde la base de datos con el nombre de ingresos2014. Finalmente
importe las variables p101, p102, p103, p103a, del modulo 100 que se en-
cuentra a nivel de hogar a la base de datos anterior y guarde la base de datos
con el mismo nombre.

. A la base ingresos2014.dta, usted generara las siguientes variables:

La variable superior, que tome el valor de 1 siempre y cuando el indi-


viduo tenga alg
un estudio superior (ver p301a), y 0 en caso contrario.
La variable casa, que tome el valor de 1 siempre y cuando el individuo
habite en una casa independiente o en un departamento en un edificio
(ver p101), y 0 en caso contrario.
La variable pared, que tome el valor de 1 siempre y cuando el individuo
habite en una casa con ladrillo o bloque de cemento como material
predominante en la pared (ver p102), y 0 en caso contrario.
La variable piso, que tome el valor de 1 siempre y cuando el individuo
habite en una casa con parquet, laminas asfalticas,losetas, madera, o
cemento como material predominante en el piso (ver p103), y 0 en caso
contrario.
La variable techo, que tome el valor de 1 siempre y cuando el individuo
habite en una casa con concreto armado, madera, tejas o planchas de
calamina o fibra de cemento, como material predominante en el piso
(ver p103a), y 0 en caso contrario.

. Usando el archivo con las nuevas variables creadas se le solicita:

Obtener una variable departamento que indique el codigo del depar-


tamento (ver ubigeo).
Colapsar la base de datos por departamento y obtener el porcentaje
de personas con estudios superiores, el porcentaje de personas que ha-
bitan en casas con pared de ladrillo, al menos pisos de cemento o al
menos techo de calamina. Ademas se desea saber el promedio de edad
(ver p208a), y el porcentaje de mujeres (ver p207) en los respectivos
departamentos.

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 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 B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
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 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) & !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 B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 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 podra estar interesado en el resumen estadstico 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 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 multiple. 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 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 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 per-
mitira 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 clasifica-
cion:

Figura 2.5: Datos Tipo Numericos

. Datos cadena de texto, dentro de estos podemos encontrar la siguiente cla-


sificacion:

Figura 2.6: Datos Tipo Cadena

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 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 base
de datos.

use auto
describe
keep make mpg price
describe
use auto, clear
drop displacement gear_ratio
describe

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 proce-
so 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 proporcio-
na 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 identi-
ficar los pesos que indican la inversa de la probabilidad de que la observacion
sea incluida debido al diseno 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 corres-
pondientes 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 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 B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
2.11. Percentiles, Cuartiles, Deciles 29

RETO 2

El sostenido crecimiento de la economa peruana en los u ltimos anos ha


provocado que en la actualidad observemos un boom de inversiones a nivel des-
centralizado. 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 segun la variable ubigeo (distrito). Ademas, en este modulo de-
bera 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 estadsti-
cas 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, pa-
ra 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 do-
minio 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica administracion@giddea.com
30 2. Manejo de Datos

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
3.2. TWOWAY 33

3.2. 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 economi-
ca, 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 propor-
cion 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
3.2. TWOWAY 35

Figura 3.9: Opciones del twoway

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 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 B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
3.2. TWOWAY 37

Figura 3.12: Mas opciones del twoway

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica administracion@giddea.com
38 3. An
alisis 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 B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
3.3. TWOWAY y SCATTERPLOT 39

Figura 3.13: Connect

Figura 3.14: Connect sort cmissing

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica administracion@giddea.com
40 3. An
alisis Grafico con Stata

3.4. Combinando TWOWAY Y SCATTERPLOT


3.4.1. Filtro de Gr
aficos

twoway scatter read write, by(female)


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

Figura 3.15: Opcion by

3.4.2. Uni
on de Gr
aficos

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


de lectura)

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
3.6. Trabajando con Esquemas y Gr
aficos Adicionales 47

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

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

tw (rarea high low date) (spike 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 Gr


aficos Adi-
cionales
3.6.1. Esquemas
use encuesta.dta
scatter propval100 rent700 ownhome, scheme(vg_blue)

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica administracion@giddea.com
48 3. An
alisis Grafico con Stata

Figura 3.24: Scatter y esquema vg blue

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
3.6. Trabajando con Esquemas y Gr
aficos Adicionales 49

3.6.2. 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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, 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 B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
3.6. Trabajando con Esquemas y Gr
aficos Adicionales 53

RETO 3

CLASIFICACION DE RIESGOS
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 perso-
nas, 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica administracion@giddea.com
54 3. An
alisis Grafico con Stata

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 va-
mos 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 rela-


cionado 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 regre-
sion, 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 nega-
tivos insertados de manera incorrecta y proporciones introducidos como por-
centajes.

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 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 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 academi-


co con nuestro modelo y guardemos dichos valores en la variable fv

predict fv

Veamos los valores estimados y los reales:

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 pre-
diccion) 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 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. 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 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 B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
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 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 no-
sotros 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 re-
quiere 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 usa-
remos 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 para-
metros 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 api00 meals some_col


predict r, resid
scatter r meals
scatter r some_col

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 parame-
tros 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica administracion@giddea.com
66 4. An
alisis de Regresi
on Lineal

que sean significativas. El comando crea 2 variables nuevas, una variable es-
timada, 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 esti-
mado, 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 acs_k3 full meals


linktest
ovtest

4.8. Independencia
Los errores asociados a una observacion no deberan estar asociados a los
errores de alguna otra observacion. En nuestro caso, al haber recolectado da-
tos 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 auto-
correlacion 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 www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
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, 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 esta-
dos 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 de-


mograficos (ingreso, poblacion, grupos de edad) son los principales de-
terminantes de los impuestos.
Entre las teoras polticas, algunos dicen que los factores polticos par-
tidistas (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 coeficien-
tes, 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 democra-
ta en el congreso local cobran mas impuestos que los gobiernos sin
mayora democrata.

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 mealcat
codebook api00
codebook some_col
codebook yr_rnd
codebook 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 meal-
cat 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 ensenanza, 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


ensenanza year-round y un sistema de ensenanza 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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 apti-
tudes 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 (_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 B
asico www.giddea.com
Aplicado a la Investigaci
on Economica administracion@giddea.com
5.3. Pruebas de Hip
otesis 73

Afortunadamente, Stata hace pruebas de hipotesis de manera muy intui-


tiva

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 www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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 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 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 pro-
gramas implementan una plataforma orientada al usuario en lugar de a un
programador.

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica administracion@giddea.com
76 5. Variables Categ
oricas

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 cada
mes, una manera simple de hacer esto computo a las 12 variables es mediante
una 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, 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 incqtr1 = inc1 + inc2 + inc3
generate incqtr2 = inc4 + inc5 + inc6
generate incqtr3 = inc7 + inc8 + inc9
generate incqtr4 = inc10+ inc11+ inc12

list incqtr1 - incqtr4

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Economica 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 WHI-
LE:

Ejemplo:

Stata B
asico www.giddea.com
Aplicado a la Investigaci
on Econ
omica 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 www.giddea.com
Aplicado a la Investigaci
on Economica 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

Potrebbero piacerti anche