29
ECONOMETRÍA III ULPGC 2002-2003 PRÁCTICA 1 INTRODUCIENDO STATA

ECONOMETRÍA III ULPGC 2002-2003 PRÁCTICA 1 …...(para etiquetar las variables y valores) destring (para convertir una variable alfanumérica en numérica) ... 1. describir el salario

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

ECONOMETRÍA IIIULPGC 2002-2003

PRÁCTICA 1INTRODUCIENDO STATA

QUÉ ES STATA

(Versión 7). •Corre en Windows•Paquete estadístico-econométrico• con posibilidad de programación•Ayuda on-line (ojo piratería!!)EC

ON

OM

ETR

ÍA II

I (U

LPG

C, 2

002-

3) P

CTI

CA

1.

Intr

oduc

ción

a S

tata

Preparados: Las ventanas Stata

(2) Aquí se pueden escribir y correr

interactivamente los comandos

(1) Aquí salen los

resultados

(3) Aquí se conservan los últimos comandos ejecutados. Usar para copiar en (2) y correr

de nuevo(4) Aquí lista statalas variables en

memoria

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta

Preparados: Las ventanas Stata(5) Ventana del editor de datos,

para ver y cambiar datos

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta

Cómo corre?

• Interactivamente, escribiendo el comando en la ventana (2)

• Modo batch, editando un fichero de comandos (.do) y corriéndolo, entero o parcialmente

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta

Ficheros

•• DatosDatos: extensión ..dtadta (formato Stata)•• ComandosComandos: extensión .do.do (puede editarse con

cualquier procesador o en la ventana de stata)•• ResultadosResultados: para que escriba los resultados

en fichero hay que abrirlo, conviene usar la extensión .log.log (ascii)

Los programas escritos en stata y ya compilados que pueden correrse con solo escribir su nombre tienen extensión ..adoado

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta

Hoy aprenderemos a:

• 1. Leer, manipular y guardar datos• 2. Comandos para algunas operaciones

estadísticas (descriptivos, tablas de frecuencias y contingencia, ANOVA,….)

• 3. Combinar ficheros (unir o desagregar ficheros de datos)

• 4. La regresión en Stata: estimación y contrastes

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta

Leyendo

• Fichero de datos en datos en asciiascii delimitado por tabulaciones (o comas), extensión .extensión .datdat

• Puede escribirse con SPSS, excel, ….• Para leer:

– insheet using nombre ficheroNota: crear una carpeta en c: para datos y ficheros

de comandos (datostata). Al entrar en la sesión, entrar en esa carpeta:

cd ..cd ..cd datostata

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta1

Un par de aclaraciones

• Si el fichero de datos es grande, antes de leerlo conviene reservar suficiente memoria. Ejemplo, para reservar 10 megas:– set mem 10m

Stata es sensible a las mayúsculas (no es lo mismo SET que set). Los comandos van en minúsculas

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta1

Caso 1: salarios en una empresa(n=474+1 inventado)

1

• 1. Leer fichero practica1_1.sav (en SPSS). Echar un vistazo al contenido. Datos missing; sexo: string

• 2. Escribirlo en ascii como practica1_1.dat, delimitado por tabuladores, en la carpeta datostata

• 3. Entrar en Stata. Cambiar a la carpeta datostata. Leerlo. Mirar su contenido en la ventana del editor

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta

Caso 1(cont.)Manejando missing y cambiando tipos de

variables

• 4.Pedimos (interactivamente) una descripción de las variables:– sum sexo educ catlab salario (…)– Tenemos dos problemas:

1º Las variables que tienen algun missing no las summariza(pone numero observaciones cero)

2º Sexo es alfanumérica. Queremos convertirla en numérica– Vamos a arreglarlos, aprendiendo de paso a usar los

comandos:gengen (para crear una variable nueva)replacereplace (para reemplazar algunos valores de una variable)tabutabu (para hacer tablas de frecuencias simples o dobles)labellabel (para etiquetar las variables y valores)destringdestring (para convertir una variable alfanumérica en numérica) formatformat (para cambiar el formato de una variable)

