Está en la página 1de 220

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 Descripción del libro ...............................................................................................................................1
2. MANEJO FUNDAMENTAL DE STATA 12 ....................................................................................... 3
2.1 Conociendo el entorno de Stata .............................................................................................................3
2.2 Barras .....................................................................................................................................................5
2.3 El menú de ayuda ...................................................................................................................................5
2.3.1 Actualizaciones en Stata:............................................................................................. 8
2.4 Tipos de archivo .....................................................................................................................................8
2.5 Estructura de comandos .........................................................................................................................9
2.6 Ventana de comandos ..........................................................................................................................10
2.7 Configuración de la memoria de Stata ..................................................................................................11
2.8 Cambiar el directorio de trabajo de Stata .............................................................................................11
2.9 Bases de datos de ejemplo ..................................................................................................................11
2.10 Tipos de variables.................................................................................................................................12
2.10.1 Formato de las variables: .......................................................................................... 13
3. MANEJO DE BASE DE DATOS ..................................................................................................... 15
3.1 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
3.2 Salvando una base de datos ................................................................................................................20
3.3 Descripción de la base de datos ...........................................................................................................20
 Cargar una base de datos del programa ........................................................................... 21
 Observar los datos............................................................................................................. 21
 Describir los datos ............................................................................................................. 21
3.4 Creación de Variables ..........................................................................................................................22
3.4.1 Extensiones en la creación de variables .................................................................... 26
3.5 Ordenar variables y bases de datos .....................................................................................................26
3.6 Cálculos por grupos ..............................................................................................................................27
3.7 Codebook e Inspect ..............................................................................................................................28
3.8 Conservar y recargar bases de datos ...................................................................................................29
3.9 Filtros de la base de datos ....................................................................................................................29
3.10 Administrador de variables ...................................................................................................................30
3.10.1 Rename ..................................................................................................................... 32
3.10.2 Label Variable ............................................................................................................ 32
3.10.3 Notes ......................................................................................................................... 32
3.11 Creación de categorías .........................................................................................................................32
3.12 Modificación y transformación de variables ..........................................................................................34
3.12.1 Recode ....................................................................................................................... 34
3.12.2 División de Variables de texto ................................................................................... 36
3.13 Combinación de bases de datos...........................................................................................................36
3.13.1 Combinación Vertical – Append ................................................................................ 36
3.13.2 Combinación Horizontal – Merge ............................................................................. 37
3.14 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
3.15 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
3.16 Análisis de duplicados ..........................................................................................................................47
3.17 Creación de programas – editor de texto ..............................................................................................50
3.18 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
3.19 Comandos usados ................................................................................................................................54
3.19.1 Otros comandos recomendados ............................................................................... 55
capture ...................................................................................................................................... 55
4. ANÁLISIS ESTADÍSTICOS CON STATA ......................................................................................... 56
4.1 Estadística descriptiva ..........................................................................................................................57
4.2 Ponderadores -weight- ........................................................................................................................58
4.3 Calculo de medias ................................................................................................................................58
4.4 Intervalos de confianza .........................................................................................................................59
4.5 Pruebas de hipótesis ............................................................................................................................60
4.5.1 Media ........................................................................................................................ 60
4.5.2 Varianza ..................................................................................................................... 61
4.5.3 Proporciones ............................................................................................................. 61
4.6 Manejo de tablas de datos ....................................................................................................................61
4.6.1 Tabstat ....................................................................................................................... 62
4.6.2 Tabulate (tab) ............................................................................................................ 63
4.6.3 Table .......................................................................................................................... 64
4.7 Pruebas no paramétricas ......................................................................................................................66
4.8 Ejemplo aplicado ..................................................................................................................................68
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
4.9 Comandos usados ................................................................................................................................80
4.9.1 Otros comandos recomendados ............................................................................... 81
5. GRAFICAS CON STATA ............................................................................................................... 82
5.1 Histograma ...........................................................................................................................................84
5.2 Gráfico de tortas ...................................................................................................................................85
5.3 Graficas twoway ...................................................................................................................................87
5.4 Editor de gráficos de Stata ...................................................................................................................90
5.4.1 Haciendo doble clic sobre el área de la grafica ......................................................... 91
5.5 Gráfico de series de tiempo ..................................................................................................................92
5.6 Gráfico de dispersión ............................................................................................................................93
5.7 Gráfico de puntos .................................................................................................................................95
5.8 Gráfico de barras ..................................................................................................................................96
5.9 Generando Funciones ..........................................................................................................................98
5.10 Combinando gráficas ............................................................................................................................98
5.11 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
5.12 Comandos usados ..............................................................................................................................107
6. REGRESIÓN LINEAL EN STATA ................................................................................................. 108
6.1 Ejercicio ..............................................................................................................................................108
6.2 Descripción estadística de la información ...........................................................................................109
6.3 Relación lineal entre las variables dependientes e independientes ....................................................109
6.4 Representación gráfica de las relaciones entre variables ...................................................................110
6.5 Estimación del modelo lineal de regresión .........................................................................................112
6.5.1 Pruebas de hipótesis lineales .................................................................................. 114
6.5.2 Ejercicio ................................................................................................................... 114
6.6 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
6.7 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 Ejercicio ................................................................................................................... 121
6.8 Exportar tabla de contenido ................................................................................................................121
6.9 Ejemplo aplicado ................................................................................................................................122
6.9.1 Prueba de hipótesis ................................................................................................. 123
6.9.2 Supuestos para mínimos cuadrados ordinarios ...................................................... 123
6.10 Comandos usados ..............................................................................................................................127
7. MODELOS DE VARIABLE DEPENDIENTE BINARIA: MODELOS LOGIT Y PROBIT ....................... 128
7.1 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
7.2 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
7.3 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
7.4 Ejemplo aplicado ................................................................................................................................144
7.4.1 Modelos con variable dependiente binaria MLP, Logit y Probit ............................ 144
7.5 Comandos usados ..............................................................................................................................148
8. 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.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
8.3 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
8.4 Comandos usados ..............................................................................................................................179
9. MODELOS DE DATOS PANEL O LONGITUDINALES .................................................................. 179
9.1 Análisis de datos panel .......................................................................................................................180
9.1.1 Estructura de bases de datos panel ........................................................................ 181
9.2 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 Local macros ......................................................................................................................................195
10.2 Creando ciclos ....................................................................................................................................195
10.2.1 Comando IF ............................................................................................................. 195
10.2.2 Comando For ........................................................................................................... 196
10.2.3 Comando Forvalues ................................................................................................. 196
10.2.4 Comando While: ...................................................................................................... 196
10.3 ESCALARES Y MATRICES ...............................................................................................................196
10.3.1 Ejercicio ................................................................................................................... 199
11. TRUCOS CON STATA ............................................................................................................ 200
11.1 Algunos consejos con Stata ...............................................................................................................200
11.2 Ejecutando comandos en Stata sin resultados (quietly) .....................................................................203
11.3 Herramienta de calificación de Stata 12 .............................................................................................205
11.4 Archivos en PDF de logs y gráficas con Stata 12 ...............................................................................207
11.5 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 Stata/IC Stata/MP and Stata/SE

