ECONOMETRÍA III ULPGC 2002-2003 PRÁCTICA 1 INTRODUCIENDO STATA
QUÉ ES STATA (Versión 7). Corre en Windows Paquete estadísticoeconométrico con posibilidad de programación Ayuda on-line (ojo piratería!!)
Preparados: Las ventanas Stata (4) Aquí lista stata las variables en memoria (3) Aquí se conservan los últimos comandos ejecutados. Usar para copiar en (2) y correr de nuevo (2) Aquí se pueden escribir y correr interactivamente los comandos (1) Aquí salen los resultados
Preparados: Las (5) Ventana ventanas del Stata editor de datos, para ver y cambiar datos
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
Ficheros Datos: extensión.dta (formato Stata) Comandos: extensión.do (puede editarse con cualquier procesador o en la ventana de stata) Resultados: para que escriba los resultados en fichero hay que abrirlo, conviene usar la extensión.log (ascii) Los programas escritos en stata y ya compilados que pueden correrse con solo escribir su nombre tienen extensión.ado
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
Leyendo 1 Fichero de datos en ascii delimitado por tabulaciones (o comas), extensión.dat. Puede escribirse con SPSS, excel,. Para leer: insheet using nombre fichero Nota: 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
Un par de aclaraciones 1 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
Caso 1: salarios en una empresa 1 (n=474+1 inventado) 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
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: gen (para crear una variable nueva) replace (para reemplazar algunos valores de una variable) tabu (para hacer tablas de frecuencias simples o dobles) label (para etiquetar las variables y valores) destring (para convertir una variable alfanumérica en numérica) format (para cambiar el formato de una variable) Nota: de momento, corremos en modo interactivo Entrar en Stata 1
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) 1
Caso 1(cont.) MANIPULANDO DATOS. APRENDIENDO A LISTAR DATOS Y A ESCRIBIR CONDICIONES (IF) if 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: list edad salario if sex==1 & educa>=14 & catlab!=3 if se puede usar en casi todos los comandos (ejemplos: list, replace, sum, tabu, regress, ) 1
Grabar el fichero de datos en formato stata 1 save using nombre.dta 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 nombre.dta Ejercicio: Guarden el fichero de datos con el nombre practica1.dta
Algunas operaciones estadísticas sencillas en Stata: summarize (sum)) Hace la descripción de una o varias variables: Si no se especifican variables, describe todas Si 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 2
Otros comandos para describir 2 tabsum for making tables of means. See help table and tabstat for making tables of means and other statistics. See help ci for calculating the standard error and confidence intervals of the mean. See help stsum for calculating summary statistics with survival-time data. See help xtsum 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: tabu sex catlab, sum(salario) variables:
Tablas de frecuencias y de contingencia: tabu tabu hace tablas de frecuencia de una o dos variables categóricas Ejemplos: tabu catlab tabu catlab sex tabu catlab sex, ro tabu catlab sex, ro co chi2 Ejercicio: Haz la tabla cruzada entre minoria y sexo, prueba exacta de Fisher (busca en ayuda) 2
Histogramas y otros gráficos: graph (ver help graph) Ejemplo de histograma: graph salario, histogram bin(10) freq normal Ejercicio: Haz el histograma del salario inicial para las mujeres y para los hombres Ejemplo de scatterplot: graph salario salini Ejercicio: Grafica salario inicial (ordenadas) frente a años de educación (abscisas) 2
Mas ejemplos de graph 2 Prueba esto: graph salario salini if salario>15000 graph salario salini edad, matrix graph salario salini, oneway box graph salario salini, box
Correlaciones entre variables: correlate 2 Ejemplos: Correlación entre salario inicial y actual Correlación entre salario inicial y final por categorías laborales Solución ejemplos: 1. Correla salario salini 2. sort catlab by catlab: correla salario salini
COMBINANDO FICHEROS DE DATOS 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 Nota: otros comandos para combinar ficheros de datos son joinby, merge, append 3
MANIPULANDO FICHEROS DE DATOS collapse 3 SOLUCIÓN: 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. Abrir practica1_2.dta dta.. Antes hacer clear para borrar el fichero de datos en memoria y ampliar la memoria a 100megas clear set mem 10m use practica1_2 2. Dentro de cada familia, creamos un identificador de Vamos cada a hacer hermano este ejercicio con un (de 1 al numero de hermanos), ordenando previamente el fichero fichero do de por familia, edad y sexo comandos, llamado sort family age mujer icaso2.do by family: : gen i=[_n] 3. Creamos un fichero de familias con collapse: collapse (mean) age (sum) smoke,, by (family( family) 4. Salvamos el fichero de familias con en nombre fami.dta dta: Save fami.dta
MANIPULANDO FICHEROS DE DATOS joinby SOLUCIÓN: 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. En el fichero fami,, cambiar el nombre a age y smoke para evitar confusiones rename age hage rename smoke hsmoke (Estas variables contienen la media para cada familia) Grabar el fichero fami (save fami.dta dta, replace) 2. Abrir practica1_2.dta 2. Asegurarse que está ordenado por familias: sort family 3. Unirle el fichero fami.dta dta,, usando joinby: joinby family using fami 4. Guardar practica1_2 3
La regresión en Stata: estimación y contrastes Stata tiene comandos para virtualmente cualquier tipo de modelo econométrico basado en regresión Search regress La sintaxis de esos comandos es similar. Como ilustración tomamos la regresión lineal (comando regress) 4
4 Ejemplo de regress Sintaxis: haz help regress 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) regress lq lp hsmoke age mujer ys ys2 working hispanic if smoke==1
4 Ejemplo de regress (cont.) Como introducir dummies e interacciones 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: regress lq lp hsmoke age mujer ys ys2 working hispanic i.wave i.wave wave*i. *i.hispanic if smoke==1
Ejemplo de regress (cont.) 4 Diagnóstico del modelo Hacer help regdiag; help postest; 1. Predecimos y guardamos las predicciones como lqest: Predict lqestg if e(sample sample) 2. hettest hace el contraste de heterocedasticidad de Breusch y Pagan 3. Si hay heterocedasticidad, podemos hacer estimación robusta: regress lq lp age mujer ys ys2 working hispanic if smoke==1, robust Si 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: regress lq lp age mujer ys ys2 working hispanic if smoke==1, robust cluster(family family) 4. ovtest hace el contraste de especificación de Ramsey 5. Se pueden hacer gráficos parciales avplots (..)
4 La regresión en stata permite: Contrastes de hipótesis lineales (test( test) y no lineales (testnl( testnl) Diseñar contrastes de ratios de verosimilitudes para comparar modelos (lrtest( lrtest) Estimación restringida Estimación ponderada. Y mucho mas
4 Ejercicio de regress Con fichero de datos del caso1 (practica1_1.dta): hacer un modelo de regresión que explique el salario actual y contrastar ese modelo