Manual Stata Basico

79
Stata asico Aplicado a la Investigaci´on Econ´ omica Juan Carlos Abanto Orihuela 25 de enero de 2013

Transcript of Manual Stata Basico

  • StataBasico

    Aplicado a la Investigacion Economica

    Juan Carlos Abanto Orihuela

    25 de enero de 2013

  • 2Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • Indice general

    Indice general 3

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

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

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

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

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

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

    3

  • 4 INDICE GENERAL

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

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

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

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

    Bibliografa 79

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • Sesion 1Introduccion al Stata

    1.1. Iniciando Stata

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

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

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

    Figura 1.1: Pantalla de Inicio

    5

  • 6 1. Introduccion al Stata

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

    Figura 1.2: Barra de Comandos

    1.2. Tipos de Archivos en Stata

    En STATA, distinguimos 3 tipos de archivos importantes:

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

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

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

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

    1.3. Estructura Basica de Stata

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 1.4. Principales Comandos de Trabajo y Analisis 7

    Figura 1.3: Estructura Basica

    1.4. Principales Comandos de Trabajo y Anali-

    sis

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

    1.4.1. Las Bitacoras

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

    log using clase1.logo tambien

    cmdlog using clase1.log

    1.4.2. La Base de Datos

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

    use auto.dta

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 8 1. Introduccion al Stata

    use auto.dta if foreign==1

    use auto.dta in 1/10

    use make mpg using auto.dta

    save auto01.dta

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

    use auto01.dta

    browse

    replace mpg=20 if mpg==19

    save, replace

    list make

    list make price

    describe

    codebook

    summarize mpg weight

    summarize mpg weight if foreign

    summarize price if mpg=21.3

    summarize price, 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 BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 1.4. Principales Comandos de Trabajo y Analisis 9

    count

    count if foreign==0

    count if foreign==1

    by foreign: count

    generate orden=_n

    rename orden num_obs

    by foreign: egen prom_mill=mean(mpg)

    drop num_obs

    keep make price mpg prom_mill

    1.4.3. Append, Merge, Collapse

    El comando append y merge nos ayudara a unir bases de datos integrando-las en una sola. Append, pegara hacia abajo o verticalmente y Merge, pegarahacia 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 BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 10 1. Introduccion al Stata

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

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

    use base1.dta, clear

    list

    append using base2

    list

    save base12.dta, replace

    list

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

    use base3.dta, clear

    list

    append using base4

    list

    save base34.dta, replace

    list

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

    use base3.dta, clear

    list

    rename Sexo sexo

    list

    save base03.dta, replace

    use base03.dta, clear

    list

    append using base4

    list

    save base034.dta, replace

    Ahora si resulto bien la union vertical. Veamos la base12 que tenamosantes.

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

    use base034.dta, clear

    list

    sort nombre

    list

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 1.4. Principales Comandos de Trabajo y Analisis 11

    save base034s.dta, replace

    use base12.dta, clear

    list

    sort nombre

    list

    save base12s.dta, replace

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

    clear

    use base12s.dta, clear

    list

    merge nombre using base034s.dta

    list

    save basetotal.dta, replace

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

    Figura 1.5: Base Total

    Podemos tabular la variable merge para ver si se pegaron correctamente lasbases de datos, o tambien observar la columna final merge en caso de baseschicas como esta.

    tab _merge

    Analicemos los resultados. Hay tres posibles valores que puede tomar estavariable segun lo muestra la figura1.6. Si toma el valor de 1 nos indicara quees una observacion que solo se encuentra en la base matriz, si toma el valorde 2 nos indicara que es una observacion que proviene de la base esclava, y sitoma el valor de 3, nos indicara que la observacion proviene de ambas bases.

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 12 1. Introduccion 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 contieneestadsticos de dichas variables (medias, medianas, sumas etc). Permite obte-ner estadsticos para unidades mas grandes (en un sentido jerarquico), comopor ejemplo, pasar de datos por individuo a datos por hogar, de datos pordistritos a datos por provincia (agregacion)

    En el comando se especifican aquellas variables que se colapsan y las con-diciones que se imponen para dicha transformacion. Algunas variables puedenser colapsadas segun su suma, otras segun su media, etc. (ver figura1.7)

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

    Figura 1.7: Estructura del comando split

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 1.4. Principales Comandos de Trabajo y Analisis 13

    use kids, clear

    list

    collapse age

    list

    use kids, clear

    collapse age, by(famid)

    list

    use kids, clear

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

    list

    use kids, clear

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

    list

    use kids, clear

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

    list

    use kids, clear

    tabulate sex, generate(sexdum)

    list famid sex sexdum1 sexdum2

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

    list famid boys girls numkids

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

    use wdi,clear

    collapse (sum) co2 if year==2002, by(region)

    graph hbar (asis) co2, over(region)

    use wdi, clear

    collapse (sum) pop, by(year)

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 14 1. Introduccion al Stata

    RETO 1

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

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

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

    La variable sobre tipo de vivienda (p101).

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

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • Sesion 2Manejo de Datos

    2.1. Cargando los Datos en Stata

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

    use auto.dta

    describe

    summarize

    generate price2=2*price

    describe

    save auto2.dta

    generate price3=3*price

    save auto2.dta

    save auto2.dta, replace

    generate price4=4*price

    use auto.dta

    use auto.dta, clear

    clear

    2.2. Etiquetas

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

    use auto.dta

    describe

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

    describe

    label variable rep78 "Record de reparacion en 1978"

    label variable price "Precio del carro en 1958"

    label variable mpg "Millas por galon para el carro"

    15

  • 16 2. Manejo de Datos

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

    describe

    label define foreignl 0 "domestico" 1 "extranjero"

    label values foreign foreignl

    describe

    table foreign

    ttest mpg, by(foreign)

    save auto3.dta

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

    clear

    use iraninos.dta

    set more off

    label define sexow 0 "mujer"

    label define sexow 1 "hombre", add

    describe

    browse

    label values sexo sexow

    describe

    browse

    label drop sexow

    label define getareow 0 "prematuro"

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

    label define getareow 2 "lactante", add

    label define getareow 3 "escolares", add

    label values getareo getareow

    label define oliguriaw 0 "no oliguria"

    label define oliguriaw 1 "oliguria", add

    label values oliguria oliguriaw

    label define congenitow 0 "no congenito"

    label define congenitow 1 "congenito", add

    label values congenito congenitow

    label define sepsisw 0 "no sepsis"

    label define sepsisw 1 "sepsis", add

    label values sepsis sepsisw

    label define tipodaow 0 "asfixia neonat"

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 2.3. Comando IF 17

    label define tipodaow 1 "nta", add

    label define tipodaow 2 "nti", add

    label define tipodaow 3 "nefro tox", add

    label values tipodao tipodaow

    label define finalw 0 "vivo"

    label define finalw 1 "muerto", add

    label values final finalw

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

    2.3. Comando IF

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

    Figura 2.1: Estructura del comando if

    clear

    use auto.dta

    keep make rep78 foreign mpg price

    tabulate rep78 foreign

    tabulate rep78 foreign if (rep78 >=4)

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

    list if (rep78 >= 4)

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

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

    summarize price if (rep78 = 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 decirno.

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 18 2. Manejo de Datos

    2.4. Comando SUMMARIZE

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

    Figura 2.2: Estructura del comando summarize

    use auto

    summarize

    summarize price mpg

    summarize mpg price if (foreign == 1)

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

  • 2.6. Creando Variables 19

    Figura 2.3: Estructura del comando split

    Figura 2.4: Base Documentos

    use "split y destring", clear

    split documento, parse("-") destring

    use "split y destring", clear

    split documento, parse("-")

    destring documento2, replace

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

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

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

    2.6. Creando Variables

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

    use auto, clear

    summarize length

    generate length_feet = length / 12

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 20 2. Manejo de Datos

    generate length_feet = length / 12

    replace length_feet = length / 12

    summarize length lenght_feet

    generate length2 = length^2

    summarize length2

    generate loglen = log(length)

    summarize loglen

    summarize length

    generate zlength = (length - 187.93) / 22.27

    summarize zlength

    Observemos la variable mpg (millaje por galon)

    tabulate mpg

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

    generate mpg3 = .

    replace mpg3 = 1 if (mpg = 19) & (mpg = 24) & (mpg

  • 2.6. Creando Variables 21

    generate mpgfd = mpg

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

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

    by foreign: tabulate mpg mpgfd

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

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

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

    Tambien podemos usar una extension del commando generate, egen me per-mitira crear expresiones mas complejas aun, tales como medias, desviacionesestandar, maximos, 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 BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 22 2. Manejo de Datos

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

    Generemos algunas variables como ejemplo:

    generate double x=2

    generate str2 y="maria"

    list y

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

    clear

    use auto.dta

    encode make, generate(A)

    label list A

    describe make A

    decode A, generate(B)

    describe make A B

    O tambien 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 basede datos.

    use auto

    describe

    keep make mpg price

    describe

    use auto, clear

    drop displacement gear_ratio

    describe

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 2.7. KEEP y DROP 23

    use auto , clear

    tabulate rep78 , missing

    drop if missing(rep78)

    tabulate rep78 , missing

    use auto , clear

    keep if (rep78

  • 24 2. Manejo de Datos

    clear

    use make mpg price rep78 using auto.dta if (rep78

  • 2.8. Reestructurando los Datos 25

    reshape wide

    list

    reshape long

    list

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

    use ni~noaltpes, clear

    list codfam nacimiento alt1 alt2

    Figura 2.9: Base ninoaltpes

    Veamos como podemos transformar esta base de datos a una forma long.Cual es la raz de la variable que sera convertida de la forma wide a la formalong? Que variables identifican a los individuos en la estructura wide? Comollamaremos a la variable que contendra a los sufijos de la variable 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 ingse estructuren de una forma long, pero los sufijos p y m son del tipo cadenao string, ya no son numeros. Como podemos estructurar nuestro comando eneste caso?

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

    list

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 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 observacionespueden diferir en funcion a la forma como se lleve a cabo dicho proceso deseleccion aleatorio.

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

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

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

    table x1 x2 [pweight=pesopob]

    table x1 x2 [pw=pesopob]

    2.10. Generacion de Numeros Aleatorios

    Crearemos un archivo vaco para 100 observaciones:

    set obs 100

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

    gen x = uniform()

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 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 propiedadde dividir la serie estadstica en cuatro grupos de numeros iguales de terminos.

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

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

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

    XTILE

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 28 2. Manejo de Datos

    xtile nuevavar = variable , nquantiles(#)

    xtile tercio = notas, n(3)

    PCTILE

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

    pctile nuevavar = variable , nquantiles(#)

    pctile cortes = notas, n(3)

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

    xtile es_decimo = notas, n(10)

    replace es_decimo= (es_decimo==10)

    summarize notas, detail

    gen es_decimo = notas > r(p90)

    pctile corte_dec = notas, n(10)

    gen es_decimo = notas > corte_dec[9]

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

    tab es_decimo tercio

    tabstat notas, by(es_decimo)

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

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 2.11. Percentiles, Cuartiles, Deciles 29

    RETO 2

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

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

    . Con una sola instruccion (un solo comando) muestre las siguientes 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 depersonas en el hogar para calcular el gasto per capita. Luego generara unavariable 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 cadadepartamento cual es el nivel de pobreza considerando que un individuo espobre 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 segun nivel educativo alcanzado,para lo cual considerara solo tres niveles: 1, al menos primaria incompleta,2, Al menos secundaria completa y 3, superior.

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 30 2. Manejo de Datos

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • Sesion 3Analisis Grafico con Stata

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

    3.1. Visualizando Algunos Comandos

    clear

    use auto.dta

    histogram mpg

    Figura 3.1: Histograma

    graph box mpg

    graph box mpg, by(foreign)

    31

  • 32 3. Analisis Grafico con Stata

    Figura 3.2: Grafico de Cajas

    Figura 3.3: Scatter y Ajuste Lineal

    Figura 3.4: Grafico Matricial

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 3.2. TWOWAY 33

    3.2. TWOWAY

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

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

    clear

    use s&p.dta

    describe

    Figura 3.5: Indice S&P

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 34 3. Analisis Grafico con Stata

    Figura 3.6: Opciones del twoway

    Figura 3.7: Opciones del twoway

    Figura 3.8: Opciones del twoway

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 3.2. TWOWAY 35

    Figura 3.9: Opciones del twoway

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 36 3. Analisis Grafico con Stata

    Usemos una nueva base de datos:

    clear

    use highschool.dta

    describe

    Figura 3.10: Base Highschool

    graph twoway histogram read

    graph twoway kdensity read

    graph twoway (histogram read) (kdensity read)

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

    Figura 3.11: Histograma y Kernel

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 3.2. TWOWAY 37

    Figura 3.12: Mas opciones del twoway

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 38 3. Analisis Grafico con Stata

    3.3. TWOWAY y SCATTERPLOT

    twoway scatter read write , scheme(economist)

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

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

    twoway scatter read write if id

  • 3.3. TWOWAY y SCATTERPLOT 39

    Figura 3.13: Connect

    Figura 3.14: Connect sort cmissing

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 40 3. Analisis Grafico con Stata

    3.4. Combinando TWOWAY Y SCATTERPLOT

    3.4.1. Filtro de Graficos

    twoway scatter read write, by(female)

    twoway scatter read write, by(female ses)

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

    Figura 3.15: Opcion by

    3.4.2. Union de Graficos

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

    de lectura)

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 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 BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 42 3. Analisis Grafico con Stata

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

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

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

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

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

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

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

    Figura 3.18: Editando la legenda de un grafico

    separate write, by(female)

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

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

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

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

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

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 3.5. Opciones para Edicion de Graficos 43

    Figura 3.19: Ordenando la legenda de un grafico

    3.5. Opciones para Edicion de Graficos

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

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

    entre Lectura y Escritura")

    Figura 3.20: Antes de la edicion

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 44 3. Analisis Grafico con Stata

    graph twoway scatter read write, ///

    ytitle(Nota del Examen de Escritura) ///

    xtitle(Nota del Examen de Lectura)

    graph twoway scatter read write, ///

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

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

    ytitle(Nota del Examen de Escritura) ///

    xtitle(Nota del Examen de Lectura)

    graph twoway scatter read write, ///

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

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

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

    ytitle(Nota del Examen de Escritura) ///

    xtitle(Nota del Examen de Lectura)

    graph twoway scatter read write, ///

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

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

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

    bmargin(medium)) ///

    ytitle(Nota del Examen de Escritura) ///

    xtitle(Nota del Examen de Lectura)

    graph twoway scatter read write, ///

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

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

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

    ytitle(Nota del Examen de Escritura) ///

    xtitle(Nota del Examen de Lectura) ///

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

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

    caption(Grupo IDDEA.SAC)

    graph twoway scatter read write, ///

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

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

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

    ytitle(Nota del Examen de Escritura) ///

    xtitle(Nota del Examen de Lectura) ///

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

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 3.5. Opciones para Edicion de Graficos 45

    position(5))

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

    graph twoway scatter read write, ///

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

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

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

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

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

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

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

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

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

    graphregion( color(navy) ) ///

    plotregion( fcolor(teal) )

    Figura 3.21: Despues de la edicion

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 46 3. Analisis Grafico con Stata

    use encuesta.dta

    graph hbar commute, over(division)

    graph hbar commute, over(division) asyvar

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

    ylabel(0(10)80)

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

    twoway scatter ownhome propval100, xscale(alt)

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

    yscale(alt)

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

    yaxis(2))

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

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

    Figura 3.22: Grafico de burbujas

    use s&p.dta

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 3.6. Trabajando con Esquemas y Graficos Adicionales 47

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

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

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

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

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

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

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

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

    scheme(vg_teal)

    Figura 3.23: Diferentes escalas

    3.6. Trabajando con Esquemas y Graficos Adi-

    cionales

    3.6.1. Esquemas

    use encuesta.dta

    scatter propval100 rent700 ownhome, scheme(vg_blue)

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 48 3. Analisis Grafico con Stata

    Figura 3.24: Scatter y esquema vg blue

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 3.6. Trabajando con Esquemas y Graficos Adicionales 49

    3.6.2. Graficos de Barras Verticales

    use nlsw.dta

    graph bar ttl_exp

    graph bar prev_exp tenure ttl_exp

    graph bar (median) prev_exp tenure ttl_exp

    graph bar (median) prev_exp tenure (mean )ttl_exp

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

    graph bar prev_exp tenure, over(occ5)

    graph bar prev_exp tenure, over(occ5) percentages

    graph bar prev_exp tenure, over(occ5) percentages stack

    use highshool.dta

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

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

    bargap(10) percent scheme(vg_blue)

    Figura 3.25: Bar y esquema vg green

    3.6.3. Graficos de Barras Horizontales

    use nlsw.dta

    graph hbar wage, over(occ5)

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

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 50 3. Analisis Grafico con Stata

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

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

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

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

    graph hbar wage,over(occ7)

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

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

    graph hbar wage hours,over(occ7)

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

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

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

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

    descending) asyvars

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

    descending) asyvars stack

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

    Figura 3.26: Hbar y esquema vg rose

    3.6.4. Graficos de Cajas

    use nlsw.dta

    graph box wage, over(grade4)

    graph box wage, over(grade4) nooutsides

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

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 3.6. Trabajando con Esquemas y Graficos Adicionales 51

    asyvars

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

    asyvars over(urban2)

    graph hbox tenure, nooutsides over(occ7)

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

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

    sort(1))

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

    sort(1)) over(collgrade)

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

    sort(1)) over(collgrad)

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

    over(married) by(union)

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

    over(married) by(union, total)

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

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

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

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

    Figura 3.27: Hbox y esquema vg teal

    3.6.5. Graficos de Pastel

    use nlsw.dta

    graph pie, over(occ7)

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 52 3. Analisis Grafico con Stata

    graph pie, over(union)

    graph pie, over(union) missing

    graph pie, over(occ7)

    graph pie, over(occ7) noclockwise

    graph pie, over(occ7) noclockwise sort

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

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

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

    graph pie, over(occ7)

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

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

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

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

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

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

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

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

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

    scheme(economist)

    Figura 3.28: Pie y esquema economist

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 3.6. Trabajando con Esquemas y Graficos Adicionales 53

    RETO 3

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

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

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

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

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

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

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

    . Genere una nueva base de datos a nivel de distrito, con el numero de 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 BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 54 3. Analisis Grafico con Stata

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • Sesion 4Analisis de Regresion Lineal

    4.1. Regresion Lineal

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

    use elemapi.dta

    regress api00 acs_k3 meals full

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

    55

  • 56 4. Analisis de Regresion Lineal

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

    regress api00 acs_k3 meals full

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

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

    describe

    list in 1/5

    list api00 acs_k3 meals full in 1/10

    codebook api00 acs_k3 meals full yr_rnd

    summarize api00 acs_k3 meals full

    summarize acs_k3, detail

    tabulate acs_k3

    list snum dnum acs_k3 if acs_k3 < 0

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

    histogram acs_k3

    graph box acs_k3

    stem acs_k3

    stem full

    tabulate full

    tabulate dnum if full

  • 4.1. Regresion Lineal 57

    regress api00 acs_k3 meals full

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

    use elemapi2.dta

    regress api00 acs_k3 meals full

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

    regress api00 enroll

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

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

    SST =

    (y y)2

    SSR =

    (y y)2

    SSM =

    (y y)2

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

    www.giddea.com

    [email protected]

  • 58 4. Analisis de Regresion Lineal

    list api00 fv in 1/10

    scatter api00 enroll

    twoway (scatter api00 enroll) (lfit api00 enroll)

    Veamos los outliers

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

    Ahora obtengamos el residuo de la regresion

    predict e, residual

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

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

    emer enroll, beta

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

    Un nuevo comando, busquemos en la red.

    findit listcoef

    listcoef

    Observacion SD=desviacion estandar observada, desviacion estandar de lavariable YSD del Error= desviacion estandar del error: MSE (error estandar de la 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) yla variable Y(estandarizada)bstdxy=coeficientes de la regresion con las variables x(estandarizadas) y lavariable Y(estandarizada)

    Veamos una prueba de hipotesis

    test ell==0

    test ell

    Veamos una prueba de hipotesis conjunta

    test acs_k3 acs_46

    Veamos la correlacion entre las variables

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

    emer enroll

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 4.2. Diagnostico de los Resultados 59

    Veamos otra opcion para correlacionar variables

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

    emer enroll, obs sig

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

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

    histogram enroll

    histogram enroll, normal bin(20)

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

    kdensity enroll, normal

    graph box enroll

    symplot enroll

    qnorm enroll

    pnorm enroll

    Veamos todas las posibilidades

    ladder enroll

    gladder enroll

    Ajustemos a nuestra mejor eleccion

    generate lenroll = log(enroll)

    hist lenroll, normal

    4.2. Diagnostico de los Resultados

    4.2.1. Efecto Influencia

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

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 60 4. Analisis de Regresion Lineal

    use crimen.dta

    describe

    sum crimenes asesinatos pcturb pctblanco pctnivedu pobreza soltero

    graph matrix crimenes pcturb pobreza soltero

    Figura 4.1: Crimenes, pcturb, pobreza y soltero

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

    scatter crimenes pcturb, mlabel(estado)

    scatter crimenes pobreza, mlabel(estado)

    scatter crmenes 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 BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 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 informacionen algunas variables, estos cambiaran? Es decir, nuestros coeficientes sonrobustos o no?

    dfbeta

    list estado DFpcturb DFpobreza DFsoltero in 1/5

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

    display 2/sqrt(51)

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

    yline(.28 -.28)

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

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

    list DFsoltero estado crimenes pcturb pobreza soltero if ///

    abs( DFsoltero) > 2/sqrt(51)

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 62 4. Analisis de Regresion Lineal

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

    avplot soltero, mlabel( estado)

    avplots

    regress

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

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

    regress crimenes pcturb pobreza soltero

    avplot pctblanco

    regress crimenes pcturb pobreza soltero pctblanco

    4.3. Normalidad del Residuo

    La normalidad del residuo es requerida por muchas investigaciones si 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 validarequiere que el residuo sea identica e independientemente distribuida, no re-quiere que las variables explicativas sean distribuidas de forma normal. Si nocomo explicaramos el uso de variables dummys en nuestras regresiones.

    use elemapi2,clear

    regress api00 meals ell emer

    predict r, resid

    Analisis grafico de normalidad

    kdensity r, normal

    pnorm r

    qnorm r

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 4.4. Homocedasticidad del Residuo 63

    Test de NormalidadTest de Lawrence C. Hamilton

    findit iqr

    iqr r

    Test de Shapiro-Wilk W (Ho: Normalidad)

    swilk r

    4.4. Homocedasticidad del Residuo

    Supuesto crucial en un modelo MCO, la varianza de sus residuos debe serconstante. Si la varianza no es constante entonces hay heterocedasticidad quebien 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 BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 64 4. Analisis de Regresion Lineal

    estat hettest

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

    4.5. Multicolinealidad

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

    regress api00 meals ell emer

    vif

    regress api00 acs_k3 avg_ed grad_sch col_grad some_col

    vif

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

    regress api00 acs_k3 grad_sch col_grad some_col

    vif

    findit collin

    collin acs_k3 avg_ed grad_sch col_grad some_col

    collin acs_k3 grad_sch col_grad some_col

    4.6. Linealidad

    Uno de los supuestos del Modelo Lineal General es la linealidad de para-metros especificada en mi regresion. Si estamos frente a un ajuste no lineal,entonces nosotros tendremos problemas dado que estamos forzando una lneacomo 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 BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 4.7. Especificacion del modelo 65

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

    acprplot meals, lowess lsopts(bwidth(1))

    acprplot some_col, lowess lsopts(bwidth(1))

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

    use nations.dta

    describe

    regress birth gnpcap urban

    acprplot gnpcap, lowess

    acprplot urban, lowess

    graph matrix birth gnpcap urban, half

    kdensity gnpcap, normal

    Transformemos un dato

    generate lggnp=log(gnpcap)

    label variable lggnp "log-10 of gnpcap"

    kdensity lggnp, normal

    Regresionemos con el dato transformado

    regress birth lggnp urban

    acprplot lggnp, lowess

    4.7. Especificacion del modelo

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

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

    use elemapi2, clear

    regress api00 acs_k3

    Un par de metodos Linktest, esta basado en la idea de que si el modelo estabien especificado, entonces no deberamos encontrar variables independientes

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 66 4. Analisis de Regresion Lineal

    que sean significativas. El comando crea 2 variables nuevas, una variable es-timada, y el cuadrado de dicha estimacion. Se evalua el modelo con ambasvariables, la estimacion y hat debera ser significativa pues es el valor esti-mado, pero su cuadrado no debera serlo, pues de estar bien especificado elmodelo, 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 loserrores de alguna otra observacion. En nuestro caso, al haber recolectado da-tos de 8 tipos de escuela es probable que estudiantes dentro de sus escuelastiendan a ser mas parecidos que estudiantes de otra escuela, esto produciraerrores no independientes. El problema de autocorrelacion es muy comun enseries de tiempo, en la cual nosotros evaluamos el test DW para ver la auto-correlacion de primer orden. Si quisieramos especificar este analisis en nuestradata, 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 BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 4.8. Independencia 67

    RETO 4

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

    Identificar las variables y opinar respecto a cada variable, realizarun analisis grafico y 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 variablespolticas 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 losfactores 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 democrataen 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 identidaddel partido en el poder (democrata vs. republicano).

    Especifica al menos tres regresiones (con errores estandar robustos) para lavariable 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 hipotesis

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

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

    Manteniendo otros factores constantes, los estados con mayora democra-ta en el congreso local cobran mas impuestos que los gobiernos sinmayora democrata.

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 68 4. Analisis de Regresion Lineal

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

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

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

    Interpretando regresiones:

    Cual es la bondad de ajuste de un modelo sin variables polticas? Cuantopoder 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 variosmodelos, as como la magnitud y significancia de tus coeficientes).

    Predicciones:

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

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • Sesion 5Variables Categoricas

    5.1. Estimacion con Variables Categoricas

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

    use elemapi2.dta, clear

    describe api00 some_col yr_rnd mealcat

    codebook api00

    codebook some_col

    codebook yr_rnd

    codebook mealcat

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

    regress api00 yr_rnd

    twoway (scatter api00 yr_rnd) (lfit api00 yr_rnd)

    tabulate yr_rnd, sum(api00)

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

    ttest api00, by(yr_rnd)

    anova api00 yr_rnd

    display 10.7815^2

    codebook mealcat

    regress api00 mealcat

    69

  • 70 5. Variables Categoricas

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

    tabulate mealcat, gen(mealcat)

    list mealcat mealcat1 mealcat2 mealcat3 in 1/10, nolabel

    regress api00 mealcat2 mealcat3

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

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

    test mealcat2 mealcat3

    tabulate mealcat, summarize(api00)

    5.2. El Comando Xi

    Lo mismo podemos hacer con el comando xi,

    xi : regress api00 i.mealcat

    test _Imealcat_2 _Imealcat_3

    Si desearamos omitir el tercer grupo y no el primero, entonces deberamosusar 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 conla constante.

    Los beneficios del comando anova es que te da el efecto total de meal-cat sin necesitar el uso del comando test como lo hacamos con el comandoregress.

    Volvamos a nuestras regresiones:

    regress api00 yr_rnd

    xi : regress api00 i.mealcat

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 5.2. El Comando Xi 71

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

    xi : regress api00 i.mealcat yr_rnd

    test _Imealcat_1 _Imealcat_2

    anova api00 yr_rnd mealcat

    anova, regress

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

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

    Veamos algunas interacciones con las variables categoricas:

    xi : regress api00 i.mealcat*yr_rnd

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

    test _ImeaXyr_rn_1 _ImeaXyr_rn_2

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

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

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

    anova api00 yr_rnd mealcat yr_rnd*mealcat

    regress api00 yr_rnd some_col

    predict yhat

    scatter yhat some_col

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 72 5. Variables Categoricas

    Para correr un Anova necesitamos indicarle que la variable a evaluar tienecaractersticas de continuidad:

    anova api00 yr_rnd some_col, cont(some_col)

    INTERACCIONES

    regress api00 some_col if yr_rnd==0

    predict yhat0 if yr_rnd==0

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

    msymbol(i o) sort

    regress api00 some_col if yr_rnd==1

    predict yhat1 if yr_rnd==1

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

    msymbol(i o) sort

    5.3. Pruebas de Hipotesis

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

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

    use GPA.dta, clear

    desc

    sum

    reg colgpa sat verbmath tothrs hsperc hsize, robust

    reg colgpa sat verbmath tothrs hsperc hsize hsizesq, robust

    display _b[hsize] / (2*_b[hsizesq])

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

    display (_b[sat] - .0025) / _se[sat]

    display ttail(4130, 15.52)

    display ttail(4130, 1.52)

    display ttail(413, 1.52)

    display ttail(41, 1.52)

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 5.3. Pruebas de Hipotesis 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 observacionesde la muestra?

    reg colgpa sat verbmath tothrs hsperc hsize hsizesq ///

    if _n

  • 74 5. Variables Categoricas

    use Salario2.dta, clear

    describe

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

    summ

    summ IQ, detail

    hist IQ

    hist wage

    summ wage, detail

    sktest IQ wage

    REGRESIONES ROBUSTAS PARA SALARIOS

    reg wage educ exper IQ, robust

    summ educ exper

    corr IQ educ exper

    predict yhat, xb

    summ yhat wage

    Introduciendo una variable mas: MARRIED

    reg wage educ exper IQ married, robust

    EFECTOS INTERACTIVOS ENTRE VARIABLES CONTINUAS

    generate edex=educ*exper

    generate edumarr= educ*married

    summ educ exper marr edex edumarr

    Modelo Base:

    reg wage educ exper IQ married , robust

    Modelo con EDEX:

    reg wage educ exper IQ married edex, robust

    Modelo con EDUC*MARRIED y EDUC*EXPER:

    reg wage educ exper IQ married edex edumarr, robust

    corr educ exper edex

    Modelo sin interaccion EDEX y dejando EDUMARR:

    reg wage educ exper IQ married edumarr, robust

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

    reg wage educ exper IQ, robust

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 5.4. Creacion de Variables Dummys 75

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

    lincom 10*educ + 5*exper

    reg wage educ exper IQ married , robust

    lincom 10*educ + 5*exper + married

    HACIENDO PRUEBAS DE HIPOTESIS PARA UNA O MAS VARIABLES:

    Pruebas F

    test educ

    test educ = 70

    test educ = 80

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

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

    test feduc meduc

    test meduc

    test tenure meduc

    test tenure meduc black

    5.4. Creacion de Variables Dummys

    Existen tres formas de crear variables dicotomicas:

    Si partimos de una variable cualitativa de multiples categoras, entoncescon la especificacion XI sera posible la creacion de variables dicotomicas,reestructurando la variable categorica.

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

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

    5.5. Bucles y Programas

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

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 76 5. Variables Categoricas

    input famid inc1-inc12

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

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

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

    end

    Ahora vamos a visualizarlo con un listado.

    list famid inc1-inc12, clean

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

    generate taxinc1 = inc1 * .10

    generate taxinc2 = inc2 * .10

    generate taxinc3 = inc3 * .10

    generate taxinc4 = inc4 * .10

    generate taxinc5 = inc5 * .10

    generate taxinc6 = inc6 * .10

    generate taxinc7 = inc7 * .10

    generate taxinc8 = inc8 * .10

    generate taxinc9 = inc9 * .10

    generate taxinc10= inc10 * .10

    generate taxinc11= inc11 * .10

    generate taxinc12= inc12 * .10

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

    foreach var of varlist inc1-inc12 {

    generate 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 mediantecomillas, tales como var .

    Que sucede si usamos un contador numerico?

    generate incqtr1 = inc1 + inc2 + inc3

    generate incqtr2 = inc4 + inc5 + inc6

    generate incqtr3 = inc7 + inc8 + inc9

    generate incqtr4 = inc10+ inc11+ inc12

    list incqtr1 - incqtr4

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 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 talesque, indiquen 1 cuando el ingreso del mes actual sea menor que el ingresodel mes anterior, y 0 cuando el ingreso del mes actual sea mayor o igual queel ingreso del mes anterior.

    foreach curmon of numlist 2/12 {

    local lastmon = curmon - 1

    generate 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 util para programar, el comando WHI-LE:

    Ejemplo:

    Stata BasicoAplicado a la Investigacion Economica

    www.giddea.com

    [email protected]

  • 78 5. Variables Categoricas

    local i=1

    while i

  • 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

    ndice generalIntroduccin al StataIniciando StataTipos de Archivos en StataEstructura Bsica de StataPrincipales Comandos de Trabajo y AnlisisLas BitcorasLa Base de DatosAppend, Merge, Collapse

    Manejo de DatosCargando los Datos en StataEtiquetasComando IFComando SUMMARIZEComando SPLITCreando VariablesKEEP y DROPReestructurando los DatosMuestreos ProbabilsticosGeneracin de Nmeros AleatoriosPercentiles, Cuartiles, Deciles

    Anlisis Grafico con StataVisualizando Algunos ComandosTWOWAYTWOWAY y SCATTERPLOTCombinando TWOWAY Y SCATTERPLOTFiltro de GrficosUnin de Grficos

    Opciones para Edicin de GrficosTrabajando con Esquemas y Grficos AdicionalesEsquemasGrficos de Barras VerticalesGrficos de Barras HorizontalesGrficos de CajasGrficos de Pastel

    Anlisis de Regresin LinealRegresin LinealDiagnostico de los ResultadosEfecto Influencia

    Normalidad del ResiduoHomocedasticidad del ResiduoMulticolinealidadLinealidadEspecificacin del modeloIndependencia

    Variables CategricasEstimacin con Variables CategricasEl Comando XiPruebas de HiptesisCreacin de Variables DummysBucles y Programas

    Bibliografa