Número de observaciones 1,200 2,147,483,647 2,147,483,647

Número de Variables 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
VARIABLES
VENTANA DE
REVISIÓN

VENTANA DE RESULTADOS

VENTANA DE
PROPIEDADES DE
VARIABLES
VENTANA DE COMANDOS

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 Copiar como


instrucción comando

Limpiar la
Ejecutar No Ejecutar Ejecutar y
ventana
mantener
la ventana
Figura 5. Características de una 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:

. sysuse dir * para ver el directorio de bases de ejemplo en su equipo


. sysuse auto.dta * cargará la base auto.dta que es una base de ejemplo de Stata

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 CUALITATIVA

Continua 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

Byte -127 100 %8.0g

Int -32,767 32,740 %8.0g

Long -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

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 Variable  “String”

Inicio de un formato 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.

Variable Properties
Filter Observations

Snapshots
Edit Mode Variables Manager
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 Active la casilla si en
Seleccione el
importar su hoja la primera fila
rango de los
contiene los nombres
datos
de las variables

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") Nombre de la hoja a importar


 cellrange([start][:end]) Rango de celdas a cargar
 firstrow Tomar la primera fila como los nombres de las variables
 allstring Importar todas las variables como texto
 clear 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 COMANDO


ODBC Odbc
Archivo de Texto sin diccionario Infile
(.raw)
Archivo de Texto con ancho fijo Infix
(.raw)
Archivo de Texto con diccionario ( infile2
Formatos SAS XPORT o .xpf import sasxport
Formato tipo haver Haver
XML files 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
storage display value
variable name type format label variable label

make str18 %-18s Make and Model


price int %8.0gc Price
mpg int %8.0g 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

storage display value


variable name type format label variable label

make str18 %-18s Make and Model


price int %8.0gc Price
mpg int %8.0g Mileage (mpg)
rep78 int %8.0g Repair Record 1978
headroom float %6.1f Headroom (in.)
trunk int %8.0g Trunk space (cu. ft.)
weight int %8.0gc Weight (lbs.)
length int %8.0g Length (in.)
turn int %8.0g Turn Circle (ft.)
displacement int %8.0g Displacement (cu. in.)
gear_ratio float %6.2f Gear Ratio
foreign byte %8.0g origin 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 Ejemplo Descripción


ln() g lpib = ln(pib) Logaritmo natural
exp() g epib = exp(pib) Exponencial
sqrt() g y = sqrt(epib) Raíz cuadrada
abs() g x = abs(y) Valor absoluto
cos() g coseno = cos() Coseno
logit() g logit = logit(x) Retorna el logaritmo de los odds ratio de x
runiform() g uniforme = runiform() Genera números aleatorios de una distribución
uniforme [0,1)
rnormal() g normal = rnormal() Genera números aleatorios de una distribución
normal estándar (0,1)
rnormal(m,s) g normal = rnormal(10,2) Genera números aleatorios de una distribución
normal con media m y desviación estándar s
int() g enteros = int(pib) Convierte una variable o dato en entero
invnormal(p) g inversa = invnormal(prob) Genera una variable como la inversa de la
probabilidad de una distribución normal
length(s) g largo = length(nombre) 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 EJEMPLO DESCRIPCIÓN


max() egen maximo = max(ingresos) Presenta el máximo de una variable
min() egen minimo = min(ingresos) Presenta el mínimo de una variable
mean() egen promedio = mean(ingresos) Presenta el promedio de una variable
kurt() egen curtosis = kurt(ingresos) Presenta la curtosis de una variable
sd() egen desviación = sd(ingresos) 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: numeric (byte)


label: origin

range: [0,1] units: 1


unique values: 2 missing .: 0/15

tabulation: Freq. Numeric Label


12 0 Domestic
3 1 Foreign

Tabla 12. Comando codebook foreign.

. codebook price

price

type: numeric (int)

range: [12990,15906] units: 1


unique values: 5 missing .: 0/15

tabulation: Freq. Value


3 12990
3 13466
3 13594
3 14500
3 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 Integers Nonintegers


# Negative - - -
# Zero - - -
# Positive 69 69 -
# #
# # # Total 69 69 -
. # # # # Missing 5

1 5 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
Restaurar
Snapshot

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 > 10000000


. browse if pop > 10000000 & marriage > 100000
. browse if pop > 10000000 & marriage > 100000 & popurban > 10000000
. browse if pop > 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
. drop death divorce * 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

. 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 * nota para la variable divorce

. notes _dta: Censo 1994 * 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) *Ejemplo 1

