Brayan Rojas Darwin Marcelo Gordillo
R
El Distribuidor de Software Científico Líder en Latinoamérica
SOFTWARE shop 3020 Issaquah Pine Lake Rd Sammamish WA, 98075 USA ________________________________________________________________________________ Copyright © 2013 por SOFWARE Shop Todos los derechos Reservados
Ni la totalidad ni parte de esta publicación pueden reproducirse, registrarse o transmitirse, por un sistema de recuperación de información, en ninguna forma ni por ningún medio, sea electrónico, mecánico, fotoquímico, magnético o electroóptico, por fotocopia, grabación o cualquier otro, sin permiso previo por escrito del autor.
DARWIN MARCELO Darwin Marcelo tiene nueve años de experiencia en investigación aplicada en economía a través de distintos países de América Latina. El principal área de enfoque de su trabajo ha sido el desarrollo sostenible, con énfasis en infraestructura, desarrollo rural, violencia, empleo y pobreza. Posee fuertes conocimientos en análisis y habilidades en econometría aplicada, métodos de evaluación de impacto, modelos estadísticos y manejo de software como Stata, Eviews, Systat, Rats, GIS, Axum y MI Win. Cuenta con cuatro años de experiencia en el departamento de economía, desarrollo sostenible para América Latina y el Caribe del Banco Mundial y 5 años de experiencia como economista en el Departamento Nacional de Planeación de Colombia. Así mismo, ha trabajado como consultor externo en el Instituto de Políticas de Desarrollo de Colombia (IPD), el Programa Nacional de Desarrollo Humano (PNDH), el Departamento Nacional de Estadística (DANE), la Presidencia de la Republica de Colombia, y se ha desempeñado como profesor en la facultad de economía de la Universidad Central y de la Universidad Javeriana.
BRAYAN ROJAS Economista de la Universidad Nacional de Colombia, con especialización en Gestión de Riesgo y Control de Instituciones Financieras de la Universidad de los Andes, realizando posgrado en estadística en la Universidad Nacional de Colombia. Profesor de la Universidad del Rosario y de la Universidad Piloto, trabajó en el Área de Investigaciones del Banco de la República de Colombia. Posee fuertes conocimientos en análisis y habilidades en econometría aplicada, modelos estadísticos y manejo de software como Stata, Eviews, Risk Simualtor, Crystal Ball, @Risk, Rats, entre otros. Ha impartido varias capacitaciones en temas de estadística y riesgos financieros a importantes entidades como bancos centrales, ministerios, bancos y empresas reguladoras en el sector financiero, universidades a nivel Latinoamérica.
CONTENIDO
1.
INTRODUCCIÓN ........................................................................................................................... 1
1.1
2.
Descripción del libro ...............................................................................................................................1
MANEJO FUNDAMENTAL DE STATA 12 ....................................................................................... 3
2.1 2.2 2.3
Conociendo el entorno de Stata .............................................................................................................3 Barras .....................................................................................................................................................5 El menú de ayuda ...................................................................................................................................5
2.3.1 2.4 2.5 2.6 2.7 2.8 2.9 2.10
Tipos de archivo .....................................................................................................................................8 Estructura de comandos .........................................................................................................................9 Ventana de comandos ..........................................................................................................................10 Configuración de la memoria de Stata ..................................................................................................11 Cambiar el directorio de trabajo de Stata .............................................................................................11 Bases de datos de ejemplo ..................................................................................................................11 Tipos de variables.................................................................................................................................12
2.10.1 3.
3.4
Fundamentos de bases de datos..........................................................................................................15
3.1.1
Creación de un archivo log ........................................................................................ 15
3.1.2
Abrir una base de datos ............................................................................................ 16
3.1.3
Importar una base de datos .CSV o TXT .................................................................... 16
3.1.4
Importar una base de datos .XLS o .XLSX .................................................................. 17
3.1.5
Importar otros tipos de archivo ................................................................................ 20
Salvando una base de datos ................................................................................................................20 Descripción de la base de datos ...........................................................................................................20
Cargar una base de datos del programa ........................................................................... 21
Observar los datos............................................................................................................. 21
Describir los datos ............................................................................................................. 21 Creación de Variables ..........................................................................................................................22
3.4.1 3.5 3.6 3.7 3.8 3.9 3.10
Formato de las variables: .......................................................................................... 13
MANEJO DE BASE DE DATOS ..................................................................................................... 15
3.1
3.2 3.3
Actualizaciones en Stata:............................................................................................. 8
Extensiones en la creación de variables .................................................................... 26
Ordenar variables y bases de datos .....................................................................................................26 Cálculos por grupos ..............................................................................................................................27 Codebook e Inspect ..............................................................................................................................28 Conservar y recargar bases de datos ...................................................................................................29 Filtros de la base de datos ....................................................................................................................29 Administrador de variables ...................................................................................................................30
3.10.1
Rename ..................................................................................................................... 32
3.10.2
Label Variable ............................................................................................................ 32
3.10.3
Notes ......................................................................................................................... 32
3.11 3.12
3.13
3.14
3.15
3.16 3.17 3.18
3.19
Creación de categorías .........................................................................................................................32 Modificación y transformación de variables ..........................................................................................34
3.12.1
Recode ....................................................................................................................... 34
3.12.2
División de Variables de texto ................................................................................... 36
Combinación de bases de datos...........................................................................................................36
3.13.1
Combinación Vertical – Append ................................................................................ 36
3.13.2
Combinación Horizontal – Merge ............................................................................. 37
Cambio en la organización de los datos ...............................................................................................39
3.14.1
Collapse ..................................................................................................................... 39
3.14.2
Reshape ..................................................................................................................... 40
3.14.3
Xpose ......................................................................................................................... 43
3.14.4
Stack .......................................................................................................................... 44
Problemas en el manejo de bases de datos .........................................................................................45
3.15.1
Replicar información ................................................................................................ 45
3.15.2
Verificación de datos ................................................................................................. 46
3.15.3
Contador y reporte de datos repetidos..................................................................... 47
Análisis de duplicados ..........................................................................................................................47 Creación de programas – editor de texto ..............................................................................................50 Ejemplo aplicado ..................................................................................................................................51
3.18.1
Cambiando la orientación de la base de datos: De horizontal a vertical y viceversa 53
3.18.2
Ejercicio ..................................................................................................................... 53
Comandos usados ................................................................................................................................54
3.19.1
Otros comandos recomendados ............................................................................... 55
capture ...................................................................................................................................... 55 4. 4.1 4.2 4.3 4.4 4.5
4.6
4.7 4.8
ANÁLISIS ESTADÍSTICOS CON STATA ......................................................................................... 56 Estadística descriptiva ..........................................................................................................................57 Ponderadores -weight- ........................................................................................................................58 Calculo de medias ................................................................................................................................58 Intervalos de confianza .........................................................................................................................59 Pruebas de hipótesis ............................................................................................................................60
4.5.1
Media ........................................................................................................................ 60
4.5.2
Varianza ..................................................................................................................... 61
4.5.3
Proporciones ............................................................................................................. 61
Manejo de tablas de datos ....................................................................................................................61
4.6.1
Tabstat ....................................................................................................................... 62
4.6.2
Tabulate (tab) ............................................................................................................ 63
4.6.3
Table .......................................................................................................................... 64
Pruebas no paramétricas ......................................................................................................................66 Ejemplo aplicado ..................................................................................................................................68
4.9
4.8.1
Comandos Básicos ..................................................................................................... 68
4.8.2
Ayuda visual table y tabstat ..................................................................................... 69
4.8.3
Tablas de contingencia .............................................................................................. 71
4.8.4
Tablas de frecuencia.................................................................................................. 72
4.8.5
Correlaciones............................................................................................................. 73
4.8.6
Prueba para la media ................................................................................................ 74
4.8.7
Prueba para detectar normalidad ............................................................................. 75
4.8.8
Pruebas para la media: dos muestras independientes ............................................. 75
4.8.9
Comparación de k medias independientes ............................................................... 76
4.8.10
Exportar tablas .......................................................................................................... 79
4.8.11
Ejercicio ..................................................................................................................... 80
Comandos usados ................................................................................................................................80
4.9.1 5. 5.1 5.2 5.3 5.4
GRAFICAS CON STATA ............................................................................................................... 82 Histograma ...........................................................................................................................................84 Gráfico de tortas ...................................................................................................................................85 Graficas twoway ...................................................................................................................................87 Editor de gráficos de Stata ...................................................................................................................90
5.4.1 5.5 5.6 5.7 5.8 5.9 5.10 5.11
5.12
6. 6.1 6.2 6.3 6.4 6.5
Otros comandos recomendados ............................................................................... 81
Haciendo doble clic sobre el área de la grafica ......................................................... 91
Gráfico de series de tiempo ..................................................................................................................92 Gráfico de dispersión ............................................................................................................................93 Gráfico de puntos .................................................................................................................................95 Gráfico de barras ..................................................................................................................................96 Generando Funciones ..........................................................................................................................98 Combinando gráficas ............................................................................................................................98 Ejemplo aplicado ..................................................................................................................................99
5.11.1
Transformaciones Tukey ........................................................................................... 99
5.11.2
Gráficos de matriz ................................................................................................... 100
5.11.3
Gráficos de líneas .................................................................................................... 101
5.11.4
Edición de gráficos .................................................................................................. 101
5.11.5
Gráfica de histogramas............................................................................................ 102
5.11.6
Diagramas de dispersión ......................................................................................... 103
5.11.7
Exportar gráficos ..................................................................................................... 105
Comandos usados ..............................................................................................................................107
REGRESIÓN LINEAL EN STATA ................................................................................................. 108 Ejercicio ..............................................................................................................................................108 Descripción estadística de la información ...........................................................................................109 Relación lineal entre las variables dependientes e independientes ....................................................109 Representación gráfica de las relaciones entre variables ...................................................................110 Estimación del modelo lineal de regresión .........................................................................................112
6.6
6.7
6.5.1
Pruebas de hipótesis lineales .................................................................................. 114
6.5.2
Ejercicio ................................................................................................................... 114
Comprobación del cumplimiento de los supuestos de M.C.O. ...........................................................115
6.6.1
Multicolinealidad (Asociación lineal entre variables) ............................................. 115
6.6.2
Homocedasticidad ................................................................................................... 115
6.6.3
Normalidad de los residuos..................................................................................... 117
6.6.4
Exogeneidad de las variables independientes ........................................................ 119
6.6.5
Ejercicio ................................................................................................................... 120
Pronóstico ...........................................................................................................................................120
6.7.1 Representación gráfica del pronóstico de la variable dependiente y su relación con los regresores .......................................................................................................................... 120 6.7.2 6.8 6.9
6.10
7. 7.1
7.2
7.3
7.4
Exportar tabla de contenido ................................................................................................................121 Ejemplo aplicado ................................................................................................................................122
6.9.1
Prueba de hipótesis ................................................................................................. 123
6.9.2
Supuestos para mínimos cuadrados ordinarios ...................................................... 123
Comandos usados ..............................................................................................................................127
MODELOS DE VARIABLE DEPENDIENTE BINARIA: MODELOS LOGIT Y PROBIT ....................... 128 Representación de las relaciones entre variables ..............................................................................129
7.1.1
Participación y Género ............................................................................................ 129
7.1.2
Participación y Nivel Educativo ............................................................................... 130
7.1.3
Participación y Edad ................................................................................................ 131
El modelo tipo Logit encuesta Casen 2006. .......................................................................................131
7.2.1
Interpretación de resultados................................................................................... 132
7.2.2
Odds - Ratio (p/q) .................................................................................................... 133
7.2.3
Post – estimación .................................................................................................... 133
Modelo Lineal de probabilidad y modelo tipo Probit ...........................................................................135
7.3.1
Modelo Lineal .......................................................................................................... 135
7.3.2
Modelo tipo Probit .................................................................................................. 136
7.3.3
Comprobación de supuestos ................................................................................... 139
7.3.4
Pronóstico ............................................................................................................... 143
7.3.5
Ejercicio ................................................................................................................... 143
Ejemplo aplicado ................................................................................................................................144
7.4.1 7.5
8.
Ejercicio ................................................................................................................... 121
Modelos con variable dependiente binaria MLP, Logit y Probit ............................ 144
Comandos usados ..............................................................................................................................148
MODELOS DE SERIES DE TIEMPO ............................................................................................ 149
8.1
Serie de tiempo en Stata modelos autorregresivos de media movil (arma) .......................................149
8.1.1
Generación de variables con formato de fecha ...................................................... 149
8.1.2
Designando la variable que representa al tiempo .................................................. 150
8.1.3
Variables con rezago ............................................................................................... 151
8.2 Metodología Box Jenkins (BJ) aplicada al caso de selección y estimación de un modelo arma para pronóstico de la inflación. ................................................................................................................................152
8.3
8.4
9. 9.1
8.2.1
Fase de identificación .............................................................................................. 152
8.2.2
Fase de estimación .................................................................................................. 154
8.2.3
Fase de verificación y diagnostico ........................................................................... 155
8.2.4
Pronósticos .............................................................................................................. 156
8.2.5
Ejercicio ................................................................................................................... 157
8.2.6
Ejemplo aplicado: FILTROS, ARIMA, SARIMA. ......................................................... 158
Modelos ARCH y GARCH, modelo condicional autorregresivo generelazidado con heterocedasticidad 171
8.3.1
Antecedentes .......................................................................................................... 171
8.3.2
El modelo GARCH(1,0) ............................................................................................. 172
8.3.3
Metodología ARCH EN STATA ................................................................................. 173
8.3.4
Ejemplo aplicado ..................................................................................................... 173
Comandos usados ..............................................................................................................................179
MODELOS DE DATOS PANEL O LONGITUDINALES .................................................................. 179 Análisis de datos panel .......................................................................................................................180
9.1.1 9.2
Estructura de bases de datos panel ........................................................................ 181
Ejemplo Práctico – El caso de la CASEN ...........................................................................................182
9.2.1
Gráficos de evolución .............................................................................................. 184
9.2.2
Modelos econométricos para datos de panel......................................................... 187
9.2.3
Comparación de modelos ....................................................................................... 192
9.2.4
Interpretación de los parámetros de efectos fijos. ................................................. 193
9.3
Comandos usados ..............................................................................................................................193
10.
INTRODUCCIÓN A LA PROGRAMACIÓN .............................................................................. 195
10.1 10.2
Local macros ......................................................................................................................................195 Creando ciclos ....................................................................................................................................195
10.3
10.2.1
Comando IF ............................................................................................................. 195
10.2.2
Comando For ........................................................................................................... 196
10.2.3
Comando Forvalues ................................................................................................. 196
10.2.4
Comando While: ...................................................................................................... 196
ESCALARES Y MATRICES ...............................................................................................................196
10.3.1
Ejercicio ................................................................................................................... 199
11.
TRUCOS CON STATA ............................................................................................................ 200
11.1 11.2 11.3 11.4 11.5
Algunos consejos con Stata ...............................................................................................................200 Ejecutando comandos en Stata sin resultados (quietly) .....................................................................203 Herramienta de calificación de Stata 12 .............................................................................................205 Archivos en PDF de logs y gráficas con Stata 12 ...............................................................................207 Material de apoyo ...............................................................................................................................209
12.
BIBLIOGRAFIA ...................................................................................................................... 210
1. INTRODUCCIÓN
Hoy en día es común encontrar diferentes aplicaciones computacionales capaces de realizar sin fin de procedimientos en milésimas de segundo, desde hace varios años el computador ha sido una herramienta muy útil para las diferentes áreas del conocimiento y las ciencias económicas no han sido la excepción, los grandes avances teóricos han llevado a necesitar cada vez más de las aplicaciones computacionales para poder pasar de la teoría a la práctica. Las ciencias económicas, sociales y aplicadas se han vinculado desde hace varias décadas a las ciencias puras para poder por medio de los métodos cuantitativos verificar los hechos sociales, el uso de la estadística, la matemática y la física cada día van en incremento; pero de igual forma éstos métodos han necesitado de diferentes recursos para su aplicación, es en busca de suplir estas necesidades que Stata Corp se ha comprometido día a día en apoyar al desarrollo de la teoría con la práctica haciendo uso del total de recursos disponibles. Se aclara que Stata no es un software libre ni gratuito, para poder acceder a él es necesario adquirir un plan de licenciamiento, para mayor información ingresar a www.stata.com. Una de las ventajas del software es la posibilidad de trabajo por ambiente GUI (interactivo) y/o por ambiente de comandos con una programación bastante potente, incluyendo un lenguaje de programación para matrices conocido como MATA. Este material es dirigido a todo tipo de usuario, para el estudiante que se está involucrando al mundo de la estadística y econometría, el docente que utiliza la herramienta para impartir sus clases usando para ello un software de alto nivel como es Stata y para profesionales e investigadores que día a día requieren una herramienta que les sirva para apoyar sus labores y sus investigaciones. El documento se ha dividido en 11 capítulos, el primero comprende esta introducción, los cuatro siguientes se podrá encontrar información sobre la capacidad de manejo de Stata 12, manejo en la bases de datos y manipulación de datos, estadística descriptiva, así como la presentación de resultados por medio de gráficas y tablas; en el capítulo 6 encontrará el tema de regresión, capítulo 7 modelos de regresión con variable discreta, capítulo 8 modelos de series de tiempo para tratar los temas de filtros, ARIMA y ARCH, capítulo 9 modelos de datos de panel y los últimos dos capítulos es introducción a la programación y algunos trucos y recomendaciones. 1.1
Descripción del libro
Este manual es de carácter académico y representa una guía para los usuarios de Stata.
1
El manual contiene 216 páginas, las cuales describe los principales usos para un usuario de diferente nivel y estudios. Para el mejor entendimiento del manual se describe el siguiente cuadro: Descripción
Características
Comando
Tipo de Letra cursiva, fuente Arial, tamaño de letra 11.
Ejemplo del comando
Tipo de Letra cursiva, fuente Arial, tamaño de letra 9, antecedido de un “.”
Notas o recomendaciones
Resaltado en un cuadro de texto
Rutas de acceso por medio de los menús
Se describe el nombre del Menú seguido por el símbolo “”
Mensajes de Error
Color de Fuente Rojo Tabla 1. Descripción y características del manual
2
2. MANEJO FUNDAMENTAL DE STATA 12 Stata es un programa estadístico para investigadores de diferentes disciplinas, como bioestadísticos investigadores sociales y económicos. Los diferentes tipos de análisis integrados a Stata están documentados y soportados teóricamente por numerosos documentos, publicaciones y revistas. Los manuales de Stata reúnen en 21 volúmenes con ejemplos estadísticos, explicaciones teóricas, métodos, fórmulas y documentos de referencia (ver www.stata.com/manuals/). Al tratarse de un programa en ambiente Windows, su interface es similar a la de todos los programas bajo este ambiente. Nota: Además del sistema operativo Windows, Stata Corp ha desarrollado la plataforma para los sistemas operativos en Mac y Unix, con sus respectivos manuales de introducción.
Stata está disponible en 4 tipos de versión. Small Stata
Versión estudiantil de Stata
Intercooled Stata
Versión estándar de Stata
Stata/SE
Versión especial de Stata para manejo de bases de datos grandes.
Stata/MP
Versión especial de Stata diseñada para trabajar en equipos con más de un procesador o núcleo (2 a 32 procesadores) Tabla 2. Tipos de versión Stata
A continuación se presentan las principales diferencias entre las versiones Intercooled y SE de Stata1: Small Número de observaciones Número de Variables
Stata/IC
Stata/MP and Stata/SE
1,200
2,147,483,647
2,147,483,647
99
2,047
32,767
Tabla 3. Características de versión la Stata
2.1
Conociendo el entorno de Stata
Una vez que se hace clic en el icono de Stata en el menú de inicio, se despliegan los siguientes cuadros de trabajo. Estas ventanas constituyen el cuerpo básico Stata para llevar a cabo un análisis de datos, teniendo una interface bastante amigable. 1
Para conocer todas las diferencias entre las versiones de Stata, dirigirse a la ayuda por medio del comando help limits.
3
VENTANA DE REVISIÓN
VENTANA DE VARIABLES
VENTANA DE RESULTADOS
VENTANA DE COMANDOS
VENTANA DE PROPIEDADES DE VARIABLES
Figura 1. Ventana de Stata
Ventana de Variables:
Muestra el listado de variables de la base de datos activa.
Ventana de Comandos:
En este cuadro se escriben y almacenan las líneas de comandos, si se desea recuperar un comando previo puede utilizar las teclas RePág o AvPág y podrá autocompletar el nombre de la variable utilizando la tecla TAB.
Ventana de Resultados:
Permite visualizar la sintaxis, y los resultados de los procedimientos ejecutados por el usuario. Aquí encontrará el logo de Stata, indicando la versión y el tipo de licencia y el número máximo de variables a importar. Una de las características de ésta ventana es que por medio de colores el programa informa si un comando ha sido correctamente ejecutado, si aparece en color negro no hubo problema en la realización, rojo indicar error y el azul es un hipervínculo al menú de ayuda.
Ventana de Revisión:
Bitácora que permite llevar un completo registro de todos los procedimientos ejecutados durante una sesión de Stata ya sea que se ejecutaron por el ambiente GUI, por la ventana de comandos o por un editor .do. Una de las propiedades de la ventana Review es que si se desea repetir un comando simplemente debe hacer doble clic sobre el comando deseado y Stata lo ejecutará de nuevo. 4
Ventana de Propiedades: Presenta la información de cada variable, como nombre, tipo de variable, formato, las notas de la base de datos (puede usar el comando notes para verlas en la ventana de resultados), entre otras características. 2.2
Barras
Barra de Nombre
Barra de Menús Barra de Herramientas Figura 2. Menú de Stata
Barra de Nombre:
Indica la versión de Stata disponible, el nombre y la ruta de la base de datos activa.
Barra de Menús:
Es el conjunto de las diferentes herramientas que tiene Stata las cuales le permiten al usuario cargar, transformar, modificar, analizar, graficar y solicitar información y ayuda del programa.
Barra de Herramientas:
Es el conjunto de íconos de acceso rápido a herramientas fundamentales como son abrir, salvar, creación de un archivo Log, un archivo .do, abrir el editor, el visor y el administrador de variables.
2.3
El menú de ayuda
Stata ha incorporado a partir de la versión 11 un conjunto de nuevas opciones en el menú de ayuda para facilitarle al usuario la mejor forma de entender cómo funciona el programa. Una de las novedades principales es que se ha agregado la opción de tener disponibles los manuales de Stata en formato PDF. Para acceder a los manuales de ayuda debe seguir la ruta Help PDF Documentation El menú de ayuda de Stata le permite:
Ver el índice de contenidos del programa
5
Buscar información sobre algún tema, la rutina que permite ejecutarla en Stata, o el sitio desde donde es posible descargar la macro para alimentar el programa.
Obtener ayuda sobre algún comando de Stata
Listar y descargar las últimas actualizaciones del programa.
Instalar programas de Stata escritas por otros usuarios, desde el “Stata Journal” o del boletín técnico “Stata Technical Bulletin”.
Acceder a lugares de interés en el sitio Web de Stata.
El sistema de ayuda para los comandos de Stata es una de las herramientas que más rápidamente puede familiarizar al usuario con el manejo de Stata. Alternativamente al sistema de ventanas, el usuario puede digitar en el cuadro de comandos help seguido del comando del cual desea información. Por ejemplo al digitar en el cuadro de comandos: help describe emerge la siguiente ventana
Figura 3. Ayuda de Stata
6
La ayuda de Stata ofrece información sobre:
La sintaxis completa y abreviada de letra(s) subrayadas) de cada comando,
Descripción del comando,
Opciones adicionales para ejecutar el comando,
Ejemplos sobre cómo usar el comando,
Hipervínculos a otros comandos relacionados y/o similares y,
El manual impreso de Stata en el que puede consultar los detalles sobre el comando.
Con frecuencia, el usuario desconoce el nombre del comando específico que realiza algún procedimiento en Stata. En estos casos es conveniente realizar una búsqueda temática por medio del comando search. A través de este comando Stata realiza una búsqueda en línea en:
Los ejemplos oficiales de Stata disponibles en su sitio web,
El sitio de preguntas frecuentes “Frequently Asked Questions” de Stata,
Ejemplos en línea compilados por la universidad de UCLA,
Las referencias bibliográficas en “Stata Journal” y “Stata Technical Bulletin”.
Por ejemplo, suponga que se quiere calcular en Stata el coeficiente de concentración gini (procedimiento muy conocido en economía y estadística), pero no se sabe si Stata realiza este cálculo y, además, si es posible hacerlo, no se conoce el comando para ejecutarlo. En estos casos el comando search resulta de gran ayuda. Por ejemplo al escribir en el cuadro de comandos . search gini
Se despliega el siguiente cuadro de ayuda:
7
Figura 4. Comando search
En el cuadro de ayuda aparecen en azul hipervínculos a sitios oficiales (Stata Journal “SJ”, o Stata Technical Bulletin “STB”) desde donde se pueden descargar macros relacionadas con el procedimiento que calcula el coeficiente de concentración gini. 2.3.1
Actualizaciones en Stata:
Automáticamente Stata hace actualizaciones periódicas del programa. Sin embargo el usuario puede pedir manualmente al programa que se actualice a través del comando update así: . update all . adoupdate, update
2.4
Tipos de archivo
Antes de iniciar una sesión de trabajo es importante tener en cuenta que Stata opera a través de diferentes tipos de archivos.
8
Tipo de Archivo
Extensión
Archivos de datos
*.dta
Archivos gráficos
*.gph
Bitácoras de salida
*.smcl
Archivos de comandos
*.do
Archivos de programación
*.ado
Tabla 4. Tipos de archivos
2.5
Estructura de comandos
La creación de las variables se realiza por medio del comando generate, los comandos en Stata no son necesarios escribirlos en su totalidad. La mayoría de los comandos pueden ser reducidos en un prefijo, para conocer el prefijo de cada comando escriba help nombre del comando y en la ayuda, aparecerá subrayado el nombre hasta cierto carácter indicando que puede usar solamente ese texto para ejecutar el comando, por ejemplo g es igual a generate [by varlist:] Command [varlist] [=exp] [if exp] [in range] [weight] [using filename] [,options] Por ejemplo:
Se debe tener en cuenta que Stata distingue entre letras mayúsculas y minúsculas. Todos los comandos del programa se deben escribir en letras minúsculas. De lo contrario el programa no lo reconoce. Los paréntesis cuadrados indican que no es un carácter obligatorio dependiendo el comando específico. Es posible usar con Stata prefijos para algunos comandos, por ejemplo, el comando regress que permite realizar el procedimiento de regresión se puede ejecutar digitando solamente los tres primeros caracteres, es decir al tener reg ejecuta la misma función que al escribir regress. Para conocer mayor información sobre la estructura de los comandos de Stata, busque información así: help syntax
9
2.6
Ventana de comandos
Es común encontrar en las ventanas emergentes de Stata el nombre del comando que permite realizar la instrucción que se le ordenará al programa para que realice, por ejemplo, al seguir la ruta File Import Text Data created by a spreadsheet En este caso es el comando insheet. A continuación se explican algunas características generales de las ventanas emergentes de Stata para la realización de procedimientos, este manual no presentará las ventanas en las cuales se ejecutan las instrucciones sino los comandos y las opciones correspondientes.
Descripción del comando
Comando
Ayuda de la instrucción
Copiar como comando Limpiar la ventana
Ejecutar
No Ejecutar
Figura 5. Características de una ventana
Ejecutar y mantener la ventana activa
Como se menciono anteriormente en la parte superior de cada ventana aparece el nombre del comando correspondiente, si el usuario desea llamar una ventana puede hacerlo desde la ventana de comandos por medio de db nombre_comando. 10
2.7
Configuración de la memoria de Stata
Stata funciona exclusivamente desde la memoria RAM. El programa únicamente interactúa con el disco duro del computador cuando se hacen salvados de bases de datos, gráficos, archivos log, o archivos de comandos. En la versión 12, Stata configura automáticamente el tamaño de la memoria para poder trabajar con bases de datos muy grandes. Para versiones inferiores a la 12 las versiones SE y MP del programa trabajan con 10 megas de memoria RAM. Sin embargo, cuando se trabaja con bases de datos muy grandes, es posible configurar la cantidad de memoria RAM disponible para una sesión de trabajo a través del comando set memory.2 Por ejemplo, para trabajar con 100 megas de memoria RAM la sintaxis es3: set mem 100m
Es muy importante que antes de empezar una sesión de trabajo el usuario configure la cantidad de memoria RAM que necesita de lo contrario emergerá el siguiente error: no room to add more observations r (901); 2.8
Cambiar el directorio de trabajo de Stata
La sintaxis para cargar y salvar datos puede ser muy extensa dependiendo de la ruta de acceso a las bases de datos o el lugar en el disco duro donde se quieran almacenar los resultados. Una forma práctica de abreviar la sintaxis en ambos casos consiste en indicarle a Stata, antes de comenzar la sesión de trabajo, el lugar en el disco duro de donde se desean tomar los datos y donde se quieren almacenar los resultados. Este procedimiento se lleva a cabo a través del comando cd así: . cd "C:\...."
La otra opción es por medio del Menú File Change Working Directory Entre comillas se debe encontrar la dirección o ruta de la carpeta donde se encuentran las bases de datos que serán empleadas en la sesión de trabajo de Stata. 2.9
Bases de datos de ejemplo
En el momento en que Stata se instala en su equipo se incluyen bases de datos de ejemplo las cuales le permitirán trabajar con el software, tenga en cuenta estos archivos 2
Si desea conocer qué versión tiene de Stata y la configuración de la memoria y la licencia del programa escriba el comando about o creturn list. 3 Se recomienda revisar la ayuda sobre el comando set y el comando memory
11
dado que la ayuda en muchas ocasiones se referencia a las bases de datos del software, para acceder a ellas siga la ruta File Example Datasets Example datasets installed with Stata o para acceder a todas las bases de datos seleccione Stata 12 manual datasets pero debe tener acceso a internet. El comando asociado es: * para ver el directorio de bases de ejemplo en su equipo * cargará la base auto.dta que es una base de ejemplo de Stata
. sysuse dir . sysuse auto.dta
2.10 Tipos de variables Una de las preguntas comunes en el manejo de un software estadístico es cómo el programa clasifica o categoriza las variables, es decir que formato es posible asignarle a una variable, para ello es necesario primero que el usuario tenga claro el tipo de variable. Las variables se pueden dividir de acuerdo al siguiente esquema:
VARIABLE
CUANTITATIVA
Continua
CUALITATIVA
Discreta
Ordinal
Nominal
Figura 6. Tipo de variables F
Stata es “case sensitive”, es decir, distingue entre mayúsculas y minúsculas, de forma que las variables var1 es diferente a Var1. Para Stata se manejan los datos cuantitativos por diferentes tipos de variables los cuales se diferencian por el rango de los datos o por el tamaño en el número de caracteres disponibles a continuación se presenta una tabla que describa los tipos de datos.
12
RANGO TIPO DE VARIABLE
FORMATO MÍNIMO
MÁXIMO -127
100
%8.0g
-32,767
32,740
%8.0g
-2,147,483,647
2,147,483,620
%12.0g
Float
-1.70141E+38 1.70141173319*10^38
%9.0g
Double
-8.9885E+307 8.9884656743*10^307
%10.0g
Byte Int Long
Precisión para FLOAT 3.795x10^-8. Precisión para DOBLE 1.414x10^-16. Tabla 5. Tipos de Variable
El número que aparece después del símbolo % es el número máximo de dígitos enteros o ancho que soporta el formato y el número a la derecha índica el número de decimales, posteriormente se encuentra una letra. Donde [f] es aproximación al entero más cercano, [e] indica notación científica y [g] indica decimales. Stata por defecto selecciona el formato FLOAT, el otro tipo de variables son las variables alfanuméricas, estas variables en las que se encuentran principalmente las variables cualitativas, Stata define un formato especial para ellas, y es el formato STRING, %str# es la visualización de este formato, en el cual el carácter # indica el largo de la cadena. 2.10.1 Formato de las variables: El formato de las variables hace referencias a la forma como son almacenadas y desplegadas las variables en STATA. Para cambiar el formato de una de una variable a través del lenguaje de sintaxis debe tener en cuenta que el formato de toda variable siempre antecedido por el símbolo “%”. Variables de cadena
% 20 s Inicio de un formato
Variable “String”
número de caracteres
Variable numérica
13
Formato general “g”, Notación científica “e”, formato fijo “f”
% 10. 0 g c
opcional, separados de miles por comas
Inicio de un formato Dígitos antes del punto decimal Dígitos después del punto decimal
Si desea cambiar el formato de una variable utilice el comando recast. . sysuse auto . describe Price . recast float price
Para mayor información: help data_types y help recast
14
3. MANEJO DE BASE DE DATOS Antes de realizar un análisis de la información ya sea de tipo descriptivo o inferencial, se debe contar con toda la información que sea pertinente para el análisis respectivo y las condiciones que deben tener cada una de las variables para poder establecer un entorno eficiente en Stata 12, para ello en esta sección podrá ver como se manipulan las bases de datos en Stata 12, por ejemplo series financieras (precio de activos) y económicas (inflación, desempleo, crecimiento económico, entre otras). Una de las ventajas de Stata es su fortaleza en el manejo de bases de datos, principalmente porque permite al usuario administrar gran cantidad de variables y de observaciones, además, es posible realizar manipulación y transformaciones como son crear, eliminar, modificar, concatenar y también permite agregar variables y observaciones a una base de datos con otras bases, entre muchas más. Entre opciones avanzadas se encuentran la protección de bases de datos, la creación de firmas y restricciones a usuarios. Stata permite a los usuarios manejar bases de datos de formatos como son MS Excel, texto, SQL, SAS, entre otros, de igual forma permite exportar archivos a dichos formatos. 3.1
Fundamentos de bases de datos
Hay ciertas características que usted podrá aprender para el manejo de la información, entre ellas los pasos fundamentales, como son, importar una base de datos, eliminación, transformación de bases de datos, entre otros. 3.1.1
Creación de un archivo log
Un archivo tipo texto con extensión “.log” o “.smcl”4, permite guardar todo lo que usted digite y ejecute en la línea de comandos así como las salidas obtenidas en la ventana de resultados realizadas durante la sesión activa de Stata. Se recomienda que la extensión sea SMCL, dado que le permite conservar las fuentes y colores de su ventana de resultados y además podrá configurarlo para imprimir.
4
Iniciales de Stata Markup and Control Language.
15
Figura 7. Creación de un archivo Log
Para la creación de un archivo log por medio de comandos debe usar . log using tables.log, replace
3.1.2
Abrir una base de datos
El primer paso es cargar una base de datos, para ello depende el formato de la base de datos. Es común que los usuarios contengan su información en archivos tipo Excel, para ello es necesario tener claro que Stata requiere que el separador decimal debe ser el punto (.), para ello se recomienda utilizar la herramienta de buscar-reemplazar de Excel o hacer cambio de la configuración de Excel o de la configuración regional de su equipo. Recuerde que las bases de datos de Stata finalizan con la extensión .dta, cuando se tiene un base tipo Stata para abrirla puede utilizar la ruta File Open o mediante el teclado CTRL+ O y seleccionar el archivo o por el ícono abrir de la barra de herramientas, por medio de comandos podrá usar la instrucción use . use "C:\Users\Brayan\Desktop\ipc_raw.dta", clear
Recuerde la sección 2.8 en donde se indica como activar un directorio de trabajo para no tener que referenciar la ruta o path en donde se encuentra el archivo; si ya tiene un directorio activo la instrucción es: . use ipc_raw, clear
Dado que la instrucción solo importa bases de datos de formato Stata no se requiere ingresar la extensión .dta. Finalmente con el comando use podrá seleccionar solamente las variables que desea usando la opción using importar por ejemplo . use fecha ipc inflación using ipc_ra, clear
3.1.3
Importar una base de datos .CSV o TXT
Uno de los formatos más comunes en el manejo de información estadística es el formato Separado por Comas (CSV), para importar una base de dato se sigue la ruta: File Import Text Data created by a spreadsheet 16
En este caso el comando insheet tiene la siguiente estructura insheet [variables] using ruta, opciones Por ejemplo: . insheet using "C:\Users\USER\Documents\Software Shop\Stata\Taller docentes\Docentes_01.csv", delimiter (":") clear
En el caso que el usuario no requiera importar la totalidad de la base de datos debe especificar después del comando insheet el nombre de las variables; entre las opciones se encuentran, los tipos de formato que separa los datos, como son tabulaciones (tab), comas (comma) o especificado por el usuario (delimiter(“x”)). La función anterior es similar para archivos con extensión .TXT. 3.1.4
Importar una base de datos .XLS o .XLSX 3.1.4.1 Editor de datos en Stata
Es común que las bases de datos y los archivos que se usan a diario por las empresas y sus trabajadores sean de hojas de cálculo, para facilitar el trabajo de uso de Stata cuando las bases son de una hoja de cálculo se puede sin mayor problema copiar los datos de la hoja correspondiente y posteriormente en la ventana edit dar clic derecho y seleccionar pegar o la secuencia CTRL+V, de ésta forma Stata reconoce los datos correspondientes. El software abrirá una ventana en donde se pregunta si los datos que se encuentran en la primera fila son las etiquetas de los datos o si no lo son, dependiendo de la fuente de los datos se toma la decisión.
Figura 8. Pegar datos desde Excel
Nota: El usuario debe tener sumo cuidado con el formato de la base original dado que Stata trabaja los separadores decimales con el punto y no con la coma como se usa en la configuración de los computadores con idioma español. Para ello se recomienda al usuario cambiar el formato de separador decimal y de miles en su hoja de cálculo o directamente desde la configuración regional
17
de su equipo. De igual forma usar la técnica de buscar y reemplazar le permite obtener un buen resultado.
Se recomienda ver información adicional con help input, infix e infile. Los datos pueden ser visualizados o introducidos en Stata haciendo clic en el ícono de la ventana “Data Editor”, presionando “CTRL+8”, o haciendo clic en Data Data Editor Editor.
Filter Observations
Variable Properties
Variables Manager
Edit Mode
Snapshots
Browse Mode
Figura 9. Editor de datos.
Snapshots: Permite preservar y restaurar la base de datos a un punto predeterminado por el usuario. Filter Observations: Mientras esté abierto el editor de datos, a través de esta opción es posible mantener un filtro sobre la base la base de datos. Variable Properties: Esta opción permite renombrar variables, asignar etiquetas a variables y valores de variables categóricas, y ajustar los tipos de variables y los formatos de las variables. Variable Manager: Similar a la opción anterior, además permite visualizar simultáneamente varias variables y adicionar notas a estas. 3.1.4.2 Asistente de Importación de Excel files
La versión 12 de Stata ha incorporado una nueva herramienta para importar bases de datos tipo .xls o .xlsx, para acceder al asistente siga la ruta File Import Excel spreadsheet (*.xls, *.xlsx) emergerá la siguiente ventana:
18
Busque el archivo de Excel
Seleccione la hoja a importar
Active la casilla si en su hoja la primera fila contiene los nombres de las variables
Seleccione el rango de los datos
Figura 10. Asistente Importación Archivos de Excel
Nota: Para poder importar la base de datos debe tener cerrada la base de datos de lo contrario el asistente no realizará la importación.
La estructura del comando es: import excel [using] filename [, import_excel_options] En las opciones podrá seleccionar:
sheet("sheetname") cellrange([start][:end]) firstrow allstring clear
Nombre de la hoja a importar Rango de celdas a cargar Tomar la primera fila como los nombres de las variables Importar todas las variables como texto Reemplazar los datos en la memoria
Para el ejemplo la instrucción es: . import excel "C:\Users\Brayan\Desktop\base1.xlsx", sheet("base 1") firstrow
19
3.1.5
Importar otros tipos de archivo
Hay otro tipo de archivos que Stata le permite importar automáticamente como archivo para ello se recomienda tener en cuenta las siguientes recomendaciones: TIPO DE BASE ODBC Archivo de Texto sin diccionario (.raw) Archivo de Texto con ancho fijo (.raw) Archivo de Texto con diccionario ( Formatos SAS XPORT o .xpf Formato tipo haver XML files
COMANDO Odbc Infile Infix infile2 import sasxport Haver Xmlsave
Tabla 6. Otros comandos para importar archivos
Finalmente si tiene otro tipo de archivos se recomienda que adquiera el software Stat/Transfer, para mayor información ingrese a www.stata.com/products/stat-transfer/, este programa permite importar archivos tipo SPSS, SAS, R, RATS, Statistics, MATLAB, GAUSS, entre otros 3.2
Salvando una base de datos
Como los datos han sido cargados en la memoria RAM, sólo puede modificarse la base de datos original de tres formas
Haciendo clic en el icono de salvado en la barra de herramientas
Haciendo clic en CTRL+S
A través del cuadro de comandos empleando el comando “save”, por ejemplo:
. save base1.dta, replace
La opción replace le permite sobre escribir un archivo que tenga en el mismo directorio de trabajo activo y con el mismo nombre. Una vez que los datos han sido guardados o abiertos es posible optimizar el espacio que estos ocupan utilizando el comando compress este comando comprime la base de datos. Es muy útil cuando se trabaja con bases de datos grandes. 3.3
Descripción de la base de datos
Una vez se tenga una base de datos cargada, es necesario empezar a revisarla y obtener información de ella, para ellos Stata le permite al usuario por medio de diferentes procedimientos entender cada variable y su contenido.
20
Lo primero que debe realizar el usuario una vez importa o abre una base de datos es observar la base, para ello se encuentran diferentes formas de visualizar los datos, entre ellas las opciones de edit y de browse, las cuales abren una ventana con forma de hoja de cálculo, la otra opción es por medio del comando list que permite visualizar la o las variables en la ventana de resultados, se recomienda usar los comandos edit, browse y list con las opciones if – in (ver más información en la sección 3.4). Adicional a esto el usuario puede recibir información específica de cada variable por medio de las opciones del menú Data Describe Data. En éste menú las opciones de describe data in memory, describe data contents e inspect variables, le da la posibilidad al usuario de obtener información correspondiente al nombre, la etiqueta, el tipo y formato de la variable, notas, etiquetas sobre valores, el número de valores perdidos, entre otras. A continuación se presenta un ejemplo del uso de estos comandos
Cargar una base de datos del programa
. sysuse auto
Observar los datos
. browse
Figura 11. Comando browse
Describir los datos
. describe make rice mpg
21
variable name
storage type
make price mpg
str18 int int
display format
value label
variable label
%-18s %8.0gc %8.0g
Make and Model Price Mileage (mpg)
.
Tabla 7. Comando describe para algunas variables
Cuando se desea aplicar un comando para todas las variables de la base de datos podrá hacerlo ingresando el comando sin incluir ninguna variable de esta forma Stata tomará la instrucción para toda la base de datos, otra alternativa es escribir _all posterior al comando por ejemplo: . sysuse auto . describe _all
variable name make price mpg rep78 headroom trunk weight length turn displacement gear_ratio foreign
storage type str18 int int int float int int int int int float byte
display format %-18s %8.0gc %8.0g %8.0g %6.1f %8.0g %8.0gc %8.0g %8.0g %8.0g %6.2f %8.0g
value label
variable label
origin
Make and Model Price Mileage (mpg) Repair Record 1978 Headroom (in.) Trunk space (cu. ft.) Weight (lbs.) Length (in.) Turn Circle (ft.) Displacement (cu. in.) Gear Ratio Car type
Tabla 8. Describe de todas las variables en la base de datos
3.4
Creación de Variables
Por medio del menú Data se puede encontrar opciones como crear nuevas variables Data Create or Change Data Create New Variable:
22
Figura 12. Comando generate
Figura 13. Prefijo de un comando
Algunos ejemplos de creación de variables: . generate suma = var1 + var2 . gen resta = var1 – var2 . g multiplicación = var1 * var2
Para la creación de las variables se recomienda usar el siguiente cuadro
23
Tabla 9. Operadores
En algunas ocasiones se requieren algunos caracteres especiales, uno de ellos son los caracteres _n y _N o denominadas variables del sistema, _n es un contador del número de observaciones, y _N indica el total de observaciones de la base de datos. . gen tendencia = _n . gen totales = _N
Para la creación de variables con condiciones puede utilizar la opción de la estructura de comandos [if] [in], estas opciones le permitirán poner restricciones no solo para la creación de variables si no para la gran mayoría de comandos que contiene Stata, debe tener en cuenta que solo debe escribir una vez el carácter if o in, a continuación algunos ejemplos en el uso de estos caracteres especiales: . gen dummy = 1 if TV >5 *crea
una variable con valores = 1 si TV > 5, perdido en otro caso.
. list make mpg if mpg>25 . list price in 10/20
* crea una lista para las observaciones entre la 10 y 20
. list price in -10/l
* crea una lista con las últimas 10 observaciones
Para la opción in se puede utilizar las siguientes estructuras: #
Condición sobre una única observación
#/#
Condición sobre un rango de observaciones
#/l
Condición sobre una observación hasta la última (l) 24
f/#
Condición desde la primera observación (f) hasta una observación
-#/# Condición desde las últimas # observaciones hasta # que puede ser la última con l, *L minúscula* A continuación se listan algunas funciones matemáticas, estadísticas y de fecha importantes en la creación de variables Función ln() exp() sqrt() abs() cos() logit() runiform()
Ejemplo g lpib = ln(pib) g epib = exp(pib) g y = sqrt(epib) g x = abs(y) g coseno = cos() g logit = logit(x) g uniforme = runiform()
rnormal()
g normal = rnormal()
rnormal(m,s)
g normal = rnormal(10,2)
int() invnormal(p)
g enteros = int(pib) g inversa = invnormal(prob)
length(s)
g largo = length(nombre)
Descripción Logaritmo natural Exponencial Raíz cuadrada Valor absoluto Coseno Retorna el logaritmo de los odds ratio de x Genera números aleatorios de una distribución uniforme [0,1) Genera números aleatorios de una distribución normal estándar (0,1) Genera números aleatorios de una distribución normal con media m y desviación estándar s Convierte una variable o dato en entero Genera una variable como la inversa de la probabilidad de una distribución normal Presenta el número de caracteres de una variable string
Tabla 10. Ejemplos Funciones generate
Ejemplo: . use personas, clear
*Logaritmo natural de los ingresos laborales . gen lny=ln(i_laboral)
*Logaritmo natural de las horas de trabajo al mes . gen lnm=ln(htm)
*Años de experiencia laboral al cuadrado . gen exp2=exp^2
*Horas de trabajo al mes expresadas en números enteros . gen horas=int(htm)
*Generación de una variable aleatoria uniforme (0,1) . gen uniforme=uniform()
25
*Horas de trabajo al mes expresadas en números enteros (redondeado) . gen horasr=round(htm)
* Si cumple la condición (ser menor de 25 años) marcar con el número “1” . gen men25=1 if e02<25
Para recodificar variables (cambiar los valores de una variable) se pueden utilizar los comandos recode (ver más información en la sección 3.12.1) o replace. Por ejemplo, si se quiere reemplazar en la variable men25 los valores perdidos “.” por “0” una opción es emplear el comando replace así: . replace men25=0 if men25==.
(24841 real changes made) 3.4.1
Extensiones en la creación de variables
Podemos utilizar algunos comandos adicionales para la creación de variables con algunas condiciones, tales como el comando egen y la función cond() Ejemplo: . gen dummy = cond(TV>5,1,0) . gen dummy = (TV>5) . egen concatenar = concat(“variable1” “variable2”)
FUNCIÓN max() min() mean() kurt() sd()
EJEMPLO egen maximo = max(ingresos) egen minimo = min(ingresos) egen promedio = mean(ingresos) egen curtosis = kurt(ingresos) egen desviación = sd(ingresos)
DESCRIPCIÓN Presenta el máximo de una variable Presenta el mínimo de una variable Presenta el promedio de una variable Presenta la curtosis de una variable Presenta la desviación estándar de una variable
Tabla 11. Funciones generate y egen.
3.5
Ordenar variables y bases de datos
Ordenar datos Data Sort Ascending Sort:
26
Figura 14. Ordenar datos
Para ordenar en forma descendente se recomienda usar el comando gsort de la siguiente forma: . gsort – var1 – var2 +var3
El comando anterior produce un ordenamiento descendente primero por la variables VAR1, seguido por la variable VAR2 y de forma ascendente por la variable VAR3, indicando que se debe ubicar un signo (-) para establecer descendente y un signo (+) para orden ascendente, aunque este último no es necesario en el comando. Existe otro caso y es en el caso que se deseé ordenar las variables, es decir cambiar el orden en la base de datos, por medio del comando order es posible realizar esto, de igual forma es posible utilizar aorder para que las variables queden ordenadas en forma alfabética. Finalmente el comando move permite modificar la ubicación de las variables, pero a partir de la versión 11, este comando es reemplazado por order. 3.6
Cálculos por grupos
En algunas ocasiones el usuario requiere de verificar la información por una característica particular, grupales, entre otras, para ellos Stata cuenta con el prefijo by el cual se ubica previo al comando estadístico, gráfico o de modelo. Ejemplo: . use http://www.Stata-press.com/data/imeus/census2d, clear . gsort region -pop . by region: generate totpop = sum(pop) . by region: list region totpop if _n = = _N . by region: egen meanpop = mean(pop) . by region popsize, sort: egen meanpop2 = mean(pop) . by sex age: regress wage expert expert2 occup
27
El comando by permite generar variables por diversas categorías, además, permite ordenar de acuerdo a alguna variable. En el último ejemplo hace una regresión por cada categoría entre el género y la edad. 3.7
Codebook e Inspect
codebook, escribe el contenido de las variables, indicando número de observaciones, valores perdidos, percentiles, entre otros. . codebook foreign
foreign
type: label:
numeric (byte) origin
range: unique values:
[0,1] 2
tabulation:
Freq. 12 3
units: missing .: Numeric 0 1
1 0/15
Label Domestic Foreign
Tabla 12. Comando codebook foreign. . codebook price price
type:
numeric (int)
range: unique values:
[12990,15906] 5
tabulation:
Freq. 3 3 3 3 3
units: missing .:
1 0/15
Value 12990 13466 13594 14500 15906
Tabla 13. Comando codebook price
El comando inspect, entrega el número de observaciones de una variable identificando los valores positivos, negativos, cero, missing, y si estos corresponden a números enteros o no. Los “missing values” se señalan en Stata mediante un punto (.). Se considera que un missing value es mayor que cualquier valor.
28
. inspect rep78 rep78:
.
Repair Record 1978
#
# # # # # #
Number of Observations Total 69
Negative Zero Positive # # #
# #
1
Total Missing
Integers 69
69 5
5
Nonintegers -
69
-
74
(5 unique values)
Tabla 14. Comando inspect rep78
3.8
Conservar y recargar bases de datos
Es importante cuidar la base de datos que se está trabajando, por eso se recomienda salvar la base de datos, pero además, Stata ofrece opciones que le permitirán al usuario guardar la base de datos de forma virtual, por medio de los comandos preserve y snapshot y para recuperar la base con el comando restore . preserve . restore . snapshot save, label("nombre del elemento guardado") . snapshot restore 1
Snapshot Remover Snapshot Cambiar el nombre Agregar Snapshot
Restaurar
Figura 15. Opción snapshot
La diferencia entre el snapshot y el preserve es que este último solo permite guardar una vez la base de datos, mientras el snapshot varias veces. 3.9
Filtros de la base de datos
Ejemplo acerca de la opción filtros: . browse if pop . browse if pop . browse if pop . browse if pop
> 10000000 > 10000000 & marriage > 100000 > 10000000 & marriage > 100000 & popurban > 10000000 > 10000000 | marriage > 100000 & popurban > 10000000
Uso del in 29
. browse pop in 1/10 . browse pop in f/10 f = FIRST, l = LAST . browse pop in 10/l hasta el último
Se puede combinar con que realizar el filtro puede usar los comandos browse, edit, keep, drop y list. drop elimina observaciones y/o variables, keep conserva observaciones y/o variables, list presenta variables y/o observaciones en la ventana de resultados, edit permite visualizar los datos en una hoja de datos y podrá editar y modificar los datos, browse realiza las mismas opciones de edit pero no se puede modificar la información. El comando keep y drop tienen la misma estructura keep/drop variables keep/drop if expression keep/drop in rango Ejemplo: . sysuse census
* Elimina las variables death y divorce . keep state pop medage marriage * Conserva las variables indicadas . drop if medage > 30 * Elimina las observaciones donde medage sea mayor a 30 . drop death divorce
. sort popurban . keep in -10/l
* Conserva las últimas 10 observaciones con mayor popurban
3.10 Administrador de variables En la versión 11 de Stata se incluyó la ventana del administrador de variables, este administrador de variables permite modificar información de cada variable, principalmente el cambio de nombre, etiquetas, tipo de variable, formato, notas y creación de categorías y etiquetas. . varmanage
30
Figura 16. Administrador de variables.
Para la modificación de la variable, deberá ser seleccionada la variable y una vez modificada la información correspondiente debe dar clic en Apply. En la versión 12, Stata ha incluido una nueva ventana que es la ventana de propiedades en la cual se pueden modificar la información de cada variable:
Figura 17. Ventana de Propiedades
Entre los cambios del administrador de variables y la ventana de propiedades se encuentran las siguientes opciones, se describe el comando correspondiente para automatización de tareas.
31
3.10.1 Rename Este comando permite cambiar el nombre de una variable. Por ejemplo: rename nombreviejo nombrenuevo . rename price precio
3.10.2 Label Variable Para colocar la etiqueta a la variable, con la cual se describe la información de la misma: label var nombrevariable “etiqueta variable” . label var precio “Precio del auto”
3.10.3 Notes Se pueden crear dos tipos de notas, una para las variables o para la base de datos, a continuación un ejemplo para cada caso: . notes divorce: 1 si la persona es divorciada, 0 en otro caso . notes _dta: Censo 1994
* nota para la variable divorce
* nota para la base de datos
3.11 Creación de categorías La forma más sencilla de crear categorías de variables es por medio del administrador de variables, la variable que seleccionará debe ser discreta, una vez inicie el administrador debe seleccionar la variable que codificará, luego debe dar clic en Manage que se encuentra a la derecha de la opción Value label
Figura 18. Manage
La figura 16 presenta el administrador de etiquetas, en el cual podrá crear, editar o eliminar etiquetas y para las etiquetas ya creadas puede agregar, editar o eliminar valores que se encuentran en una etiqueta creada.
32
Figura 19. Administrador de Value Labels
Para crear una nueva etiqueta haga clic en Create Label, en la figura 17 podrá agregar, eliminar y editar las categorías con su correspondiente descripción.
Figura 20. Creación de Labels
Una vez haya creado la etiqueta deberá asignarla a la(s) variable(s) que correspondan, para ello en el administrador de variable a la izquierda de Manage seleccione el nombre de la etiqueta.
33
Figura 21. Asignación de etiquetas
Por medio de comandos . label define respuestas 1 “si” 2 “no”
* Creación de la etiqueta con sus valores
. label values pregunta1 respuestas
*Se asigna a la variable pregunta1 la etiqueta respuestas
3.12 Modificación y transformación de variables En la sección anterior se presentó la forma de creación de variables por medio de los comandos gen y egen, de igual forma el comando replace. Pero existen otras formas de modificar variables ya sea en su formato, tipo de variable, codificación entre otras, a continuación se presentan las más importantes. 3.12.1 Recode Este comando permite recodificar algún valor de una variable . recode x (1=2), gen(nx) . recode x1 (1=2) (2=1), gen(nx1)
*Ejemplo 1 *Ejemplo 2
En el ejemplo 1 se recodifica la variable x, cambiando los valores 1 por valores 2, la variable transformada se guarda como nx.
34
Figura 22. Recode
En el ejemplo 2 se cambia de 1 a 2 y de 2 a 1, generando la variable nx1. 3.12.1.1 Variables categóricas a partir de variables continuas. Ejemplo: Suponga que se quiere generar una variable que segmente a la población en grupos de edad (menores de 18 años, entre 18 y 25 años, entre 26 y 40 años, entre 41 y 60 años, mayores de 60 años), con un numero distintivo para cada categoría. Una opción es emplear el comando recode y generate (desde el do-file editor ) así: . recode e02 (min/17=1) (18/25=2) (26/40=3) (41/60=4) (61/max=5), gen(gedad)
o en forma alternativa recode e02 (min/17=1 "Menores de edad") (18/25=2 "Entre 18 y 25 años") (26/40=3 "Entre 26 y 40 años") (41/60=4 "Entre 41 y 60 años") (61/max=5 "Mayores de 60 años"), gen(gedad)
La variable gedad es una recodificación de e02 (edad). Note que se han aplicado etiquetas a cada una de las categorías entre comillas. . codebook gedad
35
Tabla 15. Comando codebook
3.12.2 División de Variables de texto Split divide una variable texto en nuevas variables por el espacio o un carácter específico split var1, parse(,) gen(geog) 3.13 Combinación de bases de datos La combinación de bases de datos es un problema muy común para el investigador o el analista de información, Stata le permite realizar diferentes tipos de fusiones de bases de datos, a continuación se presentan los dos formatos más importantes, la adición vertical (merge) y horizontal (append).
HOMBRES.dta
Adición casos: append No es necesaria variable llave
Adición de variables: merge Es necesaria variable llave. Las bases de datos deben estar ordenadas. Revisar la variable _merge
EDUCACION.dta
MUJERES.dta
Figura 23. Combinación de base de datos
3.13.1 Combinación Vertical – Append Este comando agrega filas a la base de datos, las variables deben como regla contener los mismos nombres, el mismo tipo de variable y además la base de datos sus variables deben estar ordenadas de igual forma. Para combinar conjuntos de datos verticalmente se emplea el comando append. En nuestro ejemplo, a la base de datos HOMBRES se va adicionar los casos correspondientes la información de las mujeres así: 36
. use hombres, clear . append using MUJERES
En la nueva base de datos se ha combinado la información hombres y mujeres en una única base de datos. .d
Tabla 16. Comando describe
En este punto se deben tener en cuenta dos aspectos. 1. El comando append debe estar acompañado de la palabra using la cual indica que el nombre a continuación corresponde a la base de datos de datos que será adicionada verticalmente. 2. Como la base de datos cargada en la memoria RAM ha cambiado es conveniente que el usuario salve la nueva información con otro nombre así. . save PERSONAS, replace
3.13.2 Combinación Horizontal – Merge Se usa cuando se quieren traer nuevas variables de una base llamada using a una base de datos ya existente o master, éste comando une dos bases de datos utilizando una variable en común (generalmente es una ID, llave o código que identifica las observaciones de la base de datos). Las dos bases de datos deben estar guardadas en formato .dta, y deben estar ordenadas de acuerdo a la variable que se va a pegar. El objetivo de este comando es agregar variables (columnas). Para pegar dos bases de datos (A.dta y B.dta), se deben realizar los siguientes pasos: 1. Ordenar (sort) la base de datos B de acuerdo a las variables con las que se hará la unión de las bases, es decir de acuerdo al ID, y guardar. 2. Abrir la base A y ordenarla de acuerdo al paso 1. 37
3. Usar el comando merge 4. Guardar la base de datos (save) Si la base no está ordenada y contiene datos repetidos emerge el siguiente error: Using data not sorted Master data not sorted Para verificar que usted tenga un identificador único se recomienda que lo verifique por medio del comando isid. . isid id num
Si emerge error es porque el identificador se repite y si va hacer una fusión tendrá inconvenientes. Al momento de realizar el merge se crea una variable denominado _merge, que contiene tres valores: _merge = = 1 Las observaciones son originarias del archivo “master” o base _merge = = 2 Las observaciones son originarias del archivo “using” _merge = = 3 Las observaciones se encuentran en ambos archivos Siguiendo con el ejemplo anterior, se va a agregar a la base de datos PERSONAS.dta, nuevas variables con la información sobre el nivel educativo y los años de educación aprobados de las personas. Esta información se encuentra en la base de datos EDUCACION.dta. Los pasos a seguir para realizar este tipo de pegue son: 1. Cargar la base “using” (EDUCACION.dta) de donde se quiere traer las nuevas variables, la ordenamos de acuerdo con la(s) variable(s) identificadora(s) “numero y e01” y salvamos los cambios. El comando para ordenar las observaciones es sort así: . use EDUCACION . sort numero e01 .d . save EDUCACION, replace
En este caso, el comando save está acompañado de la opción replace la cual denota que se está sobrescribiendo en la base EDUCACION original. 2. Cargar la base “master” (PERSONAS.dta), se ordenan por el mismo criterio anterior y se guardan los cambios. . use PERSONAS . sort numero e01 .d
38
. save PERSONAS, replace
3. Se aplica el comando merge para pegar horizontalmente las dos bases así:
La base de datos PERSONAS.dta contiene ahora las variables de la base de datos EDUCACION.dta, creando automáticamente la variable _merge. 3.14 Cambio en la organización de los datos Cuando una base de datos tiene más de una observación por unidad de estudio (individuo, país, empresa, etc.) nos puede interesar sólo trabajar con una observación por unidad (collapse) o mantener las observaciones distintas para cada individuo pero que se creen como variables o columnas distintas (reshape) 3.14.1 Collapse Si se tiene una base de datos de hogares, cada observación es un miembro del hogar. Si cada hogar dispone de un identificador único, entonces se puede formar una base de datos alternativa que contenga una sola observación por hogar (en lugar de una observación por individuo) para cada una de las variables deseadas. Esta observación puede contener la media, desviación estándar, suma u otro estadístico. Ejemplo: . collapse (mean) edad (max) educación (p50) ingreso, by(hogar)
Lo anterior crea una base de datos con cuatro variables, hogar, edad, ingreso y educación. Con frecuencia, la información estadística tiene algún grado de reserva o confidencialidad que la hace no accesible al público en su forma original. La mayor parte de la información proveniente de bases de datos grandes, por ejemplo las encuestas (de personas, de hogares, de empresas de la industria manufacturera, etc.) o los censos (de población, de instituciones educativas, de edificaciones, etc.) suele ser presentada en tablas resumen y en bases de datos colapsadas o agregadas. En Stata es posible colapsar bases de datos a través del comando collapse. Debe tenerse en cuenta: 1. La(s) variable(s) de agregación: Variable(s) que definen las nuevas unidades de observación u observaciones agregadas.
39
2. El(Los) criterio(s) de agregación: Es la(s) operación(es) matemática(s) que será(n) aplicados a la base de datos original para obtener las nuevas unidades de observación colapsadas: suma, media, mediana, cuenta, percentil, etc. 3. La base de datos original ha sido modificada. Debería salvarse con un nuevo nombre. Por ejemplo, a partir de la base personas.dta, se puede obtener una base de datos agregada por localidad y sexo así: . collapse (mean) edu007, by(localid e03)
Tabla 17. Collapse
La variable edu007 corresponde a los años de educación promedio y jefe a la suma de los jefes de hogar, en ambos casos, por localidad y sexo. 3.14.2 Reshape En algunas ocasiones dependiendo del estudio muestral y de la construcción de la base de datos, usted encontrará su información en dos formatos, ancho (wide) y largo (long), el formato ancho es aquel en el cual usted tiene un conjunto i de individuos y un número j de variables, donde j es generalmente una variable con información para diferentes períodos de tiempo. Para mostrar un ejemplo, se utilizará la base de datos reshapeState descrita en el libro [1]: . use http://www.Stata-press.com/data/imeus/reshapeState, clear . list
40
state
pop1970
pop1980
pop1990
pop2000
area
1. 2. 3. 4. 5.
CT MA ME NH RI
.1369841 .6432207 .5578017 .6047949 .684176
.6184582 .0610638 .5552388 .8714491 .2551499
.4241557 .8983462 .5219247 .8414094 .2110077
.2648021 .9477426 .2769154 .1180158 .4079702
.871691 .4611429 .4216726 .8944746 .0580662
6.
VT
.1086679
.0445188
.5644092
.7219492
.6759487
Tabla 18. Comando list
En este caso se encuentran seis códigos de estados de nueva Inglaterra, y aparece la información de la población desde 1970 hasta el 2000 calculada cada década, a continuación se transforma la base de datos de formato wide a long por medio del comando reshape, la estructura de este comando es: reshape long variable_j, i(variable_individuos) j(nombre nueva variable) reshape wide variable_j, i(variable_individuos) j(variable_temporal) Con la base de datos actual se pasa de wide a long . reshape long pop, i(state) j(año) Data
wide
> Number of obs. 6 Number of variables 6 j variable (4 values) xij variables: pop1970 pop1980 ... pop2000
->
long
-> -> ->
24 4 año
->
pop
Tabla 19. Reshape long . list
41
state
año
pop
area
1. 2. 3. 4. 5.
CT CT CT CT MA
1970 1980 1990 2000 1970
.1369841 .6184582 .4241557 .2648021 .6432207
.871691 .871691 .871691 .871691 .4611429
6. 7. 8. 9. 10.
MA MA MA ME ME
1980 1990 2000 1970 1980
.0610638 .8983462 .9477426 .5578017 .5552388
.4611429 .4611429 .4611429 .4216726 .4216726
11. 12. 13. 14. 15.
ME ME NH NH NH
1990 2000 1970 1980 1990
.5219247 .2769154 .6047949 .8714491 .8414094
.4216726 .4216726 .8944746 .8944746 .8944746
16. 17. 18. 19. 20.
NH RI RI RI RI
2000 1970 1980 1990 2000
.1180158 .684176 .2551499 .2110077 .4079702
.8944746 .0580662 .0580662 .0580662 .0580662
21. 22. 23. 24.
VT VT VT VT
1970 1980 1990 2000
.1086679 .0445188 .5644092 .7219492
.6759487 .6759487 .6759487 .6759487
Tabla 20. Comando list después de Reshape long
Si se encuentra usted con una base de datos similar a la generada con el comando reshape, podrá pasarla a formato wide, en nuestro caso se usará la siguiente sintaxis reshape wide pop, i(state) j(year) Continuando con el ejemplo de la encuesta de hogares. Se puede hablar de orientación vertical u horizontal cuando a cada una de las observaciones i en una base de datos, se las segmenta por algún criterio j (v.g., diferentes periodos de tiempo). En nuestro ejemplo, cada una de las localidades i, ha sido segmentada por sexo j, mientras que la base de datos en conjunto ha sido desplegada de forma vertical. En este caso sin embargo, puede resultar más cómodo emplear una base de datos orientada horizontalmente, en particular si se quieren hacer comparaciones para cada una de las localidades entre hombres y mujeres. Se puede emplear el comando reshape, acompañado de las opciones wide (despliegue horizontal) o long (despliegue vertical), para cambiar la orientación de la base de datos colapsada así: . reshape wide edu007, i(localid) j(e03)
42
Tabla 21. Comando list después de Reshape wide
Para volver a la forma vertical . reshape long edu007, i(localid) j(e03)
Tabla 22. Comando list después de Reshape long
3.14.3 Xpose Usted podrá modificar la orientación de una forma completa en su base de datos, es decir, pasar de filas a columnas (similar a realizar un transponer en Excel), debe tener cuidado dado que no podrá retornar a la posición inicial. 43
. sysuse auto , replace . snapshot save, label(“base original”) . keep mpg foreign . xpose , clear varname
Figura 24. Antes de utilizar el comando xpose
Figura 25. Después de utilizar el comando xpose
3.14.4 Stack El comando stack le permitirá a usted fusionar variables por ejemplo tiene los meses de cada año ordenados en columnas y quiero formar una sola variable con todos los meses para todos los años.
Figura 26. Base de datos antes del comando stack . stack var2010 var2011 var2012 var2013, into(meses20102013) wide
44
Figura 27. Base de datos después del comando stack
3.14.4.1 Extraer una muestra aleatoria de su base En algunas ocasiones para hacer estudios muestrales requiere que la base de datos sea dividida por un método aleatorio, para ello podrá hacer uso del comando simple . sample 80
|| tomará el 80% de la muestra || tomará 20 observaciones a l azar
. sample 20, count
3.15 Problemas en el manejo de bases de datos Cuando usted trabaja con bases de datos en el día a día se encontrará con diferentes problemas y situaciones que lo pondrán a prueba en el manejo no solo de Stata sino en el conocimiento de su información, por eso es importante que siempre se pregunte antes de hacer cualquier cambio en su base de datos, qué quiere hacer y cuál es el resultado esperado, de esta forma podrá pensar más fácilmente que tipo de ejecución requiere en Stata para llegar a su objetivo, a continuación se presenta un conjunto de comandos que presentan algunos casos típicos en el manejo de bases de datos. 3.15.1 Replicar información Dependiendo su análisis podrá requerir replicar algún tipo de información de su base de datos, por ejemplo un cliente, un usuario, un grupo, una empresa, un país, aunque no es una alternativa muy común, Stata le ayudará a realizar la reproducción de sus datos, expand, es el comando para duplicar información, pero con la característica que lo puede hacer n veces. . sysuse auto, clear . keep if price > 12000 . list make price
45
make 1. 2. 3. 4. 5.
price
Cad. Eldorado Cad. Seville Linc. Mark V Linc. Versailles Peugeot 604
14,500 15,906 13,594 13,466 12,990
Tabla 23. List make y price . expand 3
De acuerdo al comando usado, los datos se encontrarán 3 veces en la base de datos, tal y como se presenta a continuación. . sort make price . list make price make 1. 2. 3. 4. 5.
Cad. Cad. Cad. Cad. Cad.
price Eldorado Eldorado Eldorado Seville Seville
14,500 14,500 14,500 15,906 15,906
6. 7. 8. 9. 10.
Cad. Seville Linc. Mark V Linc. Mark V Linc. Mark V Linc. Versailles
15,906 13,594 13,594 13,594 13,466
11. 12. 13. 14. 15.
Linc. Versailles Linc. Versailles Peugeot 604 Peugeot 604 Peugeot 604
13,466 13,466 12,990 12,990 12,990
Tabla 24. Comando list mpg y price después de expand 3
3.15.2 Verificación de datos El comando assert le permitirá verificar la valides de sus datos, este comando le ofrece la posibilidad de incluir en un archivo de programación una condición, si la condición se cumple parará la ejecución de la programación, y de esta forma usted podrá chequear si hay algo que no es correcto en su base de datos, por ejemplo, usted tiene una base de datos con la edad de las personas, podrá utilizar assert para verificar que en ésta variable no hayan datos extraños, como una edad mayor a 100 años o menor a 0. La estructura sería:
46
. assert edad < 0 | edad > 100
Y aún más completo se recomienda incluir evaluar valores perdidos . assert edad < 0 | edad > 100 | edad = =.
3.15.3 Contador y reporte de datos repetidos El comando count cuantifica el número de observaciones con ciertas características. La instrucción por sí sola, presenta el número total de observaciones, pero es posible determinar algunas restricciones Data Data Utilities Count obsevations . count if foreign ==1
El comando isid nos permite asegurar que una variable es una codificación única dentro de una base de datos, este comando se usa generalmente para chequear que no existan observaciones duplicadas dentro de una base de datos. Si la variable tiene exactamente valores únicos entonces no emerge ningún mensaje, de lo contrario aparece lo siguiente: . isid foreign
variable foreign does not uniquely identify the observations Otro comando que permite verificar si una variable no tiene valores duplicados es duplicates report, que entrega información respecto a la cantidad de veces que se replica la información, el comando duplicates se analiza en la siguiente sección. 3.16 Análisis de duplicados Uno de los problemas comunes en el manejo de una base de datos es analizar si hay presencia de observaciones duplicadas En muchas ocasiones el analista de la información se enfrenta con un problema muy común y es la réplica de la información, por problemas de digitación y/o captura de la información, se puede repetir un caso, para ello Stata cuenta con un grupo de diferentes opciones que le ayudarán a solucionar este problema tan común, con las herramientas vistas hasta el momento como la creación de variables, condicionales, transformación entre otras tiene a la mano diferentes formas de conocer cuándo hay un valor repetido o similar en la base de datos, Data Data utilities Manage Duplicate Observations
47
Figura 28. Administración de Duplicados
En la figura 18 puede observar las opciones disponibles para el manejo de datos duplicados, se recomienda seguir cada una de las opciones, Report Duplicates le ofrece la opción de seleccionar bajo que variable(s) desea analizar si existen duplicados o no, por ejemplo: . sysuse auto, clear . keep if price > 12000 . expand 3 . duplicates report make
Lo que nos genera el siguiente resultado
. duplicates report make Duplicates in terms of make
copies
observations
surplus
3
15
10
Tabla 25. Comando duplicates
El resultado indica que hay 15 observaciones en total de las cuales hay 10 en exceso o duplicadas, indica adicionalmente que para cada observación hay 3 copias. Para ver el listado total de elementos duplicados . duplicates list make
48
Duplicates in terms of make
group:
obs:
make
1 1 1 2 2
1 6 7 2 8
Cad. Cad. Cad. Cad. Cad.
2 3 3 3 4
9 3 10 11 4
Cad. Seville Linc. Mark V Linc. Mark V Linc. Mark V Linc. Versailles
4 4 5 5 5
12 13 5 14 15
Linc. Versailles Linc. Versailles Peugeot 604 Peugeot 604 Peugeot 604
Eldorado Eldorado Eldorado Seville Seville
Tabla 26. List después de duplicates
Como se puede observar para cada marcar de automóvil hay dos valores adicionales, lo que ya nos había indicado la opción report informando que habían tres observaciones para cada categoría. La siguiente opción Tags duplicates permite crear una variable que indica el número de valores adicionales en este caso será 2, si se utiliza el tag y se realiza una lista se apreciará el resultado. . duplicates tag make, generate(duplicado) . list make duplicado make 1. 2. 3. 4. 5.
Cad. Cad. Cad. Cad. Cad.
duplic~o Eldorado Eldorado Eldorado Seville Seville
2 2 2 2 2
6. 7. 8. 9. 10.
Cad. Seville Linc. Mark V Linc. Mark V Linc. Mark V Linc. Versailles
2 2 2 2 2
11. 12. 13. 14. 15.
Linc. Versailles Linc. Versailles Peugeot 604 Peugeot 604 Peugeot 604
2 2 2 2 2
Tabla 27. Comando list make duplicado
49
Uno de los objetivos es eliminar los valores duplicados Para ello use la opción drop duplicates
Figura 29. Eliminar duplicados . duplicates drop make, force . list make
make 1. 2. 3. 4. 5.
Cad. Eldorado Cad. Seville Linc. Mark V Linc. Versailles Peugeot 604
Tabla 28. Eliminar los duplicados con respecto a make
3.17 Creación de programas – editor de texto
Figura 30. Creación de un archivo .do
El usuario puede ejecutar uno o más comandos simultáneamente, generar (macros) o crear rutinas nuevas para STATA desde un editor de texto al que se accede haciendo clic en el icono –New Do-file Editor–. A través de este editor se pueden crear archivos tipo 50
*.do y *.ado. Los archivos *.do son conjuntos de comandos y macros que únicamente se pueden ejecutar cuando el archivo está activo. En contraste, los archivos *.ado son rutinas que se incorporan a STATA permanentemente y pueden ser ejecutadas desde la el cuadro de comandos o incluso desde otros archivos *.do y *.ado. Se accede a este editor como se muestra en la siguiente ilustración, presionando CTRL+9 o haciendo clic en el submenú –Do-file Editor– en el menú –Window– en la barra de herramientas5. 3.18 Ejemplo aplicado En ocasiones las bases de datos no se encuentran completas, por un lado por datos faltantes en columnas o en filas, por lo tanto en esta sección se explica cómo añadir nuevas observaciones de bases de datos externas utilizando comandos como merge y append. 1. Se utiliza la base de datos llamada “REGION19572004”, la cual contiene datos de 1957 hasta 2004 para países de la región latinoamericana excluyendo a Chile para efectos de aprendizaje, la cual fue descargada de la base de datos de https://pwt.sas.upenn.edu/. 2. Se utiliza la base de datos llamada “POBLACION19572004”, la cual contiene la población de cada país en cada periodo de tiempo, y se aplicara el comando merge, con el objetivo de agregar esta variable a la base de datos del primer punto de forma vertical. 3. Se utiliza la base de datos llamada “CHILE19572004”, la cual contiene las misma variables que el punto uno y dos, pero solo para el país de Chile, se aplicara el comando append, con el objetivo de agregar una nueva observación de orden horizontal. 4. Se identificara algunos comandos básicos para el manejo de bases de datos tales como: browse, codebook, describe, drop in, drop, keep, sort, save, . cd "C:\Users\SOFWARESHOPFILES" . use "POBLACION19572004" . sort country year . browse . save "POBLACION19572004.dta", replace . use "REGION19572004" . sort country year . merge 1:1 country year using "POBLACION19572004" . br .codebook _merge .drop _merge
5
Es posible usar el comando doeditor para abrir el editor de programación.
51
Tabla 29. Merge 1:1
Tabla 30. Codebook .append using “CHILE19572004” .sort country year .save "DATASETALL"
En ocasiones solo se necesita la observación de un país o un determinado año, para este caso se utilizan comandos como keep y drop. keep, mantiene las variables en la memoria dependiendo de las condiciones o el rango de observaciones, drop, elimina las variables de la base de datos dependiendo de las condiciones o el rango de observaciones. Por ejemplo, se desea que se mantenga en memoria los países de Brazil y Chile para los años 2000 y 2004. . keep if country=="Brazil" | country== "Chile" . drop if year>=1957 | year<=1999
Por ejemplo, se desea mantener en memoria aquellas variables que cumplan con alguna condición en este caso para aquella población que sea mayor a 30.000.000. . keep if pop>=30000
Por ejemplo, se desea que se eliminen las dos primeros años para cada país. . by country: drop if year==1957 | year==1958
52
3.18.1 Cambiando la orientación de la base de datos: De horizontal a vertical y viceversa . reshape wide xrat ppp cgdp2 cc cg ci pop, i(country) j(year)
Tabla 31. Reshape wide
Para volver a la forma vertical . reshape long xrat ppp cgdp2 cc cg ci pop, i(country) j(year)
Tabla 32. Reshape long
3.18.2 Ejercicio 1. Utilizar las bases de datos de calidad de vida para el país Colombia año 2010: Dbfp_encv_547_1, Dbfp_encv_547_4, Dbfp_encv_547_5. 2. Se debe aplicar el comando merge 1:1 para consolidar las tres bases de datos, siendo la base de datos Dbfp_encv_547_1 master. 3. Recomendaciones: elegir la llave correcta, eliminar los datos que se desean excluir de la muestra (e.g. Nro_encuesta, nro_encuesta) “drop”, organizar de forma ascendente la llave “sort”, guardar la bases de datos con nombre alternos (e.g. 20101, 20102, 20103) “save”, aplicar el comando “merge”.
53
3.19 Comandos usados append browse by bysort cd clear codebook compress db decode describe destring drawnorm drop duplicates edit encode egen exit format generate gsort infile insheet
invnormal() keep label list log merge mvdecode mvencode open order outfile prefix recode rename replace reshape save snapshot sort sysuse use uniform() varmanage xpose
54
3.19.1 Otros comandos recomendados capture cf count cross datasignature expand filin format infile inspect joinby label language language
mat more notes sample seed separate split stack svy tostring translate version operators
55
4. ANÁLISIS ESTADÍSTICOS CON STATA Stata tiene una amplia posibilidad de realizar los procedimientos generalmente es posible encontrar varios comandos en diferentes menús. Por ejemplo para poder obtener las estadísticas descriptivas de una variable es posible usando inicialmente los comandos o por medio de ventanas de ejecución. Algunos comandos despliegan mucha información que se va mostrando por secciones, para que sigan apareciendo los resultados es necesario dar clic en el botón clear--more-condition, o en el mensaje de –more- que aparece en la parte inferior de la ventana de resultados.
Clear--more
Break
Figura 31. Opción More and Break
Pero es posible desactivar la opción para que aparezca todo el resultado inmediatamente por medio de set more off. Para el análisis estadístico el menú Statistics permite obtener gran cantidad de opciones para poder desarrollar los temas del manual. Por ejemplo en Statistics Summary, tables, and test Summary and descriptive statistics:
Figura 32. Análisis estadístico
56
Finalmente en Statistics Summarize, tables and test, se pueden realizar varias operaciones como son cálculo del intervalo de confianza, test para medias, varianzas, dos muestras, etc., pruebas parámetricas y no parámetrica 4.1
Estadística descriptiva
Para poder realizar este tipo de procedimiento se escribe en la barra de comandos el comando sum que es el prefacio del comando summarize es un comando estándar para generar estadísticos descriptivos, proporciona información acerca del número de observaciones, la media, la desviación típica, el mínimo y el máximo de la variable especificada, por medio de la secuencia Data Describe data Summary Statistics o en el menú Data y en Statistics Summary, tables and test
Figura 33. Estadística descriptiva
Lo que se genera:
Tabla 33. Comando summarize
Si se agrega la opción detail, se agrega el coeficiente de asimetría, y curtosis y varios percentiles de la(s) variable(s) dadas: 57
Tabla 34. Comando sum, detail
4.2
Ponderadores -weight-
fweight: frequency weights, indica el número de casos que representa realmente cada observación muestral. La variable debe contener enteros positivos. pweight: sampling weights, indica la inversa de la probabilidad de selección muestral de cada observación. Han de ser positivos, pero no necesariamente enteros. aweight: analytic weights, indica los pesos inversamente proporcionales a la varianza de cada observación. Un uso típico de este tipo de ponderación es cuando las observaciones son medias y el peso representa el número de elementos que generan la media. Han de ser positivos, pero no necesariamente enteros. Iweight (importance weights): estos comandos no tienen definición estadística formal, simplemente representan de alguna forma la importancia que se atribuye a cada observación. Cada comando que los acepta explica cómo los utiliza puede tener cualquier forma. 4.3
Calculo de medias
Medias StatisticsSummarize, tables and testSummary and descriptive statistics Arith/Geometric/Harmonic means Esta opción permite calcular la media: aritmética, geométrica o armónica. Para una variable en específico o para toda la base de datos en caso de dejar el espacio variables en vacio. Los comandos que se pueden utilizar para realizar el cálculo son: ameans, gmeans o hmeans
58
Figura 34. Media para las variables
Tabla 35. Medias para las variables price y mpg
4.4
Intervalos de confianza
Intervalos de confianza StatisticsSummarize, tables and test Summary and descriptive statisticsConfidence Intervals.
59
Figura 35. Intervalos de confianza para las variables . ci price Variable
Obs
Mean
price
74
6165.257
Std. Err.
[95% Conf. Interval]
342.8719
5481.914
6848.6
Tabla 36. Intervalos de confianza para la variable price
4.5
Pruebas de hipótesis 4.5.1
Media
Con Stata se pueden realizar test de hipótesis sobre la media . ttest horas = 15
También realizar hipótesis de diferencia de medias cuando existe homogeneidad en varianzas . ttest horas = wporhora
Cuando no existe homogeneidad en varianzas . ttest horas = wporhora, unequeal
60
4.5.2
Varianza
Este comando realiza una prueba en la igualdad de varianzas (desviaciones estándar). Este prueba tiene tres formas para ser evaluada, en la primer forma se demuestra que la desviación estándar es igual a un número, en la segunda se demuestra si una variable1 y otra vairable2 tienen la misma desviación estándar y la última forma se realiza la misma prueba pero utilizando una variable grupo. Esta prueba utiliza la tradicional prueba F para la homogeneidad entre varianzas entre muestras con n-1 grados de libertad, donde la hipótesis nula describe la igualdad entre varianzas y una hipótesis alternativa describiendo la diferencia que existe en la varianza de las muestras . sdtest variable1=1 . sdtest variable1=variable2 . sdtest variable1, by(variablegrupal)
4.5.3
Proporciones
Este comando realiza pruebas en la igualdad de proporciones utilizando grandes muestras estadísticas. Y posee las mismas características y formas de emplear que el comando de la sección 4.5.2. . prtest variable1=variable2
4.6
Manejo de tablas de datos
Los comandos tabulate y table ofrecen a los usuarios de Stata una amplia gama de posibilidades de descripción y análisis de datos a través de diferentes tipos de estadísticos y cruces de variables en cuadros de frecuencias y tablas de resumen. Se puede encontrar en el submenú StatisticsSummary, tables, and testTables
61
Figura 36. Tablas
Gran variedad de opciones para analizar encuestas como tablas de doble y múltiple entrada, de igual forma permite ver la tabla de frecuencias y de contingencia 4.6.1
Tabstat
Para la generación de tablas descriptivas, Stata ofrece diferentes opciones, la opción tabstat puede calcular la media, desviación estándar, varianza, el número de observaciones, entre otras.
Figura 37. Tabstat
62
Figura 38. Opciones Tabstat
4.6.2
Tabulate (tab)
El comando tabulate (en forma abreviada ta o tab) produce un cuadro de frecuencias para diferentes valores o categorías de una variable. La sintaxis del comando es:
. tabulate rep78 Repair Record 1978
Freq.
Percent
Cum.
1 2 3 4 5
2 8 30 18 11
2.90 11.59 43.48 26.09 15.94
2.90 14.49 57.97 84.06 100.00
Total
69
100.00
Tabla 37. Comando tabulate rep78
Combinado con la opción plot, el comando tabulate genera un histograma horizontal que describe gráficamente la frecuencia de cada una de las categorías.
63
Se puede tabular de forma separada más de una variable con el comando tab1. Para visualizar las frecuencias de cada una de las variables creadas con el procedimiento anterior se podrá usar la siguiente sintaxis: . tab1 ed1 ed2 ed3 ed4 ed5 ed6
El comando tab permite generar cuadros de frecuencia de 2 vías (2 variables) así: . tab edu004 e03 Donde la primera variable enunciada determinará el contenido de las filas y la segunda el contenido de las columnas.
Tabla 38. Comando tabulate doble entrada.
4.6.3
Table
De otro lado, el comando table permite crear tablas de contingencia doble o múltiple y a su vez definir el tipo de contenido estadístico para los campos de una tabla. La forma más simple de una tabla de contingencia es un cuadro de frecuencias absolutas. La sintaxis para generar tablas de contingencia es:
Por ejemplo la sintaxis . table edu004
Genera una tabla de frecuencia simple con el sub-total de personas que alcanzaron cada nivel educativo. La tabla resultante tan sólo tiene en cuenta las unidades sin expansión disponibles en la muestra. Sin embargo, las opciones del comando table, permiten obtener reportes mucho más elaborados como se muestra a continuación: 1.
Con la opción [weight=…] es posible expandir la información de la muestra para que se ajuste a la población (universo) total proyectado. Esto se logra a través de 64
ponderadores de frecuencia, de muestra, ponderadores analíticos y de importancia. Siguiendo con el ejemplo: . table edu004 [pw=fex]
Genera una tabla “expandida” que reporta el total de personas “proyectadas” en la población total que alcanzan cada uno de los niveles educativos. 2.
Así mismo el comando table permite resumir información de una variable teniendo en cuenta uno o más criterios de segmentación así: . table edu004 e03 [pw=fex],
La primera variable edu004 define las categorías de cada una de las filas de la tabla de contingencia y la segunda variable e03 las categorías de cada columna. 3.
Los totales por columna y por fila para una o más variables se obtienen con las opciones col y row respectivamente así: . table edu004 e03 [pw=fex], row col
4.
La opción format permite dar formato a los contenidos de la tabla para facilitar la lectura de los resultados. Por ejemplo, para desplegar la información con separadores de miles y cero decimales la sintaxis es: . table edu004 e03 [pw=fex], row col format(%10.0fc)
Tabla 39. Comando table
5.
Además de las frecuencias absolutas, el usuario puede definir otro tipo de contenido c(…) estadístico para los campos de la tabla. Por ejemplo, se pueden obtener en una tabla de contingencia la edad promedio de hombres y mujeres por nivel educativo así:
. table edu004 e03 [pw=fex], c(mean e02) row col format(%4.2fc)
65
Tabla 40. Comando table con estadística descriptiva
Hasta 5 diferentes tipos de medición pueden ser incorporados a una tabla de contingencia. Algunos de los más usados son: ▬ ▬ ▬ ▬ ▬ ▬ ▬
mean sd sum count max min median
media de la variable desviación estándar suma conteo de observaciones máximo mínimo mediana
Finalmente puede crear una variable dummy para cada categoría, simplemente, se agrega la opción generate. . tabulate rep78, generate(dummy)
4.7
Pruebas no paramétricas
Test No parámetrico Spearman’s StatisticsSummarize, tables and test Nonparametric Test of hyphotesisSperman’s rank correlation Esta prueba es una manera de medir la correlación en una medición no paramétrica, en donde se asume que no existe ningún supuesto sobre la distribución de frecuencia de las variables. La correlación de Spearman mide el grado de asociación entre dos variables cuantitativas que siguen una tendencia siempre creciente o siempre decreciente. . spearman price mpg . spearman price mpg, matrix
66
Figura 39. Prueba de Sperman
Tabla 41. Correlaciones por la prueba de Speaman
Con el anterior test se comprueba que el precio y las millas por hora de un vehículo tienen una relación dependiente negativa.
Test No parámetrico KSStatisticsSummarize, tables and testNonparametric Test of hyphotesis Two- sample Kolmogorov-Smirnov test Es una prueba de significancia estadística no paramétrica para contrastar la hipótesis nula cuando los parámetros de localización de ambos grupos son iguales. Por lo tanto, la hipótesis nula describe que las dos distribuciones son iguales y que existe evidencia de un patrón aleatorio, mientras que la hipótesis alternativa corresponderá a que existe un patrón no aleatorio.
Figura 40. Opciones de la prueba no paramétrica Kolmogorov-Smirnov
67
Tabla 42. Prueba Kolmogorov-Smirnov
A través de esta prueba se puede inferir que la distribución del precio de los vehículos es igual para el grupo de vehículos que provienen del extranjero y los nacionales. Por lo tanto se acepta la hipótesis nula de que la muestra proviene de una distribución normal. 4.8
Ejemplo aplicado
Para esta sección se utiliza la base de datos “Cenan-2009-2010-Personas”, descargada de la página web del Instituto Nacional de Estadística e Informática de Perú. Variable a utilizar año_prg mes_prg c101_edad_anio c101_sexo c104 c107 C116
Descripción Año en el cual se realiza la encuesta Mes en el cual se realiza la encuesta Edad del individuo Genero del individuo Peso neto del individuo (Kg) Talla (Cm). Ocupación profesional
Tabla 43. Descripción de las variables en el ejemplo
En la sección de manejo de bases datos se describió los comandos para mantener e eliminar variables para este caso se toma el año 2010 y el mes de abril. . use "C:\Users\Desktop\298-Modulo124 2\Cenan-2009-2010-Personas.dta" . keep if año_prg=="2010" . keep if mes_prg=="04"
4.8.1
Comandos Básicos
Sum, table, tabstat, tabulate.
68
4.8.2
Ayuda visual table y tabstat
Figura 41. Estadística descriptiva para una entrada
Figura 42. Estadística descriptiva dos entradas
Por ejemplo, se quiere saber los aspectos generales de la muestra, alguna variable en específico o algún momento estadístico de una variable. . sum . sum c101_edad_anio, d
69
Tabla 44. Estadística descriptiva para la variable años . tabstat c101_edad_anio c104 c107, stat (mean sd min max n)
Tabla 45. Estadística descriptiva teniendo en cuenta variables y momentos estadísticos . tabstat c101_edad_anio c104 c107, stat (count mean sd p50 min max skew kurt n) by ( c101_sexo)
Tabla 46. Estadística descriptiva desagregada por género
70
Nota: Puede notar que el valor máximo para talla en centímetros es igual 999.9. Para codificar esta variable se digita el siguiente comando recode c107 (999.9=.). (Ver más información en la sección 3.12.1)
4.8.3
Tablas de contingencia
Por ejemplo, se requiere el peso promedio neto por edad y sexo, teniendo como restricción aquellas personas que sean mayores de 17 y menores a 41 años. . table c101_edad_anio c101_sexo, contents(mean c104), if c101_edad_anio>=18 & c101_edad_anio<=40
Tabla 47. Tabla de contingencia por género
Se requiere una tabla que contenga el peso promedio neto y el número de individuos por edad y sexo, teniendo en cuenta la ocupación profesional del individuo. . by c116, sort: table c101_edad_anio c101_sexo, contents(mean c104 count c104)
71
Tabla 48. Tabla de contingencia por ocupación profesional.
4.8.4
Tablas de frecuencia
Se requiere una tabla de frecuencia que tenga en cuenta la edad y una restricción con respecto a que los individuos sean menores a 18 años. . tabulate c101_edad_anio if c101_edad_anio<=18
Se requiere una tabla de frecuencia que tenga en cuenta la población entre los 16 y 18 años y que muestre el porcentaje del total en forma de fila y una siguiente en forma de porcentaje por filas y columnas. . tabulate c101_edad_anio c101_sexo, row, if c101_edad_anio<=18 & c101_edad_anio>=16 . tabulate c101_edad_anio c101_sexo, row col, if c101_edad_anio<=18 & c101_edad_anio>=16
72
Tabla 50. Tabla de frecuencia para individuos menores de 18 años
Tabla 49. Tabla de frecuencia por fila de individuos entre 16 y 18 años
Tabla 51. Tabla de frecuencia con porcentaje fila y columna para individuos entre 16 y 18 años
4.8.5
Correlaciones
Se requiere medir el grado de asociación entre las variables de edad y peso neto, con dos medidas de correlación. Una de manera paramétrica y la otra de manera no paramétrica.
73
*Lineal *No lineal
. pwcorr c101_edad_anio c104, sig . spearman c101_edad_anio c104
Tabla 52. Correlación entre edad y peso neto
Tabla 53. Prueba de Spearman
Para los dos tipos de prueba existe evidencia que el peso está altamente correlacionado con la edad del individuo, con una correlación positiva.. 4.8.6
Prueba para la media
En una muestra de 6.898 individuos ¿es la edad media igual que la de la población de la que proviene esta muestra? . sum c101_edad_anio
Tabla 54. Estadística descriptiva para la edad . ttest c101_edad_anio=29.78994
74
Tabla 55. Prueba de medias
4.8.7
Prueba para detectar normalidad
. sktest c101_edad_anio
Tabla 56. Prueba de normalidad . egen aniosmean=mean( c101_edad_anio) . egen aniossd=sd( c101_edad_anio) . ksmirnov c101_edad_anio=normprob( (c101_edad_anio-aniosmean)/aniossd)
Tabla 57. Prueba Kolmogorov-Smirnov
Mediante las dos pruebas que se realizaron para detectar la presencia de normalidad en la variable de años del individuo se llega a la conclusión que esta variable no sigue una distribución normal. 4.8.8
Pruebas para la media: dos muestras independientes
¿Es igual la media de la edad para hombres y mujeres? 75
. tabstat c101_edad_anio, by( c101_sexo)
4.8.8.1 Homogeneidad de varianzas . sdtest c101_edad_anio, by( c101_sexo)
Tabla 58. Test de homogeneidad de varianzas
Como se cumple la homogeneidad de varianzas, se puede utilizar la t de Student para muestras independientes. . ttest c101_edad_anio, by( c101_sexo)
Tabla 59. Test de medias.
En caso de que las varianzas de las dos muestras sean diferentes, se utiliza unequal o el test de Welch w. . ttest c101_edad_anio, by( c101_sexo) unequal . ttest c101_edad_anio, by( c101_sexo) w
4.8.9
Comparación de k medias independientes
Se obtiene de 6.898 individuos el peso neto y su respectivo sexo. ¿Es diferente el peso neto en función del género? 76
4.8.9.1 ANOVA de una Vía . tabstat c104, by ( c101_sexo)
Tabla 60. Media del peso neto por género
Primero se crea una variable con los residuales para comprobar su normalidad. . gen residuales= c104-50.77146 if c101_sexo==1 . replace residuales= c104-48.40414 if c101_sexo==2
Segundo se comprueba la normalidad de los residuales, tanto con test estadísticos como por métodos gráficos.
0.75 0.25
0.50
Normal F[(residuales-m)/s]
0.00
-100
-50
0
residuales
50
1.00
100
. pnorm residuales . qnorm residuales . swilk residuals .sktest residuals
-100
-50
0 Inverse Normal
50
100
Figura 44. Distribución normal estandarizada
0.00
0.25
0.50 Empirical P[i] = i/(N+1)
0.75
1.00
Figura 43. Cuantiles de los residuales vs cuantiles de la distribución normal
Tabla 61. Prueba de normalidad Shapiro-Wilk de los errores
77
Tabla 62. Prueba de normalidad de los errores
Tercero, se comprueba la homogeneidad de varianzas . robvar c104, by ( c101_sexo)
Tabla 63. Prueba de Homogeneidad de varianzas
Cuarto, se lleva a cabo el ANOVA, y se coloca como opción elaborar una tabla descriptiva t y algunas opciones útiles para hacer comparaciones b anova, sc anova, si anova, para hacer comparaciones Bonferroni, Scheffe y Sidak, respectivamente. . oneway c104 c101_sexo, t
Tabla 64. Tabla ANOVA
78
4.8.10 Exportar tablas Existen algunas aplicaciones dentro de STATA 12, para exportar tablas las cuales son tabout y outreg2, outreg2 solo será útil después de una estimación econométrica. Pero antes de ser utilizadas deben ser instaladas y mirar su aplicabilidad dentro del software. Después de instalar las aplicaciones y la posterior apertura al software Stata 12, se digita el comando adoupdate, update, para mostrar si existe alguna nueva actualización de la aplicación. . ssc describe tabout . ssc describe outreg2 . ssc install tabout . ssc install outreg2
1. Codificar las variables a las cuales se desea exportar en tablas . recode c101_sexo (1=1 "Hombre") (2=2 "Mujer"), gen (genero)
2. Utilizar el comando tabout teniendo en cuenta parámetros y opciones. . help tabout
tabout [ varlist ] [ if exp ] [ in range ] [ weight = exp ] using filename [ , options ] . tabout c101_edad_anio genero using table1.xls if c101_edad_anio>=18 & c101_edad_anio<=22, cells(freq col cum) format (0 1 1) cl ab(No. Col% Cum%) replace
Tabla 65 Comando tabout en Stata 12
Tabla 66. Archivo en Excel.
79
Tabla 67. Archivo de texto
3. Utilizar el comando outreg2 teniendo en cuenta parámetros y opciones. . help outreg2
outreg2 [varlist] [estlist] using filename [, options] [: command] 4.8.11 Ejercicio 1. Utilizar la base de datos que se consolido en la sección manejo de base de datos. 2. Construir una tabla estadística que muestre el valor máximo y mínimo de p6154s2a1 “Valor de la consulta médica”. “tabstat” 3. Construir una tabla de contingencia en donde muestre el promedio de la edad “p6040” teniendo en cuenta el parentesco del hogar “p6051” y el sexo “p6020”. “by, table, contents, mean”. 4. Construir una matriz de correlaciones entre edad “p6040” y salario “j12_cuanto_gano”. “pwcorr”. 5. Establecer si para la muestra, la edad media de hombres y mujeres es igual. “ttest, sdtest”. 4.9
Comandos usados
ameans anova by, sort ci collapse contract correlate display egen estat gen gmeans help tabout hmeans
keep ksmirnov level mean misstable normprob oneway oneway outreg2 pnorm pwcorr pwcorr qnorm quietly
80
recode replace robvar scalar sdtest sktes sktest sktest spearman ssc describe ssc install summarize swilk
4.9.1
tab1 tab2 table table tabstat tabstat tabulate tabulate test ttest ttest use xi
Otros comandos recomendados
compare ereturn ktau ladder outreg outreg2 Return set level 90 Signtest spearman stem tabi weight
81
5. GRAFICAS CON STATA Stata cuenta con una poderosa herramienta gráfica, permitiendo obtener gráficas de excelente calidad y con varias opciones de edición de las mismas, es posible realizar gráficas como histogramas, barras, de torta, series de tiempo, Box plot, dispersión, para datos panel y para otros tipos de análisis como son de supervivencia, multivariado, control de calidad, etc. Stata tiene dos formas de generar múltiples gráficos, a través de la ventana de comandos con el comando graph o utilizando la barra de herramientas en Graphics. El comando graph se utiliza con el tipo de gráfico a realizar. A continuación se presenta la lista de posibles gráficos Plottype
Description
scatter
Scatterplot
line
line plot
connected
connected-line plot
scatteri
scatter with immediate arguments
area
line plot with shading
bar
bar plot
spike
spike plot
dropline
dropline plot
dot
dot plot
rarea
range plot with area shading
rbar
range plot with bars
rspike
range plot with spikes
rcap
range plot with capped spikes
rcapsym
range plot with spikes capped with symbols
rscatter
range plot with markers
rline
range plot with lines
rconnected
range plot with lines and markers
pcspike
paired-coordinate plot with spikes
pccapsym
paired-coordinate plot with spikes capped with symbols paired-coordinate plot with arrows
pcarrow pcbarrow
paired-coordinate plot with arrows having two heads
pcscatter
paired-coordinate plot with markers
pci
pcspike with immediate arguments
pcarrowi
pcarrow with immediate arguments
tsline
time-series plot
tsrline
time-series range plot
82
mband
median-band line plot
mspline
spline line plot
lowess
Lowess line plot
lfit
linear prediction plot
qfit
quadratic prediction plot
fpfit
fractional polynomial plot
lfitci
linear prediction plot with CIs
qfitci
quadratic prediction plot with CIs
fpfitci
fractional polynomial plot with CIs
function
line plot of function
histogram
histogram plot
kdensity
kernel density plot
lpoly
local polynomial smooth plot
lpolyci
local polynomial smooth plot with CIs Tabla 68. Gráficos twoway
Plottype
Description
graph matrix
Matrices de gráficos
graph bar
Gráficos de barras – vertical
graph hbar
Gráficos de barras – horizontal
graph dot
Gráficos de medias
graph box
Gráficos de cajas
graph pie
Gráficos de tortas Tabla 69. Otro tipo de gráficos
Ejemplo: . graph twoway connected var1 var3 . graph twoway scatter var3 var1 var4 . graph box var5 if dummy = =1 . graph pie var3 var1 in 1/30
Para grabar un gráfico, se usa el comando graph save graph.gph y el nombre del archivo, recuerde que la extensión de los gráficos de Stata es .gph. Si se quiere traer de nuevo se usará graph use graph.gph Es posible combinar gráficos por medio del comando combine graph1 graph2.. A continuación se presenta una explicación más detallada de la creación de los diferentes tipos de gráficos
83
5.1
Histograma
Histograma: GraphicsHistogram
Figura 45. Histograma
Figura 46. Opciones del histograma. . histogram price, normal, (bin=33, start=2006, width=258942.94)
84
3.0e-04 2.0e-04 Density
0
1.0e-04
0
5,000
Price
10,000
15,000
Figura 47. Histograma del precio
5.2
Gráfico de tortas
Gráfica de Tortas : GraphicsPie Chart
Figura 48. Opciones del gráfico de tortas . graph pie, over(foreign) title(Gráfico de tortas) legend(on rows(2)) pie(2, explode) plabel(1 percent, gap(30)) plabel(2 percent) legend(position(9))
85
Figura 49. Gráfico de tortas porcentajes como etiqueta . graph pie, over(foreign) title(Gráfico de tortas) plabel(_all name, gap(-5)) plabel(_all percent, gap(5)) legend(off)
Figura 50. Gráfico de tortas con etiquetas
86
5.3
Graficas twoway
Figura 51. Gráficos twoway
Todos los comandos para graficas empiezan por graph, pero esto es opcional dependiendo el tipo de gráfico solo se pone la opción TWOWAY
Figura 52. Opciones de gráficos twoway
87
40 30 10
20
Mileage (mpg)
2,000
3,000 Weight (lbs.)
4,000
5,000
Figura 53. Grafica twoway dispersión.
Usando los comandos para hacer esta gráfica solo es necesario escribir . scatter mpg weight
Se puede crear gráficos por grupos usando el comando by . twoway scatter mpg weight, by(foreign)
Foreign
30 20 10
Mileage (mpg)
40
Domestic
2,000
3,000
4,000
5,000
2,000
3,000
4,000
5,000
Weight (lbs.) Graphs by Car type
Figura 54. Gráfico por grupos
Para acceder por medio de ventanas
88
Figura 55. Ayuda visual para crear gráficos por grupo
Es posible crear varios tipos de gráficas en un solo gráfico, algo muy usual es el uso de la gráfica scatter con una recta de regresión ajustada. Se debe crear un nuevo gráfico sin eliminar el anterior
Figura 56. Generar dos gráficos en uno solo . twoway scatter mpg weight || lfit mpg weight – . twoway (scatter mpg weight) (lfit mpg weight)
*Con una notación diferente de separación
89
40 30 20 10
2,000
3,000 Weight (lbs.) Mileage (mpg)
4,000
5,000
Fitted values
Figura 57. Gráfico de dispersión y ajuste lineal.
5.4
Editor de gráficos de Stata
Figura 58. Edición de gráficas
90
Figura 59. Opciones en la edición de gráficos
5.4.1
Haciendo doble clic sobre el área de la grafica
Se pueden agregar líneas horizontales o verticales indicando el valor del eje Y/o X donde se desea trazar la línea
Figura 60. Agregar líneas a la gráfica
91
5.5
Gráfico de series de tiempo
. twoway line Coke date
Figura 61. Gráfico del precio de la acción de Coca Cola a través del tiempo
Otra manera de graficar series de tiempo, primero se debe crear una variable de tiempo con el comando tsset y utilizar el comando tsline con la variables que se desean gráficar. . tsset date, m . tsline Coke
92
Figura 62. Gráficos con series de tiempo
5.6
Gráfico de dispersión
. sysuse census.dta, clear
93
Figura 63. Gráficos de dispersión.
Figura 64. Opciones de gráficas de dispersión
. graph matrix pop medage death marriage, maxes(ylab(none) xlab(none)) by( region)
94
Figura 65. Gráfico de dispersión por región
5.7
Gráfico de puntos
. twoway (dropline price mpg, sort ), name( "uno" ) title("dropline") . twoway (connected price mpg, sort ), name( "dos" ) title("connected") . twoway (dot price mpg, sort ), name( "tres" ) title("dot") . graph combine uno dos tres
Figura 66. Tipos de gráficos de puntos
95
5.8
Gráfico de barras
Se puede acceder al menú de gráfico de barras desde la barra de herramientas Graphics Bar chart o con el Launch dialog. . db graph bar
Figura 67. Gráfico de barras
Figura 68. Opciones de gráfico de barra
96
8 6 4 2 0 Prof/Mgmt
Sales
Clerical
mean of tenure
Labor/Ops
Other
mean of prev_exp
Figura 69. Visualización del gráfico de barras
0
5
10
15
. graph bar (mean) tenure (mean) prev_exp, over(occ5) stack
Prof/Mgmt
Sales
Clerical
mean of tenure
Labor/Ops
Other
mean of prev_exp
Figura 70. Visualización del gráfico de barras opción stack
La opción de STACK produce una gráfica donde cada barra sería de dos o más barras apiladas, por lo que la división muestra la relación de las variables con respecto a total de la suma de las variables.
97
5.9
Generando Funciones
0
1
2
y
3
4
5
Figura 71. Gráficos avanzados
0
5
10 x
15
20
Figura 72. Gráfica raíz cuadrada (x).
5.10 Combinando gráficas . graph combine "C:\Users\USER\Desktop\Graph1.gph" "C:\Users\USER\Desktop\Graph2.gph"
98
5.11 Ejemplo aplicado En esta sección y en la próxima acerca de regresión lineal en Stata y supuestos de regresión se trabaja la base de datos Encuesta de Calidad de vida para Colombia 2011. 5.11.1 Transformaciones Tukey El investigador con el objetivo de corregir la asimetría de los datos, decide observar la mejor ajuste de potencia que se aproxime a los valores observados, para lo cual utiliza el comando gladder sobre la variable dependiente. . use"C:\Users\SOFWARESHOPFILES\CALIDADDEVIDA2011COLOMBIA.dta", clear . gen w=exp(Ln_w) . gladder w, title(Transformacion Tukey) ylabel(none) xlabel(none)
Figura 73. Ayuda visual Ladder y Gladder
99
Figura 74. Escalera de Potencias de Tukey
5.11.2 Gráficos de matriz Para elaborar un análisis exploratorio del conjunto de relaciones entre más de dos variables, Stata 12 puede realizar este tipo de análisis grafico a partir del comando matrix. graph matrix Ln_w p6040 infanteshogar, half
Figura 75. Grafica de correlaciones entre variables
100
5.11.3 Gráficos de líneas Existen dos comandos que permiten aplicar este tipo de gráficos. El primero connect dibuja los puntos y los conecta. El segundo line hace la conexión de los puntos pero los deja invisible. Se recomienda utilizar la opción sort, que ordena los casos en función de las variables independientes para que la conexión se produzca entre casos continuos y no se produzca crucen entre líneas dibujadas. . graph twoway connected w p6040, sort name(Ingresoedad) . graph twoway line w p6040, sort name(Ingresoedad1) . graph combine Ingresoedad Ingresoedad1, name(ConnectVSLine)
Figura 76. Gráficos de líneas
5.11.4 Edición de gráficos Después de lograr el gráfico que se require, se podrá editar de tal manera que genere algún tamaño en particular, alguna línea, algún color o algún otro cambio que se quiera agregar al gráfico diseñado.
Figura 77. Barra de herramientas en la edición de gráficos.
101
Para editar colores y tamaños en los ejes será necesario dar un doble clic sobre el área a editar.
Figura 78. Edición de gráficos.
5.11.5 Gráfica de histogramas Los histogramas son gráficos que se utilizan en la representación de variables cuantitativas continuas, el cual consiste en dividir los valores de la muestra en una serie de intervalos y representar cada uno de estos con un área proporcional a su tamaño. Las opciones que con mayor frecuencia se utilizan en este tipo de gráficos se encuentran bin(#), siendo # el número de intervalos que se desean dibujar, width(#), siendo # el ancho de las barras, start(#), siendo # el punto de partida del histograma, frequency muestra las frecuencias en vez de los porcentajes y normal realiza una grafica donde sobrescribe sobre el histograma la curva de Gauss para que se pueda comparar la distribución empírica y la normal. . histogram p6040, name(Histogramaedad) . hist p6040, bin(10) name(Histogramaintervalos) . hist p6040, start(0) width(20) name(Histogramainicio) . hist p6040, start(0) width(10) frequency normal name(HistogramaGauss) . graph twoway (hist p6040) (kdensity p6040), name(Graficodensidad) . graph combine Histogramaintervalos Histogramainicio HistogramaGauss Graficodensidad
102
Figura 79. Histograma de la Edad
Figura 80. Opciones graficas con los histogramas
5.11.6 Diagramas de dispersión Con el objeto de llevar a cabo este apartado es necesario generar una base de datos a partir de la base de datos de la Encuesta de Calidad de vida 2011 para Colombia utilizando el comando collapse, con el objetivo de obtener los ingresos y años de educación promedio por nivel educativo y sexo. . collapse (mean) w edu, by( nivele p6020 ) . scatter w edu, name(Scatter1,replace)
103
Figura 81. Diagrama de dispersión
Algunas opciones como ylabel y xlabel, permite editar los ejes de las ordenadas y abscisas dentro de un rango y un intervalo, lfit, permite hacer una gráfico bidimensional trazando una línea que mejor se ajuste a las variables de la muestra. . scatter w edu, ylabel(0(200000)3000000, angle(horizontal)) xlabel(0(1)15, grid) /// name(Scatter2,replace) title(Ingresos vs Educacion) ytitle(Ingreso promedio) xtitle(Años de educación promedio) . scatter w edu, ylabel(0(200000)3000000, angle(horizontal)) xlabel(0(1)15, grid) /// name(Scatter3,replace) title(Ingresos vs Educacion) ytitle(Ingreso promedio) xtitle(Años de educación promedio) by(p6020) . scatter w edu, mlabel(nivele) || Lfit w edu ,ylabel(0(200000)3000000, angle(horizontal)) xlabel(0(1)15, grid) /// name(Scatter4,replace) title(Ingresos vs Educacion) ytitle(Ingreso promedio) xtitle(Años de educación promedio) by(p6020)
104
Figura 82. Dispersión Ingresos vs Educación
Figura 83. Dispersión Ingresos vs Educación por género.
Figura 84. Ajuste lineal
5.11.7 Exportar gráficos Los gráficos que se realizaron en la sección se mantienen en la memoria RAM del computador con un nombre sujeto a los parámetros de las variables o al nombre que se le ha otorgado a cada gráfico. . graph describe Scatter4 . graph rename Scatter4 ScatterRegresion, replace . graph display Scatter4 . graph copy Scatter4, replace . graph drop Scatter4 . graph combine Scatter4 Scatter2, name(combinación, replace)
105
Con el objeto de utilizar los gráficos al momento que se necesitan y no se tenga a disposición el software Stata 12, exportar gráficos es la mejor solución, existen tres maneras de exportar gráficos. 1. Dar clic derecho al gráfico, se habilita copiar y guardar como.
Figura 85. Guardar gráfica.
Figura 86. Guardar gráfica desde barra de herramientas.
2. Si en algún momento se sale del editor de gráficos, el gráficos quedara grabado en memoria RAM por lo tanto solo será necesario utilizar el siguiente comando, aunque esta opción no es recomendable ya que la gráfica quedara de manera tal que solo estará disponible si se posee Stata 12. .graph save Scatter4"C:\Users\Desktop\SOFWARESHOPFILES\Scatter4"
106
3. La opción de exportar en formato ps|eps|wmf|emf|png|tif|pict|pdf, con el siguiente comando: .graph display Scatter4 . graph export "C:\Users\Desktop\ SOFWARESHOPFILES\Scatter4.pdf", as(pdf) replace
5.12 Comandos usados bar box cchart combine dot graph histogram kdensity matrix pchart
pie qnorm quantile rchart rvpplot scatter title tslinetwoway xchart
107
6. REGRESIÓN LINEAL EN STATA Una de las principales fortalezas de Stata tiene que ver con la gran versatilidad, flexibilidad y facilidad que ofrece para estimar modelos de regresión. Uno de los principales objetivos de los modelos de regresión es explicar el comportamiento de uno o más fenómenos (variables dependientes) a partir de un conjunto de regresores (o variables independientes) que, en la mayoría de los casos, han sido identificados por la teoría como los factores que explican el fenómeno que se está estudiando. Sin duda, por la facilidad de su interpretación, los modelos de regresión lineal son los más populares y los más empleados por los investigadores de diferentes disciplinas. A continuación se presentan los pasos para estimar un modelo lineal a través de mínimos cuadrados ordinarios (MCO) a partir de la información de la base de datos “ECUACION INGRESO.dta”. El ejercicio propuesto busca establecer la relación existente entre los ingresos laborales mensuales (expresada en logaritmos) y un conjunto de variables de contexto de los individuos (horas de trabajo al mes, años de educación aprobados, años de experiencia laboral, sexo, etc.). La teoría económica establece que la relación entre los ingresos laborales y el conjunto de variables de contexto individual se puede representar (en su forma más simple) a través de la ecuación 𝐿𝑛𝑦 = 𝛽 + 𝛽 𝐿𝑛𝑚 + 𝛽 𝑒𝑑𝑢007 + 𝛽 𝑒𝑥𝑝 + 𝛽 𝑒𝑥𝑝 + 𝛽 𝑒03 + 𝑒 (1) Donde el conjunto de variables empleadas en la estimación son: Variable
Descripción de la variable
lny
Logaritmo natural del ingreso laboral mensual (Dependiente)
lnm
Logaritmo natural de las horas de trabajo al mes (Independiente)
edu007
Número de años de educación aprobados (Independiente)
exp
Años de Experiencia laboral (Independiente)
exp2
Años de experiencia laboral al cuadrado (Independiente)
e03
Dummy de sexo "1=hombre; 0=Mujer" (Independiente) Tabla 70. Descripción de las variables
6.1
Ejercicio 1. A partir de la información de la base de datos “ECUACION INGRESO.dta”, generar las variables necesarias con sus respectivas etiquetas para estimar la ecuación (1)
108
6.2
Descripción estadística de la información
Antes de estimar la ecuación de ingreso (1), es conveniente realizar una primera aproximación a los datos de forma descriptiva. El comando summarize (en forma abreviada summ) genera las estadísticas descriptivas básicas de una o más variables. La sintaxis del comando se describe a continuación: Por ejemplo: . summ lny lnm edu007 exp exp2 e03
Tabla 71. Resumen de variables
Se obtiene el siguiente reporte:
Número de observaciones de cada variable (Obs), Promedio de cada variable (Mean) Desviaciones estándar (Std. Dev.) Valor mínimo de cada variable (Min) Valor máximo (Max).
Se puede obtener más detalles estadísticos de cada una de las variables con la opción “detail” así: . summ lny lnm edu007 exp exp2 e03, d
6.3
Relación lineal entre las variables dependientes e independientes
Con el fin de analizar la relación lineal entre las variables independientes del modelo se calcula la matriz de correlaciones. A través de la instrucción pwcorr se obtiene la matriz de correlación de las variables que van a ser incluidas en el modelo de regresión así: . pwcorr lny lnm edu007 exp exp2, sig
109
lny
lnm
edu007
exp
lny
1.0000
lnm
0.3674 0.0000
1.0000
edu007
0.4995 0.0000
-0.0127 0.0812
1.0000
exp
-0.0766 0.0000
-0.0211 0.0037
-0.3772 0.0000
1.0000
exp2
-0.1373 0.0000
-0.0541 0.0000
-0.4213 0.0000
0.9425 0.0000
exp2
1.0000
Tabla 72. Correlaciones entre variables
El comando “pwcorr” estima los coeficientes de correlación del conjunto de variables del modelo. En la matriz de correlaciones aparece el coeficiente de correlación que es un valor número que va desde 0 a 1 e indica el grado de asociación lineal entre las variables, este coeficiente viene acompañado del nivel de significancia (con la adición de la opción “sig”), que permite decidir sobre la hipótesis nula de que el coeficiente de correlación vale cero. En nuestro ejemplo, el coeficiente de correlación entre años de educación (edu007) e ingreso salarial en logaritmos (lny) es de 0,4 y tiene una significancia de 0, lo cual indica que existe una relación significativa entre estas dos variables. 6.4
Representación gráfica de las relaciones entre variables
En segundo lugar, y como paso previo al la relación entre la variable dependiente ejemplo, para representar la relación aprobados, es conveniente que primero promedio por año de educación así:
proceso de estimación, se analiza gráficamente y cada uno de los regresores del modelo. Por entre los ingresos y los años de educación se genere una variable que indique el ingreso
Col1
Col2
Col3
Col4
Id
Años de educación
Ingreso (Miles de pesos)
Ingreso promedio por año de educación
1
6
20000
25000
2
6
30000
25000
3
6
25000
25000
4
5
25000
24000
5
5
24000
24000
6
5
23000
24000
7
2
24000
22000
8
2
20000
22000
110
9
0
20000
17500
10
0
15000
17500
Tabla 73. Ejemplo de una base de datos
La variable “ingreso promedio por año de educación” en la columna 4 se grafica respecto a los años de educación (el usuario puede comprobar que es más fácil identificar la relación entre la variable dependiente y los regresores si se generan variables promedio) Como se observa en la tabla anterior, la operación realizada en la columna 4 (ingreso promedio por año de educación), resulta de efectuar un cálculo al interior de la columna 3 (Ingreso), teniendo en cuenta como criterio de agrupación la columna 2 (años de educación). Este tipo de operaciones se pueden efectuar en Stata a través del comando egen. Como en nuestro caso la variable dependiente es el logaritmo de los ingresos laborales 1. Se genera la variable “lny_ed” que será promedio del logaritmo natural de los ingresos por año de educación aprobado. Esta operación, se realiza a través del comando egen y la opción by así: . egen lny_ed=mean(lny), by(edu007) 2. A continuación, se grafica el promedio del logaritmo natural de los ingresos por año de educación respecto a los años de educación aprobados por medio del comando line así: . line lny_ed edu007, sort
Figura 87. Años de educación vs ingreso laboral.
Ahora se tiene una idea bastante clara de la relación promedio observada entre el logaritmo de los ingresos laborales y los años de educación y de qué tan realista es la aproximación lineal en este caso. El gráfico parece indicar que sería conveniente estimar la relación entre estas dos variables a través de una transformación de tipo “spline”. 111
De otro lado, la relación entre los ingresos laborales promedio y los años de experiencia es de tipo cuadrático.
Figura 88. Años de experiencia vs ingresos laborales.
Se observa que la variable de experiencia tiene un comportamiento exponencial, lo cual justifica el uso de la variable experiencia al cuadrado en las estimaciones. 6.5
Estimación del modelo lineal de regresión6
Para estimar la ecuación (1) a través de MCO se utiliza el comando regress (en forma abreviada reg) así: . regress lny lnm edu007 exp exp2
Tabla 74. Salida de una regresión.
El comando regress genera una amplia gama de estadísticas además de los coeficiente de regresión. 6
Help regress Findit aboutreg
112
La tabla “source” también, conocida como tabla de análisis de varianza ANOVA, presenta la información relacionada con la suma de cuadrados “SS”, los grados de libertad “df” y los cuadrados promedio “MS” del modelo y de los residuos. El cálculo del R2 se puede obtener manualmente dividiendo la suma de cuadrados del modelo entre la suma de cuadrados totales.
Al lado derecho de la tabla fuente se presenta otro paquete de estadísticas. El estadístico F resulta de calcular la razón entre la suma de cuadrados promedio del modelo y la suma de cuadrados promedio de los residuos. A través de este estadístico se puede probar la hipótesis de que todos los coeficientes excluyendo la constante son estadísticamente iguales a cero. 𝐻 : 𝛽 = 𝛽 = 𝛽 = 𝛽 = 0
Significancia e intervalos de confianza de los coeficientes: A través del estadístico 𝑡 = 𝛽⁄𝑠𝑑(𝛽 ) puede probar la hipótesis de que cada uno de los coeficientes estimados es estadísticamente igual a cero, mientras que en la columna “95% Conf. Interval” se presenta el intervalo, al 95% de confianza, para cada uno de los coeficientes.
Interpretación de los coeficientes: La interpretación de los coeficientes varía dependiendo de la forma como están expresadas las variables en el modelo así:
Interpretación de los betas estimados de acuerdo a la forma como están expresadas las variables del modelo
Variable dependiente en logaritmos
Variable independiente en logaritmos
Variable independiente en niveles
Elasticidad: Cambio porcentual esperado en y ante un cambio porcentual en x. En nuestro
Semi-elasticidad: Cambio porcentual esperado en y ante un cambio marginal
ejemplo , ˆ 1
Variable dependiente en niveles
Cambio esperado en nivel en y ante un cambio porcentual en x
en x. En nuestro ejemplo , ˆ 2 , ˆ 3 y β
Efecto marginal: Cambio esperado en nivel en y ante un cambio marginal en x.
Tabla 75. Interpretación de los coeficientes.
Resumen estadístico de la muestra empleada en la estimación: Raras veces el número de observaciones empleadas en las estimaciones coincide exactamente con las observaciones que originalmente estaban disponibles en la base de datos. Para obtener una descripción resumida de la muestra empleada efectivamente en la estimación después de realizar M.C.O, se empleará el comando estat sum el 113
cual genera el siguiente resultado: . estat sum
Tabla 76. Estadística descriptiva después de la estimación por M.C.O
Es fácil comprobar que las características de las personas en la muestra empleada en la estimación difieren de las observadas en la base de datos original. 6.5.1
Pruebas de hipótesis lineales
Una vez realizada una regresión lineal es posible probar hipótesis lineales sobre los coeficientes estimados a través del comando test así: . test lnm=1
Tabla 77. Prueba individual
En el primer caso se probó que si el coeficiente estimado asociado a las horas de trabajo al mes es igual a 1. La probabilidad de que el coeficiente sea 1 es cero, por los tanto no se acepta la hipótesis. En términos económicos se podría afirmar que no hay elasticidad unitaria entre horas de trabajo al mes y el ingreso laboral. 6.5.2
Ejercicio
2. Pruebe la hipótesis de que todos los coeficientes del modelo exceptuando el intercepto son estadísticamente iguales a cero. Compare con la prueba F generada por Stata en la regresión lineal antes estimada. . test lnm=edu007=exp=exp2=0
3. ¿Cuántos años de experiencia laboral serían necesarios para maximizar los ingresos laborales mensuales? 114
. lincom -0.0347/(2*-0.0003987)
6.6
Comprobación del cumplimiento de los supuestos de M.C.O. 6.6.1
Multicolinealidad (Asociación lineal entre variables)
Pese a que en presencia de multicolinealidad los estimadores son MELI (Mejores Estimadores Lineales Insesgados), los errores estándar de los coeficientes estimados tienden a estar inflados (sobreestimados), haciendo más fácil que se acepte que uno o más regresores son estadísticamente iguales a cero. La velocidad con la cual se incrementan las varianzas y las covarianzas de los estimadores puede analizarse a través del factor inflador de varianza, el cual calcula Stata a través del comando vif después de ejecutar regress así: . vif
Tabla 78. Prueba multicolinealidad
Los VIF de cada uno de los estimadores cuyo valor sea superior a 10 (algunos menos conservadores consideran 30) indican que la variable a la que acompañan puede considerarse como una combinación lineal de otras variables independientes. Alternativamente suele observarse el índice de Tolerancia (1/VIF). Un índice de tolerancia igual a 0.1 es equivalente a un VIF de 10. Valores de tolerancia inferiores a 0.1 (0.333 para los menos conservadores) indican presencia moderada o severa de multicolinealidad. 6.6.1.1 Ejercicio 4. Calcule cada uno de los VIF de la regresión anterior. 6.6.2
Homocedasticidad
Es uno de los principales supuestos de MCO. En términos generales, en presencia de heroscedasticidad la varianza de los estimadores está sesgada (sobrestimada o subestimada). En estos casos no se puede confiar en las pruebas t y F. Visto de otro modo, si el modelo está bien especificado no debería existir un patrón definido entre los residuales del modelo y la variable dependiente pronosticada. Cuando la varianza de los residuales no es constante se dice que la varianza de los residuales es heteroscedástica. Existen métodos gráficos y métodos formales para detectar heterocedasticidad. 115
Método Gráfico: A través de un gráfico que relacione los residuales del modelo contra los valores estimados de la variable dependiente se puede hacer una primera comprobación visual de posibles patrones de interrelación entre estas dos variables. Siguiendo con nuestro ejemplo, en Stata se puede obtener este gráfico a través del comando rvfplot así: . rvfplot, yline(0)
Figura 89. Grafica para detectar heterocedasticidad
No parece haber un patrón definido en los residuales del modelo.
Método formal: Stata ofrece una gran variedad de pruebas de heteroscedasticidad para modelos lineales estimados a través de MCO. Sin embargo, una de las pruebas de heteroscedasticidad más ampliamente difundida es la prueba de WHITE. Esta prueba se puede obtener después de emplear el comando regress así: . imtest, white
Tabla 79. Prueba para detectar heterocedasticidad.
Claramente se rechaza la prueba de homocedasticidad. Así mismo se puede constatar que los residuales tienen problemas de asimetría (skewness) y apuntalamiento (kurtosis). 116
Una forma simple de corregir heterocedasticidad según el criterio de WHITE (1980)7 es a través de la opción robust en la estimación por MCO así: . regress lny lnm edu007 exp exp2, robust
Tabla 80. Regresión con corrección de heterocedasticidad.
Aunque el problema de heterocedasticidad no era importante (la significancia de los coeficientes se mantuvo inalterado), se puede constatar que los errores estándar en el modelo corrección de heterocedasticidad son mayores, lo cual prueba que inicialmente estaban subestimados. 6.6.3
Normalidad de los residuos
Es un supuesto necesario únicamente garantizar la validez de las pruebas t y F en MCO. En realidad, MCO tan solo requiere que los residuales estén idéntica e independientemente distribuidos. Después de ejecutar el comando regress, se puede emplear el comando predict seguido por la opción res para estimar los residuales así: . predict residual, res
Método Gráfico: A continuación empleamos los comandos kdensity y qnorm para constatar gráficamente si los residuos siguen una distribución normal así . kdensity residual, normal
7
WHITE H. 1980. A Heteroscedasticity Consistent Covariance Matriz Estimator and Direct Test of Heteroscedasticity. Econometrica, vol 48.
117
Figura 90. Prueba kdensity para detectar normalidad en los errores.
La opción normal permite comparar la función de densidad de los residuales con una función de densidad normal. Se puede observar apuntalamiento y asimetría en los residuales. Otra comprobación gráfica de normalidad muy conocida es aquella que contrasta cuantiles de una variable contra cuantiles de una distribución normal. Cuanto más cerca estén los cuantiles de la variable a los cuantiles de la distribución normal (línea diagonal continua) más cerca está la variable de ser normal. Stata la representa a través del comando qnorm así: . qnorm residual
Figura 91. Prueba qnorm para detectar normalidad en los errores.
Método formal: Claramente hay problemas en los residuales que nos hacen pensar en que no se cumple el supuesto de normalidad. Sin embargo, para estos casos en los que la variable tiene muchas observaciones, Stata ofrece una prueba formal de normalidad a través del comando sktest así: . sktest residual
118
Tabla 81. Prueba sktest para detectar normalidad en los errores.
Se rechaza la hipótesis de normalidad en los residuales del modelo. 6.6.4
Exogeneidad de las variables independientes
Otro supuesto básico en regresión lineal es que las variables explicativas están determinadas por fuera del modelo que se está estimando. En otras palabras, se supone que ninguno de los regresores está determinado por otro u otros regresores dentro del modelo. A través de la prueba de HAUSMAN (1978)8 es posible establecer si un regresor es exógeno o no. La prueba se realiza en etapas: en primer lugar, se estima un modelo que se considera consistente pero ineficiente (en el sentido que no empleamos toda la información disponible para explicar la variable dependiente). A continuación, se estima otro modelo (el cual tiene en cuenta la variable que deseamos comprobar si es exógena) que se supone consistente y eficiente. En tercer lugar, se emplea el estadístico de HAUSMAN el cual compara los coeficientes comunes en ambos modelos y sus respectivas matrices de varianzas y covarianzas. Si no hay diferencias sistemáticas en los coeficientes la nueva variable se puede considerar exógena. Los pasos y los comandos necesarios para realizar esta comprobación en Stata son: 1. Estimar el modelo consistente pero ineficiente (no tiene en cuenta la variable lnm) . regress lny edu007 exp exp2
2. Almacenar los resultados con el comando est store así: . est store reg
3. Estimar el modelo que se supone consistente y eficiente (tiene en cuenta la variable lnm) . regress lny lnm edu007 exp exp2
4. Calcular el estimador de HAUSMAN . hausman reg, eq(1:1) 8
HAUSMAN J,. Specification Test in Econometrics, Econométrica Vol. 46. No. 6. 1978.
119
Tabla 82. Prueba de Hausman para detectar endogeneidad.
Existen diferencias sistemáticas en los coeficientes, por lo tanto la variable lnm es endógena, en otras palabras, puede estar explicada por los otros regresores del modelo. 6.6.5
Ejercicio
5. Pruebe la hipótesis de exogeneidad de cada una de las variables del modelo. 6.7
Pronóstico
El pronóstico de la variable dependiente se realiza empleando el comando predict . predict lnyp if e(sample), xb
La opción e(sample) restringe la estimación a la muestra efectivamente empleada en la estimación. 6.7.1
Representación gráfica del pronóstico de la variable dependiente y su relación con los regresores
Finalmente es posible visualizar la aproximación del modelo de regresión lineal a través de MCO, graficando el ingreso estimado promedio respecto a cada una de las variables independientes. Por ejemplo, la relación entre el ingreso estimado promedio por año de educación y los años de educación se obtiene siguiendo los siguientes pasos: . egen plny_ed=mean(lnyp), by(edu007)
─ Generación de los ingresos promedio estimados por año de educación ─ . line plny_ed lny_ed edu007, sort
─ Gráfico que representa los ingresos estimados y observados por año de educación y los años de educación
120
Figura 92. Grafica de los datos observados vs pronóstico.
Ahora se tiene una idea bastante clara de la aproximación lineal que se ha llevado a cabo entre los ingresos promedio y los años de educación a través de MCO. 6.7.2
Ejercicio
6. Grafique la relación promedio entre las variables dependiente y dependiente pronosticada contra cada uno de los regresores del modelo. 7. Estime una ecuación que además tenga en cuenta el sexo como variable explicativa 8. Compruebe si se cumplen los supuestos de MCO 9. ¿Cómo decidirá cuál de los dos modelos estimados (sin sexo y con sexo) es el mejor y como lo haría en Stata? 6.8
Exportar tabla de contenido
Para exportar los resultados de la tabla de regresión, existe un comando llamado outreg2 que permite hacer esta labor. Se utilizará después de evaluar el modelo de regresión. En caso de que Stata 12 no tenga el comando en necesario instalarlo mediante el comando ssc install outreg2. 1. Por ejemplo, se desea exportar una tabla a Excel que contenga una regresión diferenciada por género, con las mismas variables independientes vistas en la sección de la función de ingresos. . reg Ln_w Ln_m edu exp exp2 if Hombre==1 . outreg2 using primero.xls, ctitle(Hombre) . reg Ln_w Ln_m edu exp exp2 if Hombre==0 . outreg2 using primero.xls, append ctitle(Mujer)
121
Tabla 83. Hoja de cálculo con la exportación de parámetros
6.9
Ejemplo aplicado
En esta sección se da continuación al ejemplo aplicado 5.13. 𝐿𝑛_𝑤 = 𝛽 + 𝛽 𝐿𝑛_𝑚 + 𝛽 𝑒𝑑𝑢 + 𝛽 𝑒𝑥𝑝 + 𝛽 𝑒𝑥𝑝
+ 𝛽 𝐻𝑜𝑚𝑏𝑟𝑒 + 𝜀
Donde, Ln_wi, corresponde a la tranformación logarítmica del salario del individuo i, Ln_mi, corresponde al logaritmo natural de la horas trabajadas por mes del individuo i, edu i, corresponde a los años de educación que tiene el individuo i, expi, correponde a los años de experiencia que tiene el individuo i, exp2, corresponde a los años de experiencia que tiene el individuo i, por último una variable binaria que toma el valor de uno si es hombre y cero en caso contrario, Hombrei. El comando general para evaluar un modelo de regresión lineal se llama regress o reg. . regress Ln_w Ln_m edu exp exp2 Hombre
122
Tabla 84. Ecuación Minceriana.
6.9.1
Prueba de hipótesis
. regress Ln_w Ln_m edu exp exp2 Hombre . test Ln_m edu exp exp2 Hombre . test exp=0
Figura 93. Prueba de hipótesis conjunta
6.9.2
Figura 94. Prueba de hipótesis individual
Supuestos para mínimos cuadrados ordinarios 6.9.2.1 Multicolinealidad
Existen tres métodos para detectar multicolinealidad entre las variables independientes. 1. Correlaciones de orden cero entre parejas de regresores. La regla de decisión es que si la correlación supera el 0.8, existe multicolinealidad. . pwcorr Ln_m edu exp exp2 Hombre
123
Tabla 85. Correlaciones entre variables independientes
2. Regresiones auxiliares, si el estimador R2 es mayor a 0.9, hay presencia de multicolinealidad . reg Ln_m edu exp exp2 Hombre . reg edu Ln_m exp exp2 Hombre . reg exp Ln_m edu exp2 Hombre . reg Hombre Ln_m edu exp exp2
3. Utilizar el comando vif, el cual se utiliza para crear el estimador que mide el factor inflador de varianza, la regla de decisión consiste en que si el VIF es mayor o igual a 10, existe multicolinealidad. La variable exp demuestra que existe multicolinealidad, será necesario excluirla pero por propósitos académicos existe evidencia empírica de que la experiencia afecta de manera positiva el ingreso del individuo.
Tabla 86. Factor inflador de varianza
6.9.2.2 Heterocedasticidad Existen dos métodos para detectar la presencia de heterocedasticidad dentro del modelo por un lado se encuentra el análisis gráfico y otro que hace parte del análisis formal como son las pruebas de Park, Glejser, White y Breush-Pagan. . reg Ln_w Ln_m edu exp exp2 Hombre . rvfplot . imtest,white . estat hottest
124
Figura 95. Residuos en función de la predicción de Ln_w
Prueba White
Tabla 87. Prueba para detectar heterocedasticidad White
Figura 96. Prueba para detectar heterocedasticidad Breush-Pagan
Con esta prueba se concluye que hay presencia de heterocedasticidad, una de las maneras que existen para corregir este problema es a través de la opción robust en la estimación por M.C.O así: . reg Ln_w Ln_m edu exp exp2 Hombre, r
125
. reg Ln_w Ln_m edu exp exp2 Hombre, robust . reg Ln_w Ln_m edu exp exp2 Hombre, vce(robust)
6.9.2.3 Normalidad de los errores . reg Ln_w Ln_m edu exp exp2 Hombre . predict residual, resid . qnorm residual . kdensity residual, normal . sktest residual, noadjust
Figura 97. Método gráfico qnorm
Figura 98. Método gráfico Kdensity
Tabla 88. Método formal
Aunque se rechaza la hipótesis nula de normalidad de los errores, en el estudio de datos de corte transversal no es relevante ya que los datos no se autocorrelacionan de un periodo y su respectivo rezago, los datos son obtenidos en el mismo periodo para cada individuo. 6.9.2.4 Exogeneidad de las variables independientes . reg Ln_w Ln_m edu exp exp2 Hombre . est store reg . reg Ln_w edu exp exp2 Hombre . hausman reg, eq(1:1) sigmamore
126
Tabla 89. Prueba para detectar endogeneidad.
6.9.2.5 Sesgo de especificación: Reset de Ramsey Esta prueba permite determinar si el modelo está mal especificado en otras palabras permite saber si dentro del modelo existe alguna variable omitida . reg Ln_w Ln_m edu exp exp2 Hombre . estat ovtest
Figura 99. Prueba para detectar sesgo de especificación de Ramsey
Se concluye que el modelo que describe una función de salario con variables observables omite algunas variables que afectan el salario del individuo. 6.10 Comandos usados by e(sample egen est store estat estat ovtest hausman imtest kdensity lincom line mean normal
outreg2 predict pwcorr qnorm regress res rvfplot sktest sort summ test vif xb
127
7. MODELOS DE VARIABLE DEPENDIENTE BINARIA: MODELOS LOGIT Y PROBIT
Con frecuencia es necesario explicar el comportamiento de fenómenos cuya medición ha sido realizada a través de variables cualitativas. Dependiendo del número de resultados posibles la variable cualitativa puede ser binaria dicótoma (categorías 0 y 1), tricotómica,.., o, en general, policotómica (o de categoría múltiple). Los modelos de regresión con variables de elección discreta se caracterizan porque la variable que se desea explicar o modelar está registrada de forma dicótoma. Este tipo de modelos son útiles cuando se desea pronosticar la presencia de una característica dado un conjunto de variables de contexto (o variables dependientes) ó cuando se desea conocer los determinantes que hacen más probable que un evento ocurra. En la encuesta CASEN 2006 se encuentra la variable ACTIV, que considera a la población en edad de trabajar (15 años y superior). El comando tab acompañado de los pesos relativos nos permite alcanzar una descripción de la condición actividad en Chile para dicho año: ACTIVIDAD
Freq.
Ocupados Desocupados Inactivos Total
Percent
Cum.
6,578,325
53.11
53.11
519,357
4.19
57.3
5,288,175
42.7
100
12,385,857
100
Tabla 90. Comando tab Actividad
De la Población en Edad de Trabajar el 53% se encontraba ocupada, el 4% de la población se encontraba desempleada y un 42% no se estaba ni trabajando ni buscando empleo. La Población Económicamente Activa está determinada por aquella población ocupada o buscando activamente empleo, por lo que el 57% participaba activamente en el mercado laboral. Se puede generar una variable de participación a partir la variable ACTIV. La siguiente cadena de comandos genera la variable PARTI: . gen PARTI=1 if ACTIV==1 | ACTIV==2 . recode PARTI (mis=0) if ACTIV==3 . label variable PARTI "Participa en el mercado laboral" . label define part 1 "si" 0 "no" . label values PARTI part . tab PARTI [w=EXPR]
Participa
Freq.
Percent
Cum.
No
5,288,175
42.7
42.7
Si
7,097,682
57.3
100
12,385,857
100
Total
Tabla 91. Participación en el mercado laboral
128
Para el propósito de este ejemplo se va a considerar las variables de género, edad, estado civil, nivel de estudios, nivel de ingresos del hogar, relación con el jefe de hogar y el número de personas en el hogar. Sin embargo, en un modelo ampliado podrían considerarse otras variables. Algunas de las opciones que se pueden utilizar para analizar la variable de participación son:
7.1
Modelo de regresión logística (el usado en el presente ejemplo)
Modelo de regresión probabilística. Los resultados bajo este tipo de análisis producen resultados similares a los resultados de la regresión logística. La escogencia entre uno y otro modelo depende de las preferencias del investigador. Estos dos modelos construyen una función de probabilidad acerca de la ocurrencia del evento a describir, (en este caso que un individuo participe en el mercado laboral) y la diferencia está en la forma funcional que asume cada modelo9.
Mínimos cuadrados ordinarios. Cuando se utiliza esta metodología sobre una variable dicotómica se le conoce como un modelo lineal de probabilidad. Sin embargo, los residuos de la estimación violan los supuestos de homocedasticidad y de normalidad del modelo clásico, lo que resulta en errores estándar y pruebas de hipótesis inválidas. Representación de las relaciones entre variables Participación y Género
3,000,000 2,000,000
0
1,000,000
PARTICIPAN
4,000,000
7.1.1
Hombre
Mujer
Figura 100. Gráfico de barras participación por género
9
La función logística es 𝑓(𝑧) =
y la función probabilística es 𝑓(𝑧) = Φ(z), donde z es una combinación
lineal de las variables independientes y Φ es la función cumulativa de la distribución normal.
129
Participa en el Mercado Laboral No Si
Sexo
Total
Hombre
1,622,038
4,303,680
5,925,718
Mujer
3,666,137
2,794,002
6,460,139
5,288,175
7,097,682
12,385,857
Total
Tabla 92. Participación laboral por género.
7.1.2
Participación y Nivel Educativo Mujer
TEC. O UNI. COMP
TEC. O UNI. INC.
M.HUM. COMPL
M.HUM. INCOM
BASICA COMP
BASICA INC
SIN EDUC.
TEC. O UNI. COMP
TEC. O UNI. INC.
M.HUM. COMPL
M.HUM. INCOM
BASICA COMP
BASICA INC
SIN EDUC.
0
.2
.4
.6
.8
1
Hombre
Graphs by Sexo
Figura 101. Gráfico de barras participación por nivel educativo y género
Comparar el número de participantes entre los diferentes niveles educativos, no hace sentido cuando las poblaciones no son comparables en términos relativos. Si la Tasa Global de Participación está determinada por la cantidad de personas que participan en el mercado laboral sobre el PET, para comprender el efecto del nivel educativo se deben comparar las tasas globales de participación para cada grupo. El promedio aritmético de la variable PARTI nos dará la TGP total y para diferentes grupos.
130
7.1.3
Participación y Edad Mujer
0
.2
.4
TGP
.6
.8
1
Hombre
25
30
35
40
45
50
25
30
35
40
45
50
Edad Graphs by Sexo
Figura 102. Gráfico de barras participación por edad y género
7.2
El modelo tipo Logit encuesta Casen 2006.
El comando logit (probit) nos permite obtener los resultados de la estimación logística (probabilística). La estimación se hace a través de la metodología de máxima verosimilitud por lo que en el proceso de estimación, Stata primero muestra las iteraciones necesarias para alcanzar la convergencia. Cuando existen variables categóricas con más de dos categorías (parentesco, estado civil) Stata las puede codificar automáticamente para que cada una de las categorías cuente como una dummy. Para eso se antepone el prefijo “xi:” frente a toda la expresión de la regresión y el prefijo “i.” antes de cada variable. El comando para nuestra regresión sería: xi: logit PARTI EDAD ESC NUMPER YTOTHAJ i.PCO1 i.ECIVIL [w=EXPR], or
En este caso las variables de parentesco con el jefe de hogar (PCO1) y de estado civil (ECIVIL) son codificadas por Stata y la codificación responde al orden en que las variables categóricas adoptan valores. Por ejemplo PCO1, ordinalmente la primera etiqueta es “Jefe de Hogar” y Stata crea una dummy _IPCO1_1 para nombrarla. En la siguiente tabla se ha cambiado los nombres por los valores de las categorías. A través del menú se puede acceder a través de la siguiente ventana:
131
Figura 103. Modelo Logit.
7.2.1
Interpretación de resultados
¡Error! Vínculo no válido.Los primeros resultados observados anteriormente se refieren al máximo de la función de verosimilitud, que puede ser utilizado como un criterio de información para comparar modelos anidados (nested). Por ejemplo si se adicionan más variables a nuestro modelo y se mantienen las mismas, esos dos modelos estarán anidados porque el modelo extendido (el nuevo) contiene al modelo reducido (con menos variables). También se puede observar que del total de observaciones iniciales con descripción de participación (12,385,857) hemos perdido algunas observaciones por los missing values en las variables que se utilizaron para analizar el modelo. La prueba de hipótesis de significancia conjunta del modelo está establecida por la razón de verosimilitud que se distribuye como una Chi-cuadrado con k+1 g.l.. Stata presenta el estadístico (LR chi2 (25)) y su p value. La interpretación es que nuestro modelo representa mejor a los datos que un modelo sin variables. Para la interpretación de la relación entre las variables independientes e independientes, el coeficiente nos da un efecto parcial (el signo) y nos da el efecto total sobre la función lineal z, pero no sobre la función de probabilidad de ocurrencia de la variable dependiente. Lo anterior debido a que un cambio en una variable dependiente genera un cambio sobre la probabilidad de ocurrencia que depende del nivel de todas las demás variables 132
consideradas. La significancia de las variables está testeada individualmente en el resultado de la estimación y la interpretación es igual al caso de regresión lineal clásica. 7.2.2
Odds - Ratio (p/q)
La interpretación de los coeficientes de las variables categóricas10 viene de la relación entre el coeficiente y el logaritmo del radio de probabilidad de ocurrencia del evento (log odds ratio) es igual a 𝑒 . El odds ratio aproxima el qué tanto es más probable que el evento ocurra dado que se tiene la característica descrita por la variable categórica con respecto a la referencia. Para observar el odds ratio, directamente se puede combinar la opción “or” con el comando “logit”. En el caso de nuestro ejemplo, las mujeres son menos propensas a participar en el mercado laboral hasta en un 72%, teniendo en cuenta que el coeficiente fue de -1.25. Las otras variables categóricas generaron cada una subsecuentes variables dicotómicas, y la interpretación se hace en comparación a la referencia. La relación entre los coeficientes y la probabilidad en el caso de las variables continuas es un poco más compleja, la comparación se hace con la distancia a la media. Sin embargo, la dirección del efecto sobre la probabilidad es igual al efecto sobre la función lineal “z”. En el ejemplo un aumento en el salario también aumenta la participación relativa de una personal igual que la escolaridad. Un aumento de un 1% en el salario con respecto a la media ($351,000) hace que la razón de participar en el mercado laboral (vs. no participar) aumente con un factor de 1.41 (= exp(0.3447)). Un aumento de la edad aumenta la probabilidad de participar en el mercado laboral, pero a una tasa decreciente. El número de personas en el hogar disminuye la probabilidad de que no se participe 7.2.3
Post – estimación
Un primer paso de la post estimación consiste en probar la significancia conjunta de las variables dummies que conforman las categóricas. Para esto se puede correr una prueba de Wald ajustada a través del comando “test”. Por ejemplo, se puede rechazar la hipótesis nula de que la variable de estado civil es conjuntamente no significativa: test _IECIVIL_2 _IECIVIL_3 _IECIVIL_4 _IECIVIL_5 _IECIVIL_6 _IECIVIL_7 _IECIVIL_9
chi2( 7) =60644.47 Prob > chi2 =
0.0000
Para obtener las probabilidades estimadas, que es lo que finalmente se desea saber, Stata 11 creo el comando “margins”. El siguiente comando va a modelar todas las 10
Para una prueba formal ver Applied Logistic Regression p.50.
133
probabilidades para cada valor de SEXO, empezando por el 0 hasta 1 con un ancho de intervalo de 1.
margins,
at(SEXO=(
Variable de Interés
Number obs = :
Expression Pr(PARTI),
:
1._at
2._at
:
:
(1)
1)) atmeans
Ancho Intervalo
Valor Inicial
Predictive margins Model VCE OIM
0
Valor Final
of 12350554
predict() …(lista medias SEXO= 0 …(lista medias …(lista medias) SEXO= 1 …(lista medias)
de
de de
de
Margin
Std. Err.
z
P>z
[95% Conf.
Interval ]
_at 1
0.7362227
0.0002468
2982.78
0.000
0.7357389
0.736706
2
0.4423416
0.0002768
1598.17
0.000
0.4417992
0.442884
Tabla 93. Efectos marginales para la variable sexo.
La probabilidad de que una persona trabaje siendo hombre (1. at SEXO = 0) es el 73.6%, mientras que la probabilidad de que una persona trabaje siendo mujer es de 44.2%, manteniendo todas las demás variables en su media. Si quiere fijarse el valor de más de una variable, o fijar los intervalos de variables continuas, o en cortes de distribución de las variables independientes: . margins, at(SEXO=(0(1)1) PCO1=1) atmeans noatlegend . margins, at(ln_yh=(11 11.5 12 13 13.5) PCO1=1) atmeans noatlegend . margins, at((p25) _all) atmeans noatlegend . margins, at((p25) _all (mean) ESC ) atmeans noatlegend
134
7.3
Modelo Lineal de probabilidad y modelo tipo Probit 7.3.1
Modelo Lineal
A partir de la información proveniente de la base de datos “ECUACION INGRESO.dta”, se desarrolla un modelo de participación laboral para identificar las variables que explican el que una persona haga parte del mercado de trabajo (trabajando o buscando empleo) y el efecto de cada una de éstas variables en la probabilidad de hacer parte de la fuerza laboral. Inicialmente, para realizar el ejercicio propuesto es necesario crear la variable dicotómica dependiente que identifique a la población económicamente activa: . gen pea=(ocu==1|des==1)
La estimación de este modelo a través del procedimiento de Mínimos Cuadrados Ordinarios (MCO) generaría una serie de problemas en los resultados. Por ejemplo, supóngase que la participación en la fuerza de trabajo está determinada únicamente por la escolaridad de las personas (variable edu007) y se utiliza el comando regress para aplicar un modelo lineal: . regress pea edu007 . predict p if e(sample)
Al obtener el pronóstico de la variable dependiente y representar gráficamente los resultados del modelo se puede visualizar el ajuste de la recta de regresión a la nube de puntos. A través del comando twoway se pueden representar dos series en distintos tipos de gráficos: . tw(scatter pea edu007) (line p edu007)
Figura 104. Datos observados vs pronostico por M.C.O
El grafico anterior es una representación de los datos observados de las personas clasificadas en la pea (scatter) y los valores pronosticados por el modelo (line), según los años aprobados de educación (eje de las abscisas). Sin embargo, a partir del gráfico es 135
fácil concluir que el procedimiento de MCO no genera un modelo capaz de explicar el comportamiento de los datos. Las principales problemas de la estimación de este tipo de variables a través de MCO son: i) no se garantiza que el vector de probabilidades que resulta del pronóstico del modelo se encuentre entre 0 y 1, ii) los errores no se distribuyen normalmente, debido a que la variable dependiente solo toma dos valores, iii) no se puede suponer homocedasticidad en los errores, y iv) el R2 del modelo es muy bajo debido a que no la recta de regresión presenta un bajo ajuste a los datos observados. La alternativa es utilizar un modelo de regresión con una función no lineal que genere una estimación en el rango comprendido entre 0 y 1. Las funciones de densidad acumulada normal y logística cumplen con esta propiedad y dan origen a los modelos probit y logit respectivamente. 7.3.2
Modelo tipo Probit
Para corregir los problemas que genera la estimación del modelo de participación laboral por MCO, se supone la existencia de una variable latente Y* que es explicada por un conjunto de variables independientes y que determina el valor de la variable dicotómica que se observa. A medida que el valor de la variable latente aumenta, la probabilidad de participar en el mercado laboral Y también se incrementa así: Y 1
si
Y
*
0 P ( Y 1 ) P ( Y
*
0) P ( X e 0) F ( X )
La teoría establece que la decisión de hacer parte de la fuerza de trabajo está determinada por los años de educación, la condición de jefe de hogar, la edad y la forma cuadrática de esta última variable, modelo que se puede especificar a través de la siguiente ecuación: Y i 0 1 edu 007
i
2 edad
i
3 edad
2 i
4 jefe
i
ei
Para llevar a cabo las estimaciones de este modelo primero se debe generar la variable edad al cuadrado: . gen e02_2= e02^2
En STATA se utiliza el comando probit para estimar modelos con variable discreta a partir del método de máxima verosimilitud. Para analizar los resultados del comando, se comienza con estimar un modelo vacío: . probit pea, r
136
Tabla 94. Probit con restricciones
Luego, se estima el modelo completo: . probit pea edu007 jefe e02 e02_2, r
Tabla 95. Probit sin restricciones
Además de los coeficientes de regresión, el comando probit genera una amplia gama de estadísticas:
La prueba de Wald evalúa la significancia global del modelo, es equivalente a la prueba F en MCO. Bajo la hipótesis nula de que todos los coeficientes son estadísticamente igual a 0, el estadístico de Wald se distribuye chi2 con grados de libertad equivalentes al número de variables del modelo. También se puede utilizar el estadístico del cociente de verosimilitud, que se puede calcular manualmente través del comando display, la formula se define así: LR 2 ( Loglikelih
ood
F
Loglikelih
ood
0
)
El pseudo R2 es una medida de bondad de ajuste del modelo. Se puede obtener manualmente dividiendo el logaritmo de las verosimilitudes del modelo vacío entre el modelo completo y restado una unidad a este resultado.
Los parámetros que se obtuvieron en el modelo anterior no se pueden interpretar como efectos esperados de los regresores en la probabilidad de hacer parte del mercado de trabajo, únicamente es posible analizar si el efecto de la variable es positivo o negativo en la probabilidad de ocurrencia del evento. Para evaluar el efecto de un cambio en una variable independiente sobre la probabilidad de participar en el mercado de trabajo, es
137
necesario calcular el efecto marginal en varios valores de las variables. El cálculo que se tendría que hacer es
( X i )
, donde corresponde a la función de densidad estándar.
La función podría ser evaluada en el valor medio de la variable Xi. Por lo tanto, el primer paso consiste en calcular el valor medio de las variables que se incluyeron en el modelo probit a través del comando estat sum, que reporta las principales estadísticas de los datos utilizados en el modelo de regresión: . estat sum
Tabla 96. Estadística descriptiva de los regresores del modelo
El cálculo de las marginales se puede realizar manualmente utilizando la función normalden, que toma como argumento la multiplicación del valor medio de la variable y el parámetro y devuelve la densidad normal estándar. 7.3.2.1 Ejercicio 1. Calcule los efectos marginales de las demás variables incluidas en el modelo probit. 7.3.2.2 Efectos marginales Una de las fortalezas de STATA es que permite calcular con un comando, el efecto marginal de cada una de las variables: . dprobit pea edu007 jefe e02 e02_2, r
138
Tabla 97. Efectos marginales del modelo.
La interpretación de los efectos marginales es la siguiente: por un aumento en 1 año de escolaridad, la probabilidad de participar en el mercado laboral se incrementa en 2.7%; por cada año de experiencia la probabilidad de salir al mercado de trabajo se incrementa en 1.2% y el signo negativo de la forma cuadrática de esta variable indica que a partir del valor máximo de la variable edad, un año más reduce la probabilidad de salir del desempleo en 0,01%. Las columnas que le siguen a los coeficientes nos ayudan a realizar la inferencia de cada uno de ellos. La columna “Robust Std. Err.” muestra el error estándar de cada coeficiente a partir de una matriz de varianzas y covarianzas robusta, y la columna “z” muestra el estadístico de una normal estándar que resulta de dividir el coeficiente de cada variable sobre su propio error estándar. La columna “P>|z|” muestra la información correspondiente a la probabilidad acumulada que le pertenece a cada estadístico z y la columna “[95% Conf. Interval]” nos informan sobre los límites superior e inferior en los que podrían variar los parámetros estimados con un 95% de confianza. 7.3.3 Comprobación de supuestos 7.3.3.1 Prueba de Pearson El estadístico de Pearson es una prueba de bondad de ajuste que se distribuye chi2 con grados de libertad igual al número de patrones de covariables menos el número de parámetros. . estat gof
Tabla 98. Prueba Pearson.
139
Los resultados señalan que la hipótesis nula es rechazada y por lo tanto, el modelo no presenta un buen nivel de ajuste a los valores actuales. La principal consecuencia de este resultado, es que no se puede utilizar el modelo para hacer inferencias acerca de la relación entre las variables explicativas y la probabilidad de participar en el mercado de trabajo. Sin embargo, el modelo aún posee algún valor predictivo y puede utilizarse para pronosticar casos. 7.3.3.2 PRUEBA DE HOSMER-LEMESHOV(H-L) Al igual que la prueba de Pearson, el estadístico de Hosmer Lemeshov es una prueba de bondad de ajuste que permite comparar el valor original de los datos con el valor estimado por grupos de observación (G). En Stata la prueba de H-L puede practicarse utilizando el comando estat gof y adicionando la opción group(#), para definir el número de particiones de las observaciones que generalmente son 10 grupos iguales. . estat gof, group(10)
Tabla 99. Prueba H-L
Bajo la hipótesis nula de que el modelo presenta un buen nivel de ajuste, el estadístico de H-L sigue una distribución chi2 con G-2 grados de libertad. Al comparar las frecuencias observadas y estimadas a través del estadístico de H-L y analizar el p-valor asociado a la prueba, se rechaza la hipótesis nula. Una vez más, el modelo de participación laboral falló una prueba de bondad de ajuste. 7.3.3.3 Estadísticas de clasificación Otra prueba de bondad de ajuste de la regresión probit es la capacidad predictiva del modelo para clasificar correcta o incorrectamente los valores originales. A partir del pronóstico de la variable dependiente, el modelo clasifica como “1” los valores que tienen mayor probabilidad de ocurrencia y que son superiores a un punto de corte, en caso contrario los valores se clasifican como “0”. En general, se asume que el punto de corte es igual a 0.5. En Stata se utiliza el comando estat class para generar las estadísticas de clasificación así: . estat class
140
Tabla 100. Estadística de clasificación
El resultado general de esta prueba es que el 66% de los valores originales están clasificados correctamente. De la tabla de clasificación también se puede analizar la siguiente información:
El primer cuadro de la tabla realiza una comparación entre los valores observados y los pronosticados por el modelo. Las filas corresponden a los valores “1”(+) y “0”(-) clasificados por el modelo, y las columnas corresponden a los valores observados (D=1 y ~D=0). La sensibilidad mide el porcentaje de los valores “1” que fueron clasificados correctamente. En nuestro ejemplo el 89.11% de la población que hace parte de la Población Económicamente Activa (PEA) fue clasificada correctamente por el modelo. La especificidad corresponde al porcentaje de “0” que fueron pronosticados correctamente por el modelo. En el ejemplo, el 24.9% de los “0” observados ó la población que no hace parte de la PEA, fueron clasificados correctamente por el modelo. La predicción de los valores positivos o negativos mide el porcentaje de valores pronosticados que acertaron correctamente en la clasificación de “1” o “0”. En el caso de los “1” (+), el 67.9% de los datos pronosticados corresponden a los verdaderos valores de “1”, en otras palabras, del total de personas que fueron catalogadas como PEA por el modelo, el 67,9% de los casos realmente hacía parte de la PEA. En caso contrario, el 56.2% de los valores “0” pronosticados equivalen a los valores originales de los “0”. Los errores de clasificación miden el porcentaje de valores observados que fueron incorrectamente clasificados. Por ejemplo, el 75% de los valores “0” observados fueron clasificados incorrectamente por el modelo, es decir, del total de personas 141
que no hacen parte de la fuerza de trabajo, en el 75% de los casos el modelo las clasifico incorrectamente como población PEA. Una interpretación similar se realiza para el caso de los unos. El 10.8% de los valores “1” ó de la población que en la muestra hace parte de la PEA, fueron clasificados como 0 por la predicción del modelo. La tasa de falsos unos (ceros) corresponde al porcentaje de valores “1” (“0”) pronosticados que en realidad son valores “0”. En el ejemplo, el 32.1% de las personas que fueron clasificadas en la PEA por el modelo, no hacen parte de este grupo. De manera análoga, el 43.7% de los valores “0” pronosticados, son valores “1” De manera análoga, el 43.7% de las personas que el modelo clasificó como “0” o que no hacían parte de la PEA, corresponden a valores “1” que debieron pronosticarse como parte de la PEA. 7.3.3.4 CURVAS ROC
Las Curvas ROC (Receiver Operating Characteristic) son una representación gráfica de todos los pares posibles (1-especificidad, sensibilidad) que se generan con distintos puntos de corte. A medida que se incrementa el valor del punto de corte, el porcentaje de “1” clasificados correctamente por el modelo aumenta (sensibilidad), al tiempo que el porcentaje de “0” clasificados como “1” también se incrementa (falsos positivos). En STATA las curvas ROC se obtienen al ingresar en la ventana de comando la opción: . lroc
Figura 105. Curva ROC
La mayor precisión del modelo para pronosticar un estado o un evento correspondería al punto (0,1). Por lo tanto, cuanto más cercanas se encuentren las curvas a este punto, mejor es la capacidad predictiva del modelo. La forma más práctica de realizar esta prueba es calcular el área bajo la curva ROC, que puede tomar valores entre 0,5 y 1. 142
Cuando el área es equivalente a 0.5, la curva es cercana a la línea diagonal y el modelo es inútil, pero, si el área es cercana a 1, si tiene por lo tanto un buen modelo. En nuestro ejemplo, el área bajo la cuerva ROC (0.68) estaría indicando que el modelo tiene alguna capacidad predictiva. A través del comando lsens, es posible identificar el punto óptimo de corte que resulta de la intersección de las curvas de sensibilidad y especificidad: . lsens
Figura 106. Curvas de sensibilidad y especificidad
7.3.4
Pronóstico
El pronóstico de la probabilidad de un estado u ocurrencia de un evento se realiza empleando el comando predict y adicionando la opción pr así: . predict prob if e(sample), pr
7.3.5
Ejercicio
2. Calcule el valor de la variable latente o la función índice. (Utilice el comando invnormal). 3. Replique todo nuevamente teniendo en cuenta la variable tenencia de vivienda propia 4. Calcule el efecto de la tenencia de vivienda en la probabilidad de entrar al mercado de trabajo para los jefes de hogar 5. Calcule el efecto de la tenencia de vivienda en la probabilidad de entrar al mercado de trabajo para las mujeres 6. Calcule las estadísticas de clasificación 7. ¿Qué criterio emplearía para escoger entre modelos?
143
7.4
Ejemplo aplicado
Para este ejemplo aplicado se utiliza la base de datos de calidad de vida para el país de Colombia en el año 2010. Primero se evalúa un modelo lineal de probabilidad, después un modelo tipo Logit y finalmente un modelo tipo Probit, todo esto con el fin de obtener características de cada modelo. 7.4.1
Modelos con variable dependiente binaria MLP, Logit y Probit
𝑃𝑎𝑟𝑡𝑖𝑐𝑖𝑝𝑎𝑐𝑖𝑜𝑛 = 𝛽 + 𝛽 𝑒𝑑𝑎𝑑 + 𝛽 𝑒𝑑𝑎𝑑 + 𝛽 𝑝𝑟𝑖 + 𝛽 𝑠𝑒𝑐 + 𝛽 𝑢𝑛𝑖 + 𝛽 𝑝𝑜𝑠𝑡 + 𝛽 𝑠𝑝𝑜𝑢𝑠𝑒 +𝛽 ℎ_ℎ𝑒𝑎𝑑 + 𝜀 Donde, Edad: edad del individuo i, Edad2: edad al cuadrado del individuo i, pri, sec, uni, post: variable binaria que toman el valor de uno cuando el individuo i ha alcanzado el nivel educativo respectivo, spouse: variable binaria que toma el valor de uno si el individuo i está casado y cero en cualquier otro caso y h_head: variable binaria que toma el valor de uno si el individuo i es jefe de hogar y cero en cualquier otro caso. Con un simple ejemplo se puede probar porque se deben utilizar otros instrumentos de estimación diferentes a M.C.O cuando la variables dependiente es binaria es decir toma el valor de 1 en un caso afirmativo y cero en caso contrario. . gen Participacion= Ln_w!=. . keep if p6040>=18 & p6040<=65 . reg Participacion p6040 edad2 pri sec uni post spouse h_head . predict partmpl . logit Participacion p6040 edad2 pri sec uni post spouse h_head . predict partlogit . sum partmpl partlogit
Tabla 101. MPL VS Logit
Para el valor de las predicciones por M.C.O existe un rango que toma valores negativos, por lo tanto no se puede evaluar la probabilidad de participar en el mercado laboral para el año 2011, las probabilidades predichas de cualquier medida deben estar entre 0 y 1. 7.4.1.1 Prueba de Wald y prueba bondad de ajuste del modelo . logit Participacion p6040 edad2 pri sec uni post spouse h_head, . logit Participacion, . display 2*(-18001.881 --18765.493) . display 1-(-18001.881/-18765.493)
144
Tabla 102. Modelo Logit sin restricciones
Tabla 103. Modelo Logit con restricciones
7.4.1.2 Comprobación de supuestos . probit Participacion p6040 edad2 pri sec uni post spouse h_head,r . mfx
145
Tabla 104. Resultados modelo Probit
Los parámetros que se obtuvieron en el modelo anterior no se pueden interpretar con efectos esperados de los regresores en la probabilidad de participar en el mercado laboral para Colombia en 2011. Para evaluar el efecto de un cambio en una variable independiente sobre la probabilidad de participar en el mercado laboral, es necesario calcular el efecto marginal en varios valores de la variable. Stata 12 permite calcular estos efectos marginales con un comando que se llama mfx.
Tabla 105. Efectos marginales del modelo
1. Prueba de Pearson . estat gof
146
Tabla 106. Prueba Pearson
2. Prueba de Hosmer-Lemeshov (H-L) . estat gof, group(10)
Tabla 107. Prueba H-L
3. Estadística de clasificación . estat class
Tabla 108. Estadística de clasificación
4. Curvas Roc 147
. lroc
Figura 107. Curva Lroc
Tabla 109. Estadístico Lroc
7.5
Comandos usados
atmeans display dprobit estat class estat gof estat gof, group(10) estat sum gen invnormal keep label define label values label variable lroc t
lsens margins mfx normalden predict probit recode regress tab test tw w xi: logi
148
8. MODELOS DE SERIES DE TIEMPO 8.1
Serie de tiempo en Stata modelos autorregresivos de media movil (arma)
Los modelos autorregresivos (AR), de media móvil (MA) y autorregresivos de media móvil (ARMA) se caracterizan por incorporar en la explicación futura de la variable dependiente su propio comportamiento pasado. Esta forma de modelar la conducta de una serie de datos temporales hace posible, en su forma más simple en modelos univariados, la generación de pronósticos sin emplear información adicional proveniente de otros regresores. En las secciones siguientes se sigue la metodología de BOX y JENKINS (1976)11 para estimar y pronosticar modelos univariados de serie de tiempo a través de Stata. En particular se hará uso de la información mensual de inflación contenida en la base de datos INFLACION.dta. Antes de desarrollar la metodología de BOX y JENKINS se aprenderá a generar variables con formato de fecha, variables rezagadas y a designar la variable que representará el tiempo en las estimaciones. Se carga la base de datos INFLACION.dta . use INFLACION.dta
8.1.1
Generación de variables con formato de fecha
Las variables de tiempo; fechas en años, semestres, trimestres, meses, semanas y días deben tener un formato especial en el análisis de serie de tiempo y panel de datos. Los formatos de estas variables en cada caso se describen a continuación: Formato
%tw
Descripción 0= Diario 01jan1960; Semanal 0 = 1960w1;
%tm
Mensual
0 = 1960m1;
1 = 1960m2
%tq
Trimestral
0 = 1960q1;
1 = 1960q2
%th
Semestral
0 = 1960h1;
1 = 1960h2
Anual
1960 = 1960;
1961 = 1961
%td ó %d
%ty
Codificación 1 = 02jan1960 1 = 1960w2
Tabla 110. Formato de fechas
Es posible generar variables con formato de fecha a partir del comando generate. Por ejemplo, para crear una variable con formato mensual se emplea la siguiente sintaxis:
11
BOX G. & JENKINS G. Time Series Analiysis, Forecasting and Control. Holden Day, San Francisco. 1976
149
Como la base de datos es relativamente pequeña se puede listar la información en la base de datos por medio del comando list así: . list
Figura 108. Comando list.
La variable “fecha” tiene un formato numérico general que corresponde al número de meses desde 1960. En el mes 1 del año 2001 el número de meses transcurridos desde 1960 son 492. Sin embargo a la variable fecha se le puede dar un formato numérico mensual así:
8.1.2
Designando la variable que representa al tiempo
Antes de estimar cualquier modelo de serie de tiempo es necesario que Stata reconozca la variable que representa el tiempo (en nuestro ejemplo, la variable fecha). Este paso se logra a través del comando tsset así: 150
. tsset fecha, monthly
La opción monthly indica la periodicidad mensual de la variable de tiempo “fecha”. Nota: Para hacer pronósticos varios períodos hacia delante es necesario que la variable que representa el tiempo se extienda tantos períodos hacia delante como períodos de la variable dependiente se quieran pronosticar. En nuestro ejemplo, 7 períodos hasta diciembre de 2006. Se dispone de información de inflación hasta mayo de 2006. 8.1.3
Variables con rezago
En análisis de serie de tiempo resulta muy útil generar variables con uno o más rezagos. En estos casos suele acompañarse al comando generate con los operadores [_N] y [_n]. El operador _N se usa para contar el número total de observaciones en una variable y, el operador _n numera las observaciones dentro de una variable. Por ejemplo, se puede generar una variable rezagada un periodo así: . g rezago = inflacion[_n-1]
En este ejemplo se debe tener en cuenta:
“Inflación” es el nombre de la variable que será rezagada.
Los corchetes en este caso deben ser cuadrados.
No puede hacer separación entre la variable a rezagar y el corchete cuadrado de apertura.
“-1” en este caso indica que la variable “inflacion” será rezagada 1 período.
Al listar las variables “fecha”, “inflacion” y “rezago” se puede visualizar la nueva variable “rezago” correspondiente a la inflación rezagada un período. . list fecha inflacion rezago
151
Tabla 111. Comando list después de generar rezago.
8.2
Metodología Box Jenkins (BJ) aplicada al caso de selección y estimación de un modelo arma para pronóstico de la inflación.
BOX JENKINS difundieron una metodología en tres fases para identificar, estimar y validar modelos de serie de tiempo univariada y generar pronósticos. A continuación se seguirán estos pasos para obtener un modelo de pronóstico tipo ARMA para la inflación mensual. 8.2.1
Fase de identificación
La primera aproximación a los datos es gráfica. Al graficar la variable a pronosticar respecto al tiempo se puede obtener información sobre posibles “outliers”, valores perdidos “missing values” o cambios estructurales en la serie de datos. Así mismo, si la variable a pronosticar es no estacionaria podrán observarse tendencias pronunciadas o comportamientos sin media y/o varianza constante a través del tiempo. Con el comando tsline es posible efectuar esta primera constatación así: . tsline inflacion
152
Figura 109. Grafico en series de tiempo
A su vez es posible constatar si se viola el supuesto de estacionariedad comprobando la existencia de raíces unitarias por medio de la prueba de DICKEY y FULLER DF (1979)12. En Stata la prueba se puede efectuar a través del comando dfuller así: . dfuller inflacion, trend regress lags(7) Nota: Previamente se comprobó que no eran significativos los rezagos 7,…,12 (se probaron 12 rezagos porque la serie es mensual). Para tener en cuenta la tendencia en la prueba se emplea la opción trend. La opción regress se puede omitir si tan sólo se desea el valor del estadístico DF. Para omitir la constante se emplea la opción noconstant.
Tabla 112. Prueba Dickey-Fuyller
12
DICKEY D. & FULLER W. 1991. Distribution of the Estimates for Autoregressive Time Series With a Unit Root. Journal of the American Statistical Association 74.
153
Al 1% de significancia se rechaza la hipótesis de existencia de raíz unitaria, en otras palabras, se puede pensar que la variable inflación ha sido generada por un proceso estacionario. El paso a seguir consiste en identificar la naturaleza del proceso generador de datos (en nuestro ejemplo, la inflación). Para llevar a cabo esta tarea se suele recurrir a las funciones de autocorrelación (para identificar el componente de media móvil MA del modelo) y autocorrelación parcial (para identificar el orden la parte autorregresiva AR del modelo). En Stata ambas funciones se pueden graficar con los comandos ac y pac respectivamente así: . ac inflación
. pac inflacion
Figura 110. Autocorrelación de la inflación
8.2.2
Figura 111. Autocorrelación parcial de la inflación
Fase de estimación
Las funciones de autocorrelación y autocorrelación parcial sugieren varios procesos ARMA factibles para la inflación. La selección de los modelos debe tener en cuenta los criterios de parsimonia (menor parametrización posible) estacionariedad e invertibilidad de la variable dependiente y bondad de ajuste del modelo. A continuación se presenta uno de los posibles procesos ARMA para la inflación. El comando para estimarlos en Stata es arima y a través de las opciones ar(número de los rezagos de la variable dependiente separados por comas) ma(número de los rezagos separados por comas) se puede especificar el componente autorregresivo y de media móvil así: . arima inflacion tendencia, ar(1,12) ma(5,8,11) robust
154
Tabla 113. Modelo ARIMA
Nota: El orden de integración en este caso es 0. Sin embargo a través del prefijo D1., D2., D3.,…,etc., antecediendo la variable dependiente (por ejemplo, D1.inflacion, D2.inflacion, D3.inflacion,…) se pueden lograr diferenciaciones de orden superior. La opción robust genera una matriz de varianzas y covarianzas consistente con posibles problemas de heteroscedasticidad.
A través del comando estat ic se puede obtener el criterio de información de Akaike (AIC) y el criterio bayesiano de Schwartz (BIC) los cuales son las dos medidas más comunes de bondad de ajuste. Cuanto más pequeño es el valor de los estadísticos (AIC) y (BIC) mejor ajuste tiene el modelo. Estos criterios se pueden emplear para seleccionar el modelo más apropiado de un conjunto de posibles modelos. . estat ic
Tabla 114. Criterio de información AIC
8.2.3
Fase de verificación y diagnostico
Es muy importante que los residuales del modelo estimado no estén serialmente correlacionados. Cualquier evidencia de correlación serial implicaría movimientos sistemáticos en la variable dependiente que no han sido tenidos en cuenta por los coeficientes incluidos en el modelo ARMA. Para chequear correlación en los residuales se pueden construir las funciones de autocorrelación y autocorrelación parcial para los residuales. A través del comando predict seguido de la opción res se podrá estimar los residuales así: 155
. predict residual, res . ac res . pac res
Figura 112. Autocorrelación de los residuales
Figura 113. Autocorrelación parcial de los residuales
En una prueba más general, se puede constatar si los residuales son “ruido blanco”, en otras palabras, tienen media cero, varianza constante y no están serialmente correlacionados. A través del comando wntestq realizar esta prueba así: . wntestq residual
Tabla 115. Prueba para comprobar ruido blanco en los residuales
No hay evidencia para rechazar que la serie de residuales es ruido blanco. 8.2.4
Pronósticos
Finalmente, se puede emplear el modelo para hacer pronósticos. El pronóstico se puede hacer tantos periodos hacia delante como horizonte temporal tenga la variable de tiempo “fecha” la cual está definida entre el mes 1 de 2001 y el mes 12 de 2006, mientras que se tiene dato mensual de inflación hasta el mes 5 de 2006. A través del comando predict seguido de la opción xb, se podrá pronosticar la inflación para los siguientes 7 meses así: predict inf_p, xb
El pronóstico de inflación para el mes 6 de 2006 (según este proceso ARMA) es del 0.366%. Se elabora una lista de las variables “fecha”, “inflación” e “inf_p” a través del comando list así: 156
. list fecha inflacion inf_p
Tabla 116. Comando list después del pronóstico de la serie.
Finalmente, a través del comando tsline es posible visualizar los valores observados y pronosticados de la inflación hasta diciembre de 2006. . tsline inflacion inf_p
Figura 114. Grafica de la serie observada y pronosticada
8.2.5
Ejercicio
1. Replique las fases 7.4.1, 7.4.2 y 7.4.3 de la metodología de BJ para generar un proceso ARMA para la inflación. 2. Comparé entre varios modelos posibles la bondad de ajuste de los mismos para seleccionar el mejor modelo. 3. Pronostique la inflación para los próximos 6 meses y grafique los resultados frente a los valores observados.
157
8.2.6
Ejemplo aplicado: FILTROS, ARIMA, SARIMA.
En esta sección de utilizará la base de datos del índice de precio del consumidor de orden mensual para el país de México para una serie temporal de 1995 a 2013. 8.2.6.1 Generación de variables con formato de fecha 1. Utilizar el comando br para observar cómo está determinada la variable de tiempo, lo cual tiene una parámetro de meses en letras en idioma español y años en números, por lo tanto se deberá hacer un tratamiento diferente a como se presentaría en una base de datos con tiempo January 1,1995, 1/1/1995 o 1995-11, lo cual se transformaría de la siguiente manera . gen fecha=date(NOMBREDELAVARIABLEFECHA, “MDY”) . format fecha %td
2. Por lo tanto se debe en primera instancia dividir la variable Fecha en dos partes la primera que contenga los meses en letras y la segunda la fecha, el comando que se utilizará es Split, después se debe renombrar las variable, respectivamente rename, segundo generar una variable de tiempo que contenga valores numéricos ordenados a partir de la variable años bysort year: gen, tercero generar la variables de tiempo con el formato año mes, ym, cuarto definir el formato de la variable de tiempo format, y por último se designa la variable que representa al tiempo con el comando tsset. . split Fecha, gen(fecha) destring . rename fecha1 mes . rename fecha2 año
Tabla 117. Comando split . bysort año: gen meses=_n . gen fecha1=ym(año, meses) . format fecha1 %tm
158
Tabla 118. Generar fechas en Stata. . drop mes año meses . tset fecha1, monthly
Figura 115. Formato fecha
8.2.6.2 Análisis de series temporales 8.2.6.2.1 Filtro de Hodrick y Prescott La base de datos incluye 218 datos con periodicidad mensual, el objetivo de esta sección es separar la tendencia y encontrar el componente cíclico del IPC de México entre el primer mes de 1995 y el segundo mes de 2013 empleando el filto H-P. El comando a utilizar es tsfilter hp, donde trend crea una nueva variable denominada tendencia atenuada y smooth representa la constate de suavizamiento que para datos mensuales es igual a 14400, en caso de trimestres es igual a 1600 y en caso de años corresponderá a 1000. . gen LnIPC=ln(IPC) . tsfilter hp IPC_hp=LnIPC, trend(tendenciaLnIPC) smooth(14400) . tsline LnIPC tendenciaLnIPC . tsline IPC_hp
159
Figura 116. Serie observada VS tendencia
Figura 117. Filtro H-P
8.2.6.2.2 Modelos de pronósticos con tendencia determinística Siguiendo la base de datos del IPC para México, se proyectará su valor para los meses (marzo y abril de 2013), mediante los modelos de pronósticos con tendencia determinística. Para lo cual se utilizaran los comandos tsappend, add(#), el cual agrega dos observaciones más para su determinado pronóstico, range, el cual funciona para crear una variable acumulada que va desde 1 hasta 220 y boxcox para determinar la forma funcional que mejor se ajuste a la tendencia del IPC. . tsline IPC . tsappend, add(2) . range tendencia 1 220 220 . boxcox IPC tendencia, model(theta) lrtest
Figura 118. Gráfica IPC
160
Tabla 119. Regresión BOX-COX
Según la prueba ninguna función se ajusta a la tendencia del IPC, por lo tanto el pronóstico no se puede llevar a cabo mediante esta metodología. En caso contrario se evalúa una regresión del IPC en función de la tendencia teniendo en cuenta la hipótesis nula del anterior test de prueba. Por ejemplo, si theta=lambda=1 entonces, regress IPC tendencia, para luego pronosticar la variable IPC con el comando, predict IPCF, xb 8.2.6.2.3 Pronóstico con atenuación exponencial Los métodos que se utilizan dependerán de la naturaleza de la variable IPC, ya se descarta de antemano que el IPC sigue una función con tendencia con la prueba BOXCOX, para determinar la naturaleza de la variable dependiente si es o no estacionaria se elabora la prueba de Dickey-Fuller, mediante esta prueba se rechaza la hipótesis nula de estacionariedad, por lo tanto será necesario diferenciarla n veces para volverla estacionaria. Para lo cual se sugieren modelos tales como promedio móvil, promedio móvil doble, atenuación simple, atenuación doble. En caso de que el modelo tenga tendencia se puede pronosticar mediante Holt-Winters no estacional, Holt-Winters estacional multiplicativo o Holt-Winters estacional aditivo. . dfuller IPC, drift lags(14) . dfuller D.IPC, drift lags(14) . tsappend, add(10) . tssmooth dexponential ADIPC=D.IPC, forecast(10) . gen PronosticoIPC=IPC[_n-1]+ADIPC . replace PronosticoIPC= PronosticoIPC[_n-1]+ADIPC if tin(2013m4, 2013m12) . tsline PronosticoIPC IPC if tin(2010m1, 2013m12)
161
Tabla 120. IPC Dickey-Fuller test
Tabla 121. Primeras diferencias IPC Dickey-Fuller test
Tabla 122. Pronósticos para el IPC de México
162
Figura 119. IPC VS Pronóstico
8.2.6.3 Metodología Box-Jenkins para el pronóstico de series de tiempo 8.2.6.3.1 Detectar estacionariedad Las dos maneras más comunes de detectar este problema en series temporales es mediante la función de autocorrelación simple, en donde le criterio para detectarla se fundamenta cuando decae la función exponencialmente entre 1 y 0, otra manera es mediante el correlograma de la variable de estudio en donde el criterio para detectar estacionariedad se fundamenta en la probabilidad de tener ruido blanco, lo que implica automáticamente que la series es estacionaria por lo tanto se acepta esta hipótesis cuando la probabilidad es mayor a 5%. Un segundo instrumento es el análisis de raíz unitaria, en donde el estadístico de prueba más conocido es Dickey-Fuller en donde la hipótesis nula describe la presencia de raíz unitaria. . ac IPC . corrgram IPC . dfuller IPC, drift lags(12) regress . dfuller IPC, trend lags(12) regress
Las opciones de la prueba de Dickey-Fuller dfuller, corresponde a las restricciones del modelo, se encuentra drift un modelo con intercepto o constante, trend un modelo evaluado con tendencia, noconstant un modelo que no incluye la constante.
163
Figura 120. Grafica de autocorrelación del IPC
Tabla 123. Correlograma del IPC
164
Tabla 124. Prueba Dickey Fuller con tendencia
Tabla 125. Prueba Dickey Fuller con intercepto
Mediante las dos pruebas se confirma la presencia de autocorrelación serial de la serie de tiempo. Para corregir este problema se pueden hacer transformaciones de la serie original. 165
. gen LnIPC=ln(IPC) . gen dLnIPC=D.LnIPC . tsline dLnIPC . ac dLnIPC . corrgram dLnIPC . dfuller dLnIPC, drift lags(12) regress
Figura 121. Variación porcentual mensual IPC
Figura 122. Autocorrelación de la serie diferenciada
Tabla 126. Correlograma de la serie en diferencia logarítmica
166
Tabla 127. Prueba Dickey- Fuller de la serie diferenciada
La prueba de estacionariedad Dickey-Fuller no es válida por la presencia de estacionalidad del IPC para México El correlograma no muestra probabilidades por encima del 5% lo que demuestra el comportamiento estacional de la serie de tiempo. La manera para arreglar este problema es desestacionalizar la serie, calculando la diferencia estacional de la primera diferencia logarítmica, para luego trabajar con la serie desestacionalizada. . gen dlnipc12=DS12.LnIPC . tsline dlnipc12 . ac dlnipc12 . corrgram dlnipc12 . dfuller dlnipc12,lags(1) regress noconstant
167
Figura 123. Autocorrelación de la serie estacionalizada.
Tabla 128. Correlograma de la serie estacionalizada.
168
Tabla 129. Prueba Dickey- Fuller series desestacionalizada.
En la tabla 127 se puede apreciar cómo se desvaneció el efecto estacional de la serie de tiempo, la gran mayoría de 𝜌 se encuentra dentro del intervalo de confianza. Mediante la prueba Dickey-Fuller se puede afirmar que la primera diferencia logarítmica desestacionalizada del IPC de México es estacionaria. 8.2.6.3.2 Estimación Ahora para modelar la variable de debe escoger el orden ARIMA y SARIMA con el correlograma de la diferencia logarítmica desestacionalizada. . arima DS12.LnIPC, ar(1) sarima(0,0,1,12) noconstant
Tabla 130. Modelo arima, sarima
8.2.6.3.3 Verificación Antes de ir a la parte de pronóstico de la serie de tiempo se deben validar algunos parámetros como por ejemplo los estimadores sean estadísticamente significativos lo cual pasan la prueba al 1% de nivel de significancia, segundo se realiza una prueba de ruido blanco para los errores. . predict residuales, r
169
. wntestq residuales
Tabla 131. Prueba para detectar ruido blanco en los residuos
Bajo esta prueba se confirma que los residuales del modelo son ruido blanco. 8.2.6.3.4 Pronóstico Ahora se prosigue al pronóstico de la serie para lo cual se agregan n observaciones para el pronóstico, se predicen los valores de la variables IPC y luego se halla el antilogaritmo de la diferencia logarítmica con el fin de obtener el IPC en niveles. . tsappend, add(10) . predict forescastlnipc, y dymamic(tm(2013m3)) . gen IPCF=exp(forescastlnipc)
Tabla 132. Pronóstico de la serie IPC para el país de México.
Después de este procedimiento se hace una evaluación de la calidad del pronóstico con la serie observada, primero un análisis gráfico, segundo observar si el dato pronosticado está por encima o por debajo del valor real mediante el comando rmse y tercero observar si la predicción está bien ajustada con el comando inequal7 . tsline IPC IPCf . ssc install rmse . ssc install inequal7 . rmse IPC IPCf . inequal7 IPCf [weight=IPC]
170
Figura 124. Gráfica IPC VS Pronóstico
Tabla 133. Prueba RMSE e INEQUAL7
Por lo tanto, al valor pronosticado de 108.573 para el mes de abril de 2013 se le debe restar 0.245356 para que la proyección se aproxime mejor a la observación de ese periodo, es decir un IPC de 108.327. También se puede observar si el pronóstico está bien ajustado de acuerdo con el Theil index de 0.028 que se aproxima a cero. 8.3
Modelos ARCH y GARCH, modelo condicional autorregresivo generelazidado con heterocedasticidad 8.3.1
Antecedentes
En el estudio de Engle (1982), se pretende analizar la volatilidad de la tasa de inflación y su respectivo pronóstico para el Reino Unido con un modelo tipo ARCH, con lo cual se trataba de una crítica a los modelos básicos por M.C.O, en donde se coloca de relieve el concepto de una varianza constante en el periodo de pronóstico. Para lo cual Engle introduce un método econométrico basado en que la varianza no condicional es constante en el tiempo, mientras que la varianza condicional es variable en el tiempo. Para tales procesos, el pasado reciente da información acerca de la varianza del pronóstico de un periodo. La eficiencia del modelo ARCH se calcula y puede ser infinita. Para comprobar si los choques siguen un proceso ARCH, el procedimiento que se emplea son los multiplicadores de Lagrange. La prueba se basa simplemente en la autocorrelación de los residuos al cuadrado. Por lo tanto el modelo realizado por Engle se utilizó para estimar las medias y las varianzas de la inflación en el Reino Unido. Este estudio obtuvo un gran éxito para estimar la volatilidad de la serie por lo cual desde ese entonces se empezó a utilizar esto procesos para pronosticar variables que tienen periodos con bastante volatilidad. Engle concluye que el efecto ARCH es significativo y que las varianzas estimadas aumentan sustancialmente durante los años 70’s (los años setenta fueron caóticos con un sistema de precios volátiles). 171
Después de 5 años de permanecer el modelo ARCH aparece en 1987 Bollerslev, con un método innovador donde se introduce al modelo básico un término no observable aditivo de error en la ecuación de la varianza condicional. En donde la evidencia empírica de estos modelos se comprueba para una conjunto de datos de tipos de cambio e índices de precios de acciones. La principal conclusión del modelo radica en el hecho de que los precios bursátiles y las tasas de retornos no tienen autocorrelación a través del tiempo pero se caracterizan por una alta volatilidad y tiempos apacibles en el rango de la serie de tiempo, la misma conclusión de las revisiones de la literatura en hallazgos previos. El autor coloca en relieve la utilización se un modelo simple GARCH (1,1), el cual se ajusta a la serie de datos y a su descripción. Y coloca una nueva pregunta de investigación para posteriores investigaciones y es lo concerniente a si existen otras distribuciones condicional de los errores, proporciona una mejor estimación y aún más la utilización de otro orden es la especificación GARCH, para modelar otras series de tiempo financieras. La metodología de la teoría de la volatilidad dinámica, toma gran relevancia en la parte de modelización de los precios financieros vía los modelos ARCH-GARCH. Estos modelos son básicamente no lineales gaussianos que surgen a partir del supuesto de no normalidad de la serie de rendimientos financieros y en si al fenómeno de colas pesadas y de la concentración de variabilidad en choques coyunturales, esto lo hace admitiendo cambios en las perturbaciones, ya que estas varían en el tiempo 8.3.2
El modelo GARCH(1,0) 𝜎 =𝛼 +
𝛼 𝜎
+𝜈
Donde 𝜈 = 𝑅𝑢𝑖𝑑𝑜 𝑏𝑙𝑎𝑛𝑐𝑜; Ε(𝜈 ) = 0 ; Var(𝜈 ) = 𝜎 𝛼
< 1: 𝑝𝑒𝑟𝑠𝑖𝑠𝑡𝑒𝑛𝑐𝑖𝑎 𝑑𝑒𝑙 𝑚𝑜𝑑𝑒𝑙𝑜; 𝑠𝑖𝑛𝑜 𝑠𝑒 𝑐𝑢𝑚𝑝𝑙𝑒 𝑛𝑜 ℎ𝑎𝑦 𝑟𝑒𝑣𝑒𝑟𝑠𝑖ó𝑛 𝑎 𝑙𝑎 𝑚𝑒𝑑𝑖𝑎.
8.3.2.1 Versión ARMA del GARCH 𝜎 =𝛼 +
𝜎 =
𝛼 𝜎
+
𝛽𝜈
+𝜈
𝛼 1 − ∑𝛼 − ∑𝛽
GARCH (1,1) 172
𝜎 =𝛼 +𝛼 𝜎
+𝛽 𝜈
+𝜈
8.3.2.2 VARIANZAS 𝑉𝐴𝑅(𝑌) =
1 1−𝑎
AR(1) 8.3.3
𝛽 1−𝛽 ARCH(1)
Metodología ARCH EN STATA
Para determinar si una serie de tiempo tiene efecto ARCH, se debe primero estacionarizar la serie, por lo general en series financieras una manera de resolver este problema es utilizar la fórmula de rendimientos continuos 𝑌 % = 𝐿𝑜𝑔(𝑌 ⁄𝑌 ). Segundo evaluar un modelo de regresión en donde incluya la metodología previamente vista Box Jenkins (BJ) y utilizar los comandos estat archlm y estat bgodfrey, donde la hipótesis nula describe que no existe la existencia de un efecto ARCH y una hipótesis alternativa que describe la presencia de un efecto ARCH. Tercero, el orden del Arch (autocorrelación) y del Garch (autocorrelación parcial) serán determinados a partir de los residuos al cuadrado del modelo, para este caso se debe utilizar el comando armadiag, arch, el cual no viene preinstalado en Stata 12 por lo tanto se debe instalar con el comando ssc install armadiag para más ayuda sobre productores de programación utilizar el comando findit armadiag. Cuarto, después de evaluar el modelo correspondiente se debe hacer diagnóstico de los residuos para detectar ruido blanco en los errores y un diagnóstico a los residuos al cuadrado si sigue la persistencia en la varianza condicional. Los comandos a utilizar son armadiag y armadiag, arch, respectivamente. Por último se hace un análisis de pronóstico graficando la serie original y la serie pronosticada con el comando tsline. 8.3.4
Ejemplo aplicado
Para esta sección se utilizará una serie financiera tomada de la base de datos de finance.yahoo.com desde enero de 2007 hasta marzo de 2013 con una periodicidad diaria. . gen tiempo=_n . tsset tiempo . gen Lncoke=ln(Coke) . gen rendimientos= D.Lncoke . regress D.Lncoke . estat archlm, lags(1) . estat bgodfrey, lags(1)
173
Tabla 134. Regresión para detectar presencia de varianza condicional
Tabla 135. Prueba LM para detectar efectos ARCH
Tabla 136. Prueba Breush- Godfrey para detectar efectos ARCH
A través de las dos pruebas se confirma la presencia de un efecto Arch en el modelo, ya que la probabilidad de ocurrencia es inferior al 5% de un nivel de significancia, por lo tanto se rechaza la hipótesis nula de la no presencia de autocorrelación serial entre los residuos al cuadrado. Para seguir el ejemplo, se debe encontrar el orden de los rezagos de la variable y de media móvil a través de los comandos pac y ac, respectivamente. . ac rendimientos . pac rendimientos
174
Figura 125. Autocorrelación de los rendimientos
Figura 126. Autocorrelación parcial de los rendimientos
. arima D.Lncoke, ar(1) ma(1) . predict residuos, residuals . gen residuos2= residuos*residuos . corrgram residuos2
Tabla 137. Modelo ARIMA (1,0,1)
175
Tabla 138. Correlograma de los residuos al cuadrado . arch D.Lncoke, ar(1) arch(1) garch(1)
Tabla 139. Modelo Ar(1) Garch(1,1)
176
8.3.4.1 Ejercicio 1. Evaluar el modelo incluyendo los parámetros ar(2) ma(2) GARCH (2,2) y verificar individualmente la significancia de los coeficientes al 5% como nivel de significancia. 8.3.4.2 Verificación del modelo Se debe verificar si los residuos se comportan con media cero y varianza constante, lo que se llama ruido blanco y además verificar si los residuos al cuadrado no muestran patrones de volatilidad. Para esto se utiliza el comando armadiag y armadiag, arch, para lo cual se debe mirar la probabilidad del estadístico Q, debe sobrepasar los niveles del 5% para cada rezago, concluyendo que se debe aceptar la hipótesis nula de normalidad y no presencia de volatilidad condicional. . armadiag . armadiag, arch
Figura 127. Diagnóstico de los residuos
177
Figura 128. Diagnóstico de los residuos al cuadrado.
8.3.4.3 Pronóstico Por último se realiza el pronóstico para los siguientes 7 días hábiles en el mercado accionario, con el fin de predecir hasta el fin del mes. Además de predecir el precio se utiliza la opción variance con el fin de pronosticar la varianza sujeta a nuestro modelo econométrico. . tsappend, add(7) . predict pronosticolncoke, y dynamic(1565) . predict cond_var, variance . gen pronosticocoke=exp(pronosticolncoke) . tsline Coke pronosticocoke in 1400/1571
Figura 129. Datos observados vs pronóstico
178
8.4
Comandos usados
%td _n-1 ac add ar arch arima arima armadiag boxcox bysort corrgram D. date destring dfuller drift drop DS12 dymamic estat archlm, lags(1) estat bgodfrey, lags(1) estat ic forecast format g garch inequal7 lags(7) list
list lrtest ma model(theta) noconstant pac predict range regress rename res rmse robust sarima smooth(14400) split ssc install tin trend tsappend tsfilter hp tsline tsset tssmooth dexponential use weight wntestq wntestq xb ym
9. MODELOS DE DATOS PANEL O LONGITUDINALES Un conjunto de datos panel (o longitudinales) consta de una serie temporal para cada miembro del corte transversal en el conjunto de datos. Como ejemplo, suponga que se tienen las variables de salario, educación y experiencia de un grupo de individuos a los que se les hace seguimiento por 5 años. De igual forma es posible recopilar información en unidades geográficas. Por ejemplos, datos de municipios de un país sobre impuestos, salarios, gastos estatales, niveles de educación, entre otros. La característica principal de los datos panel, que los distinguen de las combinaciones de cortes transversales, es el hecho de que se da seguimiento a las mismas unidades transversales ya sean individuos, países, regiones, entre otros, durante cierto período de tiempo.
179
Como los datos de panel exigen la repetición de las mismas unidades con el tiempo, los conjuntos de estos datos, en particular de los individuos, hogares y empresas, son más difíciles de conseguir que en las combinaciones de cortes transversales. La ventaja es que al tener las mismas unidades es posible controlar ciertas características inobservadas de individuos, empresas, etc. Es decir es posible capturar inferencias causales que no es posible capturar con los cortes transversales. La segunda ventaja de los datos panel es que permite estudiar la importancia de los rezagos en el comportamiento o el resultado de tomar una decisión. Esta información puede ser significativa, puesto que es de esperar que muchas políticas económicas tengan efecto sólo al paso del tiempo. La idea de los panel es poder capturar esos factores inobservables, por ejemplo, lo que influye en el salario de un individuo en 1990 también influirá en el mismo individuo en 1991, ese factor inobservable puede ser la capacidad o habilidades. 9.1
Análisis de datos panel
El principal objetivo de aplicar y estudiar los datos en panel, es capturar la heterogeneidad no observable, ya sea entre agentes económicos o de estudio asó como también en el tiempo, dado que esta heterogeneidad no se puede detectar ni con estudios de series temporales ni tampoco en corte transversal. La aplicación de esta metodología permite analizar dos aspectos de suma importancia cuando se trabaja con este tipo de información y que forman parte de la heterogeneidad no observable: i) los efectos individuales específicos y ii) los efectos temporales. En lo que se refiere a los efectos individuales específicos, se dice que estos son aquellos que afectan de manera desigual a cada uno de los agentes de estudio contenidos en la muestra (individuos, empresas, bancos) los cuales son invariables en el tiempo y que afectan de manera directa las decisiones que tomen dichas unidades. Usualmente se identifica este tipo de efectos con cuestiones de capacidad empresarial, eficiencia operativa, capitalización de la experiencia, acceso a la tecnología, etc. Los efectos temporales serían aquellos que afectan por igual a todas las unidades individuales del estudio pero que no varían en el tiempo. Este tipo de efectos pueden asociarse, por ejemplo, a los choques macroeconómicos que pueden afectar por igual a todas las empresas o unidades de estudio.
Stata con un conjunto de procedimientos que le permiten al usuario trabajar bases de datos de Stata, para ello se debe utilizar el prefijo xt, el cual le indica a Stata que se está trabajando con datos panel. Los comandos para iniciar Stata con panel y hacer su descripción son: 180
Identificador de bases de datos de Stata
. xtset id t
Descripción de bases de datos tipo panel
. xtdescribe
Resumen de estadísticas con variaciones WITHIN y BETWEEN
. xtsum id t lwage ed exp exp2 wks south tdum1
Tabulación de datos para una variable panel
. xttab south
Cálculo de probabilidades de transición para una variable
. xttrans south, freq
9.1.1
Estructura de bases de datos panel
Stata requiere un ajuste de la base de datos panel, dado que solo trabaja con bases de datos micropanel, es decir con N grande y T pequeño. Reshape reshape long stubnames, i(varlist) [options] reshape wide stubnames, i(varlist) [options] WIDE i ....... x_ij ........ id sex inc80 inc81 inc82 ------------------------------1 0 5000 5500 6000 2 1 2000 2200 3300 3 0 3000 2000 1000 Tabla Ejemplo Wide
En la base de datos en forma horizontal (wide form), existe una sola observación por id, pero más de una variable por ingreso. LONG i
j x_ij id year sex inc ----------------------1 80 0 5000
181
1 1 2 2 2 3 3 3
81 82 80 81 82 80 81 82
0 0 1 1 1 0 0 0
5500 6000 2000 2200 3300 3000 2000 1000
Tabla. Ejemplo Long
En la base de datos de forma vertical (long form) se puede observar que existe una variable que es constante al interior de un grupo, en este caso el id y una variable que varía en el interior del grupo que es el año. De Long a Wide reshape wide stub, i(i) j(j) – j es una variable existente De Wide a Long reshape long stub, i(i) j(j) – j es una nueva variable
Formato de los datos WIDE (i=state)
. use mus08cigarwide.dta, clear . list, clean
Transformar del formato WIDE al formato LONG (i=Stata, j=year)
. reshape long lnp lnc, i(state) j(year)
Formato de los datos LONG
. list in 1/6, sepby(state)
Retransformar del formato LONG al formato WIDE
. reshape wide lnp lnc, i(state) j(year)
9.2
Ejemplo Práctico – El caso de la CASEN
Para esta última sección se utilizará la base de datos de la encuesta de caracterización socioeconómico nacional (Casen) para los años 1996, 2001, 2006, con el objetivo de estimar la ecuación de ingresos con respecto a algunas variables que poseen los individuos como es la experiencia, los años de educación y las horas dedicadas al trabajo. De esta manera la ecuación objetivo sigue la siguiente forma. 182
En primera instancia se delimita que se va a trabajar con una base de datos de orden panel con el comando xtset(i,j), donde i denota la variable que determina el corte transversal y j determina el periodo con que se denomina la base de datos. Es pertinente que la variable de serie de tiempo debe ir organizada en fila y no en columnas, el comando que se utiliza es reshape. Al igual que series de tiempo con el comando ts, datos de panel trabaja con un comando especial xt, por ejemplo si se desea describir las variables de la base de datos de xtdes, para hacer algún tipo de estadística descriptiva xtsum, para realizar tablas de frecuencias xttab y para calcular matrices de transición se utilizará el comando xttrans. . by idpersona: gen fecha=_n . xtset idpersona fecha . gen lwage=ln( ytrabcor) . gen exp2=exp*exp . xtdes . xtsum . xttab econyugal . xttrans econyugal,freq
Tener en cuenta que overrall hace referencia a todos los individuos de la muestra en todo los n periodos, between es una muestra entre individuos y within es una variación entre la variable de tiempo, manteniendo a los mismos individuos.
Tabla 140. Frecuencia para el estado conyugal
Para entender un poco mejor el anterior análisis, preste atención a la columna overall freq, quiere decir que sobre todas las observaciones se encontraron 3640 ocasiones donde el individuo está casado, 456 ocasiones donde los individuos se encontraron solteros. Ahora observe la columna between freq. Por ejemplo el número 406, indica que 406 individuos estuvieron solteros alguna vez. Ahora observe la columna within percent, indica que del total de la muestra el 89.68% de las personas estaban alguna en otro estado conyugal diferente al casado.
183
Tabla 141. Matriz de transición para el estado conyugal
También se puede mirar matrices de probabilidades entre el cambio de estado conyugal en el periodo observado, por ejemplo del total de la muestra el 95.23% de las personas siempre estuvo casada y el 19.01% de las personas pasaron de estar casados a estar solteros. Del total de la muestra el 2% de las personas cambiaron de estar solteras a estar casadas. 9.2.1
Gráficos de evolución
El comando xtline permite hacer grafico de evolución de aquellas variables que que se quieren analizar, por ejemplo si se quiere saber la dinámica del comportamiento del logaritmo del salario y la dinámica de las horas de trabajo al mes; . xtline lwage if idpersona<=39, overlay title("Logaritmo salario") name(lwage, replace) . xtline horas if idpersona<=39, overlay title("Horas de trabajo al mes") name(hora, replace) . graph combine lwage hora
184
Figura 130. Gráfico de evolución entre el salario y las horas de trabajo
Ahora para la realizar gráficos de dispersión scatter con ajustes paramétricos qfit y no paramétricos lowess se utilizará el comando graph twoway. Por ejemplo se quiere el gráfico del comportamiento del salario con respecto a los años de experiencia de los individuos de la muestra, con un ajuste cuadrático para observar si existe un efecto lineal y un ajuste no paramétrico para observar que tanto se desvía del ajuste paramétrico. . graph twoway (scatter lwage exp) (qfit lwage exp) (lowess lwage exp), title(Dinamica: Salario vs experiencia) ytitle(Logaritmo Salario) xtitle(Años de experiencia) legend(label(1 "Datos reales") label(2 "Ajuste Cuadratico") label(3 "Lowess")) name(Gráfico)
185
Figura 131. Ajustes de la gráfica de dispersión entre el salario y la experiencia
Por otro lado también se pueden realizar gráficos en donde solo se incluya el efecto within y between de la muestra que se elige. Por ejemplo si se quisiera realizar el anterior grafico pero solo entre el cambio de cada individuo a través del tiempo se utilizará el comando xtdata, fe, mientras que para realizar análisis entre individuos between se utilizará xtdata, be. *variacion within* . snapshot save, label("Snapshot 1") . xtdata idpersona anos lwage exp, fe . graph twoway (scatter lwage exp) (qfit lwage exp) (lowess lwage exp), title(Dinamica: Salario vs experiencia) ytitle(Logaritmo Salario) xtitle(Años de experiencia) legend(label(1 "Datos reales") label(2 "Ajuste Cuadratico") label(3 "Lowess")) name(Gráficowithin) . snapshot restore 1
*variacion between* . xtdata idpersona anos lwage exp, be . graph twoway (scatter lwage exp) (qfit lwage exp) (lowess lwage exp), title(Dinamica: Salario vs experiencia) ytitle(Logaritmo Salario) xtitle(Años de experiencia) legend(label(1 "Datos reales") label(2 "Ajuste Cuadratico") label(3 "Lowess")) name(Gráficobetween) . snapshot restore 1 . graph combine Gráficowithin Gráficobetween, title(“Logaritmo del salario vs experiencia”)
186
Figura 132. Análisis comparativo between y within
9.2.2
Modelos econométricos para datos de panel
El modelo general viene determinado de la siguiente manera: 𝑌 =𝛼 +𝑥 𝛽 +𝜀 Bajo supuestos distintos sobre el intercepto y los componentes de error, el modelo puede ser
Modelo agrupado (pooled) Si el intercepto es constante, y no hay heterogeneidad entre individuos. Exogeneidad 𝐶𝑜𝑣(𝑥 , 𝜀 ) = 0. El modelo resultante es el modelo agrupado.
Modelo de efectos fijos (fixed effects, FE) Si el intercepto no es constante, hay heterogeneidad entre individuos. 𝐶𝑜𝑣(𝑥 , 𝛼 ) ≠ 0. Exogeneidad 𝐶𝑜𝑣(𝑥 , 𝜀 ) = 0. El modelo resultante es el modelo de efectos fijos.
Modelo de efectos aleatorios (random effects, RE) Si el intercepto no es constante, hay heterogeneidad entre individuos. 187
𝐶𝑜𝑣(𝑥 , 𝛼 ) = 0. Exogeneidad 𝐶𝑜𝑣(𝑥 , 𝜀 ) = 0. El modelo resultante es el modelo de efectos aleatorios. 9.2.2.1 Regresion Pooled La regresión agrupada se evalúa sin tener en cuenta de que los datos son datos de panel agrupados. En este parte, primero se crea una variable categórica de género, toma el valor de 1 si es hombre y 0 en caso contrario, segundo se crea una variable global que contenga todas la variables independientes y al momento de requerirla se utilizará el nombre del global antecedido del signo $, tercero se evalúa la función de los ingresos del individuo, cuarto se examina si los residuos tienen algún tipo de autocorrelación serial. . gen sexo=genero==1 . global xvarlist exp exp2 horas esc sexo *Regresion agrupada pooled* . sort idpersona fecha . reg lwage $xvarlist . reg lwage $xvarlist, vce(cluster idpersona) . predict uhat, resid . correlate uhat L.uhat
Tabla 142. Matriz de correlaciones entre los residuales y su rezago
9.2.2.2 Estimación del modelo de efectos fijos Es una estimación a través de la transformación within, tomando la desviación respecto a la media en el tiempo para cada individuo. 𝑦 = 𝑥̅ 𝛽 +∝ + 𝑒̅ (𝑦 − 𝑦 ) = (𝑥 − 𝑥̅ )𝛽 + (𝑒 − 𝑒̅ ) 𝑦⃛ = 𝑥̈ 𝛽 + 𝑒̅ Con este método no se pueden estimar los coeficientes de aquellas variables que no varían en el tiempo. El comando que se utiliza es xtreg, fe. Para detectar heterocedasticidad se utiliza el comando xttest3, para corregir el efecto de heterocedasticidad se utiliza el comando vce(cluster idpersona). Para detectar autocorrelación en los residuos se utiliza el comando xtserial, para corregir este problema se utiliza el comando xtregar. . xtreg lwage $xvarlist, fe
188
. xttest3 . xtserial lwage $xvarlist . xtreg lwage $xvarlist, fe vce(cluster idpersona)
Tabla 143. Regresión datos de panel por efectos fijo
Tabla 144. Prueba para detectar heterocedasticidad
Tabla 145. Prueba para detectar autocorrelación
189
Por medio de las anteriores pruebas se demuestra que por medio de la regresión por efectos fijos existe presencia de heterocedasticidad y la no presencia de autocorrelación seria.l
Tabla 146. Regresión datos de panel por efectos fijos y corrección de heterocedasticidad.
Se puede observar que Stata 12 omite la variable que no cambia a través del tiempo entre los individuos, que es el género. A diferencia del modelo por mínimos cuadrados ordinarios las variables de años de escolaridad y de experiencia al cuadrado no son significativas al 5%. 9.2.2.3 Estimación del modelo de efectos aleatorios La estimación se puede realizar mediante tres métodos el primero hace énfasis en evaluarlo en primeras diferencias, segundo, por el método de mínimos cuadrados generalizados y tercero con el método between. El comando que se utiliza es xtreg, re. . xtreg lwage $xvarlist, re vce(cluster idpersona) . xttest1
190
Tabla 147. Regresión datos de panel por efectos aleatorios y corrección de heterocedasticidad.
Figura 133. Prueba conjunta para detectar autocorrelación y heterocedasticidad
Con la anterior prueba que demuestra que al evaluar el modelo por efectos aleatorios existe presencia de heterocedasticidad y autocorrelación, para corregir estos dos problemas se utiliza la opción vce(cluster idpersona) y el comando xtregar. 191
9.2.3
Comparación de modelos
En esta parte se utilizaran los comando quietly para realizar la estimación sin que muestre los resultados en la pantalla, est store para que guarde en memoria los resultados de la estimación y est table para mostrar los resultados en una tabla con las opciones que se quieran mostrar, por ejemplo b, se, r2, para los coeficientes, la desviación estándar y el r cuadrado, respectivamente. . quietly regress lwage $xvarlist, vce(cluster idpersona) . est store MCO . quietly xtreg lwage $xvarlist, fe . est store FE . quietly xtreg lwage $xvarlist, fe vce(robust) . est store FE_rob . quietly xtreg lwage $xvarlist, re .. est store RE . quietly xtreg lwage $xvarlist, re vce(robust) . est store RE_rob . est table MCO FE FE_rob RE RE_rob
Tabla 148. Comparación de modelos datos de panel
Para elegir el mejor modelo a estimar se puede hacer una prueba con el comando hausman. . hausman FE RE, sigmamore
192
Tabla 149. Prueba Hausman
La hipótesis nula de esta prueba es que la diferencia de los coeficientes no es sistemática, de otra manera no existe diferencia entre los modelos fijos y aleatorios, por lo tanto no hay diferencia entre un modelo y el otro, se podría evaluar cualquiera de los dos. Por otro lado, si se rechaza esta hipótesis nula, la mejor manera para estimar el modelo seria efectos fijos. En este orden de ideas para el modelo para la base de datos CASEN el mejor modelo a estimar sería el de efectos fijos ya que la prueba de Hausman arroja un pvalor por debajo del 5% del nivel de significancia. 9.2.4
Interpretación de los parámetros de efectos fijos.
A través de la prueba de Hausman se estima el modelo por efectos fijos, por lo tanto si la experiencia se incrementa en una años adicional, manteniendo las demás variables constantes, los individuos de la muestra incrementarían su nivel de salario en un 2,7%. Por un incremento de un año de escolaridad de cada individuo, manteniendo las demás variables constantes, el salario se incrementaría en un 3.5%. 9.3
Comandos usados
$ by clean est store gen global graph combine hausman list predict quietly reshape
reshape long reshape wide resid sigmamore use vce(cluster xtdata, be. xtdata, fe xtdescribe xtgls xtline xtpcse
193
xtregar xtse xtserial xtset xtsum
xttab xttest0 xttest1 xttest3 xttrans
194
10. INTRODUCCIÓN A LA PROGRAMACIÓN
10.1 Local macros Las macros locales de Stata le van a permitir trabajar más fácilmente con Stata, estas macros le permitirán alojar objetos como números, variables o varios conjuntos de objetos. Estos objetos pueden contener caracteres alfanuméricos y hasta 8000 caracteres. El comando para definir una macro es con local seguido por el nombre del objeto y sus características. Ejemplos: local country US UK DE FR local ctycode 111 112 136 134 display “`country’” US UK DE FR
El comando global le permite crear nombres de listas de variables, para así poder referirse a ellas de forma conjunta y evitar tener que escribir cada una de ellas cada vez que se vayan a utilizarlas. Por ejemplo global grupo1 var1 var2 var3
Luego para hacer referencia al grupo de variable utilizando algún comando, se debe anteponer el símbolo $ al nombre del grupo Por ejemplo keep $grupo1
10.2 Creando ciclos Una de las utilidades principales de la programación es la creación de loops estos le permiten al usuario crear rutinas para evaluar diferentes alternativas o para crear ciclos de comandos. Los comandos más importantes para estos ciclos son forvalues y foreach. 10.2.1 Comando IF If expression { Comandos Stata } else if expression { comandos stata } else { comandos stata
195
10.2.2 Comando For set obs 100 For new u1-u10: gen x=uniform() For any . : replace z=. If y= X For new x2-x5 \ num 2/5: gen X =variable^Y
10.2.3 Comando Forvalues forvalues nueva_macro = rango { comandos referidos a nueva_macro } program define diez forvalues i = 1(1)10 { display "`i'" } End
10.2.4 Comando While: while condicion { comandos Stata } local i = 1 while `i' <= 10 { display `i' local i = `i' + 1 }
10.3 ESCALARES Y MATRICES scalar raiz2 = sqrt(9) generate raizPIB = PIB*raiz2
Los estadísticos, pruebas y resultados que genera Stata es posible visualizarlos por medio del comando return y ereturn. Por ejemplo
196
. sum price, detail Price 1% 5% 10% 25% 50% 75% 90% 95% 99%
Percentiles 3291 3748 3895 4195
Smallest 3291 3299 3667 3748
Obs Sum of Wgt.
5006.5 Largest 13466 13594 14500 15906
6342 11385 13466 15906
74 74
Mean Std. Dev.
6165.257 2949.496
Variance Skewness Kurtosis
8699526 1.653434 4.819188
Tabla 150. Comando sum, detail
Luego se obtienen los resultados . return list scalars: r(N) r(sum_w) r(mean) r(Var) r(sd) r(skewness) r(kurtosis) r(sum) r(min) r(max) r(p1) r(p5) r(p10) r(p25) r(p50) r(p75) r(p90) r(p95) r(p99)
= = = = = = = = = = = = = = = = = = =
74 74 6165.256756756757 8699525.97426879 2949.49588476892 1.653433511704859 4.819187528464004 456229 3291 15906 3291 3748 3895 4195 5006.5 6342 11385 13466 15906
Tabla 151. Comando return
Vea en este caso, que al hacer un comando de sum e indicando la opción de detail, Stata se muestran los resultados generales más otras medidas de percentiles, la curtosis y la simetría. Ahora suponiendo que se quiere armar una tabla que muestre para la base de nlsw88.dta, por raza, el promedio del salario, la mediana, la varianza y el número de observaciones. Para ello se usará la construcción de una matriz. Para la creación de la matriz se construye indicando el tamaño que se quiere. La matriz que se debe construir es la siguiente: BLACK
WHITE
Promedio Varianza Mediana No. Observaciones Tabla 152. Tabla de ejemplo
Se utiliza el comando matrix, help matrix_functions 197
Usando la base de datos de nlsw88.dta . sysuse nlsw88.dta . matrix define A=J(4,2,0) . sum wage if race ==1, d hourly wage 1% 5% 10% 25% 50% 75% 90% 95% 99%
Percentiles 2.090301 2.875546 3.344482 4.516906
Smallest 1.004952 1.032247 1.392914 1.501798
Obs Sum of Wgt.
6.545891 Largest 40.19808 40.19808 40.19808 40.19808
9.758451 13.14009 17.34411 38.70926
1637 1637
Mean Std. Dev.
8.082999 5.955069
Variance Skewness Kurtosis
35.46285 3.00474 14.74577
Tabla 153. Comando sum del salario cuando la raza es blanco matrix A[1,1] = r(mean) matrix A[2,1] = r(p50) matrix A[3,1] = r(Var) matrix A[4,1] = r(N)
Debe hacer lo mismo para los negros . matrix list A A[4,2] r1 r2 r3 r4
c1 8.0829994 6.5458913 35.462848 1637
c2 6.8445578 5.434783 25.767671 583
Tabla 154. Matriz A
Ahora para generar el nombre de las filas y las columnas matrix rown A = Promedio Media Varianza Observaciones matrix coln A = Blanco Negro
. matrix list A A[4,2] Promedio Media Varianza Observacio~s
Blanco 8.0829994 6.5458913 35.462848 1637
Negro 6.8445578 5.434783 25.767671 583
Tabla 155. Matriz A con rótulos
198
Para pasar de matriz a variable, se usa el comando svmat. . svmat A
10.3.1 Ejercicio 1. Ahora haga una prueba de igualdad de medias de los salarios, por la raza 2. Cree una tabla de resultados tal como se presenta a continuación BLANCO NEGRO ESTADÍSTICAS Promedio Observaciones Promedio Observaciones Diferencia Error T-test std Tabla 156. Ejercicio de matrices
La primera fila no es posible crearla en Stata, entonces solamente ingrese como nombres la segunda fila. Ahora utilizando loops realice la siguiente tabla por las variables tenure, hours, wage grade SINGLE MARRIED ESTADÍSTICAS Promedio Observaciones Promedio Observaciones Diferencia Error Tstd test tenure Hours Wage Grade Tabla 157. Ejercicio 2 de matrices . global grupo tenure hours wage grade
Se define una matriz 4x7 . matrix def C=J(4,7,0)
Se genera el indicador del loop i que comience desde cero . local i = 0
Utilizando el comando foreach me dice que para cada variable en el grupo que acabo de formar realice los comandos dentro del loop. foreach var in $grupo { local i = `i'+1 preserve qui ttest `var', by(married) matrix C[`i',1]=r(mu_1) matrix C[`i',2]=r(N_1) matrix C[`i',3]=r(mu_2)
199
matrix C[`i',4]=r(N_2) matrix C[`i',5]=r(mu_1) - r(mu_2) matrix C[`i',6]=r(se) matrix C[`i',7]=r(t) restore } matrix rown C = tenure hours wage grade matrix coln C = Prom1 Obs1 Prom2 Obs2 Dif ErrSt T-test matrix list C
11. TRUCOS CON STATA 11.1 Algunos consejos con Stata13 1. Si quiere redondear los números en su base de datos podrá usar los comandos floor(), round() y ceil(). Ejemplo: . sysuse auto . gen g_ratio = floor(gear_ratio) . gen g_ratio = ceil(gear_ratio)
2. En algunas ocasiones se recomienda que el usuario antes de ejecutar algún comando o un archivo .do, verifique que las condiciones se cumplan, una de las formas para verificarlo es usando el comando assert. Ejemplo: . sysuse bplong . assert sex == 0 | sex ==1 . replace sex = 3 in 1 . assert sex == 0 | sex == 1
3. Para ingresar caracteres de texto en gráficas, crear variables, tablas, puede utilizar el comando char() , en su interior debe ingresar el código ASCII Ejemplo: . gen arroba = char(64) . global copyr = char(169)
13
Retomado del libro “Seventy-six of Stata tips”.
200
. scatter price mpg, xtitle(MPG) ytitle(Precio $copyr)
4. El comando creturn, c(), le permite al usuario obtener la información parametrizada del sistema, tal como, meses, días, fecha actual, versión de Stata. Algunos ejemplos son: display “`c(alpha) ’”
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec di “`c(ALPHA) ’”
ABCDEFGHIJKLMNOPQRSTUVWXYZ di “`c(Mons) ’”
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec di “`c(current_date) ’” di “`c(current_time) ’” di “`c(sysdir_stata) ’” di “`c(N) ’” di “`c(k) ’” di “`c(memory) ’” di “`c(more) ’” di “`c(virtual) ’” di “`c(pi) ’”
- Genera el número Pi –
5. Fillin . clear . set obs 3 . gen y = _n . gen x = y . fillin y x
Tabla 158. Comando fillin
6. Predefiniendo teclas, Stata, le permite al usuario la posibilidad de usar las teclas funtions, para el llamado de comandos, funciones, caracteres, entre otros. Ejemplo: . global F4 = char(96)
201
. global F4 = char(180) . global F4 = “list;;”
7. Descargar programas escritos por usuarios net from http://www.stata.com
.
. net cd stb . net cd stb42 net install sbe16_1
8. Actualización Menores de Stata Stata es un programa que continuamente se encuentra en desarrollo, además, al contar con una amplia comunidad de usuarios en diferentes partes del mundo le brinda la oportunidad de estar frecuentemente mejorado por los Statistical Software Components (SSC) que continuamente generan los usuarios. Pero Stata en su versión 11.0 ha generado ya dos actualizaciones menores dentro de esta versión, siendo la más actual la versión 11.2, los usuarios que tengan registrado el software y que cuenten con una conexión a Internet podrán acceder a la última actualización de forma gratuita, lo primero que debe verificar es la conexión a internet, si se encuentra en un equipo que pertenece a una red deberá consultar si su conexión requiere proxy, para configurar el proxy en Stata debe ir a Edit – Preferences – General Preferences
Figura 134. Preferencias generales
Posteriormente en la pestaña de Internet, configuré el proxy, el puerto y el usuario y contraseña en caso de ser necesario.
202
Figura 135. Pestaña Internet
En la misma pestaña de Internet podrá activar la opción de actualización automática, si activa esta opción debe tener en cuenta que cada vez que Stata se inicie se actualizará con la frecuencia que usted seleccione y el tiempo de la actualización dependerá de su conexión a internet. En caso de no activar la actualización automática, usted podrá realizar la actualización en el momento que lo desee, ingresando en la ventana de comandos el comando update all el cual le indicará paso a paso las instalaciones que desea. Se recomienda también ver la ayuda de . help update . help ssc . help net . help sj
11.2 Ejecutando comandos en Stata sin resultados (quietly) El comando quietly de Stata permite ejecutar otros comandos de Stata sin presentar los resultados o salidas en la ventana de resultados, la instrucción se ubica como prefijo al comando principal. Esta es una herramienta clave si se requiere retornar algunos resultados por ejemplo: media, varianza, coeficientes, etc., (ver listado de la opción r() por medio de help return list) sin necesidad de ver la salida completa. Ejemplo 1: 203
. sysuse auto, clear . quietly summarize mpg, detail
Ejemplo 2: . quietly: summarize mpg, detail
De igual forma se pueden ejecutar un bloque o grupo de comandos con quietly Ejemplo 3: . sysuse auto, clear quietly { summarize mpg, detail local a=r(mean) summarize price, detail local b=r(mean) }
En el caso que se desee mostrar un resultado completo en un bloque de comandos, se usa el comando noisily como prefijo al comando principal. Ejemplo 4: . sysuse auto, clear quietly { summarize mpg, detail local a=r(mean) noisily summarize price, detail local b=r(mean) }
204
Figura 136. Comando nosily
Para más información ver: . help quietly
11.3 Herramienta de calificación de Stata 12 La versión de Stata 12 liberada el mes de agosto de 2012, incluyó una nueva herramienta denominada Installation Qualification Tool (IQT) la cual verifica que el software y todas sus actualizaciones estén instaladas correctamente, en éste momento se cuenta con IQT para Windows y Mac y también para las versiones 11 y 12. Para descargar la herramienta ingrese a http://www.stata.com/support/installationqualification/, una vez descargado el programa, instálelo, se requiere que tenga permisos de administrador para ejecutar la aplicación.
205
Figura 137. Stata directory
Una vez ejecutado la IQT deberá instalar un recurso de evaluación, para ello haga clic en Browse de la opción de Qualification source, seleccione una ubicación, puede ser la carpeta de Stata 12, e instale el complemento.
Figura 138. Revision
Al instalar el complemento, la aplicación buscará la versión de Stata actual y las actualizaciones realizadas, seleccione la que desee y de clic en RUN TEST.
Figura 139. Run test
El programa empezará a evaluar su correcta instalación del software y generará un reporte sobre los resultados del análisis el cual podrá exportar a PDF haciendo clic en Export.
206
Figura 140. Exportar reporte
Para mayor información diríjase a http://www.stata.com/support/installation-qualification/ 11.4 Archivos en PDF de logs y gráficas con Stata 12 En Stata 12 los archivos log (archivos de registro) se siguen generando como SMCL o texto. Pero en esta última versión estos archivos pueden ser convertidos a formato PDF. Esto se puede hacer fácilmente con el comando translate, por ejemplo: . log using C:\Users\Soporte\Desktop\logfile.smcl, replace . sysuse auto, clear . tab rep78 foreign . log close .translate C:\Users\Soporte\Desktop\logfile.smcl C:\Users\Soporte\Desktop\logfile.pdf, translator(smcl2pdf)
La visualización del PDF será la siguiente:
207
Figura 141. Comando translate
Además, en Stata 12 se puede producir un PDF de un gráfico desde Stata. Por ejemplo: . sysuse auto, clear . gladder price . graph export C:\Users\Soporte\Desktop\graph.pdf //name(scatter)
Figura 142. Exportar gráficos en formato PDF
208
Para ayuda sobre un comando específico digite: . help
Y por ejemplo especifique un comando . help translate . help graph export
11.5 Material de apoyo Algunos recursos en Internet para usuarios Stata:
http://www.ats.ucla.edu/stat/stata/ http://econpapers.hhs.se/paper/bocbocoec/531.htm http://fmwww.bc.edu/ec/res.info.php http://ideas.repec.org/s/boc/bocins.html
209
12. BIBLIOGRAFIA [1] Adkins, L. & Hill, R. (2008). Using Stata for Principles of Econometrics. Wiley, Third Edition. [2] Baum, Christopher. (2006). An Introduction to Moderm Econometrics Using Stata. Stata Press, Second Edition. [3] Baum, Christopher. (2009). An Introduction to Stata Programming.. Stata Press, First Edition. [4] Cameron, A. & Trivedi, P. (2009). Microeconometrics Using Stata. Stata Press, Second Edition. [5] Cox, N. & Newton, H. (2009) Seventy-six Stata Tips. Stata Press, Second Edition. [6] Freese, J. & Long. S. (2006). Regression Models for Categorial Dependent Variables Using Stata. Stata Press, Second Edition. [7] Hamilton, Lawrence. (2004). Statistics with Stata. Thomson. [7] Mitchell, Michael. (2008). A Visual Guide to Stata Graphics. Stata Press, Second Edition. [8] Mitchell, Michael. (2010). Data Management Using Stata, A Practical Handbook. Stata Press, Second Edition. [9] Rabe, S & Everitt, B. (2004). A Handbook of Statistics Analyses using Stata. Chapman & Hall/CRC, Third Edition.
210
Introducción al Análisis y Modelación de Datos con Stata 12 STATA es un programa estadístico desarrollado para el manejo y análisis de datos. En la actualidad, es ampliamente usado por investigadores de diferentes disciplinas, incluyendo desde bioestadísticos hasta investigadores sociales. Los diferentes tipos de análisis integrados a STATA están documentados y respaldados por numerosos libros, publicaciones y revistas. Los manuales de de STATA que en las versiones anteriores estaban reunidos en 15 volúmenes de explicaciones teóricas, métodos, fórmulas, ejemplos estadísticos y documentos de referencia, ahora hacen parte de la ayuda interactiva que ofrece el programa. Al tratarse de un programa en ambiente Windows, su interfaz es similar a la de todos los programas bajo este ambiente.
R
SOFTWARE shop |
[email protected]
|
www.SOFTWARE-shop.com