Apreciad@ participante, Es grato dirigirnos a Usted para saludarle y a la vez darle la cordial bienvenida al Instituto de Informática de la Pontificia Universidad Católica del Perú – InfoPUC. En esta oportunidad usted se integra a nuestra familia del InfoPUC por medio del Curso de Extensión Stata 11 para Economistas. Durante su permanencia en el InfoPUC le pedimos el mayor compromiso para este curso de extensión, el cual ha sido diseñado con un enfoque eminentemente práctico, con casos reales que complementan el aprendizaje de las herramientas de computación y enfocados al quehacer del profesional que las empresas requieren. Sin más por el momento nos despedimos, confiando en que lo aprendido en este curso, y en los futuros cursos que desee llevar con nosotros, le serán de gran utilidad en su desempeño profesional. Atentamente, Francisco Nájar Vásquez Director del Instituto de Informática STATA 11 para economistas INDICE 1. Introducción al STATA ............................................................................................. 7 1.1. ¿Qué puedo hacer con STATA 11.0? ............................................................... 7 1.2. Presentaciones de STATA ............................................................................. 13 1.3. Entorno de trabajo .......................................................................................... 13 1.4. Recursos del STATA ...................................................................................... 19 1.5. Ayuda en STATA: Comandos Help, Search y Findit ....................................... 20 2. Manejo de datos .................................................................................................... 23 2.1. Creando una nueva base de datos ................................................................. 23 a. Administración de la memoria ................................................................... 23 b. Manejo de directorios................................................................................ 24 c. Iniciar una sesión de STATA ..................................................................... 25 d. Abrir y guardar una base de datos ............................................................ 26 e. Principales comandos: .............................................................................. 26 f. Ejemplo: .................................................................................................... 27 g. Estructura de comandos ........................................................................... 30 2.2. Subconjuntos de datos: comandos ―if‖ y ―in‖ ................................................... 31 2.3. Generando y reemplazando variables ............................................................ 33 2.4. Uso de funciones ............................................................................................ 36 2.5. De numérico a String y viceversa ................................................................... 39 2.6. Ejercicio: Mi primer Do File ............................................................................. 43 2.7. Ejercicio: Mi primer Log File ........................................................................... 43 3. Elaboración de Gráficos .......................................................................................... 45 3.1. Características de la base de datos: ............................................................... 48 3.2. Ejercicios mediantes do files .......................................................................... 49 3.3. Histogramas y Kernels ................................................................................... 53 3.4. Do File para la elaboración de Histogramas y Kernels ................................... 56 3.5. Box plots ........................................................................................................ 58 3.6. Comando Graph: Scatter - Twoway ................................................................ 60 4. Modelos lineales ..................................................................................................... 69 4.1. Mínimos cuadrados ordinarios ........................................................................ 69 4.2. Regresiones robustas..................................................................................... 77 4.2.1. Regresión por mínima desviación absoluta ...................................... 79 Pontificia Universidad Católica del Perú 5 INDICE 4.2.2. Regresión robusta............................................................................ 80 5. Variable dependiente limitada................................................................................ 85 5.1. Dependiente binaria ....................................................................................... 85 5.2. Variable dependiente politómica ..................................................................... 98 5.2.1. Logit multinomial .............................................................................. 98 5.2.2. Probit o Logit ordenado .................................................................. 103 6. Datos de panel .................................................................................................... 107 6.1. Controlando la heterogeneidad dentro de un panel ...................................... 107 6.2. Panel Dinámico ............................................................................................ 123 7. Introducción a la programación ............................................................................ 137 7.1. Macros local y global .................................................................................... 137 7.2. Procedimientos sistemáticos: forvalues y foreach......................................... 138 7.3. Escalares y matrices .................................................................................... 140 7.3.1. Escalares ....................................................................................... 140 7.4. Matrices ........................................................................................................ 141 7.5. Modulo MATA ............................................................................................... 142 7.6. Comandos return y ereturn ........................................................................... 143 8. Análisis de datos con diseño muestral complejo .................................................. 145 8.1. Especificación del Diseño Muestral: SVYSET .............................................. 146 6 Instituto de Informática STATA 11 para economistas 1. Introducción al STATA 1.1. ¿Qué puedo hacer con STATA 11.0? Stata es un software de análisis estadístico y econométrico, el cual sirve de herramienta para el análisis de información en diversas disciplinas tales como las ciencias sociales, medicina y otras. Stata es un paquete de tratamiento de datos de apariencia similar a otro software estadísticos, en el sentido de ejecutar de manera secuencial comandos digitados por el usuario dentro de una sesión. Inicialmente se creó con la finalidad de analizar los datos de sección cruzada. Sin embargo, en los últimos años ha alcanzado notoriedad y potencialidad abarcando campos de la micro y macro econometría. A través del foro de discusión - Statalist y la permanente difusión de nuevos comandos que incorporan complejas técnicas estadísticas y econométricas ha cautivado a muchos usuarios por su versatilidad y constante actualización. Entre las potencialidades del stata se destaca la facilidad para manipular y describir con grandes bases de datos, donde la principal restricción es el tamaño de la memoria de la computadora. Posee diversas aplicaciones predefinidas: paneles, logit, probit, etc. Asimismo, posee una excelente herramientas para realizar gráficos. En la versión 11 se destacan las siguientes funcionalidades: Imputación Múltiple (MI) Proporciona una serie de métodos que permiten realizar análisis de datos incompletos, datos que faltan algunos valores, brindando funcionalidades para las etapas de imputación y estimación. Entre ellas están: o Imputación univariada o Imputación multivariada Pontificia Universidad Católica del Perú 7 Introducción al STATA o Panel de control para MI.- Permite unificar las funcionalidades del comando mi y guía al usuario desde que inicia hasta el término del análisis, es decir desde la etapa de examinar los valores faltantes hasta realiza estimaciones e inferencia sobre imputaciones múltiples Examine.- Se utiliza para chequear los patrones de valores incompletos y determinar el método de imputación adecuado Setup.- Para establecer las características de los valores que se desea imputar. Si los datos ya han sido imputados se debe obviar esta etapa Impute.- Se utiliza para crear imputaciones. Se puede imputar una o más variables simultáneamente mediante la selección o combinación de los métodos regresión, ajuste de medias predictivas, regresiones logística , ordinal logística y multinomial logística y MVN Manage.- Para realizar el manejo de los datos Estimate.- Para ajustar el modelo y combinar los resultados Test.- Para realizar test de hipótesis Series de Tiempo multivariadas Representa o estima un amplio rango de procesos de series de tiempo multivariable. Stata 11 a diferencia de otros programas no necesita que el usuario especifique si el modelo es estacional o no, sino es automático 8 Instituto de Informática STATA 11 para economistas Entre ellos están: o Modelos de espacio de estados o Modelos de factor dinámico o Modelos GARCH multivariados donde los usuarios pueden analiza las interacciones de varias series a la vez Datos de panel y modelos mixtos o Estructuras de error en covarianzas o Test de raíces unitarias o Errores estándar y BLUPs Nueva interfaz o Manejador de variables o Vista activa de los datos o Filtros de datos y de variables o Sintaxis coloreada o Plegado de código o Marcadores Pontificia Universidad Católica del Perú 9 Introducción al STATA Método de los momentos generalizado (GMM) o Modelos lineares y no lineares o Estimadores en una etapa , en dos etapas e iterativos o Datos de sección cruzada, series de tiempo y datos de panel o Variables instrumentales para datos de panel Documentación PDF.- Donde los manuales están integrados con el sistema de ayuda de Stata o Distribuida con cada copia de Stata o Contiene todos los manuales o Integrada con los archivos de ayuda Análisis marginales o Estimación de medias marginales o Márgenes predictivos o Efectos marginales promedio Fuentes en Gráficos o Itálica y negrita o Letras griegas o Símbolos matemáticos o Subíndices y superíndices o Fuentes múltiples Regresión para riesgos en competencia.- Permite manejar modelos de duración o supervivencia cuando los individuos se enfrentan más de un tipo de riesgo. o Variables que varían en el tiempo o Gráficos de incidencia acumulativa o Razón de sub riesgo Variables factoriales o Interacciones o Términos polinomiales o Creación automática de indicadores Estadísticas exactas o Regresión logística para variable dependiente binaria o Regresión de Poisson para datos de conteo o Pruebas exactas y pruebas conjuntas 10 Instituto de Informática STATA 11 para economistas o Predicciones con intervalos de confianza exactos Entre otras funciones tiene o Diez generadores de números aleatorios o Más funciones de distribución y de densidad o DIFBETAs, valores de desplazamiento de verosimilitud y estadísticos LMAX para regresión de Cox o Errores normales , GED y t de Student en ARCH o Test multivariados o Derivadas numéricas o Arreglos asociativos o Funciones para códigos Soundex o Programación orientada a objetos Figura Nº 1: Editor de Gráficos en STATA Pontificia Universidad Católica del Perú 11 Introducción al STATA Figura Nº2: Gráficos en Stata “Perú: Niveles del Sistema de Focalización de Hogares, a nivel distrital: Niveles con mayor frecuencia en cada distrito” Figura Nº 3: Reportes de STATA: Análisis estadístico en general 12 Instituto de Informática STATA 11 para economistas 1.2. Presentaciones de STATA Las diferentes presentaciones de STATA se caracterizan según el tipo de usuario y recursos del computador. Las versiones Stata/SE, Intercooled Stata y Small Stata varían según el tamaño de la base de datos de análisis: • Stata/MP – Stata: para computadoras multiprocesador y de núcleo dual • Stata/SE – Stata: para grandes bases de datos • Intercooled Stata: versión estándar de Stata • Small Stata – comúnmente utilizada por estudiantes. 1.3. Entorno de trabajo Pontificia Universidad Católica del Perú 13 Introducción al STATA El despliegue de Stata 11 presenta cuatro ventanas diferentes: Tabla Nº1: Ventanas de STATA Review Aquí aparecen los comandos que han sido utilizados durante la sesión. Solo los resultados más recientes son visibles en esta pantalla. Sirve para utilizar Stata de forma interactiva, es decir se emplea para crear las líneas de comandos y llevar a cabo las aplicaciones disponibles en el software. Nos informa sobre las variables que están disponibles en nuestra base de datos para realizar las diversas aplicaciones Esta nos permite visualizar los resultados (outputs) de los estadísticos que pedimos calcular o de los modelos que solicitamos estimar. Command Variables Results Figura Nº4: Entorno de STATA Review Variables 14 Comandos Resultados Instituto de Informática STATA 11 para economistas El tamaño y posición de las ventanas puede ser configurado según las preferencias del usuario y las cuales se pueden realizar siguiendo los siguientes pasos: 1. Se selecciona el Menú Edit, en la opción Preferences, se elige General Preferences 2. En la pestaña Windowing se configura e ingresa los valores que se desea. También podemos modificar el color de fondo o las fuentes de la ventana Stata Results siguiendo los siguientes pasos: 1. En el Menú Edit se selecciona la opción Preferences 2. Se elige la opción de General Preferences Pontificia Universidad Católica del Perú 15 Introducción al STATA 3. Se elige la pestaña Result Colors y se personaliza el color que se desea en la casilla de Color Scheme Otras ventanas importantes son: Stata Editor permite navegar y modificar los datos como si fuese una hoja de Excel. Stata Viewer permite acceder a información en línea y también a la ayuda del programa. Stata Graphs presenta el último gráfico realizado. Stata Do-file Editor es una ventana separada en Windows y funciona como un editor de textos que permite ejecutar una lista de comandos. Stata Browser permite visualizar los datos, mas no modificarlo Menú de Comandos Desde la versión 8 del Stata, todos los comandos (excepto los de programación) han sido implementados con cuadros de diálogo y se pueden acceder a ellos desde el menú principal, el cual está organizado por tópicos: Figura Nº5: Comandos de STATA 16 Instituto de Informática STATA 11 para economistas Seleccionamos una opción desde los menús Data, Graphics o Statistics y llenamos la caja o cuadro de diálogo correspondiente: Por ejemplo, para acceder al cuadro de diálogo siguiente, utilizamos la ruta que presentamos a continuación, la cual se encuentra en los menús desplegables: PASOS 1. Seleccionar el menú Statistics y elegir la opción Linear models and related 2. Seleccionar la opción de Linear regression Figura Nº6: Análisis Estadístico a través del Menú desplegable Esta forma de trabajar con el programa de manera interactiva es lo que Stata llama GUI (Graphic User Interface), lo cual es una mejora con respecto de las versiones anteriores. Pontificia Universidad Católica del Perú 17 Introducción al STATA Stata permite trabajar de manera interactiva y por medio de comandos (al igual que RATS 6), debido a que cada ventana se encuentra asociada a un comando. La barra de Herramientas Además, Stata presenta una barra de herramientas que permite realizar operaciones usuales como abrir un archivo, grabarlo, imprimir o ver alguna ventana en particular.. Figura Nº7: Barra de Herramientas 18 Instituto de Informática STATA 11 para economistas 1.4. Recursos del STATA Stata permite la actualización constante de sus comandos a través programas escritos en un lenguaje llamado ―ado-file‖. Dichos comandos y las nuevas técnicas son realizados por los propios usuarios y presentados a través de la lista de STATA: StataList, de suscripción gratuita. Desde el siguiente link http://www.stata.com/statalist/, se discuten las últimas técnicas y rutinas programadas en Stata, dicha información mantiene una base de datos desde el año 1997, todos los items posteados en StataList han sido ubicados en el Boston College Statistical Software Components (SSC). Algunos otros recursos en la red: http://www.stata.com/ http://www.stata.com/support/faqs/ http://statcomp.ats.ucla.edu/stata/ Figura Nº8: Portal del STATALIST Pontificia Universidad Católica del Perú 19 Introducción al STATA 1.5. Ayuda en STATA: Comandos Help, Search y Findit Comando help Este es uno de los comandos más importantes de Stata, pues presenta la sintaxis de los comandos así como ejemplos de cómo se usan. Para pedirle ayuda a Stata sobre un comando se escribe en la ventana de comandos help seguido del nombre del comando que queramos conocer. A continuación se muestran los siguientes ejemplos: help if help summarize help regression help tabulate Se observa que las dos primeras letras del nombre del comando están subrayadas, esto indica que en lugar de escribir el comando como summarize se puede escribir su (o cualquier forma intermedia). 20 Instituto de Informática STATA 11 para economistas Se va a utilizar la siguiente sintaxis simplificada command [varlist] [if] [in] [weight] [, options] ] Notemos que todo lo que va entre corchetes es optativo y que en la sintaxis de los comandos primero se ponen las variables, luego el peso, los condicionales (if) preceden a los rangos (in) y les siguen las opciones después de un coma: [varlist] es la lista de variables. [if] Debe estar seguida de una expresión lógica para que los datos que sólo cumplan con la condición puedan ser incluidos en dicho análisis. [in] permite se indica el rango de los datos que se desea analizar. [weight] son los pesos o ponderaciones. [options] Son las opciones de cada comando que se está utilizando Pontificia Universidad Católica del Perú 21 Introducción al STATA 22 Instituto de Informática STATA 11 para economistas 2. Manejo de datos 2.1. Creando una nueva base de datos a. Administración de la memoria Las bases de datos pueden variar de tamaño. Por defecto Stata únicamente lee archivos hasta de 10mb (máximo espacio de los datos) de hasta 5000 variables. Si se intenta leer un archivo más grande sale el siguiente mensaje de error. no room to add more observations r(901); Se puede utilizar el comando memory1 para asignar suficiente memoria para el archivo. Por ejemplo si tenemos un archivo de 18 mb por lo menos debemos de asignar 20 mb (debemos de tomar en cuenta la creación de nuevas variables). set memory 20m (20480k) Se puede hacer permanente esta configuración de la siguiente manera: set memory 20m, permanent Adicionalmente el comando matsize permite establecer el número de variables que pueden ser incluidos en las estimaciones realizadas por Stata. El uso de este comando puede ser útil en ciertas aplicaciones. Por ejemplo, si al estimar una regresión anova, aparece un error ―matsize too small‖. Este problema se puede superar mediante el comando set matsize. La mayor configuración es de 800. set matsize 800 Se puede hacer este cambio permanente de la siguiente manera 1 El comando set memory sólo se puede utilizar en las versiones estándar (Stata/IC), estándar + base de datos extensas (Stata/SE) y en la versión Stata/SE + procesamiento paralelo (Stata/MP). No es aplicable en la versión para estudiantes de pregrado (Small Stata). En la versión Stata/SE el límite de variables independientes es 11,000 (matsize) mientras que el límite de la memoria es igual al del sistema operativo Pontificia Universidad Católica del Perú 23 Manejo de Datos set matsize 800, permanent b. Manejo de directorios Stata se instala por defecto en C:\STATA\ y guarda los datos con los que se trabaje en C:\DATA\ salvo que dicha configuración de archivos haya sido cambiada. Para conocer con que directorio está trabajando Stata se utiliza el comando pwd Con el comando sysdir se pueden visualizar los directorios que STATA emplea para guardar el programa y la información. Con el comando cd podemos cambiar de directorio donde se guardan los datos, aunque estos cambios solo serán validos por la sesión en uso. Para crear un nuevo directorio se emplea el comando mkdir: mkdir sesion21012006 24 Instituto de Informática STATA 11 para economistas c. Iniciar una sesión de STATA STATA permite guardar un registro de los comandos y los resultados. Para crear un archivo de bitácora se usa el comando log using: log using bitácora Por defecto se guarda en el directorio en uso y en formato SMCL (que es el que usa STATA) para presentar los resultados. Para parar momentáneamente el registro de la bitácora: log off Para reanudar el registro de la bitácora: log on Este comando será registrado: tab rep78 Para detener la bitácora: log close Para reanudar una bitácora: log using bitácora, append Para sobrescribir una bitácora: log using bitacora, replace Para ver una bitácora: type bitacora.smcl Si lo único que se desea es guardar los comandos debe emplearse cmdlog. Esta opción es especialmente útil cuando lo que se busca es crear un archivo do. cmdlog using C:\infopuc\cursos\stata\sesion02\comusados Pontificia Universidad Católica del Perú 25 Manejo de Datos d. Abrir y guardar una base de datos La forma como STATA carga los datos a la memoria es similar a la de un procesador de textos o a la de una hoja de cálculo. No se realizan los cambios hasta que el usuario explícitamente los guarda. Cuando se emplea el comando use, los datos se cargan a la memoria del ordenador. Para guardar los datos se debe emplear el comando save. Es recomendable no sobrescribir los datos y trabajar en un directorio diferente del donde se encuentran los datos originales. Los datos pueden ser cargados al programa utilizando el comando use seguido por la ruta en donde se encuentra la base de datos. use C:\infopuc\cursos\stata\sesion02 use "C:\infopuc\cursos\stata\sesion02\auto.dta" save "C:\infopuc\cursos\stata\sesion02\sesion07022005\auto_r.dta“ e. Principales comandos: COMANDO DESCRIPCIÓN help Ayuda de programa stata, para comandos. log Uso de archivos de bitácora use Abrir una base de datos en stata (extensión .dta) edit Ingreso de datos por medio de ventana de Stata Editor codebook Muestra variables con estadísticos descriptivos describe Describe contenido de datos en memoria o sobre el disco 26 Instituto de Informática STATA 11 para economistas save Guarda los datos en disco con extensión *.dta List Lista de valores de variable ... if ... Selecciona observaciones cumpliendo cierta condición para la ejecución del comando drop Borrar variable o dato en memoria keep Borra variables o datos no seleccionados label variable Comando de etiqueta de variables label define Primer paso para etiquetar valores de una variable label values Segundo paso para etiquetar valores de una variable f. Ejemplo: El ejercicio consiste en abrir una base de datos de nombre ―sumaria_2008‖, la cual se encuentra grabada en el siguiente directorio: C:\sesion1 1. En primer lugar se indica la ruta del directorio de trabajo a través del comando cd: cd “c:\Clase 2010“ Pontificia Universidad Católica del Perú 27 Manejo de Datos 2. Una vez que se ha definido la carpeta de trabajo, se invocará la base de datos a través del comando use use sumaria_2008.dta Al abrir la base de datos se cargará la ventana de variables. Para pedir ayuda sobre el comando se deberá invocar la ayuda del Stata: help use Figura Nº: Uso del Comando Use a través del HELP 3. Para conocer el contenido de las base se emplearán los comandos describe y codebook: El comando describe es empleado para describir el contenido de datos en la memoria del computador. Brinda la siguiente información: 28 Instituto de Informática STATA 11 para economistas Contenido de la data: C:\Clase 2010\sumaria_2008.dta Numero de observaciones, variables Fecha y tamaño de la memoria empleada Nombre de la variable, tipo de almacenaje (string o numérica), y la etiqueta de la variable Figura Nº: Comando Describe 4. Otras formas de abrir una base de datos Al digitar en la línea de comandos la siguiente sintaxis use sumaria_2008 in 1/10 Se le indica al STATA la apertura de los 10 primeros registros de la base de datos. Este tipo de órdenes se aplicará cuando se desee realizar una exploración a la base de datos, sin necesidad de cargar la base completa. De la misma manera, es posible aplicar filtros que indiquen que parte de la base de datos será utilizada. En la base sumaria_2008, la variable ―mieperho‖ representa el total de miembros del hogar. Por lo que sí está interesado en conocer solo las características de los hogares con más de 8 miembros, se aplicará el siguiente filtro: use sumaria_2008 if mieperho>8 Pontificia Universidad Católica del Perú 29 Manejo de Datos En muchas ocasiones, sólo serán de nuestro interés alguno de las variables contenidas en la base de datos. Para ello se empleará la siguiente sintaxis: use conglome vivienda hogar ubigeo using sumaria_2008 Donde los comandos empleados son use y using, mientras que las variables de interés son conglomerado, vivienda y hogar. Como en los casos anteriores, la base de datos se denomina ―sumaria_2008‖. Cabe mencionar que no ha sido necesario incorporar el nombre del directorio, debido a que eso fue establecido líneas arriba a través del comando cd. g. Estructura de comandos En función al análisis de datos que se desee realizar, la estructura de la sintaxis cambiará con la finalidad de elaborar reportes según las necesidades del investigador. Por ejemplo, el comando summarize brinda reportes de los principales estadísticos de la base de datos. Dicho comando es empleado de las siguientes maneras: summarize gashog2d if gashog2d>10000 30 Instituto de Informática STATA 11 para economistas bys mes: summarize price if gashog2d>1000 summarize gashog2d,detail Subconjuntos de datos: comandos “if” y “in” 2.2. Stata posee los siguientes conectores lógicos y relacionales, así como los operadores aritméticos: Conectores relacionales < menor que <= menor o igual que == igual a > mayor que >= mayor o igual que != diferente a , también puede usarse ~= () paréntesis para indicar el orden de evaluación Pontificia Universidad Católica del Perú 31 Manejo de Datos Conectores lógicos &y | o Operadores aritméticos + Suma - Resta * Multiplicación / División ^ Potencia + Concatenación de cadenas alfanuméricas Ejemplos sysuse auto, clear Stata posee un conjunto de bases de datos que se encuentran instaladas en la carpeta de instalación. La forma de llamar a dichas bases de datos es a través del comando syuse. En este caso se hará uso de la base ―auto.dta‖, la cual recoge información sobre el precio de automóviles, dicha base está compuesta por 74 observaciones y 12 variables. sum price if price>1000 & price<6000 32 Instituto de Informática STATA 11 para economistas Al ejecutar dicha orden en la ventana de comandos, se solicita al STATA el reporte de los estadísticos de la variable Price, indicando las siguientes restricciones: siempre que el precio sea mayor de 1000 y menor de 6000. A través del símbolo & se ejecutarán ambos filtros. sum price if ~(price>1000&price<6000) sum price if price<=1000|price>=6000 2.3. Generando y reemplazando variables A través del comando generate se crean nuevas variable definida en base a una expresión numérica la cual puede contener otras variables. Por su flexibilidad, este es uno de los comandos más importantes de Stata, ya que se pueden utilizar un gran número de operaciones lógicas, aritméticas y matemáticas. Ejemplo Si queremos generar el logaritmo de la variable educ generate logeduc =ln(educ) Nota: Podemos usar el término abreviado gen en lugar de generate Podemos hacer el mismo proceso pero ahora con la siguiente ruta en la barra de menú Data\Create or change variables\Create new variable Pontificia Universidad Católica del Perú 33 Manejo de Datos Aparece el siguiente cuadro de diálogo se escribe logeduc Luego pulsamos en Create el cual nos va a llevar al siguiente cuadro de diálogo Ahora elegimos la opción Mathematical y vamos a la opción logaritmo natural ln() le damos doble clic y en los paréntesis escribimos educ luego pulsamos el botón OK en ambos cuadros de diálogo y tenemos nuestra nueva variable creada. Ahora generemos un ratio ratio = educ\meduc Repetimos el proceso con la diferencia que en Generate variable escribimos ratio. Luego pulsamos Create y usando la calculadora del costado definimos nuestro ratio doble clic y nuestra nueva variable esta creada: 34 Instituto de Informática STATA 11 para economistas Y finalmente creamos una nueva variable: tt= ((educ+100)\ln(feduc-4)) Volvemos a repetir el proceso y tenemos nuestra nueva variable tt. Nota : Observemos que por defecto las nuevas variables que hemos creado tienen formato float. En el cuadro de diálogo expression builder podemos insertar las variables a transformar haciéndoles click en la ventana de variables. Estas nuevas variables aparecen al final de la Ventana Stata Editor Pontificia Universidad Católica del Perú 35 Manejo de Datos Si la variable ya existe usaremos el comando replace. 2.4. Uso de funciones Otras funciones para usar con generate: generate y=abs(x) valor absoluto|x| gen y=exp(x) exponencial, ex El comando egen Es una extensión del comando generate. Este comando me va a permitir calcular expresiones más complejas, tales como: medias, desviaciones estándar, promedios móviles, variables estandarizadas, etc. Ejemplo Generemos una serie que sea igual al valor máximo de la variable educ egen max_X =max(educ) 36 Instituto de Informática STATA 11 para economistas Pasos 1. En el menú Data, se selecciona la opción de Create or change data 2. Se elige la opción Create new variable (extended) En Generate variable escribimos max_X en Egen function elegimos la opción Maximum ponemos el cursor en el casillero Expresión y le damos un clic en la ventana de variables a educ luego pulsamos OK y tenemos nuestra serie creada con el valor máximo de la variable educ Generemos una serie que sea igual a la mediana de la variable educ egen median_X =median(educ) Pontificia Universidad Católica del Perú 37 Manejo de Datos Ahora para esta nueva serie repetimos el proceso anterior pero ahora elegimos la opción Median. Generemos una serie de precios que sea estandarizada, de media cero y varianza 1 egen std_X =std(educ),mean(0) std(1) Elegimos la opción Standardized values en media digitamos 0 y en desviación 1 OK 38 Instituto de Informática STATA 11 para economistas El comando replace Nos da la posibilidad de modificar alguna de las variables disponibles replace tt= tt\100 2.5. De numérico a String y viceversa a. Conversión de Variables string a Variables numéricas Existen varios métodos para convertir variables string a variables numéricas. Uno de ellos es utilizando el comando destring destring [varlist] , {generate(newvarlist) | replace} Por ejemplo: destring cumple , generate(cumplenum) Otra forma de convertir variables string a variables numéricas es realizando los siguientes pasos: Pontificia Universidad Católica del Perú 39 Manejo de Datos 1. En el menú Data , se debe elegir la opción Create or Change data 2. Seleccionar la opción Other Variable Transformation commands 3. Luego elegir la opción Convert variables from string to numeric 4. Aparece el siguiente cuadro Otra forma de convertir variables de cadena a variables numéricas, siempre y cuando la variable de cadena no contenga números almacenados como string, se puede utilizar el comando encode: La sintaxis de encode es de la siguiente manera encode [varname] [if] [in] , generate(newvar) sysuse auto, clear encode make, generate(num) La primera línea abre el dataset con extensión dta que para este caso es auto. En la segunda línea codifica la variable string ―make‖ a variable numérica llamada ―num‖ 40 Instituto de Informática STATA 11 para economistas Otra forma de convertir una variable string a variable numérica es mediante el comando real(s) Por ejemplo gen n2 = real (str2) Si tenemos una variable Xstr su conversión a variable numérica Xnum puede ser obtenida de la siguiente forma: generate double Cumplenum = real(Cumple) b. De una variable numérica a una variable string Se utiliza los mismos procedimientos pero utilizando el comando tostring. La sintaxis es la siguiente tostring [varlist] , {generate(newvarlist) | replace} Por ejemplo: tostring num , generate(a2) Otra forma de realizar la conversión de variables numéricas a cadenas es realizando los siguientes pasos: 1. En el menú Data se selecciona la opción Create or change data 2. Se elige la opción Other variable-transformation commands 3. Se selecciona la opción de Convert variables from numeric to string Pontificia Universidad Católica del Perú 41 Manejo de Datos 4. Se ingresa los valores que se van a configurar en la ventana Otro método para codificar una variable numérica a string se utiliza el comando decode , el cual se basa en los principios de encode decode varname [if] [in] , generate(newvar) Por ejemplo decode num , generate(a2) Si quisiéramos ver la lista y asignación de los valores de las variables entonces digitamos el siguiente comando: label list num Podemos generar una nueva variable que contenga algún subconjunto de los nombres de las características generadas por alguna variable anterior. Por ejemplo se desea generar una variable string de nombre a2 que contiene como características los caracteres 2 a 4 de la variable make generate str4 a2 = substr( make,2,4) 42 Instituto de Informática STATA 11 para economistas 2.6. Ejercicio: Mi primer Do File sysuse auto,clear generate jose = 0 generate precio2 = price2 list precio2 price Dicotómica que identifique a los carros que cuestan más de 6000 g dico=1 if price>6000 replace dico=0 if price<=6000 Una manera rápida de crear una dicotómica: g dico2=price>6000 sum price if forei==0 sum price if forei==1 by foreign: sum Price 2.7. Ejercicio: Mi primer Log File /* Una forma de pone comentarios*/ clear cd c:\clase1 set mem 100m Pontificia Universidad Católica del Perú 43 Manejo de Datos use sumaria_2008 log using jose,text replace des gashog2d /*abreviatura de describe*/ sum gashog2d log close 44 Instituto de Informática STATA 11 para economistas 3. Elaboración de Gráficos A continuación veremos cómo introducir algunos comandos básicos en Stata 11, incluyendo histogramas, gráficos de caja, ploteos y matrices de ploteos. El propósito de esta sección es entender los fundamentos de los gráficos y dar los elementos para generar y modificar estos. Usaremos el módulo de empleo e ingresos de la 2Nacional de Hogares del año 2007 (módulo 500). La base de datos se denomina enaho01a_2007_500.dta, la cual se encuentra almacenada en la carpeta C:\Clases 2010 del directorio de trabajo. Como en la mayoría de aplicaciones frecuentes esto se puede hacer por dos medios: 1. Usando el menú desplegable siguiendo los siguientes pasos: a. En el menú Graphics, se selecciona la opción twoway graph (scatter, line..) b. Se selecciona el botón de Create 2 Para mayor información de la base de datos, revisar la página web del Instituto Nacional de Estadística e Informática - INEI: www.inei.gob.pe Pontificia Universidad Católica del Perú 45 Elaboración de Gráficos c. Se selecciona las variables las cuales se desea graficar y el tipo de gráfico que se requiere 2. Trabajando con un *.do A continuación se iniciará la sección de gráficos mediante un ejemplo, en el cual se indique las diversas opciones del editor de gráficos del STATA 11 46 Instituto de Informática STATA 11 para economistas Es posible cambiar la apariencia de los gráficos a través del menú del Stata Graph realizando los siguientes pasos: 1. En el Menu Edit seleccionar la opción Apply new scheme tal como lo indica la figura 2. Se selecciona el nuevo esquema Los gráficos se pueden editar directamente y las posibilidades de tipo y presentación de gráficos sólo está limitado por la imaginación. Los usos frecuentes de carácter exploratorio de los datos son a través de las densidades y los diagramas de cajas Pontificia Universidad Católica del Perú 47 Elaboración de Gráficos 3.1. Características de la base de datos: La base de datos es posible descargarla desde la sección Microdatos de la página web del INEI. Una vez dentro de la sección, pulsar la tecla Enter para acceder a las bases de datos que dispone el INEI Una vez dentro del sistema, pulsar la opción Encuesta: Condiciones de Vida y Pobreza – ENAHO, en la casilla año señalar el 2007, y en el periodo indicar el periodo anual (enero – diciembre), se desplegará un conjunto de bases de datos tal como se detalla a continuación. Para seleccionar la base de datos se escoge la fila 5 correspondiente al modulo de empleo e ingresos, y en la columna selecciona el botón de Descargar, se cuentan con las opciones para obtener la base de datos en formato de SPSS o DBF. 48 Instituto de Informática STATA 11 para economistas Posteriormente, se deberá emplear un convertidor de bases de datos como el Stat Transfer o el DBMS Copy con la finalidad de migrar el formato de bases dato de SPPS o DBF hacia el STATA. Un vez que la base de datos se encuentre en formato de STATA, se procederá a la creación del do file conteniendo las sintaxis que permitan ejecutar los diversos tipos de gráficos que permite el STATA. A continuación se abrirá una ventana vacía de do- file la cual se grabará bajo el nombre de ―0_anatomia_grafico.do‖, tal como se muestra a continuación. En dicho do file se realizará la digitación de las órdenes correspondientes. 3.2. Ejercicios mediantes do files Una vez que disponemos de la base de datos, enaho01a_2007_500.dta dentro del directorio de trabajo se procederá a completar el do file respectivo. En primer lugar se definen aspectos del entorno de trabajo. A través del comando Clear, se borrará de la memoria las bases de datos que estuvieran abiertas. Clear Asimismo, se procede a especificar el tamaño de la memoria virtual de la PC que se dispondrá para el trabajo. Debido a que la base de datos contiene más de 65 mil variables. Como regla, se le asignará un tamaño de memoria similar al tamaño del archivo expresado en megabytes. set mem 100m Es importante especificar el directorio de trabajo a través del comando cd: cd "C:\Clases 2010" Pontificia Universidad Católica del Perú 49 Elaboración de Gráficos A través del comando use se abrirá la base de datos, nótese que la inclusión de comentarios en el do file se realiza incluyendo el símbolo (*) al inicio de la línea. use "enaho01a_2007_500.dta" Dentro de las opciones para realizar gráficos es posible indicar los estilos de presentación de los gráficos predeterminados por el Programa. A través del comando 'Scheme' nos permite cambiar el formato del gráfico. Para ver todas las posibilidades que tiene Stata incorporados digitar en la ventana de comandos: help schemes Los siguientes tipos de esquemas se encuentran predeterminados, en el presente ejercicio se escogerá la segunda opción, la cual alude a los estilos de gráficos del STATA Journal: set scheme s1color set scheme sj set scheme s1rcolor set scheme economist set scheme s2color A continuación se realizará el grafico del Ingreso Laboral según sexo para ello se empleará un grafico de dispersiones tipo scatter. Se ensayarán los diversos esquemas de presentación activando la casilla correspondiente. Las variables de trabajo son las siguientes: i524a1 p208a p207, las cuales tendrán una inspección a través del comando codebook: codebook i524a1 p208a p207 50 Instituto de Informática STATA 11 para economistas El resultado del codebook se indica a continuación: Pontificia Universidad Católica del Perú 51 Elaboración de Gráficos Los filtros sobre las variables de análisis se realizaran a través de las siguientes sintaxis: *Gráfico 1: Ingreso en la ocupación principal y edad de los hombres scatter i524a1 p208a if p207==1 *Gráfico 2: Ingreso en la ocupación principal y edad de los mujeres scatter i524a1 p208a if p207==2 Una vez realizados el scatter del ingreso laboral según edad y sexo se procederá a emplear el comando twoway para realizar el gráfico del ingreso laboral para ambos sexos: *Gráfico 3: Ingreso en la ocupación principal y edad de las mujeres y los hombres twoway (scatter i524a1 p208a if p207==1) /// (scatter i524a1 p208a if p207==2) *Gráfico 4: Lo mismo que 3 tw (sc i524a1 p208a if p207==1) /// (sc i524a1 p208a if p207==2) *Gráfico 5: Lo mismo que 4 tw (sc i524a1 p208a if p207==1) /// (sc i524a1 p208a if p207==2) /// , /// title("Título: Ingreso de la ocup. princ. y edad según sexo") /// subtitle("Subtítulo: Ingesos anualizados") xtitle("Edad") /// ytitle("Ingreso") /// note("Nota: Elaboraciòn propia a partir de la ENAHO 2007") /// legend(title(Leyenda) order(1 "Hombres" 2 "Mujeres")) text(200000 80 "Comentario") 52 Instituto de Informática STATA 11 para economistas 3.3. Histogramas y Kernels a. Histogramas – hist Los Histogramas consisten en una herramienta gráfica que permite ilustrar las discontinuidades de la información que se solucionan agrupando los datos. Lo anterior pasa por decidir cuantas barras o _CLASES_ emplear, o lo que es lo mismo decidir cuánto es el ancho de banda. Como regla práctica el número de CLASES se aproxima por la raíz cuadrada del número de datos empleados, en nuestro caso es aprox. igual a 256: display sqrt(65549) Pontificia Universidad Católica del Perú 53 Elaboración de Gráficos Histograma El número de CLASES puede modificarse con la opción bin del comando -hist. Otra opción interesante es acompañar el gráfico con la curva normal que se ajusta a los datos. Histograma con ajuste normal 54 Instituto de Informática STATA 11 para economistas b. Kernel – kdensity En términos sencillos los kernels permiten suavizar nuestros histogramas tratando de conservar la forma de la distribución de nuestros datos. Esto se consigue fijando ventanas alrededor de un punto y al interior ponderando los casos tal que el peso sea menor cuanto más alejado se encuentre del punto central de la ventana, el efecto del suavizamiento se consigue al desplazar la ventana. Al igual que los histogramas hay que elegir el número de barras o equivalentemente cuanto es el ancho de banda 2 Esa no es la única decisión, también hay que decidir qué función de distribución a usar. Para el primer punto se suele usar la sugerencia de Silverman (1986) el cual busca minimizar el valor esperado del error al cuadrado (opción por defecto en stata) El kernel es la función de distribución que se usa para suavizar el histograma. Bajo ciertas circunstancias se puede probar que el Kernel conocido como Epanechnikov tiene un criterio optimizador (opción por defecto en stata) Pontificia Universidad Católica del Perú 55 Elaboración de Gráficos 3.4. Do File para la elaboración de Histogramas y Kernels Clear set mem 100m use "enaho01a_2007_500" *1° etapa: hist p208a,freq *2° etapa: hist p208a,freq normal *3° etapa: hist p208a,freq normal kden *4° etapa: Distribución de la edad en un sólo gráfico tw (kdensity p208a if p207==1) (kdensity p208a if p207==2) kdensity p208a if p207==1, name (jose1,replace) kdensity p208a if p207==2, name (jose2,replace) graph combine jose1 jose2,rows(1) graph drop _all 56 Instituto de Informática STATA 11 para economistas *6° etapa: kdensity p208a, name(jose1,replace) title(Epanechnikov) kdensity p208a, name(jose2,replace) kernel(gauss) title(Gausiano) kdensity p208a, name(jose3,replace) kernel(cosine) title(Coseno) graph combine jose1 jose2 jose3,rows(1) graph drop _all *7° etapa: Pontificia Universidad Católica del Perú 57 Elaboración de Gráficos kdensity p208a, name(jose4,replace) title("Ancho de banda óptimo",size(*.8)) kdensity p208a, name(jose5,replace) bwidth(3.558) title("Doble del Ancho de banda óptimo",size(*.8)) kdensity p208a, name(jose6,replace) bwidth(0.8895) title ("Mitad de la banda óptimo",size(*.8)) graph combine jose4 jose5 jose6,rows(1) graph drop _all 3.5. Box plots Junto con el histograma o los kernels, los diagramas de cajas son probablemente las herramientas gráficas más importantes para realizar un análisis univariado 58 Instituto de Informática STATA 11 para economistas Algunas definiciones antes de empezar: Mediana o percentil 50.- Valor que divide la muestra en partes iguales Percentil 25.- Debajo de este valor se encuentra el 25% de los datos Percentil 75 .- Similar al anterior Rango intercuartilico IQR = P75 - P25 Outlier.- En un sentido más flexible es un dato con un valor muy alejado formalmente. A continuación se trabajará con el do file: 2_graph box.do clear set mem 100m use "enaho01a_2007_500" *1° Etapa: distribución del ingreso graph box i524a1 *2° Etapa: identificando a los "outliers" egen id=group(conglo vivienda hogar codperso) graph box i524a1, marker(1,mlabel(id)) scheme(s1color) graph drop _all Pontificia Universidad Católica del Perú 59 Elaboración de Gráficos *3° Etapa: graph hbox i524a1, scheme(s1color) over(p207) graph drop _all 3.6. Comando Graph: Scatter - Twoway Comando Graph Los comandos que generan gráficos son: 60 Instituto de Informática STATA 11 para economistas Comando Graph Twoway Los miembros de la familia de los gráficos twoway son llamados ―plottypes‖ [graph] twoway plot [if exp] [in range] [, twoway_options] Donde plot es definido de la siguiente forma: [(] plottype varlist ..., options [)] [||] Pontificia Universidad Católica del Perú 61 Elaboración de Gráficos Gráfico Twoway Scatter [twoway] scatter varlist [weight] [if exp] [in range] [, marker_options marker_placement_option marker_label_options connect_options axis_selection_options composite_style_option twoway_options ] Gráfico Twowat Line [twoway] line varlist [if exp] [in range] [, line_options ] Opción Combine En la misma área de gráficos, combina 2 o más gráficos (pueden ser de diferentes tipos. graph combine name [name ...] [, combine_options ] Opciones de marcador Modifica los marcadores y/o sus etiquetas para ajustarse a las preferencias del usuario. marker label option Gráficos de pie Se utilizan cuando nos interesa analizar proporciones. graph pie yvars [weight] [if exp] [in range] [, options ] Gráficos de barras Se pueden realizar gráficos con barras verticales y horizontales. graph bar yvars [weight] [if exp] [in range] [, options ] graph hbar yvars [weight] [if exp] [in range] [, options ] 62 Instituto de Informática STATA 11 para economistas Gráfico de puntos graph dot yvars [weight] [if exp] [in range] [, options ] Gráfico Twoway HIstogram twoway histogram varname [weight] [if exp] [in range] [, [discrete_options|continuous_options] common_options ] Gráfico Twoway Kdensity twoway kdensity varname [if exp] [in range] [, kdensity_options line_options] Para mayores detalles, revisar el libro: Mitchel, M. (2004); A visual guide to Stata graphics, University of California, Los Angeles. A Stata Press Publication Disponible en el siguiente vínculo: http://www.stata-press.com/books/vgsg.html Ejemplos: clear net from http://www.stata-press.com/data/vgsg net install vgsg help vguse set scheme vg_s2c vguse allstates.dta twoway (scatter propval100 popden) (lfit propval100 popden) Pontificia Universidad Católica del Perú 63 Elaboración de Gráficos twoway (scatter propval100 popden) (lfit propval100 popden) (qfit propval100 popden) twoway (scatter propval100 popden) (mspline propval100 popden) (fpfit propval100 popden) (mband propval100 popden) (lowess propval100 popden) 64 Instituto de Informática STATA 11 para economistas twoway (lfitci propval100 popden) (scatter propval100 popden) vguse spjanfeb2001.dta twoway dropline close tradeday Pontificia Universidad Católica del Perú 65 Elaboración de Gráficos vguse sp2001ts.dta twoway tsrline high low, sort vguse spjanfeb2001.dta twoway bar close tradeday 66 Instituto de Informática STATA 11 para economistas vguse allstates.dta graph matrix propval100 rent700 popden graph hbar popk, over (division) Pontificia Universidad Católica del Perú 67 Elaboración de Gráficos graph pie popk, over (region) vguse allstatesdc.dta twoway (lfitci ownhome pcturban80, stdf) (scatter ownhome pcturban80) 68 Instituto de Informática STATA 11 para economistas 4. Modelos lineales Probablemente en econometría el uso de modelos de regresión lineal y sus extensiones sea la metodología más empleada en la investigación empírica. El conocimiento de estos y su estimación es el objetivo de esta sección. Mínimos cuadrados ordinarios (MCO) es el método más popular, mientras que una variante que contempla la presencia de heterocedasticidad y corrige su presencia son los mínimos cuadrados ponderados (MCP). Mientras que los estimadores bajo MCO tienen como objetivo minimizar la suma de los errores al cuadrado, minimizar la suma de los valores absolutos de los errores nos conduce al modelo de mínima desviación absoluta (MDA) la generalización de este procedimiento se conoce como regresión cuantílica. De otro lado, la mala especificación de un modelo, en particular la omisión de una variable relevante, podría provocar en los parámetros una situación indeseada por los econometristas: parámetros insesgados y peor aún, parámetros inconsistentes. Un procedimiento comúnmente para lidiar con este problema es una regresión con variables instrumentales (VI). En lo que sigue se aborda cada uno de los temas mencionados. 4.1. Mínimos cuadrados ordinarios regress Otra vez recurrimos a la ENAHO 2008 para presentar una regresión lineal simple con ―r6‖ como variable dependiente: reg r6 edad r11h Pontificia Universidad Católica del Perú 69 Modelos Lineales Tarea 1: Interprete todos los estadísticos reportados en el output anterior teniendo en cuenta que “r6” es el ingreso laboral mensual, edad son los años cumplidos y r11h son las horas mensuales laboradas. xi: El prefijo xi: permite agregar fácilmente variables categóricas en un modelo de regresión. Imagine que se plantea la hipótesis que las líneas de regresión para cada dominio geográfico tienen distinto intercepto: xi: reg r6 edad r11h i.dominio 70 Instituto de Informática STATA 11 para economistas Distinto intercepto y distinta pendiente xi: reg r6 i.dominio*r11h Pontificia Universidad Católica del Perú 71 Modelos Lineales Términos de interacción: xi: reg r6 i.dominio*i.sexo 72 Instituto de Informática STATA 11 para economistas Tarea 2: Cree las dicotómicas que sean necesario, compruebe e interprete todos los resultados anteriores. predict Debe tener en cuenta que cuando existe un ―missing‖ en una de las variables que intervienen en la regresión, todo ese registro se pierde al realizar la estimación así existan observaciones en el resto de variables. Si por alguna razón el objetivo es quedarse con el conjunto de variables en los cuáles no exista ningún missing en el conjunto de datos se puede ejecutar lo siguiente: reg r6 edad r11h keep if e(sample) regress postestimation reg r6 edad r11h estat ovtest /*Test RESET de Ramsey (variables omitidas)*/ estat ic /*Criterios de información*/ estat vif /*Factor de inflación de varianza*/ Almacenamiento de información Luego de estimar una regresión el software almacena las estimaciones en objetos que luego pueden ser fácilmente empleados. . ereturn list scalars: Pontificia Universidad Católica del Perú 73 Modelos Lineales e(N) = 45232 e(df_m) = 2 e(df_r) = 45229 e(F) = 1265.502981280802 e(r2) = .0529942555816602 e(rmse) = 370.1935843435196 e(mss) = 346857383.838377 e(rss) = 6198330958.394218 e(r2_a) = .0529523795399869 e(ll) = -331683.1548708656 e(ll_0) = -332914.5987825873 e(rank) = 3 macros: e(cmdline) : "regress r6 edad r11h" e(title) : "Linear regression" e(marginsok) : "XB default" e(vce) : "ols" e(depvar) : "r6" e(cmd) : "regress" e(properties) : "b V" e(predict) : "regres_p" e(model) : "ols" e(estat_cmd) : "regress_estat" matrices: e(b) : 1 x 3 e(V) : 3 x 3 functions: e(sample) 74 Instituto de Informática STATA 11 para economistas Por ejemplo, usando la calculadora de Stata se puede digitar en la línea de comandos – display e(r2)- para reportar el R cuadrado de la regresión. También pueden invocarse los parámetros estimados de otra manera: Por ejemplo, en promedio el ingreso mensual para una persona que tiene 30 años y trabaja 48 horas a la semana, asumiendo que existe causalidad en el modelo y este se encuentra correctamente especificado es: Correlación Serial Sólo aplica cuando la fuente de datos es temporal, si ese es el caso STATA exige que los datos sean declarados como temporales con el comando -tsset-. - Durbin-Watson. Test de autocorrelación de primer orden . tsset qtrs . regress Y X1 X2 X3 . estat dwatson . estat dwatson Pontificia Universidad Católica del Perú 75 Modelos Lineales - Corrección de Autocorrelación MCP Usando el método de Cochrane . prais Y X1 X2 X3, corc Errores estándar sugeridos por Newey-West . newey Y X1 X2 X3, lag(#) Donde ―lag(#)‖ especifica el orden de la autocorrelación Heterocedasticidad Test de White . regress Y X1 X2 X3 . estat imtest, preserve white Mínimos cuadrados ponderados Comando ―wls0‖ (http://www.ats.ucla.edu/stat/stata/ado/analysis/wls0.htm para mas detalles y un ejemplo) Errores estándar corregidos por heterocedasticidad . regress Y X1 X2 X3, robust 76 Instituto de Informática STATA 11 para economistas 4.2. Regresiones robustas Una vez que se ha establecido que existe una relación lineal entre dos variables Y y X, todavía queda la tarea de determinar ¿cuál es la mejor recta que refleja esta relación? O lo que es lo mismo ¿Cuál es la ecuación que describe estos datos? Ya que se observa y se asume una relación lineal los datos deben seguir una ecuación de la forma: Y = mX +b El problema requiere la determinación de los coeficientes m y b. Se podrían hacer conjeturas sobre que números deberían ser, pero estas deben ser "lo mejor posible‖. Pero, ¿Qué se entiende por "mejor posible"?3. Lo anterior implica la descripción de un criterio para medir el error entre "la mejor" línea y los datos. Una vez que el criterio ha sido especificado, entonces el objetivo es reducir al mínimo este error. La línea con el mínimo error de los datos es la "mejor" línea. La regresión por mínimos cuadrados ordinarios es el procedimiento más utilizado debido a su simplicidad y facilidad de cálculo. Como se sabe la medida de error de este método es el cuadrado de la desviación de los datos de la línea de regresión respecto a los Y observados (Σe2). El objetivo es minimizar la sumatoria de los errores al cuadrado obteniéndose "la mejor" línea. La desventaja del método es que es muy sensible a valores atípicos. 3 Se debe notar que a no ser que su sea una relación lineal exacta entre X e Y, entonces más de una línea podría describir estos datos. Pontificia Universidad Católica del Perú 77 Modelos Lineales Por ejemplo utilizando la base ―auto‖ (que se encuentra por defecto en la carpeta Stata) en el modelo hipotético: mpg=a+m*weight se tendría: sysuse auto twoway (lfit mpg weight) (scatter mpg weight) Tarea 3: Cree el mismo gráfico utilizando la opción predict y también generando la variable predicha con la forma de recuperar coeficientes visto líneas arriba (_b[variable]). El problema que presenta este método es que las observaciones que se encuentren más alejadas de la recta de ajuste reciben una mayor ponderación. Si se decide excluirlas, van a afectar fuertemente a los estimadores. Existen por lo menos dos formas de estimar una línea que no esté altamente influenciada por valores atípicos, estas metodologías descansan en lo que literatura se conoce como regresiones robustas. 78 Instituto de Informática STATA 11 para economistas 4.2.1. Regresión por mínima desviación absoluta Este método es muy similar al método de mínimos cuadrados. La diferencia es que la medida de error de este método es el valor absoluto de la desviación de los datos de la línea de regresión respecto a los Y observados (Σ|e|). Aunque parece un método más simple de describir al error, su proceso de minimización es complicado. Los algoritmos iterativos que reducen al mínimo el error se basan en la programación lineal. Este método es menos sensible a outliers si se compara con el método de la regresión mínimo cuadrática. Cuando el criterio de minimización es alcanzado el 50% de los residuos son negativos. En forma análoga al modelo de regresión simple, en la que la esperanza de Y dado X viene a ser la recta de mejor ajuste (E(Y/X)=X’B), en este tipo de modelos la recta estimada es la mediana de Y condicionada a X (Q(Y/X)0.50= X’B). En Stata el comando ―qreg‖, cuando no se especifica el cuantil con el que debe trabajar, estima por defecto al modelo, que en el caso general es conocido como regresión cuantílica. qreg Pontificia Universidad Católica del Perú 79 Modelos Lineales . qreg mpg weight . g mediana=_b[_cons]+_b[weight]*weight . tw (scatter mpg weight) (line mediana weight) 4.2.2. Regresión robusta La idea básica de este tipo de estimación es calcular los estimadores que minimicen la siguiente función: Σw(e)e2 Donde w(.) es una función de ponderación que se introduce para reducir (e incluso eliminar) el efecto de residuos elevados. Por tanto se definen los pesos w(.) de tal forma que tomen valores pequeños para residuos grandes. El proceso de estimación es iterativo comenzando por una regresión simple de la cual se derivan los primeros errores y también los primeros ponderadores que son reestimados las veces que sean necesarios para que la máxima diferencia entre el último y el penúltimo ponderador sea mínima. 80 Instituto de Informática STATA 11 para economistas En Stata el comando ―rreg‖ permite obtener estimaciones robustas de acuerdo al siguiente procedimiento: Excluye a las observaciones que tengan una distancia de Cook mayor a uno (esto lo realiza asignando un peso de 0 a dichos registros). Utiliza dos funciones de ponderación: ―Huber y Biweights‖, ambas funciones de ponderación son usadas porque los ponderadores de Huber tiene problemas cuando se encuentra con outliers muy elevados mientras que ―Biweights‖ algunas veces falla al converger o tiene múltiples soluciones. Los ponderadores iniciales de Huber mejoran el comportamiento del estimador Biweight. La característica del ponderador a lo Huber es que los casos con errores pequeños reciben un peso de 1, los demás casos tienen ponderadores inversamente proporcional al tamaño de los residuos. De otro lado, los pesos Biweight, para errores pequeños, asignan una ponderación que decrece exponencialmente con el tamaño del error, a los demás casos se le asigna un peso de 0. Donde: ei = yi - XiB; ui = ei/s; s = M/0.6745; M = mediana (|ei – mediana(ei)|); ch y cb son constantes predeterminadas Pontificia Universidad Católica del Perú 81 Modelos Lineales . rreg mpg weight, genwt(w) Huber iteration 1: maximum difference in weights = .79065466 Huber iteration 2: maximum difference in weights = .16435086 Huber iteration 3: maximum difference in weights = .07997553 Huber iteration 4: maximum difference in weights = .02086117 Biweight iteration 5: maximum difference in weights = .2751323 Biweight iteration 6: maximum difference in weights = .12290063 Biweight iteration 7: maximum difference in weights = .06995163 Biweight iteration 8: maximum difference in weights = .01619982 Biweight iteration 9: maximum difference in weights = .00890816 82 Instituto de Informática STATA 11 para economistas En el gráfico anterior se muestra la recta de ajuste robusta acompañada de los ponderadores estimados, como se puede observar, mientras más alejado de la recta de ajuste se encuentren los datos menor ponderación le es asignado, llegando inclusive a ser cero. La comparación de las tres rectas de ajuste nos permite comprobar la menor sensibilidad de los métodos alternativos a la regresión simple. reg mpg weight g mco=_b[_cons]+_b[weight]*weight tw (line mco weight, clcolor(pink) clpat(dash)) /// (line mediana weight, clcolor(green) clpat(dot)) /// (line robusta weight, clcolor(blue)) (scatter mpg weight) Pontificia Universidad Católica del Perú 83 Modelos Lineales 84 Instituto de Informática STATA 11 para economistas 5. Variable dependiente limitada 5.1. Dependiente binaria Cuando la variable dependiente toma dos valores, típicamente 1 y 0. La estimación de un modelo con esta característica empleando la metodología MCO convencional se conoce como el modelo de probabilidad lineal, sin embargo su estimación presenta los siguientes problemas: Predicciones fuera de muestra (nada garantiza que las predicciones del modelo se encuentren en el intervalo de 0 a 1) La perturbación aleatoria no sigue una distribución normal Presencia de problema de heterocedasticidad Caminos alternativos que superan los problemas anteriores se basan en estimaciones no lineales bajo la metodología de máxima verosimilitud. Los modelos tipo probit y logit asumen que el término de error aleatorio siguen una distribución normal y logística respectivamente, su estimación es precisamente empleando los comandos -probit- y -logit-, y como se sabe los efectos marginales, al no ser un modelo lineal, se estiman evaluando la expresión correspondiente en las medias de las variables explicativas. dprobit, estima un modelo probit por máxima verosimilitud, pero no reporta los coeficientes como este último sino que reporta el cambio en la probabilidad ante un cambio infinitesimal en las variables continuas independientes y, por defecto, reporta el cambio discreto en la probabilidad para variables dummy. Pontificia Universidad Católica del Perú 85 Variable dependiente limitada Si se estima con datos agrupados, vea el comando bprobit descrito en [R] glogit Los comandos auxiliares pueden ser corridos después de probit, logit o logistic; vea [R] logistic para una descripción de esos comandos. Nota Técnica Stata interpreta el valor 0 como resultado negativo (falla), y trata todos los otros valores (excepto ―missing‖) como resultados positivos (éxito). Entonces, si su variable dependiente toma el valor de 0 y 1, 0 es interpretado como falla y 1 como éxito. Si su variable dependiente toma el valor de 0,1 y 2; 0 es interpretado aún como falla, pero 1 y 2 son tratados como éxitos. Identificación del modelo El comando probit tiene una característica adicional y es probablemente la más importante. Este revisa el modelo para la identificación y si está subidentificado elimina las variables y observaciones necesarias para que proceda la estimación. Ejemplo . describe 86 Instituto de Informática STATA 11 para economistas . sum Pontificia Universidad Católica del Perú 87 Variable dependiente limitada . regress grade gpa tuce psi . probit grade gpa tuce psi Iteration 0: log likelihood = -20.59173 Iteration 1: log likelihood = -13.315851 Iteration 2: log likelihood = -12.832843 Iteration 3: log likelihood = -12.818826 Iteration 4: log likelihood = -12.818803 88 Instituto de Informática STATA 11 para economistas Podemos observar que todas las variables son significativas. El modelo es globalmente significativo pues es el (Prob > chi2 = 0.0014) y el ajuste del Pseudo R2 es 0.3775, lo cual para cortes transversales es aceptable. matrix coeficientes=e(b) matrix list coeficientes Con el comando predict generamos una variable donde almacenamos la probabilidad predicha de que el alumno aumente su nota: predict probprobit, p Graficando la probabilidad predicha contra tuce (el resultado previo obtenido en un examen de economía) Pontificia Universidad Católica del Perú 89 Variable dependiente limitada Graficando la probabilidad predicha contra gpa (la nota global del alumno) Para obtener los efectos marginales empleamos el comando dprobit: . dprobit grade gpa tuce psi Iteration 0: log likelihood = -20.59173 Iteration 1: log likelihood = -13.315851 Iteration 2: log likelihood = -12.832843 Iteration 3: log likelihood = -12.818826 Iteration 4: log likelihood = -12.818803 90 Instituto de Informática STATA 11 para economistas En este caso dF/dx se refiere al efecto marginal (en cuanto aumenta la probabilidad de que suba la nota del alumno promedio cuando las variables continuas aumentan en una unidad. Para las variables no continuas como psi, STATA calcula el cambio en la probabilidad ante un cambio discreto de una unidad (en el caso de psi, de pasar de no participar a participar en la nueva metodología) También muestra las medias y un intervalo de confianza para la predicción. La interpretación es como sigue: 0.5333471 es el aumento de la probabilidad (de que aumente la nota) para un alumno medio (gpa=3.117, tuce=21.938 y psi=0.438). Del mismo modo 0.4644 es el aumento en la probabilidad (de que aumente la nota) para un alumno medio (gpa=3.117, tuce=21.938) cuando recibe el nuevo método de enseñanza (pasa de tuce=0 a tuce =1). No olvidar que en todos los casos se debe incorporar la constante al calculo de . Para tratar las variables discretas del mismo modo que las continuas se emplea la opción classic. . dprobit grade gpa tuce psi, classic Iteration 0: log likelihood = -20.59173 Iteration 1: log likelihood = -13.315851 Iteration 2: log likelihood = -12.832843 Iteration 3: log likelihood = -12.818826 Iteration 4: log likelihood = -12.818803 Pontificia Universidad Católica del Perú 91 Variable dependiente limitada Para calcular la probabilidad de un aumento de la nota para un individuo de determinadas características deben definirse estas mediante una matriz. Por ejemplo, cuál es la probabilidad de que un individuo con gpa=3, que obtuvo 20 en su nota previa de economía (tuce=20) y que ha estado expuesto al nuevo método de enseñanza (psi=1) debemos emplear la opción at Observe que el cuarto componente es la de la constante: matrix carac=[3, 20, 1, 1] dprobit grade gpa tuce psi, at(carac) . dprobit grade gpa tuce psi, at(carac) Iteration 0: log likelihood = -20.59173 Iteration 1: log likelihood = -13.315851 Iteration 2: log likelihood = -12.832843 Iteration 3: log likelihood = -12.818826 Iteration 4: log likelihood = -12.818803 92 Instituto de Informática STATA 11 para economistas Comando mfx Es la manera genérica de calcular efectos marginales, y no es de uso exclusivo a este tipo de estimaciones. La ventaja es ser flexible a la hora de calcular diversos variantes de los efectos de las explicativas sobre la variable dependiente . mfx compute Pontificia Universidad Católica del Perú 93 Variable dependiente limitada Calculando las elasticidades: . mfx compute,eyex Elasticities after dprobit Calculando semielasticidades: . mfx compute,dyex Elasticities after dprobit . mfx compute,eydx Elasticities after dprobit 94 Instituto de Informática STATA 11 para economistas Tabla de bondad de ajuste Comparando la capacidad del modelo lineal y el probit, se observa que éste último sólo es ligeramente superior al primero. . tab grade aciertoprobit . tab grade aciertolin Para contrastar la bondad de ajuste es preciso tabular que tan bien predice el modelo. Graficando el efecto marginal de psi Si se grafica (por ejemplo para cien puntos) el efecto de psi sobre la probabilidad de aumentar la nota, se puede graficar el efecto puro de psi sobre las medias (trazo continuo) mientras que los puntos son el efecto de psi para cada individuo en particular. Pontificia Universidad Católica del Perú 95 Variable dependiente limitada Por el contrario este gráfico permite comparar el efecto predictivo del modelo para la variable psi. 96 Instituto de Informática STATA 11 para economistas Identificación del modelo La variable potexp fue eliminada por ser colineal a las otras. . probit union age exp2 grade married lnwage potexp high note: potexp dropped due to collinearity Iteration 0: log likelihood = -521.79847 Iteration 1: log likelihood = -465.83446 Iteration 2: log likelihood = -463.72828 Iteration 3: log likelihood = -463.71437 Iteration 4: log likelihood = -463.71436 Pontificia Universidad Católica del Perú 97 Variable dependiente limitada 5.2. Variable dependiente politómica 5.2.1. Logit multinomial Una variable es nominal es aquella donde sus categorías no se pueden ordenar. Ejemplos, de lo anterior son estado civil y condición de actividad laboral. En el modelo logit multinomial, nosotros de coeficientes (1), (2) y estimamos el conjunto (3) correspondiente a cada categoría del resultado. El modelo, sin embargo, no es identificado en el sentido de que hay más de una solución para (1), (2) y (3) que conduce a las mismas probabilidades para y=1, y=2 y y=3. Para identificar el modelo, uno de los (1), fija (2) y (3) es arbitrariamente fijada a 0. Si arbitrariamente se (1)=0, los coeficientes restantes (2) y (3) medirán el cambio relativo al grupo y=1. Si en lugar de fijar (1) y (1)=0, fijamos (2) =0, los coeficientes restantes (3) medirían el cambio relativo al grupo y=2. Los coeficientes diferirían porque tienen diferentes interpretaciones, pero las probabilidades predichas para y=1, 2 y 3 serían las mismas. Por lo tanto, cualquier parametrización sería una solución. 98 Instituto de Informática STATA 11 para economistas Dado (1)=0, las ecuaciones se convierten en La probabilidad relativa de y=2 es Llamaremos este ratio como el riesgo relativo, y asumiremos después que X y son vectores iguales a (x1,x2,x3 ….. xk) y ( ), respectivamente. El ratio de riesgo relativo para un cambio unitario en Xi es entonces: Así, el valor exponenciado de un coeficiente es un ratio de riesgo relativo para un cambio unitario en la variable correspondiente. Ejemplo Se tienen datos acerca del tipo de seguro de salud disponible para 616 personas que sufren de depresión en Estados Unidos. El seguro es categorizado en dos planes: plan de indemnización y de prepago. Pontificia Universidad Católica del Perú 99 Variable dependiente limitada La tercera posibilidad es que no se tenga seguro alguno. Usted desea estudiar los factores demográficos asociados a cada categoría de seguro. Como introducción a la muestra, uno de los factores demográficos es la raza de los individuos, codificado como blanco o no blanco: use http://www.stata-press.com/data/r8/sysdsn3 Se rechaza la hipótesis nula de que las columnas y las filas son independientes (prueba Chi cuadrado). Aunque en el cuadro el seguro aparece como Indemnity, prepaid y Uninsure, el seguro en realidad toma los valores de 1, 2 y 3. Los nombres aparecen porque las variables numéricas del seguro han sido asociadas con ellos. Cuando se estima un modelo logit multinomial, usted puede señalar a mlogit la categoría base que desea utilizar o puede permitir que mlogit escoja. Para ajustar un modelo de seguro sobre nonwhite, dejando que mlogit escoja la categoría base, digitamos: .tabulate insure nonwhite, chi2 col 100 Instituto de Informática STATA 11 para economistas mlogit insure nonwhite Pontificia Universidad Católica del Perú 101 Variable dependiente limitada El ratio de riesgo relativo de prepaid sobre la categoría base (indemnity) es: Si se cambia el grupo base: . mlogit insure nonwhite, base(2) Multinomial logistic regression 102 Number of obs = 616 LR chi2(2) = 9.62 Prob > chi2 = 0.0081 Instituto de Informática STATA 11 para economistas 5.2.2. Probit o Logit ordenado Una variable es ordinal cuando sus categorías pueden ser ordenadas: encuestas de opinión (de acuerdo o descuerdo), niveles de pobreza, entre otros. El modelo probit o logit ordenado se estima con el objetivo de determinar de forma paramétrica la probabilidad de pertenencia en cada una de las categorías contempladas. El modelo tiene la siguiente forma: Con Z como el conjunto de variables independientes y ε un residuo que se asume normalmente distribuido entre las observaciones en el caso se asuma normalidad o logística en el otro caso. Con el fin de no obtener probabilidades negativas se normaliza tanto la media como la varianza de ε dentro del rango [0, 1]. De esta manera, si p1, p2 y p3 son los grupos determinados endógenamente determinados por el algoritmo propuesto por Esteban y otros (1999) se tiene donde los μ’s son parámetros desconocidos a estimarse en el modelo. use http://www.ats.ucla.edu/stat/stata/examples/long/ordwarm2, clear describe Pontificia Universidad Católica del Perú 103 Variable dependiente limitada sum warm yr89 male white age ed prst Logit ordenado . ologit warm yr89 male white age ed prst Iteration 0: log likelihood = -2995.7704 Iteration 1: log likelihood = -2846.4532 Iteration 2: log likelihood = -2844.9142 Iteration 3: log likelihood = -2844.9123 104 Instituto de Informática STATA 11 para economistas Del mismo modo el comando para el modelo probit ordenado es -oprobit-. Las siguientes líneas permiten estimar ambos modelos y compararlos: ologit warm yr89 male white age ed prst est store modelo1 oprobit warm yr89 male white age ed prst est store modelo2 est table modelo1 modelo2 Pontificia Universidad Católica del Perú 105 Variable dependiente limitada 106 Instituto de Informática STATA 11 para economistas 6. Datos de panel En esta sección se empleará la base nlswork.dta la misma que contiene una muestra de 4711 mujeres con trabajo remunerado de 14 a 26 años cumplidos al año 1968 y que fueron encuestadas a lo largo de 21 años (1968-1988) excepto los años 1974, 1976, 1979, 1981, 1984, y 1986. La variable dependiente en todas las estimaciones es el logaritmo del ingreso. Se recurrirán a algunos comandos que no están cargados en Stata. Es importante entonces que antes de iniciar escribas en la línea de comando (mientras estás conectado a Internet) las siguientes indicaciones: ssc install xtserial //Si este comando no funciona, intente: -findit xtserial- ssc install xttest2 ssc install xttest3 Los datos se encuentran alojados en la siguiente ruta: use http://www.stata-press.com/data/r10/nlswork.dta des sum generate age2 = age*age generate black = (race==2) 6.1. Controlando la heterogeneidad dentro de un panel Regresión agrupada (pooled ols) El enfoque más simple de analizar datos tipo panel es omitir las dimensiones del espacio y el tiempo de los datos agrupados y sólo calcular la regresión MCO usual. Este modelo se expresa como: Pontificia Universidad Católica del Perú 107 Datos de Panel Donde i significa la i-ésima unidad transversal (estado) y t el tiempo t (año). Si tratamos de explicar la variable spend con las variables independientes de la clase pasada, basta con que indiquemos en la ventana de comandos de Stata: reg ln_wage age age2 Efectos aleatorios La ecuación (1) supone que el intercepto de la regresión es la misma para todas las unidades transversales. Sin embargo, es muy probable que necesitemos controlar el carácter ―individual‖ de cada estado. El modelo de efectos aleatorios permite suponer que cada unidad transversal tiene un intercepto diferente. Este modelo se expresa como: Donde i + ui Es decir, en vez de considerar a como fija, suponemos que es una variable aleatoria con un valor medio y una desviación aleatoria de este valor medio. Sustituyendo en i + ui (2) obtenemos: Stata estima el modelo de efectos aleatorios con el comando xtreg, re. En nuestro ejemplo, indicamos en la ventana de comandos: xtreg ln_wage age age2, re 108 Instituto de Informática STATA 11 para economistas Si analizamos la ecuación (3), observamos que si la varianza de u es igual a cero, es decir 2 u = 0, entonces no existe ninguna diferencia relevante entre (1) y (3). ¿Cómo podemos saber si es necesario usar el modelo de efectos aleatorios o el de datos agrupados? Breusch y Pagan formularon la prueba conocida como Prueba del Multiplicador de Lagrange para Efectos Aleatorios. La hipótesis nula de esta prueba es que Si la prueba se rechaza, sí existe diferencia entre (1) y (3), y es preferible usar el método de efectos aleatorios4. La prueba de Breusch y Pagan se implementa en Stata con el comando xttest0 después de la estimación de efectos aleatorios. . xtreg ln_wage age age2, re . xttest0 Breusch and Pagan Lagrangian multiplier test for random effects ln_wage[idcode,t] = Xb + u[idcode] + e[idcode,t] 4 Recuerde que referencialmente una Hipótesis nula se rechaza si el p-value es pequeño, menor a 0.10, por ejemplo. Pontificia Universidad Católica del Perú 109 Datos de Panel El p-value nos indica que podemos rechazar la Ho; por lo tanto, los efectos aleatorios i u son relevantes y es preferible usar la estimación de efectos aleatorios en vez de la agrupada. - Efectos fijos Otra manera de modelar el carácter ―individual‖ de cada estado es a través del modelo de efectos fijos. Este modelo no supone que las diferencias entre personas sean aleatorias, sino constantes o ―fijas‖—y por ello debemos estimar cada intercepto ui . ¿Cómo podemos permitir que el intercepto varíe con respecto a cada estado? Una manera es la técnica de ―las variables dicotómicas de intersección diferencial‖, que se expresa de la siguiente manera5 Donde es un vector de variables dicotómicas para cada estado. El modelo de efectos fijos puede ejecutarse en Stata con el comando: . xi: reg ln_wage age age2 i.idcode O . areg ln_wage age age2,a(idcode) El cual estima una dummy para cada estado. Una opción más sencilla es el comando xtreg: . xtreg ln_wage age age2, fe 5 Como repasamos en clase, utilizar variables dicotómicas conduce al mismo resultado que si restamos a cada observación la media de cada estado (demeaning the data). 110 Instituto de Informática STATA 11 para economistas ¿Qué modelo es mejor (1) ó (4)? En relación con el modelo (4), el (1) es un modelo restringido, pues asume un intercepto común para todos las personas (es decir, no incluye variables dicotómicas de cada persona). Por lo tanto, podemos utilizar una prueba F restrictiva para contestar la interrogante. La hipótesis nula es que v1= v2= … vi =0 (o sea, que todas las variables dicotómicas estatales son iguales cero). Si la prueba se rechaza, significa que al menos algunas variables dicotómicas sí pertenecen al modelo, y por lo tanto es necesario utilizar el método de efectos fijos. La prueba F de significancia de los efectos fijos se reporta automáticamente con el comando xtreg, fe. Al final del output de la estimación de efectos fijos aparece: El p-value nos indica que podemos rechazar la Ho, por lo que es preferible usar el método de efectos fijos al modelo agrupado. - Efectos fijos vs. aleatorios Las pruebas de Breusch y Pagan para efectos aleatorios, y la prueba F de significancia de los efectos fijos nos indican que tanto el modelo de efectos aleatorios como el de efectos fijos son mejores que el modelo agrupado. ¿Pero cómo decidir cuál de los dos usar? La respuesta depende de la posible correlación entre el componente de error individual ui y las variables X. El modelo de efectos aleatorios supone que esta correlación es igual a cero. Si las ui y las variables X están correlacionadas, entonces no incluir ui en el modelo producirá un sesgo de variable omitida en los coeficientes de X. Pontificia Universidad Católica del Perú 111 Datos de Panel Hausman demostró que la diferencia entre los coeficientes de efectos fijos y aleatorios ef - ea puede ser usada para probar la hipótesis nula de que ui y las variables X no están correlacionadas. Así pues, la Ho de la prueba de Hausman es que los estimadores de efectos aleatorios y de efectos fijos no difieren sustancialmente. Si se rechaza la Ho, los estimadores sí difieren, y la conclusión es efectos fijos es más conveniente que efectos aleatorios. Si no podemos rechazar Ho, no hay sesgo de qué preocuparnos y preferimos efectos aleatorios que, al no estimar suficientes dummies, es un modelo más eficiente. La prueba de Hausman se implementa en Stata después de la regresión con efectos aleatorios con el comando Hausman de la siguiente manera: . xtreg ln_wage age age2, fe . est store fijos . xtreg ln_wage age msp ttl_exp, re . hausman fijos ., sigmamore b = consistent under Ho and Ha; obtained from xtreg B = inconsistent under Ha, efficient under Ho; obtained from xtreg Test: Ho: difference in coefficients not systematic chi2(2) = (b-B)'[(V_b-V_B)^(-1)](b-B) = 61.89 Prob>chi2 = 0.0000 112 Instituto de Informática STATA 11 para economistas . hausman fijos . b = consistent under Ho and Ha; obtained from xtreg B = inconsistent under Ha, efficient under Ho; obtained from xtreg Test: Ho: difference in coefficients not systematic chi2(2) = (b-B)'[(V_b-V_B)^(-1)](b-B) = 60.05 Prob>chi2 = 0.0000 En nuestro ejemplo, la Ho se rechaza; es decir, la diferencia entre los coeficientes de efectos aleatorios y fijos sí es sistemática. Por lo tanto, conviene usar el método de efectos fijos. - Efectos Temporales La incorporación de variables dicotómicas de las personas permite modelar características de las unidades transversales (mujeres) que no cambian en el tiempo pero que sí afectan el resultado de interés. Ahora bien, también es posible agregar variables dicotómicas temporales a nuestro modelo, es decir, una para cada año en la muestra, que capturen eventos comunes a todos las personas durante un período u otro—como una gran depresión o guerra mundial6. Agregando efectos temporales, la ecuación anterior se transforma en: 6 Para hacer la distinción algunos autores suelen hablar de efectos idiosincráticos y efectos covariados. Pontificia Universidad Católica del Perú 113 Datos de Panel Donde representa un vector de variables dicotómicas para cada año. Estas variables dicotómicas permitirán controlar por aquellos eventos a los que fueron sujetos todas las personas en un año dado y, al igual que los efectos fijos, pueden reducir sesgos importantes. En Stata podemos incorporar efectos temporales a nuestro modelo de efectos fijos con el comando xi. . xi: xtreg ln_wage age age2 i.year, fe O bien, generando tanto las dummies de personas como de año (computacionalmente más costoso), . xi: xtreg ln_wage age age2 i.year i.idcode, fe Al igual que con los efectos individuales, podemos realizar una prueba F para conocer la significancia conjunta de las variables dicotómicas temporales en nuestro modelo. La hipótesis nula es que 1 = 2 =… t = 0. . En nuestro ejemplo, luego de estimar un modelo con efectos fijos individuales y temporales, indicamos en la ventana de comando: . testparm _Iyear_69 - _Iyear_88 // -testparm- es similar a –test( 1) _Iyear_69 = 0 ( 2) _Iyear_70 = 0 ( 3) _Iyear_71 = 0 ( 4) _Iyear_72 = 0 ( 5) _Iyear_73 = 0 ( 6) _Iyear_75 = 0 ( 7) _Iyear_77 = 0 ( 8) _Iyear_78 = 0 ( 9) _Iyear_80 = 0 (10) _Iyear_82 = 0 (11) _Iyear_83 = 0 114 Instituto de Informática STATA 11 para economistas (12) _Iyear_85 = 0 (13) _Iyear_87 = 0 (14) _Iyear_88 = 0 F( 14, 23785) = 6.50 Prob > F = 0.0000 0 El p-value de la prueba F nos indica que rechazamos la Ho, por lo que es posible afirmar que las variables dicotómicas temporales son conjuntamente significativas y pertenecen al modelo. - Autocorrelación Es importante señalar que aún cuando hemos modelado la heterogeneidad temporal y espacial en nuestro modelo, la ecuación (5) puede estar mal especificada en otros aspectos. Recordemos que de acuerdo con los supuestos de Gauss-Markov, los estimadores MCO son los Mejores Estimadores Lineales Insesgados (MELI) siempre y cuando los errores eit sean independientes entre sí y se distribuyan idénticamente con varianza constante . Desafortunadamente, con frecuencia estas condiciones son violadas en datos panel: con respecto a la independencia cuando los errores de diferentes unidades están correlacionados (correlación contemporánea), o cuando los errores dentro de cada unidad se correlacionan temporalmente (correlación serial), o ambos. También con respecto a la distribución ―idéntica‖ de los errores cuando la varianza no es constante (heteroscedasticidad). En esta sección abordaremos al problema de la correlación serial o ―autocorrelación‖; es decir, cuando los errores eit no son independientes con respecto al tiempo. En nuestro ejemplo, es muy probable que el nivel de ingresos en t esté asociado con el nivel de ingresos en t-1. Pontificia Universidad Católica del Perú 115 Datos de Panel Existen muchas maneras de diagnosticar problemas de autocorrelación7. Sin embargo, cada una de estas pruebas funciona bajos ciertos supuestos sobre la naturaleza de los efectos individuales. Wooldridge desarrolló una prueba muy flexible basada en supuestos mínimos que puede ejecutarse con el comando xtserial. La hipótesis nula de esta prueba es que no existe autocorrelación; naturalmente, si se rechaza, podemos concluir que ésta sí existe.8 El comando xtserial requiere que se especifiquen la variable dependiente e independientes de nuestro modelo. En nuestro ejemplo, indicamos: . xtserial ln_wage age age2, output 7 Muchas de las pruebas que se utilizan para diagnosticar problemas de correlación serial en series de tiempo han sido ajustadas para aplicarse a datos tipo panel en Stata. Estas pruebas puedes bajarlas por internet del modulo “PANELAUTO” y “PANTEST2” tecleando en la línea de comando: ssc install panelauto y ssc install pantest2. 8 El método de Wooldridge utiliza los residuales de una regresión de primeras diferencias, observando que si uit no está serialmente correlacionado, entonces la correlación entre los errores uit diferenciados para el periodo t y t-1 es igual a -0.5. En realidad, la prueba de Wooldridge consiste en probar esta igualdad. Para una discusión más amplia de esta prueba, consulta Wooldridge, J. M. 2002. Econometric Analysis of Cross Section and Panel Data. Cambridge, MA: MIT Press. 116 Instituto de Informática STATA 11 para economistas La prueba nos indica que tenemos un problema de autocorrelación que es necesario corregir. Una manera de hacerlo es a través de un modelo de efectos fijos con término ( ) autorregresivo de grado 1 (AR1) que controla por la dependencia de t con respecto a t-1. El modelo AR1 con efectos fijos se especifica de la manera: donde los errores tienen una correlación de primer grado, ρ. El modelo AR1 se puede implementar con el comando xtregar: . xtregar ln_wage age age2, fe 9 - Heterocedasticidad Cuando la varianza de los errores de cada unidad transversal no es constante, nos encontramos con una violación de los supuestos GaussMarkov. Una forma de saber si nuestra estimación tiene problemas de heteroscedastidad es a través de la prueba del Multiplicador de Lagrange de Breusch y Pagan. Sin embargo, de acuerdo con Greene, ésta y otras pruebas son sensibles al supuesto sobre la normalidad de los errores; afortunadamente, la prueba Modificada de Wald para Heterocedasticidad funciona aún cuando dicho supuesto es violado.10 9 Si deseáramos estimar un modelo de efectos aleatorios, en vez de fe indicamos re. 10 Para una discusión sobre esta prueba, consulta Greene, W. 2000. Econometric Analysis. Upper Saddle River, NJ: Prentice Hall, p. 598. Pontificia Universidad Católica del Perú 117 Datos de Panel La hipótesis nula de esta prueba es que no existe problema de heteroscedasticidad, es decir, i 2 2 para toda i=1…N, donde N es el número de unidades transversales (―mujeres‖ en nuestro ejemplo). Naturalmente, cuando la Ho se rechaza, tenemos un problema de heteroscedasticidad. Esta prueba puede implementarse en Stata con el comando xttest3 después de estimar el modelo de efectos fijos: . xtreg ln_wage age age2, fe . xttest3 Modified Wald test for groupwise heteroskedasticity in fixed effect regression model H0: sigma(i)^2 = sigma^2 for all i chi2 (4710) = 4.4e+35 Prob>chi2 = 0.0000 La prueba nos indica que rechazamos la Ho de varianza constante y aceptamos la Ha de heteroscedasticidad. Antes de abordar cómo solucionar nuestro problema de heteroscedasticidad, resulta conveniente analizar otro problema que surge de la estimación con datos tipo panel. - Correlación contemporánea Las estimaciones en datos panel pueden tener problemas de correlación contemporánea si las observaciones de ciertas unidades están correlacionadas con las observaciones de otras unidades en el mismo periodo de tiempo. Como discutimos en la sección sobre heterogeneidad, las variables dicotómicas de efectos temporales se incorporan al modelo para controlar por los eventos que afectan por igual a todas las unidades (personas) en un año dado. 118 Instituto de Informática STATA 11 para economistas La correlación contemporánea es similar, pero con la posibilidad de algunas unidades estén más o menos correlacionadas que otras. El problema de correlación contemporánea se refiere a la correlación de los errores de al menos dos o más unidades en el mismo tiempo t. En otras palabras, tenemos errores contemporáneamente correlacionados si existen características inobservables de ciertas unidades que se relacionan con las características inobservables de otras unidades. Por ejemplo, los errores de dos personas pueden relacionarse pero mantenerse independientes de los errores de las demás personas. Por ejemplo, si las unidades fueran departamentos de un país, una fuerte helada podría afectar a los departamentos agrícolas, disminuyendo la producción y por tanto el ingreso. Pero este efecto probablemente no se manifieste en los departamentos no agrícolas. El comando xttest2 de Stata ejecuta la prueba de Breusch y Pagan para identificar problemas de correlación contemporánea en los residuales de un modelo de efectos fijos. La hipótesis nula es que existe ―independencia transversal‖ (cross-sectional independence); es decir, que los errores entre las unidades son independientes entre sí. Si la Ho se rechaza, entonces existe un problema de correlación contemporánea.11 El comando xttest2 se implementa después de un modelo de efectos fijos. En nuestro ejemplo: . xtreg ln_wage age age2, fe . xttest2 Si el p-value del estadístico 2 indica que podemos rechazar la Ho; entonces también es necesario corregir el problema de correlación contemporánea. 11 Técnicamente, el comando xttest2 prueba la hipótesis de que la matriz de correlación de los residuales, obtenida sobre las observaciones comunes a todas las unidades transversales, es una matriz de identidad de orden N, donde N es el número de unidades transversales. Para una discusión de esta prueba, consulta Greene, W. 2000. Econometric Analysis. Upper Saddle River, NJ: Prentice Hall, p. 601. Pontificia Universidad Católica del Perú 119 Datos de Panel - Solución a los problemas de heterogeneidad, correlación contemporánea, heteroscedasticidad y autocorrelación Los problemas de correlación contemporánea, heteroscedasticidad y autocorrelación que hemos examinado pueden solucionarse conjuntamente con estimadores de Mínimos Cuadrados Generalizados Factibles (Feasible Generalizad Least Squares ó FGLS), o bien con Errores Estándar Corregidos para Panel (Panel Corrected Standard Errors ó PCSE). Beck y Katz (What to do (and not to do) with time-series cross- 12 section data, 1995) demostraron que los errores estándar de PCSE son más precisos que los de FGLS. Desde entonces, muchos trabajos en la disciplina han utilizado PCSE en sus estimaciones para panel 13 Stata ejecuta FGLS y PCSE con los comandos xtgls y xtpcse. Las opciones que ofrecen estos comandos dependen de los problemas detectados en las pruebas que hemos revisado. La tabla mostrada a continuación presenta los comandos ante problemas de correlación contemporánea, heteroscedasticidad y autocorrelación, y sus combinaciones. 12 Para una introducción técnica pero fácil de entender sobre las propiedades de FGLS y PCSE, ver: Nathaniel Beck, “Time-Series-Cross-Section Data: What Have We Learned in the Past Few Years?”, Annual Review of Political Science, 4: 271-93 (2001). 13 Hasta la fecha, el debate entre FGLS y PCSE continúa, y ya se han desarrollado algunos métodos alternativos. Como los cálculos son hechos por la computadora, y en la mayoría de casos no es costoso computacionalmente vale la pena estimar ambos métodos y comparar resultados. 120 Instituto de Informática STATA 11 para economistas Estos comandos no calculan automáticamente efectos fijos, por lo que en caso de ser necesario, se debe introducir variables dicotómicas con el comando xi. En nuestro ejemplo sobre el gasto estatal, hemos detectado problemas de heterogeneidad, heteroscedasticidad, correlación contemporánea autocorrelación. Para corregir estos problemas ejecutamos el comando: . xi: xtgls ln_wage age age2, panels (correlated) corr(ar1) ó el comando: . xi: xtpcse spend ln_wage age age2 i.idcode i.year, correlation(ar Pontificia Universidad Católica del Perú 121 y Datos de Panel 122 STATA 11 para economistas 6.2. Panel Dinámico El modelo básico de datos de panel dinámico es: El modelo puede sintetizarse en: Pontificia Universidad Católica del Perú 123 Datos de Panel ¿Cuándo conviene emplear el modelo de panel dinámico de Arellano - Bond? Cuando la variable dependiente (la que queremos explicar) presenta inercia en el tiempo en un contexto de datos de paneles apropiado aplicar panel dinámico. Ejemplo de estas variables son la participación de mercado de un banco en el mercado local, pues es razonable que si una firma controló el 40% del mercado en 2003 tenga una participación parecida en 2004. El número de trabajadores en una firma también presenta esta inercia pues los cambios tecnológicos ni los cambios en la escala suelen ser bruscos si no que se reparten en un período más de tiempo largo. Para modelar esta inercia se agregan rezagos de la variable dependiente, pero ello haría que tengamos variables dependientes al lado derecho de la ecuación, lo que causaría un problema de endogeneidad (y por ello los parámetros serían sesgados e inconsistentes). Para que ello no ocurra debemos emplear instrumentos. Para tratar el tema de la exogeneidad de las variables del lado derecho de la ecuación, estas se clasificaran en endógenas, exógenas y predeterminadas. Pero el empleo de instrumentos se realiza mediante las condiciones de ortogonalidad del Método Generalizado de Momentos. 124 Instituto de Informática STATA 11 para economistas Método Generalizado de Momentos: Planteamos las condiciones de ortogonalidad poblacionales: [ (w, )] = 0 El Método Generalizado de Momentos consiste hallar los estimadores que hagan mas cierta las condiciones de ortogonalidad, pero no en el sentido de la metodología de Máxima Verosimilitud, pues en GMM no se supone una forma específica para la función de densidad de las perturbaciones sino mas bien haciendo que las condiciones de ortogonalidad muestrales estén más cerca de cero. No decimos que sean cero todas las condiciones de ortogonalidad pues normalmente eso no es posible pues tenemos más condiciones de ortogonalidad que parámetros a estimar (problema de sobre identificación) si no que una medida ponderada de su cercanía a cero sea la menor posible. Esa medida ponderada de su cercanía a cero es una forma cuadrática (la cual es una forma de medir distancias, en este caso para que las ecuaciones de ortogonalidad). Pontificia Universidad Católica del Perú 125 Datos de Panel Se puede demostrar que la ponderación óptima es la matriz de covarianzas de las condiciones de ortogonalidad, de manera que las condiciones de ortogonalidad que tengan más varianza tengan menos peso en esa medida de distancia que las condiciones de ortogonalidad que tengan menor varianza. MGM: minimiza una forma cuadrática que es la medida de distancia de bn (c) a cero. An:= matriz de ponderaciones de los momentos. (Se empleará la inversa de la matriz de var-cov de las condiciones de ortogonalidad, por lo general) STATA tendrá entonces que minimizar una forma cuadrática, en la cual la dimensión de la matriz de covarianzas de las condiciones de momentos es crucial pues conforme aumente el número de periodos de tiempo y el número de rezagos aumentará la dimensión de esta, complicando la estimación. Con el comando set matsize es posible fijar hasta en 800 por 800 dicha matriz. En la metodología de Arellano-Bond primero se diferencian el modelo, supongamos que el modelo es: Lo que se obtiene es: 126 Instituto de Informática STATA 11 para economistas IMPORTANTE: Observe que la interpretación de los coeficientes no cambia debido a esta transformación del modelo pues siguen siendo los del modelo anterior. La matriz de instrumentos se forma del siguiente modo: Tenemos dos rezagos (por lo que perdemos dos observaciones por individuo), con la diferenciación se pierde una observación más por lo que el número de filas es de T-p-1. Como las xit xit contienen regresores estrictamente exógenos van a servir como sus propios instrumentos, por lo que tenemos k1 columnas al final de la matriz. Asumiendo que las it no están autocorrelacionadas, para cada período podemos emplear los rezagos de la dependiente como instrumentos: en t=4 podemos emplear y1, y2, para t=5 podemos emplear y1, y2, y3, hasta que para t=T podemos emplear y1, y2, y3,… yT-3, yT-2 Pontificia Universidad Católica del Perú 127 Datos de Panel Finalmente tenemos: Las variables endógenas se tratan del mismo modo que las variables dependientes rezagadas (siendo los rezagos de orden p o mayores instrumentos válidos, mientras que para las predeterminadas los rezagos p-1 o mayores son instrumentos válidos. Para el caso de paneles incompletos se eliminan las filas donde no hay datos y se reemplazan con ceros las columnas donde no se requieran datos. Para el modelo anterior: La matriz de covarianzas de Finalmente el vector de coeficientes es: 128 Instituto de Informática STATA 11 para economistas Ejemplo: . ds c1 emp indoutpt k yearm1 nL2 kL2 yr1976 yr1979 yr1982 ind wage n ys id wL1 ysL1 yr1977 yr1980 yr1983 year cap w rec nL1 kL1 ysL2 yr1978 yr1981 yr1984 En el ejemplo la variable w es el logaritmo neperiano del salario, mientras que la variable k es el logaritmo natural stock de capital de la i-ésima firma y la variable ks es el logaritmo natural del producto de la i-ésima firma. La variable dependiente es n que es el logaritmo del empleo en la i- ésima firma. Primero estimaremos un modelo con un solo rezago de la variable dependiente: . xtabond n w L.w Pontificia Universidad Católica del Perú 129 Datos de Panel Sargan test of over-identifying restrictions: chi2(27) = 109.75 Prob > chi2 = 0.0000 Arellano-Bond test that average autocovariance in residuals of order 1 is 0: H0: no autocorrelation z = -2.74 Pr > z = 0.0062 Arellano-Bond test that average autocovariance in residuals of order 2 is 0: H0: no autocorrelation z = -1.51 Pr > z = 0.1320 La hipótesis nula del contraste de Sargan es que las restricciones en exceso provenientes de la sobre identificación (tenemos mas condiciones de ortogonalidad que parámetros a estimar) son válidas (son muy cercanas a cero). El resultado obtenido podría deberse a la presencia de heterocedasticidad. La existencia de autocorrelación de primer orden en los residuos diferenciados no causa que los estimados sean inconsistentes, por lo cual el resultado obtenido no es grave. La autocorrelación de segundo orden en los residuos rezagados si es problemática pues podría causar que los estimados sean inconsistentes. Por ello buscaremos otras especificaciones . xtabond n l(0/1).w l(0/2).(k ys) yr1980-yr1984, lags(2) 130 Instituto de Informática STATA 11 para economistas Pontificia Universidad Católica del Perú 131 Datos de Panel Arellano-Bond test that average autocovariance in residuals of order 1 is 0: H0: no autocorrelation z = -3.94 Pr > z = 0.0001 Arellano-Bond test that average autocovariance in residuals of order 2 is 0: H0: no autocorrelation z = -0.54 Pr > z = 0.5876 xtabond n l(0/1).w l(0/2).(k ys) yr1980-yr1984, lags(2) robust xtabond n l(0/1).w l(0/2).(k ys) yr1980-yr1984, lags(2) twostep Observar que con la opción twostep no se rechaza la hipótesis nula del contraste de Sargan. Hasta este punto no hemos incluido variables endógenas ni variables predeterminadas en la estimación: La variables endógenas son las que tienen una relación contemporánea con la dependiente mientras que las predeterminadas son variables tales que los residuos estén no correlacionados con los valores actuales y rezagados de estas variables pero eso no ocurre (es decir están correlacionados) con sus valores futuros. . xtabond n l(0/1).ys yr1980-yr1984, lags(2) twostep pre(w, lag(1,.)) pre(k, lag(2,.)) Arellano-Bond dynamic panel-data estimation Number Group variable (i): id 132 of obs = 611 Number of groups = 140 Instituto de Informática STATA 11 para economistas Warning: Arellano and Bond recommend using one-step results for inference on coefficients Sargan test of over-identifying restrictions: chi2(86) = 89.45 Prob > chi2 = 0.3783 Arellano-Bond test that average autocovariance in residuals of order 1 is 0: H0: no autocorrelation z = -4.04 Pr > z = 0.0001 Pontificia Universidad Católica del Perú 133 Datos de Panel Arellano-Bond test that average autocovariance in residuals of order 2 is 0: H0: no autocorrelation z = -0.37 Pr > z = 0.7123 . xtabond n l(0/1).ys yr1980-yr1984, lags(2) twostep pre(w, lag(1,.) endog) pre(k, lag(2,.) endog) 134 Instituto de Informática STATA 11 para economistas Sargan test of over-identifying restrictions: chi2(74) = 74.92 Prob > chi2 = 0.4483 Arellano-Bond test that average autocovariance in residuals of order 1 is 0: H0: no autocorrelation z = -4.91 Pr > z = 0.0000 Arellano-Bond test that average autocovariance in residuals of order 2 is 0: H0: no autocorrelation z = -0.80 Pr > z = 0.4251. Pontificia Universidad Católica del Perú 135 Datos de Panel 136 Instituto de Informática STATA 11 para economistas 7. Introducción a la programación 7.1. Macros local y global Una herramienta básica en la programación en STATA es el uso de las macros que permiten realizar el trabajo de forma más eficiente. Se puede ver una macro en STATA como un ―alias‖ que tiene un nombre y un valor. Cuando el nombre de una macro es referenciado se puede obtener su valor. Una macro puede contener cualquier combinación de caracteres alfanuméricos y puede contener hasta 8000 caracteres. El valor de un macro puede ser modificado por otro comando. Existen dos tipos de macros en STATA definidas como local y global. El contenido de las macros global es definido mediante el comando global mientras que en el caso de las macros local es definido con el comando local. Las macros local existen sólo en el programa (ado) o el do-file definido. Es decir, si se abre otro programa o do- file las macros local utilizadas con anterioridad no estarán disponibles. La macro local es un contenido que puede mantener un objeto (como un nombre de una variable o un número) o un conjunto de objetos. Ejemplo local paises PER ARG PAR MEX di "`paises'" Las macros global existen para la duración de un programa o una sesión de STATA. Otra diferencia con respecto a las macros local es que la forma como se referencian. Ejemplo global paises PER ARG PAR MEX di "$paises" Pontificia Universidad Católica del Perú 137 Introducción a la programación Las macros global son utilizadas frecuentemente para guardar los ítems paramétricos de un programa, como puede ser un carácter string que contenga el nombre del directorio ―defult‖ en donde las bases de datos o los do-files serán accesados. Las macros de STATA son útiles para construir listas, contadores o índices de enlace (loop indices). Su uso puede ser extendido para retomar valores de los comandos de STATA (ver return). Se pueden utilizar una serie de funciones macro que pueden ser útiles para extraer etiquetas de una variable, extraer el número de columnas o filas de una matriz, entre otros. Ejemplo cd "…" use auto local x1: type labor 7.2. Procedimientos sistemáticos: forvalues y foreach STATA permite utilizar un solo comando en vez de distintos comandos para realizar modificaciones a los valores de una variable y enlazar variables que tienen un contenido similar. Las herramientas más potentes son los comandos forvalues y foreach. La sintaxis de estos comandos es muy familiar para usuarios de C y otros lenguajes de programación modernos. No se suele utilizar en mayor medida otros comandos como for (en desuso) o while (que requiere especificar un contador como una macro local). El comando forvalues permite enlazar valores consecutivos, repitiendo un conjunto de macros local a cada elemento definido en el ―rango‖ y ejecuta los comandos que se colocan entre corchetes. 138 Instituto de Informática STATA 11 para economistas Ejemplo: forvalues i=1(1)5 { display ‗i‘ } Se define la macro local i como un índice de enlace, siendo el rango 1(1)5. Se ejecutará el comando entre corchetes para cada valor en el rango. Asimismo, el rango se puede definir de distintas maneras. Ejemplo: forvalues i=1/5 { display `i' } El límite del rango se puede establecer mediante una macro. Ejemplo: local n 5 forvalues i=1/`n' { display ‗i‘ } Ejemplo: Si se tienen 4 variables x1, x2, x3 y x4 forvalues i=1/4 { generate double lnx ‘i‘ =log(x ‘i‘) summarize lnx ‘i‘ } El comando forvalues suele utilizarse para enlazar variables que tienen un componente numérico (entero) común consecutivo. En otros casos se suele utilizar el comando foreach. El comando foreach repite un conjunto de macros local a cada elemento de la lista (que incluyen macros local y global) y ejecuta los comandos que se colocan entre Pontificia Universidad Católica del Perú 139 Introducción a la programación corchetes. Como en el caso de forvalues una macro local es definida como un índice de enlace. El loop es ejecutado 0 o más veces, ejecutándose desde 0 si es que la lista está vacía. En vez de realizar el ciclo de acciones sobre un conjunto de valores numéricos, foreach especifica que el índice loop itera a través de los elementos de la macro local o global, de los nombres de las variables especificadas (varlist) o de los elementos explícito de elementos (numlist). Ejemplo: foreach z in PER ARG PAR MEX { generate double lnx`z'=log(x`z') summarize lnx`z' } El comando foreach puede trabajar con una lista de variables específicas varlist, un newvarlist de las variables que crea y un listado explícito de elementos numlist. foreach z of varlist x* { summarize ln`z' } 7.3. Escalares y matrices 7.3.1. Escalares STATA utiliza escalares y matrices. Los escalares pueden contener valores string (hasta 244 caracteres) o un único valor numérico. Los comandos de análisis (describe, sum, entre otros) de STATA dan los resultados como escalares numéricos (ver return). Adicionalmente, los escalares pueden ser utilizados para guardar resultados numéricos. 140 Instituto de Informática STATA 11 para economistas Ejemplo: scalar root2=sqrt(2) En el cálculo numérico es más fácil utilizar escalares. Si una macro contiene valores numéricos estos deben ser convertidos previamente, mientras que en el caso de los escalares no se requiere de ninguna transformación. Un escalar opera como una expresión. Es decir, no se puede especificar un escalar como parte de un rango, in range, en la medida que ningún valor será extraído. Se debe utilizar if exp desde que contiene una expresión numérica. Los comandos de estimación de STATA (reg, xtreg, entre otros) crean tanto escalares como matrices. Por ejemplo, con el comando reg se crea la matriz e(b) que contiene los estimadores de los parámetros, e(V) que contiene la matriz de varianzas y covarianzas de los estimadores. 7.4. Matrices STATA ha desarrollado un lenguaje matricial que soporta un amplio rango de operaciones matriciales. Con los comandos matrix tradicionales el tamaño de las matrices es limitado según las distintas versiones del STATA. Asimismo STATA posee de comandos especializados como –matrix accum- que calcula productos cruzados de matrices de cualquier número de observaciones. Hay también otras variaciones de dicho comando como -matrix glsaccum-, -matrix vecaccum- y -matrix opaccum-. matrix accum A = price weight mpg matrix list A Las matrices en STATA son útiles para guardar los resultados. También son una forma de presentar la información de manera organizada. Muchas operaciones no pueden ser realizadas con los comandos matrix tradicionales. Por ejemplo si Pontificia Universidad Católica del Perú 141 Introducción a la programación bien el comando matrix mkmat permite crear una matriz a partir de una lista de variables, el número de observaciones de la matriz es limitado. Por otro lado, los comandos clásicos y los del lenguaje MATA y en general cualquier lenguaje matricial tiene limitaciones a la hora de trabajar con expresiones matriciales complejas (panel, SUR, entre otros) sobretodo si se consideran la memoria disponible en la PC. En estos casos es preferible trabajar con enlaces que permitan simplificar el cálculo matricial. Por ejemplo en vez de realizar el cálculo matricial para estimar un SUR se puede generar un loop en donde se realice regresiones de distintas ecuaciones, los dos procedimientos dan el mismo resultado pero el último no requiere de tantos recursos informáticos. 7.5. Modulo MATA MATA es un lenguaje algebraico matricial usado por programas como Matlab o Gauss y entre sus virtudes se puede mencionar la eficiencia. Para acceder al modulo basta iniciar la sesión con la palabra MATA, a partir de ese momento todo lo convencional utilizado hasta este momento deja de funcionar siendo sólo posible ejecutar comandos que guarden relación con el módulo. Algunas utilidades que se deberían conocer son: Solicitar ayuda general del módulo: -help mata Solicitar ayuda específica: -help mata cholesky Búsqueda con palabra clave: -search mata determinant- Para cerrar la sesión MATA y volver al formato convencional del STATA se tiene que ejecutar la orden -end-. A modo de ilustración las siguientes líneas permiten cargar los datos a un formato matricial y estimar las pendientes bajo MCO de la siguiente especificación: price=f(mpg, weight). 1 sysuse auto 2 mata X=st_data(.,("mpg","weight","foreign")) 4 Y=st_data(.,("price")) 5 X=J(rows(X),1,1),X 6 invsym(X'X)*X'Y 142 Instituto de Informática STATA 11 para economistas Otra aplicación que ilustra la flexibilidad del comando y que prescinde convenientemente de la orden -end- es la siguiente: sysuse auto mkmat price mpg,matrix(y) mata: y2=st_matrix("y") mata: mean(y2) mata: rows(y2) mata: cols(y2) 7.6. Comandos return y ereturn Los principales comandos de análisis de STATA, incluidos los nuevos comandos que el propio usuario define, pueden ser clasificados en las siguientes clases: r-class: comandos diversos (excluidos los de estimación) tales como table, sumaries, entre otros. e-class: comandos de estimación como regress, xtreg, entre otros que estiman modelos estadísticos. Cada clase de comando determina si los resultados son guardados en r() o e(). Existen otras clases s-class, n-class y c-class que se utilizan con menor frecuencia (véase h return). Con el comando -return list- o -ereturn list-, según sea el caso, se pueden ver los elementos guardados en r() ( e()) correspondiente a los comandos de clase r (e). Ejemplos: cd "..." use auto des return list Pontificia Universidad Católica del Perú 143 Introducción a la programación La ejecución consecutiva de comandos r-class reemplazarán la lista return con los respectivos valores de return. Si se quiere trabajar con dichos item estos se tienen que guardar como macros local o como escalares. sum mpg return list di "La media estandariza es `r(mean)'/`r(sd)'" La mayoría de comandos e-class retornan cuatro tipos de objetos de STATA: escalares, macros, matrices y una función de STATA e(sample) que asigna 1 a cada observación incluida en la estimación y 0 en otro caso. reg mpg weight foreign ereturn list 144 Instituto de Informática STATA 11 para economistas 8. Análisis de datos con diseño muestral complejo Una de las ventajas que ofrece el Stata para el análisis de Encuestas como la ENAHO, con Diseño muestral complejo, es que permite calcular los estimadores teniendo en cuenta el diseño muestral de la misma (diferente al muestreo aleatorio simple – MAS -). Además, Stata proporciona estadísticos con los cuales se puede evaluar la confiabilidad del resultado en forma simultánea a su estimación. De esta manera el usuario está en la capacidad de interpretar y utilizar adecuadamente cada estimación proveniente de la encuesta. Los principales elementos que se deben tener en cuenta en el trabajo con datos de encuestas por muestreo son: Ponderación: En las encuestas por muestreo, las observaciones son seleccionadas mediante un proceso aleatorio, donde cada observación puede tener una probabilidad de selección diferente. La ponderación (o peso) de una observación (hogar, por ejemplo) es igual a la inversa de la probabilidad de pertenecer a la muestra. Es usual que luego del trabajo de campo se realicen ajustes sobre esta ponderación, debido, por ejemplo, al efecto de la ―No-Respuesta‖. Un peso wj de una observación j significa que la observación, j representa a wj elementos de la población. Si no se toman en cuenta las ponderaciones, las estimaciones que se obtengan estarán sesgadas. Conglomerados o cluster: Algunas veces se utiliza el muestreo por conglomerados, es decir las observaciones son muestreadas en grupos o ―clusters‖, por ejemplo, provincias dentro de departamentos, distritos dentro de provincias y finalmente viviendas dentro de los distritos seleccionados, que son el objetivo final del muestreo. Todas las observaciones de un mismo cluster no son independientes entre sÍ, si no se toma en cuenta este hecho, los errores estándar que se obtengan serán menores a los verdaderos. Pontificia Universidad Católica del Perú 145 Análisis de datos con diseño muestral complejo Estratos: En algunos casos, también se emplea el muestreo estratificado, donde diferentes grupos de observaciones o estratos, son muestreados en forma independiente. Al igual que el caso anterior, si no se toma en cuenta este hecho, se obtendrán sub estimaciones de los errores estándar verdaderos. Stata permite incorporar el DISEÑO MUESTRAL (ponderaciones, conglomerados y estratos) antes de ejecutar las estimaciones. Es decir, utiliza las fórmulas de estimación de estadísticos propias de cada tipo de muestreo. Todos los comandos para el análisis de datos provenientes de encuestas comienzan con las letras svy 8.1. Especificación del Diseño Muestral: SVYSET Encuestas como la Enaho, que posee un diseño complejo, es necesario especificar las variables que contienen las ponderaciones, los conglomerados y los estratos, antes de obtener cualquier estimación. 146 Instituto de Informática STATA 11 para economistas . svydes Estimación de Promedios: SVYMEAN Se utiliza para calcular promedio de variables cuantitativas Por defecto presenta el promedio estimado, el error estándar, el intervalo de 95% de confianza y el efecto de diseño de esta estimación Se pueden utilizar las opciones if y by. . svy: mean mieperho percepho Pontificia Universidad Católica del Perú 147 Análisis de datos con diseño muestral complejo Estimación de Proporciones: SVYPROP Presenta el número de observaciones, la proporción estimada y el error estándar de esta estimación de los casos de la muestra respecto a las categorías de una variable dada Se pueden utilizar las opciones if y by. . svy: prop pobreza Cruce de dos variables : SVY: TAB Produce una tabla de dos entradas con la proporción de la muestra que pertenece a cada celda (cruce da variables), respecto al total de la muestra. Para modificar el contenido de la tabla se deben especificar los estadísticos después de una coma 148 Instituto de Informática STATA 11 para economistas En caso de que se desee estimar las proporciones respecto a filas o columnas, basta con indicar row o column después de la coma. Se puede utilizar la opción if . svy: tab estrato pobreza Pontificia Universidad Católica del Perú 149 Análisis de datos con diseño muestral complejo Pearson: Uncorrected chi2(8) = 624.9913 Design-based F(6.75,6288.86) = 45.3989 P = 0.0000 . svy: tab,se ci deff 150 Instituto de Informática STATA 11 para economistas . svytab pobreza estrato if (urru5==1) Regresión Lineal: SVY: REG Produce la estimación de un modelo de regresión lineal con variable dependiente cuantitativa. Por defecto, el comando svyreg muestra el valor estimado, el error estándar, el intervalo de 95% de confianza y el efecto del diseño de cada uno de los coeficientes de regresión Se pueden utilizar las opciones if y by Pontificia Universidad Católica del Perú 151 Análisis de datos con diseño muestral complejo 152 Instituto de Informática STATA 11 para economistas . svy: reg gashpcmd inghpcmd Survey linear regression . svyreg gashpcmd inghpcmd mieperho percepho Survey linear regression Pontificia Universidad Católica del Perú 153 Análisis de datos con diseño muestral complejo . svyreg gashpcmd inghpcmd mieperho percepho if(urru5==1) Survey linear regression . svyreg, deft Survey linear regression 154 Instituto de Informática STATA 11 para economistas NOTAS Pontificia Universidad Católica del Perú 155 NOTAS 156 Instituto de Informática STATA 11 para economistas Pontificia Universidad Católica del Perú 157 NOTAS 158 Instituto de Informática