. recode x1 (1=2) (2=1), gen(nx1) *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 de variables:
Adición casos: merge


append Es necesaria variable llave. EDUCACION.dta
No es necesaria Las bases de datos deben
variable llave estar ordenadas.
Revisar la variable _merge

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. CT .1369841 .6184582 .4241557 .2648021 .871691


2. MA .6432207 .0610638 .8983462 .9477426 .4611429
3. ME .5578017 .5552388 .5219247 .2769154 .4216726
4. NH .6047949 .8714491 .8414094 .1180158 .8944746
5. RI .684176 .2551499 .2110077 .4079702 .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 -> long

>
Number of obs. 6 -> 24
Number of variables 6 -> 4
j variable (4 values) -> año
xij variables:
pop1970 pop1980 ... pop2000 -> pop

Tabla 19. Reshape long

. list

41
state año pop area

1. CT 1970 .1369841 .871691


2. CT 1980 .6184582 .871691
3. CT 1990 .4241557 .871691
4. CT 2000 .2648021 .871691
5. MA 1970 .6432207 .4611429

6. MA 1980 .0610638 .4611429


7. MA 1990 .8983462 .4611429
8. MA 2000 .9477426 .4611429
9. ME 1970 .5578017 .4216726
10. ME 1980 .5552388 .4216726

11. ME 1990 .5219247 .4216726


12. ME 2000 .2769154 .4216726
13. NH 1970 .6047949 .8944746
14. NH 1980 .8714491 .8944746
15. NH 1990 .8414094 .8944746

16. NH 2000 .1180158 .8944746


17. RI 1970 .684176 .0580662
18. RI 1980 .2551499 .0580662
19. RI 1990 .2110077 .0580662
20. RI 2000 .4079702 .0580662