Nota: de momento, corremos en modo interactivo…… Entrar en Stata

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta1

Caso 1(cont.)Ejercicio 1.

• Hacer la tabla de frecuencias de la categoría laboral (catlab)

• Etiquetar esta variable (catlab) y sus valores• Cambiar los valores de catlab, reemplazando 1

por 10, 2 por 20, y declarando missing el 3. Para no cargarse la variable catlab original, hagan los cambios en una copia llamada borro (gen borro=catlab).

• Comprueben que borro tiene la información correcta, y bórrenla del fichero en memoria (drop borro)

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta1

Caso 1(cont.)MANIPULANDO DATOS. APRENDIENDO A LISTAR

DATOS Y A ESCRIBIR CONDICIONES (IF)

•• ifif define una o mas condiciones– En las asignaciones, para escribir “igual a” hay que poner ==– AND se indica mediante &– OR se indica mediante |– No se indica mediante !

Ejemplo: pedimos que liste (list) los valores de la edad y el salario para las mujeres (sex =1) que hayan estudiado al menos 14 años y no sean directivos (catlab distinto de 3):– Solución:

• listlist edad salario edad salario ifif sex==1 & educa>=14 & sex==1 & educa>=14 & catlabcatlab!=3!=3

ifif se puede usar en casi todos los comandos (ejemplos: list, replace, sum, tabu, regress,……)

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta1

Grabar el fichero de datos en formato stata

•• savesave usingusing nombre.nombre.dtadta• Puede hacerse desde los menus (fichero

guardar o guardar como) • En una sesión posterior, se puede abrir con el

menu (file open) o con el comando use use nombre.nombre.dtadta

• Ejercicio: Guarden el fichero de datos con el nombre practica1.dta

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta1

• Hace la descripción de una o varias variables:

Si no se especifican variables, describe todasSi escriben detail da todos los estadísticos

summarize [varlist] [weight] [if exp] [in range] [, [detail|meanonly] format ]by ... : may be used with summarize; see help by

Ejemplo:

1. describir el salario inicial y el salario actual de las mujeres y de los hombres por separado

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

taAlgunas operaciones estadísticas

sencillas en Stata: summarizesummarize ((sumsum)2

)

tabsumtabsum for making tables of means.

See help table and tabstattabstat for making tables of means and other statistics.

See help cici for calculating the standard error and confidence intervals of the mean.

See help stsumstsum for calculating summary statistics with survival-time data.

See help xtsumxtsum for calculating summary statistics with cross-sectional time-series data.

Ejemplo: haz la tabla de medias de salario por categorías laborales diferenciando hombres y mujeres:tabutabu sex sex catlabcatlab, , sumsum(salario)(salario)EC

ON

OM

ETR

ÍA II

I (U

LPG

C, 2

002-

3) P

CTI

CA

1.

Intr

oduc

ción

a S

tata

Otros comandos para describir variables:

2

Tablas de frecuencias y de contingencia: tabu

•• tabutabu hace tablas de frecuencia de una o dos variables categóricas– Ejemplos:

•• tabutabu catlab catlab •• tabutabu catlabcatlab sexsex•• tabutabu catlabcatlab sex, sex, ro ro •• tabutabu catlabcatlab sex, sex, roro coco chi2chi2

Ejercicio: Haz la tabla cruzada entre minoriay sexo, prueba exacta de Fisher (busca en ayuda)

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta2

Histogramas y otros gráficos: graph(ver help graph)

– Ejemplo de histograma:•• graphgraph salario, salario, histogramhistogram binbin(10) (10) freqfreq normalnormal

Ejercicio: Haz el histograma del salario inicial para las mujeres y para los hombres

– Ejemplo de scatterplot:•• graphgraph salario salario salinisalini

Ejercicio: Grafica salario inicial (ordenadas) frente a años de educación (abscisas)

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta2

Mas ejemplos de graph