21. VT 1970 .1086679 .6759487


22. VT 1980 .0445188 .6759487
23. VT 1990 .5644092 .6759487
24. VT 2000 .7219492 .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


. sample 20, count || tomará 20 observaciones a l azar

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 price

1. Cad. Eldorado 14,500


2. Cad. Seville 15,906
3. Linc. Mark V 13,594
4. Linc. Versailles 13,466
5. Peugeot 604 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 price

1. Cad. Eldorado 14,500


2. Cad. Eldorado 14,500
3. Cad. Eldorado 14,500
4. Cad. Seville 15,906
5. Cad. Seville 15,906

6. Cad. Seville 15,906


7. Linc. Mark V 13,594
8. Linc. Mark V 13,594
9. Linc. Mark V 13,594
10. Linc. Versailles 13,466

11. Linc. Versailles 13,466


12. Linc. Versailles 13,466
13. Peugeot 604 12,990
14. Peugeot 604 12,990
15. Peugeot 604 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 Cad. Eldorado
1 6 Cad. Eldorado
1 7 Cad. Eldorado
2 2 Cad. Seville
2 8 Cad. Seville

2 9 Cad. Seville
3 3 Linc. Mark V
3 10 Linc. Mark V
3 11 Linc. Mark V
4 4 Linc. Versailles

4 12 Linc. Versailles
4 13 Linc. Versailles
5 5 Peugeot 604
5 14 Peugeot 604
5 15 Peugeot 604

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 duplic~o

1. Cad. Eldorado 2
2. Cad. Eldorado 2
3. Cad. Eldorado 2
4. Cad. Seville 2
5. Cad. Seville 2

6. Cad. Seville 2
7. Linc. Mark V 2
8. Linc. Mark V 2
9. Linc. Mark V 2
10. Linc. Versailles 2

11. Linc. Versailles 2


12. Linc. Versailles 2
13. Peugeot 604 2
14. Peugeot 604 2
15. Peugeot 604 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. Cad. Eldorado
2. Cad. Seville
3. Linc. Mark V
4. Linc. Versailles
5. 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 invnormal()
browse keep
by label
bysort list
cd log
clear merge
codebook mvdecode
compress mvencode
db open
decode order
describe outfile
destring prefix
drawnorm recode
drop rename
duplicates replace
edit reshape
encode save
egen snapshot
exit sort
format sysuse
generate use
gsort uniform()
infile varmanage
insheet xpose

54
3.19.1 Otros comandos recomendados

capture mat
cf more
count notes
cross sample
datasignature seed
expand separate
filin split
format stack
infile svy
inspect tostring
joinby translate
label language version
language 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 StatisticsSummarize, tables and testSummary 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 StatisticsSummarize, tables and test Summary and


descriptive statisticsConfidence Intervals.

59
Figura 35. Intervalos de confianza para las variables

. ci price

Variable Obs Mean Std. Err. [95% Conf. Interval]

price 74 6165.257 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ú StatisticsSummary, tables, and testTables

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 2.90 2.90
2 8 11.59 14.49
3 30 43.48 57.97
4 18 26.09 84.06
5 11 15.94 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 media de la variable
▬ sd desviación estándar
▬ sum suma
▬ count conteo de observaciones
▬ max máximo
▬ min mínimo
▬ median 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   StatisticsSummarize, tables and test


Nonparametric Test of hyphotesisSperman’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 KSStatisticsSummarize, tables and


testNonparametric 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 Descripción


año_prg Año en el cual se realiza la encuesta
mes_prg Mes en el cual se realiza la encuesta
c101_edad_anio Edad del individuo
c101_sexo Genero del individuo
c104 Peso neto del individuo (Kg)
c107 Talla (Cm).
C116 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 Tabla 49. Tabla de frecuencia por fila de
menores de 18 años 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
. pwcorr c101_edad_anio c104, sig *Lineal
. spearman c101_edad_anio c104 *No lineal

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.

. pnorm residuales
. qnorm residuales
. swilk residuals
.sktest residuals
100

1.00
0.75
50

Normal F[(residuales-m)/s]
residuales

0.50
0

0.25
-50
-100

0.00

-100 -50 0 50 100 0.00 0.25 0.50 0.75 1.00


Inverse Normal Empirical P[i] = i/(N+1)

Figura 44. Distribución normal estandarizada 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 keep
anova ksmirnov
by, sort level
ci mean
collapse misstable
contract normprob
correlate oneway
display oneway
egen outreg2
estat pnorm
gen pwcorr
gmeans pwcorr
help tabout qnorm
hmeans quietly

80
recode tab1
replace tab2
robvar table
scalar table
sdtest tabstat
sktes tabstat
sktest tabulate
sktest tabulate
spearman test
ssc describe ttest
ssc install ttest
summarize use
swilk xi

4.9.1 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
pcarrow paired-coordinate plot with arrows
paired-coordinate plot with arrows having two
pcbarrow
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: GraphicsHistogram

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
1.0e-04

0 5,000 10,000 15,000


Price

Figura 47. Histograma del precio

5.2 Gráfico de tortas

Gráfica de Tortas : GraphicsPie 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
Mileage (mpg)

20
10

2,000 3,000 4,000 5,000


Weight (lbs.)

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)

Domestic Foreign
40
30
Mileage (mpg)

20
10

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 – *Con una notación diferente de separación
. twoway (scatter mpg weight) (lfit mpg weight)

89
40
30
20
10

2,000 3,000 4,000 5,000


Weight (lbs.)

Mileage (mpg) 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 Labor/Ops Other


mean of tenure mean of prev_exp

Figura 69. Visualización del gráfico de barras

. graph bar (mean) tenure (mean) prev_exp, over(occ5) stack


15
10
5
0

Prof/Mgmt Sales Clerical Labor/Ops Other


mean of tenure 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

Figura 71. Gráficos avanzados


5
4
3
y
2
1
0

0 5 10 15 20
x

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 pie
box qnorm
cchart quantile
combine rchart
dot rvpplot
graph scatter
histogram title
kdensity tslinetwoway
matrix xchart
pchart

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 exp2

lny 1.0000

lnm 0.3674 1.0000


0.0000

edu007 0.4995 -0.0127 1.0000


0.0000 0.0812

exp -0.0766 -0.0211 -0.3772 1.0000


0.0000 0.0037 0.0000

exp2 -0.1373 -0.0541 -0.4213 0.9425 1.0000


0.0000 0.0000 0.0000 0.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 proceso de estimación, se analiza gráficamente


la relación entre la variable dependiente y cada uno de los regresores del modelo. Por
ejemplo, para representar la relación entre los ingresos y los años de educación
aprobados, es conveniente que primero se genere una variable que indique el ingreso
promedio por año de educación así:

Col1 Col2 Col3 Col4


Ingreso
Años de Ingreso (Miles de promedio por
Id
educación pesos) 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 independiente en Variable independiente en niveles


logaritmos

Variable Elasticidad: Cambio porcentual Semi-elasticidad: Cambio porcentual


dependiente en esperado en y ante un cambio esperado en y ante un cambio marginal
logaritmos porcentual en x. En nuestro
en x. En nuestro ejemplo , ˆ 2 , ˆ 3 y β
ejemplo , ˆ 1

Variable Cambio esperado en nivel en y Efecto marginal: Cambio esperado en


dependiente en ante un cambio porcentual en x nivel en y ante un cambio marginal en x.
niveles

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 Figura 94. Prueba de hipótesis individual

6.9.2 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 outreg2
e(sample predict
egen pwcorr
est store qnorm
estat regress
estat ovtest res
hausman rvfplot
imtest sktest
kdensity sort
lincom summ
line test
mean vif
normal 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. Percent Cum.


Ocupados 6,578,325 53.11 53.11
Desocupados 519,357 4.19 57.3
Inactivos 5,288,175 42.7 100
Total 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
Total 12,385,857 100
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:

 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.

7.1 Representación de las relaciones entre variables

7.1.1 Participación y Género


4,000,000
3,000,000
PARTICIPAN

2,000,000
1,000,000

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
Sexo No Si Total
Hombre 1,622,038 4,303,680 5,925,718
Mujer 3,666,137 2,794,002 6,460,139
Total 5,288,175 7,097,682 12,385,857
Tabla 92. Participación laboral por género.

7.1.2 Participación y Nivel Educativo

Hombre Mujer
1
.8
.6
.4
.2
0

BASICA INC

BASICA INC
BASICA COMP

TEC. O UNI. COMP

BASICA COMP

TEC. O UNI. COMP


TEC. O UNI. INC.

SIN EDUC.

TEC. O UNI. INC.


M.HUM. COMPL

M.HUM. COMPL
M.HUM. INCOM

M.HUM. INCOM
SIN EDUC.

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

Hombre Mujer

1
.8
.6
TGP

.4
.2
0

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=( 0 (1) 1)) atmeans

Variable Valor Ancho Valor