– Prueba esto:•• graphgraph salario salario salinisalini ifif salario>15000salario>15000•• graphgraph salario salario salinisalini edad, edad, matrixmatrix•• graphgraph salario salario salinisalini , , onewayoneway boxbox•• graphgraph salario salario salinisalini , box, box

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta2

Correlaciones entre variables: correlate2

Ejemplos:Correlación entre salario inicial y actualCorrelación entre salario inicial y final por categorías laborales

Solución ejemplos:1. 1. CorrelaCorrela salario salario salinisalini2. 2. sortsort catlabcatlabby by catlabcatlab: : correlacorrela salario salario salinisalini

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta

COMBINANDO FICHEROS DE DATOS collapsecollapse

Ejemplo caso 2: fichero practica1_2.dta• Datos de n=979 jóvenes USA 18-24 años

que tienen 5 o mas hermanos, CPS 1992-99• La variable family identifica la familia,

nherman es el numero de hermanos, smoke es la dicotomica =1 si fuma• Objetivo: crear un fichero de familias,

que contenga la edad media de los hermanos y el numero de fumadores

Nota: otros comandos para combinar ficheros de datos son joinbyjoinby, , mergemerge, , appendappend

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta3

MANIPULANDO FICHEROS DE DATOS collapse

3

collapse– Ejemplo caso 2: fichero practica1_2.dta

• Datos de n=979 jóvenes USA 18-24 años que tienen 5 o mas hermanos, CPS 1992-99• La variable family identifica la familia, nherman es el numero de hermanos, smoke es la dicotomica =1 si fuma• Objetivo: crear un fichero de familias, que contenga la edad media de los hermanos y el numero de fumadores en cada

familia

1.1. Abrir Abrir practica1_2practica1_2..dtadta. Antes hacer . Antes hacer clearclear para borrar el fichero de para borrar el fichero de datos en memoria y ampliar la memoria a 100megasdatos en memoria y ampliar la memoria a 100megas

clearclearsetset memmem 10m10muse use practica1_2practica1_2

2. Dentro de cada familia, creamos un identificador de cada herm2. Dentro de cada familia, creamos un identificador de cada hermano ano (de 1 al numero de hermanos), ordenando previamente el fichero (de 1 al numero de hermanos), ordenando previamente el fichero por familia, edad y sexopor familia, edad y sexo

sortsort familyfamily ageage mujermujerby by familyfamily: gen i=[_n]: gen i=[_n]

3. Creamos un fichero de familias con 3. Creamos un fichero de familias con collapsecollapse::collapsecollapse (mean) (mean) ageage ((sumsum) ) smokesmoke, by (, by (familyfamily))

4. Salvamos el fichero de familias con en nombre 4. Salvamos el fichero de familias con en nombre famifami..dtadta::SaveSave famifami..dtadta

SO

LUC

IÓN

: Vamos a hacer este ejercicio con un

fichero do de comandos, llamado

icaso2.do

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta

MANIPULANDO FICHEROS DE DATOS joinby

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta3

joinby– Ejemplo caso 2 (jóvenes y tabaco) , continuación

• Objetivo: añadir al fichero de datos practica1_2.dta las variables edad media de los hermanos y número de hermanos que fuman (fichero fami.dta)

1.1. En el fichero En el fichero famifami, cambiar el nombre a , cambiar el nombre a ageage y y smokesmoke para para evitar confusionesevitar confusiones

renamerename ageage hagehagerenamerename smokesmoke hsmokehsmoke(Estas variables contienen la media para cada (Estas variables contienen la media para cada familia)familia)Grabar el fichero Grabar el fichero famifami ((savesave famifami..dtadta, , replacereplace))

2.2. Abrir Abrir practica1_2practica1_2..dtadta2. Asegurarse que está ordenado por familias:2. Asegurarse que está ordenado por familias:

sortsort familyfamily3. Unirle el fichero 3. Unirle el fichero famifami..dtadta, usando , usando joinbyjoinby::