de Interés Inicial Intervalo Final

Predictive Number of
margins obs = 12350554
Model VCE :
OIM

Expression :
predict()
Pr(PARTI),
…(lista   de  
1._at :
medias
SEXO= 0
…(lista   de  
medias
…(lista   de  
2._at :
medias)
SEXO= 1
…(lista   de  
medias)

[95% Interval
Margin Std. Err. z P>z
Conf. ]
_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:
2
Y i   0   1 edu 007 i
  2 edad i
  3 edad 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
 ( X i  )
tendría que hacer es , 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 lsens
display margins
dprobit mfx
estat class normalden
estat gof predict
estat gof, group(10) probit
estat sum recode
gen regress
invnormal tab
keep test
label define tw
label values w
label variable xi: logi
lroc
t

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 Descripción Codificación


0=
%td ó %d Diario 1 = 02jan1960
01jan1960;
%tw Semanal 0 = 1960w1; 1 = 1960w2
%tm Mensual 0 = 1960m1; 1 = 1960m2
%tq Trimestral 0 = 1960q1; 1 = 1960q2
%th Semestral 0 = 1960h1; 1 = 1960h2
%ty Anual 1960 = 1960; 1961 = 1961
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 Figura 111. Autocorrelación parcial de la inflación

8.2.2 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-1-
1, 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 BOX-
COX, 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−𝑎 1−𝛽

AR(1) ARCH(1)
8.3.3 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 list
_n-1 lrtest
ac ma
add model(theta)
ar noconstant
arch pac
arima predict
arima range
armadiag regress
boxcox rename
bysort res
corrgram rmse
D. robust
date sarima
destring smooth(14400)
dfuller split
drift ssc install
drop tin
DS12 trend
dymamic tsappend
estat archlm, lags(1) tsfilter hp
estat bgodfrey, lags(1) tsline
estat ic tsset
forecast tssmooth dexponential
format use
g weight
garch wntestq
inequal7 wntestq
lags(7) xb
list 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 81 0 5500
1 82 0 6000
2 80 1 2000
2 81 1 2200
2 82 1 3300
3 80 0 3000
3 81 0 2000
3 82 0 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 p-
valor 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

$ reshape long
by reshape wide
clean resid
est store sigmamore
gen use
global vce(cluster
graph combine xtdata, be.
hausman xtdata, fe
list xtdescribe
predict xtgls
quietly xtline
reshape xtpcse

193
xtregar xttab
xtse xttest0
xtserial xttest1
xtset xttest3
xtsum 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

Percentiles Smallest
1% 3291 3291
5% 3748 3299
10% 3895 3667 Obs 74
25% 4195 3748 Sum of Wgt. 74

50% 5006.5 Mean 6165.257


Largest Std. Dev. 2949.496
75% 6342 13466
90% 11385 13594 Variance 8699526
95% 13466 14500 Skewness 1.653434
99% 15906 15906 Kurtosis 4.819188

Tabla 150. Comando sum, detail

Luego se obtienen los resultados

. return list

scalars:
r(N) = 74
r(sum_w) = 74
r(mean) = 6165.256756756757
r(Var) = 8699525.97426879
r(sd) = 2949.49588476892
r(skewness) = 1.653433511704859
r(kurtosis) = 4.819187528464004
r(sum) = 456229
r(min) = 3291
r(max) = 15906
r(p1) = 3291
r(p5) = 3748
r(p10) = 3895
r(p25) = 4195
r(p50) = 5006.5
r(p75) = 6342
r(p90) = 11385
r(p95) = 13466
r(p99) = 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

Percentiles Smallest
1% 2.090301 1.004952
5% 2.875546 1.032247
10% 3.344482 1.392914 Obs 1637
25% 4.516906 1.501798 Sum of Wgt. 1637

50% 6.545891 Mean 8.082999


Largest Std. Dev. 5.955069
75% 9.758451 40.19808
90% 13.14009 40.19808 Variance 35.46285
95% 17.34411 40.19808 Skewness 3.00474
99% 38.70926 40.19808 Kurtosis 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]
c1 c2
r1 8.0829994 6.8445578
r2 6.5458913 5.434783
r3 35.462848 25.767671
r4 1637 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]
Blanco Negro
Promedio 8.0829994 6.8445578
Media 6.5458913 5.434783
Varianza 35.462848 25.767671
Observacio~s 1637 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 T-
std 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/installation-


qualification/, 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 | publishing@SOFTWARE-shop.com | www.SOFTWARE-shop.com

También podría gustarte