joinbyjoinby familyfamily usingusing famifami4. Guardar 4. Guardar practica1_2practica1_2

SO

LUC

IÓN

:

La regresión en Stata: estimación y contrastes

• Stata tiene comandos para virtualmente cualquier tipo de modelo econométrico basado en regresión

SearchSearch regressregressLa sintaxis de esos comandos es similar.

Como ilustración tomamos la regresión lineal (comando regressregress)

4EC

ON

OM

ETR

ÍA II

I (U

LPG

C, 2

002-

3) P

CTI

CA

1.

Intr

oduc

ción

a S

tata

Ejemplo de regressregress

Ejemplo: con caso 2. Modelo de regresión que explique el log de la cantidad de cigarrillos fumados diariamente (lq) en función del log del precio (lp),del número de hermanos que fuman (hsmoke), la edad (age), sexo (mujer), y otras variables de control (ys= años que lleva fumando; ys2 (años fumando al cuadrado), working, hispanic….). Para la submuestra de fumadores (smoke=1)regressregress lqlq lplp hsmokehsmoke ageage mujer mujer ysys ys2 ys2 workingworking hispanichispanic ifif

smokesmoke==1==1

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta4

Sintaxis: haz help regress

Ejemplo de regressregress (cont.)

Ahora queremos añadir en la regresión el efecto tiempo, diferenciando las tres oleadas de la encuesta (wave=1 para 1992/93, =2 1995/96; =3 1998/99) y creemos que tal vez hay interacción entre dicha oleada y hispanic (los hispanos han cambiado de habitos en esos años):

xi: xi: regressregress lqlq lplp hsmokehsmoke ageage mujer mujer ysys ys2 ys2 workingworkinghispanichispanic i.i.wavewave i.i.wavewave*i.*i.hispanichispanic ifif smokesmoke==1==1

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta4

Como introducir dummies e interacciones

Ejemplo de regressregress (cont.) Diagnóstico del modelo

Hacer helphelp regdiagregdiag; ; helphelp postestpostest; ; 1. Predecimos y guardamos las predicciones como lqest:

PredictPredict lqestglqestg ifif e(e(samplesample))2. 2. hettesthettest hace el contraste de heterocedasticidad de Breusch y

Pagan3. Si hay heterocedasticidad, podemos hacer estimación robusta:

regressregress lqlq lplp ageage mujer mujer ysys ys2 ys2 workingworking hispanichispanic ififsmokesmoke==1, ==1, robustrobustSi sospechamos que la heterocedasticidad es por grupos, podemos hacer la corrección suponiendo que los individuos del mismo grupo tienen errores correlacionados. Si el grupo es la familia:regressregress lqlq lplp ageage mujer mujer ysys ys2 ys2 workingworking hispanichispanic ififsmokesmoke==1, ==1, robustrobust cluster(cluster(familyfamily))

4. ovtestovtest hace el contraste de especificación de Ramsey5. 5. Se pueden hacer gráficos parciales avplotsavplots

(……..)(……..)

4EC

ON

OM

ETR

ÍA II

I (U

LPG

C, 2

002-

3) P

CTI

CA

1.

Intr

oduc

ción

a S

tata

La regresión en La regresión en statastata permite:permite:Contrastes de hipótesis lineales (Contrastes de hipótesis lineales (testtest) )

y no lineales (y no lineales (testnltestnl))Diseñar contrastes de ratios de Diseñar contrastes de ratios de

verosimilitudes para comparar verosimilitudes para comparar modelos (modelos (lrtestlrtest))

Estimación restringidaEstimación restringidaEstimación ponderada Estimación ponderada

…. Y mucho mas…. Y mucho mas

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta4

Ejercicio de regressregress• Con fichero de datos del caso1

(practica1_1.dta): hacer un modelo de regresión que explique el salario actual y contrastar ese modelo

ECO

NO

MET

RÍA

III (

ULP

GC

, 200

2-3)

PR

ÁC

TIC

A 1

. In

trod

ucci

ón a

Sta

ta4