3. Los datos y el editor de programas 21 3.1. Cómo leer los datos... 21 3.2. Qué es un archivo do... 21



Documentos relacionados
MACROS. Automatizar tareas a través del uso de las macros.

Operación de Microsoft Word

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Microsoft Access proporciona dos métodos para crear una Base de datos.

La ventana de Microsoft Excel

Capítulo 9. Archivos de sintaxis

Bases de datos en Excel

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Fundamentos CAPÍTULO 1. Contenido

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

Sesión 2 Introducción a Stata I

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

MANUAL DE LA APLICACIÓN HELP DESK

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

SIIGO Pyme. Templates. Cartilla I

APLICACIONES INFORMÁTICAS de BASE de DATOS

V i s i t a V i r t u a l e n e l H o s p i t a l

UNIDAD DIDÁCTICA Nº 7 USO DE LOS RECURSOS EN MOODLE

b) Utilizando insheet Primeramente, hay que abrir el archivo conteniendo los datos en Excel y proceder a grabarlo nuevamente con la secuencia

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Guía N 1: Fundamentos básicos(i)

Operación Microsoft Access 97

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

Diplomado en. Servicio Nacional. De Facilitadores Judiciales

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Manual de usuario administrador. Correo Exchange Administrado

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha

OPERACIONES BASICAS. 1. Menú. 2. Barra de Herramientas. 3. Área de trabajo. 3.1 Operaciones Básicas. Revisión 3.0

Manual de operación Tausend Monitor

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

Manual Ingreso Notas y Acta Electrónica

Creación de un Gráfico con OpenOffice.org Calc Presentación de los Datos Asistente para Gráficos

WINDOWS. Iniciando Windows. El mouse

MATERIAL 2 EXCEL 2007

UNIVERSIDAD DE PUERTO RICO

COMISIÓN NACIONAL PARA EL AHORRO DE ENERGÍA

MANUAL DE USUARIO DEL MÓDULO TPV

2_trabajar con calc I

LiLa Portal Guía para profesores

Guía de inicio rápido a

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Guía para publicar su Página Web

Análisis de los datos

[Guía N 1 Introducción al Portal WEB de la Universidad Simón Bolívar]

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Guía curso Integrando las TICS en Segundo Ciclo Básico Guía de uso para crear videos en Windows Movie Maker

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

Visor de presupuestos en Android

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

El programa Minitab: breve introducción a su funcionamiento. Para mostrar la facilidad con la que se pueden realizar los gráficos y cálculos

Uso de Visual C++ Pre-Practica No. 3

Creación de Informes por Asistente y Usuario

Sistema de Inscripciones en Línea de la Olimpiada Mexicana de Matemáticas, Delegación Yucatán MANUAL DE USUARIO

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

Formularios. Formularios Diapositiva 1

FDR Electrónicos. Su mejor opción en tecnología y servicios computacionales. Manual de uso para programa de facturación electrónica

Centro de Capacitación en Informática

NORMA 34.14(SEPA) 05/11/2013

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

Manual Oficina Web de Clubes (FBM)

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

Introducción a Stata - Segunda Parte

Título: Manual Básico de Calc. Parte I: Introducción a Calc de OpenOffice.org

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

TEMA 1. MANEJO DE PROCESADOR DE TEXTOS: Microsoft WORD 2003

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Manual del Profesor Campus Virtual UNIVO

Tutoriales y Guías de uso con Orientaciones Pedagógicas Entorno Virtual de Aprendizaje Plataforma Blackboard CHAT

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

Indice I. INTRODUCCIÓN SEGURIDAD DE ACCESO REGISTRO DEL VALOR FLETE CONSULTAS V. GRÁFICAS. MANUAL GENERADORES DE CARGA RNDC Noviembre 2015 Versión 2

Cómo usar Subversion. con Windows XP/2000/2003.

Archivo de correo con Microsoft Outlook contra Exchange Server

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

Tutorial: Primeros Pasos con Subversion

Resumen. Funcionamiento. Advertencia

Operación Microsoft Windows

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

MANUAL DE USO PORTAL B2B PROCESO OPERATIVO- DESPACHOS

PLANTILLAS DE DOCUMENTOS EN WORD 2007

COMISIÓN NACIONAL PARA EL USO EFICIENTE DE LA ENERGÍA

Al adquirir Gear Online se hará entrega del modulo de parámetros en cual podemos parametrizar todas las características de todas las áreas que

Aplicación Portable para la captura de calificaciones

Introducción a Stata STATA

2. Seleccione OneDrive en la parte superior de los sitios de SharePoint u Office 365 de su organización.

GUÍA DE USUARIO: GOOGLE DRIVE

Versión 1.0. BOLETÍN (JUNIO 2009) a2móvil PC. a2 softway C. A.

Organizándose con Microsoft Outlook

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Manual del Usuario. Sistema de Help Desk

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE

Reglas de Uso del PACE

RELACIÓN DE PRÁCTICAS DEL TEMA 2

ESTRUCTURA DE LOS SITIOS DE CATEDRAS

Transcripción:

UN ASPECTO FUNDAMENTAL DE LA ESTADíSTICA: LA ADMINISTRACIÓN DE DATOS PROFESOR : CARLOS F. HENRíQUEZ R., PHD. CON LA COLABORACIÓN DE : ADOLFO ALARCÓN V. PILAR BARROS E. WILLIAMS CANALES V. ESTEBAN HENRíQUEZ C. JORNADAS INTERNACIONALES DE ESTADíSTICA ROSARIO, ARGENTINA OCTUBRE 2006

Índice general 1. Estructura general para proyectos 7 1.1. Rotulación de carpetas, variables y programas.................... 7 1.1.1. Carpetas por proyecto............................ 7 1.1.2. Sub carpetas................................. 8 1.1.3. Variables y etiquetas............................. 8 1.1.4. Nombres de Programas............................ 9 1.2. Documentación.................................... 10 1.2.1. Documentar lo solicitado........................... 10 1.2.2. Documentar tareas realizadas........................ 10 2. Acceso a Stata 11 2.1. Cómo acceder a Stata?................................ 11 2.2. Pantalla Principal del Stata.............................. 11 2.2.1. Ventanas de Stata............................... 12 2.2.2. Barra de Herramientas............................ 12 2.3. Administración Básica de Datos........................... 13 2.3.1. Cómo Crear una Base de Datos en Stata?.................. 14 2.3.2. Comandos básicos para la administración y análisis descriptivo de las variables..................................... 15 3. Los datos y el editor de programas 21 3.1. Cómo leer los datos.................................. 21 3.2. Qué es un archivo do................................. 21 4. Nociones generales del uso de Stata 23 4.1. Creación de rótulos label.............................. 23 4.1.1. Rótulos de archivos.............................. 24 4.1.2. Rótulos de variables............................. 25 4.1.3. Rótulos para valores de variables....................... 26 4.1.4. Archivo do utilizado en esta sección..................... 30 4.2. Creación de nuevas variables generate....................... 31 4.2.1. Archivo do utilizado en esta sección..................... 34 4.3. Uso del Comando egen................................ 34 4.3.1. Archivo do utilizado en esta sección..................... 37 3

ÍNDICE GENERAL 4.4. Concatenando la información............................. 38 4.4.1. Uso del comando merge........................... 38 4.4.2. Uso del comando append.......................... 40 4.4.3. Archivo do utilizado en esta sección..................... 41 5. Nociones generales de gráficos en Stata 43 5.1. Gráfico de tallo y hoja: stem............................. 43 5.2. Scatterplots y gráficos de caja............................. 45 5.3. Gráficos para datos longitudinales.......................... 50 5.4. Histogramas...................................... 54 6. Limpieza y análisis de datos 57 6.1. Procedimiento de limpieza de una base de datos en Stata.............. 57 6.2. Análisis estadístico mediante tablas......................... 60 7. Administración de datos 69 7.1. Errores sistemáticos.................................. 69 7.2. Valores perdidos.................................... 70 7.3. Traspaso de información............................... 71 7.3.1. Cómo solucionar este problema?...................... 72 7.4. Errores no sistemáticos................................ 73 7.5. Datos faltantes.................................... 75 7.5.1. Periodos................................... 75 7.5.2. Códigos de valor faltante o espacios en blanco:............... 76 8. Cómo almacenar lo calculado 79 8.1. Return list..................................... 79 8.1.1. Para el comando summarize......................... 79 8.1.2. Para el comando describe......................... 82 8.1.3. Para el comando table........................... 82 8.1.4. Para el t-test................................ 84 8.2. Ereturn list.................................... 84 8.2.1. Para el comando regress.......................... 85 9. Datos que contienen fechas 87 9.1. Las fechas en Stata.................................. 87 9.2. La función date................................... 88 9.2.1. Una primera implementación......................... 88 9.2.2. Especificando las centurias.......................... 89 9.2.3. Acotando las fechas a través de los años................... 89 9.3. Funciones complementarias a la función date.................... 92 9.3.1. El día desde una fecha............................ 92 9.3.2. El semestre desde una fecha........................ 94 9.3.3. El trimestre desde una fecha....................... 96 9.3.4. El mes desde una fecha............................ 97 4

ÍNDICE GENERAL 9.3.5. La semana desde una fecha......................... 98 9.3.6. El año desde una fecha............................ 98 9.4. Convirtiendo una fecha en formato caracter en una serie de temporal........ 98 9.4.1. Función daily................................ 99 9.4.2. Función halfyearly............................ 99 9.4.3. Función monthly............................... 100 9.4.4. Función quarterly............................. 100 9.4.5. Función weekly............................... 100 9.4.6. Función yearly............................... 101 9.5. Transformando datos en formato de fecha a serie temporal y viceversa....... 101 9.5.1. Formato de fecha a serie temporal...................... 101 9.5.2. Serie temporal a formato de fecha...................... 103 9.6. Tipeando fechas fijas en expresiones......................... 104 9.6.1. Fijando un día................................ 104 9.6.2. Fijando un semestre............................. 105 9.6.3. Fijando un mes................................ 106 9.6.4. Fijando un trimestre............................. 107 9.6.5. Fijando una semana.............................. 107 9.6.6. Fijando un año................................ 108 9.7. Creando series temporales desde argumentos numéricos............... 109 9.7.1. El año y el semestre............................. 109 9.7.2. El año y el mes................................ 110 9.7.3. El año y el trimestre............................. 112 9.7.4. El año y la semana.............................. 113 9.8. La fecha de hoy.................................... 114 9.8.1. Característica principal............................ 115 9.8.2. Cómo trabajar con la fecha de hoy?..................... 115 9.9. Cambiando el formato que se muestra por defecto.................. 116 9.9.1. Caracteres utilizados y sus definiciones para mostrar los resultados..... 117 9.9.2. La implementación.............................. 117 10. Comandos de programación 119 10.1. Las macros...................................... 119 10.1.1. Variable local................................ 119 10.1.2. Variable global............................... 120 10.2. Comandos: if, forvalues, foreach........................ 120 10.2.1. Condición if................................. 120 10.2.2. Condición forvalues............................ 121 10.2.3. Condición foreach............................. 122 Índice alfabético 123 Índice de cuadros 129 Índice de figuras 131 5

ÍNDICE GENERAL Bibliografía 133 6

Capítulo 1 Estructura general para proyectos 1.1. Rotulación de carpetas, variables y programas 1.1.1. Carpetas por proyecto El presente capítulo es de carácter informativo. Tiene por objeto ordenar ideas de como almacenar los archivos afines asociados al o a los proyectos que esté trabajando en su computador. Entre los archivos afines se incluyen los datos originales, el proyecto en sí con sus objetivos (el general y los específicos) y la metodología propuesta de recolección y análisis de los datos, y por supuesto las sub carpetas numeradas secuencialmente con los programas en Stata (u otro software estadístico) y un respaldo de los correos electrónicos en Word, por ejemplo, con lo solicitado por el investigador principal, los co-investigadores o las personas que ellos designen para los análisis. A modo de recomendación, evite rotular todos sus proyectos como Proyecto. A modo de ejemplo, disponga de una gran carpeta donde podrá ir almacenando todos sus proyectos o trabajos. Es recomendable incluso escoger un par de letras que podrá usted y cualquiera de sus colaboradores usar a través del desarrollo de su proyecto agregando números consecutivos. En este curso de Stata, suponga que se usará CS, de esta forma se tendrá CS001, CS002, etc. al interior de una carpeta denominada Curso de Stata. Una alternativa es disponer de carpetas para cada uno de los días del curso: Martes,..., Viernes ; sin embargo, el jueves quedaría en primer lugar. Una opción ampliamente utilizada es ordenar las carpetas por fecha pero en un sentido, al principio, poco intuitivo, que comience con el año, luego el mes y por último el día. Para el curso se tendrán cuatro carpetas desde CS 2006 10 11 hasta CS 2006 10 13. La ventaja de esta sugerencia se ve no cuando se tiene una cantidad reducida de carpetas. Se ha preguntado usted, dónde guardé ese archivo que...? Esto se torna aun más complicado de encontrar cuando se almacena información en más de un computador y en medios electrónicos de almacenamiento (diskettes, CD, pendrives, etc.). Qué opción utilizar?, es una decisión personal. El uso del explorador de Windows le puede ayudar a organizar sus carpetas. La idea es que opte por una alternativa de almacenamiento que usted y sus colaboradores usen y respeten. 7

1.1. ROTULACIÓN DE CARPETAS, VARIABLES Y PROGRAMAS 1.1.2. Sub carpetas En forma natural surge la necesidad de crear estructuras jerárquicas o anidadas al interior de las carpetas madres. Proyectos 2004 2005 Varios 2006 Curso de Stata 2006 10 11 2006 10 12 2006 10 13 Aplicaciones de Stata El objetivo principal es mejorar la organización de su trabajo en equipo. Esto es la base para documentar posteriormente el trabajo que usted realiza. Se debiera tener en cuenta la replicabilidad de los trabajos que realizan los equipos de trabajo. Siempre habrá quien sepa más de un tema; no obstante, otros debieran estar en condiciones de entender que es lo que el experto está haciendo. El concepto de replicabilidad involucra dos aspectos: 1. Que el trabajo que usted haga pueda ser repetido a través del tiempo arrojando los mismos resultados. 2. Que cualquiera de las personas que trabajan en su equipo puedan complementar lo realizado por otros y puedan reproducir los mismos resultados. Para ello deben saber qué modificar para obtener lo mismo que obtuvo quien realizó las tareas de programación. Para ello desde ya piense en documentar cada cosa que haga; ya que la memoria es frágil. Siempre piense que la base de datos que va a trabajar no está libre de errores. Respalde sus bases de datos originales en una carpeta o subcarpeta y no la modifique bajo ningún argumento. Si nota una discrepancia podrá reproducir sus resultados sin problemas haciendo uso de los datos originales. 1.1.3. Variables y etiquetas Si tiene una base de datos con 5, 10 ó 15 variables puede usar el nombre que le parezca adecuado. Si está trabajando con una base de datos con 100, 150 ó 300 variables, la creatividad para elegir nombres se agota y el chequeo de potenciales problemas se dificulta. Una opción de uso común entre los que administran datos es el escoger una raíz de por ejemplo tres caracteres que distingan el proyecto y o la subetapa del proyecto. Así una encuesta en la Facultad F, con 12 grupos mayores; con una cantidad variable de preguntas, se pueden denominar: eof0101, eof0102, eof0103a, eof0103b,... (eof = encuesta de opinion farmacia). Dentro de los números los primeros 8

CAPíTULO 1: ESTRUCTURA GENERAL PARA PROYECTOS dos se refieren a los grupos (desde 01 hasta 12), los últimos dos dígitos se refieren a las preguntas que van en cantidades variables dentro de los grupos. Las variables (help varname) en Stata pueden ser de 1 a 32 caracteres de largo con la única restricción de comenzar con a-z, A-Z o. El resto de los caracteres deben ser a-z, A-Z,, 0-9. No admite ñ o Ñ. Cabe mencionar que genero, GENERO y Genero son tres nombres diferentes de variables. Aun cuando peso ninho prematuro en hospital es un nombre válido no es muy recomendable en la práctica por razones obvias. Stata dispone de un sistema de etiquetado (help label) que es de mucha utilidad y que en la práctica sirve tanto para construir un libro de códigos como para la rotulación de variables que se requiere en la mayoría de los procedimientos de Stata. Toda las variables que auto genera Stata al realizar ciertos procedimientos comienzan con, por lo que se sugiere evitar nombres que comiencen con. También se recomienda que defina procedimientos para las variables derivadas. Por ejemplo, c cs01 (c por centrada) y d cs01 (d por derivada). 1.1.4. Nombres de Programas Desde ya, se recomienda distinguir dos grandes grupos de programas, aquellos que se utilizan para realizar Administración de datos (que comienzan con ad ) y los que utilizan para hacer los Análisis propiamente tales (que comienzan con an ). Así en la carpeta 2006, se encuentra otra, Enc Opi Alum Facultad F, con dos carpetas más, una para los datos y la otra para los programas de Administración de Datos y los Análisis propiamente tales. Aquí se distinguen archivos que son los de administración de datos y los de análisis. A cada uno de los programas con extensión do se le asocia un programa con el mismo nombre pero con extensión log. 2006 Enc Opi Alum Facultad F Datos AD y Analisis ad eof00.do ad eof01.do ad eof02.do an eof01.do an eof02.do an eof03.do an eof04.do ad eof00.log ad eof01.log ad eof02.log an eof01.log an eof02.log an eof03.log 9

1.2. DOCUMENTACIÓN an eof04.log Preliminar 1.2. Documentación 1.2.1. Documentar lo solicitado Lo que se vaya a realizar en un programa, regularmente es solicitado vía correos electrónicos, fax u otros medios de comunicación. Es recomendable guardar electrónicamente todo lo que sea posible almacenar lo que muchas veces permite documentar el o los programas que se estén elaborando según se describió en la sección previa. También se debe considerar el almacenamiento de papeles en archivos de gabinete. 1.2.2. Documentar tareas realizadas Dentro de los programas con extensión do es posible documentar dejando como comentario lo que se ha solicitado así como justificar algunos cambios que decide hacer la persona que está a cargo de la escritura de los programas. /**************************************************************/ /*************** Este es un comentario en Stata ***************/ /**************************************************************/ Es decir, comienzan con /* y terminan con */. 10

Capítulo 2 Acceso a Stata 2.1. Cómo acceder a Stata? Para acceder a Stata habrá que hacer click en el acceso directo, o ir al menú inicio-todos los programas-stata 9-Stata 9. Otra forma es saber la ubicación del programa Stata y acceder a él. Cualquiera sea la vía que se escoja, se llegará a la siguiente ventana: 2.2. Pantalla Principal del Stata Figura 2.1: Ventana principal de Stata 11

2.2. PANTALLA PRINCIPAL DEL STATA Esta pantalla incluye cuatro ventanas, que aparece debajo de la barra de menú y son las siguientes: Results, Command, Review y Variables. 2.2.1. Ventanas de Stata Esta ventana muestra tanto los resultados que se van obteniendo así como los mensajes ligados a la obtención de los mismos (mensajes de error; cantidad de valores perdidos obtenida al crear variables; la apertura o cierre de archivos de salida; etc); ya sea interactivamente en la barra de comando o en un archivo de salida con extensión log de un programa de resultados (DO-file). Aquí los diferentes tipos de resultados se presentan en esta ventana negra en diferentes colores, rojo, azul, verde o amarillo. En rojo, por ejemplo, se señalan los mensajes de error y junto a éste un texto en azul con el código de error que permitirá al usuario indagar posibles problemas. rc nnn: return code número; los cuales no siempre son instructivos para los usuarios Esta ventana deja un registro de lo que se ha hecho; ya sea, requeridos en forma interactiva o en un código de programa en un DO-file. Esta ventana no es sin fin, de ahí que se requiere saber de los archivos log. Esta ventana muestra las variables que se están utilizando o las que se van generando, cuando se está trabajando en Stata. Esta ventana sirve para escribir los comandos interactivamente. No es recomendable usar siempre Stata en forma interactiva. Se sugiere escribir lo que se necesita en un archivo DO-file, así se podrá documentar todo lo que se requiere. A su vez se podrá mantener un registro de todo lo calculado. 2.2.2. Barra de Herramientas En esta sección, se describe la barra de herramientas que aparece en el programa Stata, se explicarán los íconos adjuntos, que menos se conocen; ya que, los dos primeros son estándares para quienes trabajan en Microsoft (abrir y guardar). Para mantener control de lo que se abre y de lo que se graba, es también recomendable incluir líneas en un archivo do para propósito de replicabilidad de lo requerido. Figura 2.2: Barra de herramientas Print: (help print) Este ícono aún cuando es familiar tiene varias opciones para imprimir; al apretar este botón da las opciones de imprimir lo que aparece en la ventana Results o lo que se ha escrito en el DO-file. Begin Log: (help log) Al hacer click en este ícono se comenzará un archivo log. Un archivo log es donde se va guardando o almacenando la información que se va sacando de los datos, o 12

CAPíTULO 2: ACCESO A STATA lo que se quiere estudiar. Se usa porque la pantalla de Results tiene un límite y esa información se pierde. El archivo log permite documentar los resultados requeridos en el archivo do. New Viewer: (help viewer) Este es el ícono para obtener ayuda. Con éste se podrá buscar toda la ayuda que se requiera sobre Stata. Se pueden tener varias ayudas abiertas. Bring Results Window to Front: Si la pantalla principal de resultados, Results estuviera oculta, este ícono la envía hacia adelante, y las otras pantallas que estaban a la vista se ocultan. Bring Graph Window to Front: Este ícono se activa siempre que se haya hecho un gráfico, si no hay un gráfico este ícono va a estar desactivado. En el caso de que hubiera algún gráfico y estuviera oculto, este ícono lo trae al frente (mostrándolo en primer plano). New DO-file Editor: Este ícono abre el editor de texto, DO-file, especial de Stata. En esta pantalla se puede hacer lo mismo que en la barra de comandos (interactivo), con la diferencia que aquí se pueden poner varios comandos y hacerlos correr de uno en uno o todos simultáneamente. Data Editor: (help edit) Al hacer click en este ícono, aparece la pantalla de los datos, en blanco si no hay datos o con valores de las variables descritos en la ventana variables. Aquí, se pueden editar los datos, ya sea para agregar, modificar o eliminar casos o variables. Equivalente, puede tipear edit (por defecto edita todas las variables), o bien, se puede editar una o varias variables especificadas por el usuario. Data Browser: (help browse) En apariencia es igual al data editor; sin embargo, éste no permite hacer ningún tipo de modificación a los datos, sólo se pueden ver. Análogamente, en la línea de comandos se puede tipear browse (para todas las variables) o browse una o algunas variables de interés. Clear more Condition: Este ícono -por defecto- aparece desactivado. Se activa siempre que al ejecutar un comando, los resultados son más largos que la pantalla Results, para avanzar y ver los siguientes resultados aparece en textos azules la palabra more. Con este ícono, se puede seguir avanzando, lo mismo se obtiene al hacer un click sobre la palabra more. Break: Este ícono sirve para detener la ejecución de un programa o de un procedimiento. 2.3. Administración Básica de Datos En esta sección se mostrará como ingresar, modificar, eliminar o realizar análisis preliminares sobre los datos. Se verán varios comandos que serán útiles para el análisis que requiera algún investigador. 13

2.3. ADMINISTRACIÓN BÁSICA DE DATOS 2.3.1. Cómo Crear una Base de Datos en Stata? En esta sección se mostrarán algunas alternativas que permitan crear bases de datos en Stata. Por lo general cuando algún investigador pide ayuda o solicita una asesoría estadística, entrega generalmente la base de datos en una planilla Excel. Cómo se puede trabajar en Stata si se tienen los datos en Excel?, se verán dos formas para conseguir este objetivo. 1. Esta es la forma más usada pero no por eso la mejor, se está hablando de la forma más utilizada en la práctica copiar y pegar. Esto es copiar la base de datos que está en Excel y pegarla en el data editor del Stata, pero por qué no es la mejor forma de hacerlo?, la mayoría de las veces se tiene problemas con el traslado de los datos, pueden pegarse en Stata no como se quiere, en cambio existe otra forma de hacerlo, que es mucho más segura. Los problemas más usuales, surgen cuando se tienen fórmulas activas en la planilla Excel. Otro problema ocurre cuando se está trabajando con Excel en español, con coma como punto decimal, Stata usa por defecto., como punto decimal. 2. Esta forma es mucho más segura de crear una base de datos teniendo la base de datos en Excel, para explicarlo mejor se verá con un ejemplo. Ejemplo 2.1 Se tiene la siguiente base en Excel (esta base de datos es ficticia): Figura 2.3: Base de datos en ventana de Microsoft Excel Primero se tiene que guardar la base de datos que está en Excel con la extensión csv (delimitado por coma) Observación 2.1 Aunque dice delimitado por coma, la delimitación que se hace es con punto y coma, a menos que esté trabajando con Excel en Inglés. 14

CAPíTULO 2: ACCESO A STATA Figura 2.4: Extensión con que se guardará la base de datos desde Excel Se supone que esta planilla Excel se guardó en la dirección: "F:Mis documentos\stata\datos.csv" Con esta dirección se puede llamar la base de datos a Stata, con la siguiente instrucción: clear all insheet using "F:Mis documentos\stata\datos.csv", delimiter(";") Con esta instrucción los datos de Excel habrán sido traspasados a Stata. 2.3.2. Comandos básicos para la administración y análisis descriptivo de las variables En esta sección se verán los distintos comandos básicos que tiene Stata. Para explicar estos comandos se usarán los datos que utiliza en la mayoría de sus ejemplos Stata auto.dta. Esta base de datos proporciona 12 variables y 74 casos. Estos datos se encuentran en Stata en la ubicación C:\Archivos de programa\stata9\auto.dta, se carga directamente de Stata usando el ícono o usando la instrucción: use "C:\Archivos de programa\stata9\auto.dta", clear Ahora, se empezarán a ver los comandos más elementales en el análisis de datos. 1. COMANDO input: (help input) Este comando se utiliza para agregar casos o variables: a) Para agregar casos: A cada una de las variables de la base de datos. La sintaxis de input está dada por: Sintaxis: input Ejemplo 2.2. input. \* En esta parte se ingresan los datos para cada caso*\. \* y variable hasta que se termine de ingresarlas *\. end 15

2.3. ADMINISTRACIÓN BÁSICA DE DATOS b) Para agregar variables: Ejemplo 2.3 Sintaxis: input [newvar] [, automatic label]. input [nuevas variables]. \* Aquí se ingresan todos los datos de las nuevas *\. \* variables hasta llegar a la cantidad de *\. \* casos que hay *\. end 2. COMANDO describe: (help describe) Este comando permite realizar una descripción muy general de las variables. Esta descripción incluye el tipo de variable (type), el formato (format), las etiquetas de los valores si es que tienen (value label) y las etiquetas de las variables si es que también están etiquetados (variable label). Para el ejemplo se utilizarán las variables make price mpg rep78 foreign, de la base de datos de autos.dta. Sintaxis: describe [varlist] Ejemplo 2.4. describe make price mpg rep78 foreign El comando describe proporciona en la pantalla los siguientes resultados: 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 foreign byte %8.0g origin Car type 3. COMANDO list: (help list) Este comando muestra los datos. Para el ejemplo se utilizarán las variables trunk length turn gear ratio foreign. Para el ejemplo de utilizarán los datos de la base de datos de autos.dta se mostrarán cinco casos. Sintaxis: list [varlist] [if] [in] [, options] Ejemplo 2.5. list length turn gear_ratio foreign in 1/5 El comando list proporciona en la pantalla los siguientes resultados: +---------------------------------------------+ trunk length turn gear_r o foreign 16

CAPíTULO 2: ACCESO A STATA --------------------------------------------- 1. 11 186 40 3.58 Domestic 2. 11 173 40 2.53 Domestic 3. 12 168 35 3.08 Domestic 4. 16 196 40 2.93 Domestic 5. 20 222 43 2.41 Domestic +---------------------------------------------+ 4. COMANDO generate: (help generate) Este comando crea variables a partir de otras. Para el ejemplo se utilizará la variable price de la base de datos auto.dta que se le quitará el 10 % del precio original. Ejemplo 2.6 Sintaxis: generate [type] newvar [:lblname] = exp [if] [in]. generate n_price = price*0.9. generate price2 = priceˆ2 El comando generate creará una nueva variable llamada n price que va corresponder al 90 % de la variable price. También para crear variables a partir de otras se pueden hacer operaciones matemáticas mezclando varias variables. 5. COMANDO replace: (help replace) Este comando reemplaza valores de casos y variables. En el ejemplo se reemplazará el valor del precio de Ford Fiesta que es US$4389 por US$4279. Sintaxis: replace oldvar =exp [if] [in] [, nopromote] Ejemplo 2.7. replace price = 4279 if make == "Ford Fiesta" El comando replace proporciona en la ventana de Results lo siguiente:. replace price = 4279 if make == "Ford Fiesta" (1 real change made) 6. COMANDO sort: (help sort) Este comando ordena las variables. Si no se le dice a Stata que ordene la variable, ésta no va a estar ordenada, por mucho que uno vea que sí lo está. Para el ejemplo se ordenará la variable mpg. Ejemplo 2.8. sort mpg Sintaxis: sort varlist [in] [, stable] Con esto la variable va hacer la única variable que va a estar ordenada y Stata lo va a reconocer así. 17

2.3. ADMINISTRACIÓN BÁSICA DE DATOS 7. COMANDO codebook: (help codebook) Este comando muestra el detalle de la variable. Para el ejemplo se mostrarán las variables price y rep78, de la base de datos de auto.dta. Sintaxis: codebook [varlist] [if] [in] [, options] Ejemplo 2.9. codebook price rep78 El comando codebook proporciona en la pantalla los siguientes resultados: ----------------------------------------------------------------- price Price ----------------------------------------------------------------- type: numeric (int) range: [3291,15906] units: 1 unique values: 74 missing.: 0/74 mean: 6163.77 std. dev: 2950.43 percentiles: 10% 25% 50% 75% 90% 3895 4195 5006.5 6342 11385 ----------------------------------------------------------------- rep78 Repair Record 1978 ----------------------------------------------------------------- type: numeric (int) range: [1,5] units: 1 unique values: 5 missing.: 5/74 tabulation: Freq. Value 2 1 8 2 30 3 18 4 11 5 5. 8. COMANDO summarize: (help summarize) Este comando calcula las estadísticas descriptivas básicas de cada variable. Para el ejemplo se calcularán las estadísticas descriptivas básicas de las variables numéricas, y no las de las categóricas. 18

CAPíTULO 2: ACCESO A STATA Ejemplo 2.10 Sintaxis: summarize [varlist] [if] [in] [weight] [, options] summarize price mpg rep78 headroom trunk weight /* */ length turn displacement gear_ratio, format El comando summarize proporciona en la pantalla los siguientes resultados: Variable Obs Mean Std. Dev. Min Max -------------+----------------------------------------------------- price 74 6,163.77 2,950.43 3,291 15,906 mpg 74 21.2973 5.785503 12 41 rep78 69 3.405797.9899323 1 5 headroom 74 3.0 0.8 1.5 5.0 trunk 74 13.75676 4.277404 5 23 -------------+----------------------------------------------------- weight 74 3,019.46 777.1936 1,760 4,840 length 74 187.9324 22.26634 142 233 turn 74 39.64865 4.399354 31 51 displacement 74 197.2973 91.83722 79 425 gear_ratio 74 3.01 0.46 2.19 3.89 Aquí se muestran el número de observaciones, promedio, desviación estándar, mínimo y máximo, de cada variable, con su respectivo formato. Observación 2.2 Si se quiere usar alguno de estos comandos con varias variables, existe la opción de poner el comando pero abreviar las variables, siempre y cuando el nombre de la variable tengan una misma raíz o terminen igual. Por ejemplo, en la base de datos de los autos, si escribe la siguiente instrucción: describe make mpg, esta instrucción proporcionará en la pantalla lo siguiente: storage display value variable name type format label variable label ------------------------------------------------------------------ make str18 %-18s Make and Model mpg int %8.0g Mileage (mpg) y si cambia la instrucción por: describe m*, la pantalla proporcionará el siguiente resultado: storage display value variable name type format label variable label ------------------------------------------------------------------ make str18 %-18s Make and Model mpg int %8.0g Mileage (mpg) 19

2.3. ADMINISTRACIÓN BÁSICA DE DATOS Como se puede ver, las dos formas arrojan los mismos resultados. Ejercicio 2.1 De la base de datos contenida en el cuadro 2.1: código edad genero carrera arancel 1941 20 1 Enfermería 1273300 1943 23 0 Kinesiología 1615000 1937 24 0 Educación Parvularia 1273000 1945 21 1 Psicología 1470000 1950 21 0 Odontología 2235000 Cuadro 2.1: Base de datos para el ejercicio 10.4 del capítulo 2 1. Calcule las estadísticas descriptivas de los aranceles y cree una nueva variable donde el arancel aumenta un 5 %. 2. Escriba la base de datos del ejercicio anterior en una planilla Excel y trasládela a Stata. 3. Con la base de datos anterior utilize el comando codebook, y comente los resultados, y etiquete las variables que no sean numéricas. 20

Capítulo 3 Los datos y el editor de programas 3.1. Cómo leer los datos Los datos de Stata son accesibles y se pueden leer, en términos prácticos, de las siguientes maneras: 1. interactivamente, tomando información que está en archivos con extensión txt, o archivos ASCII. 2. Colocándola en el data editor, que es la manera como Stata guarda la información en su interior. Es usual que el modo batch (no interactivo) sea usado cuando las bases de datos son extremadamente grandes. Sin embargo, si una base es pequeña o moderadamente manejable, una manera útil y eficiente de trabajar la información con Stata, es crear directamente los archivos con extensión dta. Para introducir la información hay dos maneras, dato a dato en el data editor, o bien se puede utilizar un programa conocido como StataTransfer, el cual permite introducir archivos desde casi cualquier otro programa a Stata. Presionando con el mouse en el ícono correspondiente al data editor se puede observar los datos dentro de Stata. 3.2. Qué es un archivo do Un archivo con extensión do, es uno en el cual se elabora un programa detallado para ejecutar. Así por ejemplo, cuando se usa una base de datos, toda transformación de observaciones o de variables puede ser llevada a cabo a través de este tipo de archivo sin modificar la base de datos original. A través del DO-file se crea una nueva base de datos independiente de la original y sobre ella es posible trabajar. Esta nueva tabla es útil si se quiere tener menos datos de los que están en la original o menos variables. Es decir existe una información que no se quiere usar, pero tampoco eliminar, así que es mejor elaborar una nueva tabla permanente sólo con la información requerida. Hay dos maneras de ejecutar el archivo do, a través del Stata command o desde el archivo do mismo, sólo presionando el ícono DO current file. Desde el Stata command hay que dar la orden DO filename, y desde aquí es como si hiciese el programa por pasos desde el Stata command. Si hay errores el programa se detiene. No obstante, si se le ordena nostop el programa no se detendrá aún si hay errores. 21

Capítulo 4 Nociones generales del uso de Stata 4.1. Creación de rótulos label En Stata se pueden asignar rótulos de hasta 80 caracteres, encerrados por comillas cuando hay espacios en blanco entre palabras o sin comillas si hay una sola palabra. En Stata se pueden rotular o etiquetar los archivos, las variables, y los valores de variables numéricas. (help label) Ejemplo 4.1 Para la explicación de cada uno de estos casos, se ocupará un archivo que tendrá el nombre de Alumnos Matriculados UV 2005, el cual muestra un grupo de variables con datos ficticios de alumnos matriculados en distintas carreras de la Universidad de Valparaíso (Vea el cuadro 4.1). Nombre Vía ingreso Lugar ingreso Región procedencia Código carrera Claudia Donoso 3 24 5 1972 Raúl Toledo 1 31 6 1940 Rodrigo Saavedra 2 7 4 1931 Catalina Ríos 1 40 13 1943 Cuadro 4.1: Alumnos Matriculados UV 2005 Los códigos de las carreras se presentan en el Cuadro 4.2. Código Carrera 1972 Ingeniería en Estadística 1940 Medicina 1931 Trabajo Social 1943 Kinesiología Cuadro 4.2: Códigos de carrera El cuadro 4.2 muestra las carreras con sus respectivos códigos. Posteriormente (cuadro 4.3) se tiene la vía de ingreso de los alumnos y sus correspondientes codificaciones: 23

4.1. CREACIÓN DE RÓTULOS label Código Vía de Ingreso 1 P.A.A 2 P.S.U 3 Otra Cuadro 4.3: Códigos de Vía de Ingreso Luego, las regiones de donde provienen los alumnos con sus respectivas codificaciones son las enseñadas en el cuadro 4.4. Código Región 1 Primera 4 Cuarta 5 Quinta 13 Metropolitana Cuadro 4.4: Códigos de región Hay que destacar que al momento de ingresar los datos a Stata las variables fueron ingresadas con los siguientes nombres: Nombre: nombre Vía ingreso: via ing Lugar de ingreso: lug ing Región de procedencia: reg proce Código carrera: cod carr Observación 4.1 Rotular los nombres no tiene sentido, pues frecuentemente todos los nombres son diferentes. Observación 4.2 Note que los valores para via ing, reg proce y cod carr son expresados en números, pero en realidad son variables categóricas. Observación 4.3 No obstante lo descrito en la observación 2 es posible etiquetar los valores de todas las variables. 4.1.1. Rótulos de archivos Primero, se etiquetará el conjunto de datos. La sintaxis es la siguiente: label data ["label"] 24

CAPíTULO 4: NOCIONES GENERALES DEL USO DE STATA Para los datos del ejemplo 4.1, se tiene la siguiente estructura, ya sea en la línea de comandos o bien en el DO-file editor de Stata: label data "Alumnos Matriculados UV en 2005" Luego, utilizando el comando describe se puede ver que la base de datos ha sido rotulada: obs: 4 Alumnos Matriculados UV en 2005 vars: 5 4 Dec 2005 21:48 size: 68 (99.9% of memory free) ---------------------------------------------------------------------- storage display value variable name type format label variable label ---------------------------------------------------------------------- nombre str8 %9s via_ing byte %8.0g lug_ing byte %8.0g reg_proce byte %8.0g cod_carr int %8.0g ---------------------------------------------------------------------- Cabe mencionar que esto se puede realizar en un archivo del tipo DO en el editor de texto de Stata, el cual se detalla al final de este capítulo (sección 4.1.4, página 30). 4.1.2. Rótulos de variables Para rotular a las variables, la sintaxis está dada de la siguiente manera: label variable varname ["label"] Hay que notar que para etiquetar una variable ésta debe ser numérica, por lo que si se tienen variables alfa-numéricas hay que transformarlas primero a variables numéricas. Realizando un browse se puede notar que los valores de las variables categóricas aparecen en rojo (en el ejemplo 4.1 los nombres de las personas) y los de las variables numéricas en negro. En este caso, los rótulos para las variables están dados de la siguiente manera: label variable nombre "Nombre" label variable via_ing "Via de Ingreso" label variable lug_ing "Lugar de Ingreso" label variable reg_proce "Region de procedencia" label variable cod_carr "Codigo Carrera" Ocupando nuevamente el comando describe, se puede observar el rótulo para cada una de las variables: 25

4.1. CREACIÓN DE RÓTULOS label Figura 4.1: Distinción del tipo de variable. obs: 4 Alumnos Matriculados UV vars: 5 13 Dec 2005 21:35 size: 68 (99.9% of memory free) -------------------------------------------------------------------- storage display value variable name type format label variable label -------------------------------------------------------------------- nombre str8 %9s Nombre via_ing byte %8.0g Via de Ingreso lug_ing byte %8.0g Lugar de Ingreso reg_proce byte %8.0g Region de procedencia cod_carr int %8.0g Codigo Carrera -------------------------------------------------------------------- 4.1.3. Rótulos para valores de variables Los valores numéricos de una variable pueden ser rotulados de manera que estos rótulos aparezcan, por ejemplo, cuando se pida a Stata construir una tabla de frecuencias. Esta rotulación se hace en dos etapas: 1. Se definen los rótulos para cada valor numérico de la variable, donde se tiene la siguiente sintaxis: label define lblname# "label" [#"label"...] 2. Luego, se asignan estos rótulos a la o las variables que tengan los mismos tipos de valores. Para esto, se tiene la siguiente sintaxis: label values varname [lblname] A modo de ejemplo, se crearán rótulos para los valores de la variable via ing (Vía ingreso) del ejemplo 4.1: 26

CAPíTULO 4: NOCIONES GENERALES DEL USO DE STATA label define cod_ing 1 "PAA" 2 "PSU" 3 "Otra" label values via_ing cod_ing De la misma manera se pueden crear rótulos para los valores de las variables reg proce y cod carr. A continuación, ocupando los comandos describe y list, se pueden ver los rótulos de las variables y de sus correspondientes valores: -------------------------------------------------------------------- storage display value variable name type format label variable label -------------------------------------------------------------------- nombre str8 %9s Nombre via_ing byte %8.0g cod_ing Via de Ingreso lug_ing byte %8.0g Lugar de Ingreso reg_proce byte %13.0g cod_reg Region de procedencia cod_carr int %8.0g cod_car Codigo Carrera -------------------------------------------------------------------- +---------------------------------------------------------+ nombre via_ing lug_ing reg_proce cod_carr --------------------------------------------------------- 1. claudia Otra 24 quinta Ing_Est 2. raul PAA 31 sexta Med 3. rodrigo PSU 7 cuarta Trab_soc 4. catalina PAA 40 metropolitana Kine +---------------------------------------------------------+ Luego, observando el Data Editor de Stata, se puede notar que ahora aparecen en azul los valores de las variables numéricas que están con códigos alfa-numéricos como también al marcar la celda correspondiente a la Región Metropolitana se observa que el reg proce[4] es igual a 13, valor que corresponde al código de dicha región. Ahora suponga que se tiene una gran cantidad de variables, lo que hace muy difícil conocer los códigos para cada uno de los valores de las variables rotuladas, para esto, existe otra manera muy práctica de crear los label define y label values, como ejemplo, se tomará la variable via ing y será rotulada de la siguiente manera: label define cod_ing 1 "1: PAA" 2 "2: PSU" 3 "3: Otra", modify Note que se modificó el label value correspondiente a via ing mediante el uso del comando modify. Con esto, el resultado obtenido es el siguiente: +--------------------+ nombre via_ing -------------------- 27

4.1. CREACIÓN DE RÓTULOS label Figura 4.2: Data Editor de Stata. 1. claudia 3: Otra 2. raul 1: PAA 3. rodrigo 2: PSU 4. catalina 1: PAA +--------------------+ Se puede notar que al lado de cada forma de ingreso a la Universidad aparece su correspondiente código (por ejemplo, en vez de PAA, ahora aparece 1: PAA), lo que es muy útil cuando se quieren realizar distintos tipos de análisis y como se dijo antes, cuando se tiene una gran cantidad de datos. Para el siguiente ejemplo, suponga que la variable reg proce está ingresada a Stata de la siguiente manera: Figura 4.3: Cambio de la variable reg proce. Note que los valores de la variable reg proce son de color rojo, es decir, esta variable ahora es del tipo categórica aún cuando fue ingresada como números romanos. Al momento de etiquetar o rotular los valores de esta variable se obtiene el mensaje de error mostrado en la figura 4.4. 28

CAPíTULO 4: NOCIONES GENERALES DEL USO DE STATA Figura 4.4: Mensaje de error entregado por Stata. Como se dijo con anterioridad, este mensaje de error es debido a que la variable reg proce debe ser numérica para que sus valores puedan ser etiquetados. Para transformar esta variable a numérica se generará sobre la base de ella una nueva variable llamada lug ori de la siguiente forma: gen lug_ori = 5 if reg_proce == "V" replace lug_ori = 6 if reg_proce == "VI" replace lug_ori = 4 if reg_proce == "IV" replace lug_ori = 13 if reg_proce == "RM" Ahora, se puede observar que la nueva variable lug ori es numérica (de color negro): Figura 4.5: Variable numérica lug ori. Entonces, el rótulo para los valores de esta variable queda de la siguiente manera: label define cod_reg 6 "VI" 4 "IV" 5 "V" 13 "RM" label values lug_ori cod_reg Como se ve en la Figura 4.6, los valores de la variable lug ori han sido rotulados de la misma forma en que fueron ingresados originalmente a Stata dentro de la variable reg proce (como números romanos), con la diferencia que ahora esos mismos valores corresponden a una variable numérica, es decir, cada uno representa un valor numérico como se puede ver para la sexta región en lug ori[2] = 6: 29

4.1. CREACIÓN DE RÓTULOS label Figura 4.6: Rótulo para la variable lug ori. 4.1.4. Archivo do utilizado en esta sección label data "Alumnos Matriculados UV en 2005" label variable nombre "Nombre" label variable label variable lug_ing "Lugar de Ingreso" reg_proce "Region de procedencia" label variable cod_carr "Codigo Carrera" label define cod_ing 1 "PAA" 2 "PSU" 3 "Otra" label values via_ing cod_ing label define cod_car 1972 "Ing_Est" 1940 "Med" 1931 "Trab_soc" 1943 "Kine" label values cod_carr cod_car gen lug_ori=5 if reg_proce=="v" replace lug_ori=6 if reg_proce=="vi" replace lug_ori=4 if reg_proce=="iv" replace lug_ori=13 if reg_proce=="rm" label define cod_reg 6 "VI" 4 "IV" 5 "V" 13 "RM" label values lug_ori cod_reg 30

CAPíTULO 4: NOCIONES GENERALES DEL USO DE STATA 4.2. Creación de nuevas variables generate En Stata se pueden crear variables a partir de las existentes, ya sea ocupando expresiones algebraicas usuales, funciones matemáticas, funciones estadísticas, etc. Para crear una nueva variable el comando a utilizar es generate (help generate) y la sintaxis está dada por: generate [type] newvar[:lblname] = exp [if] [in] Otra forma de generar o crear una variable es modificando una ya existente, o bien, modificando su contenido. En este caso, la sintaxis es la siguiente: replace oldvar = exp [if] [in] [, nopromote] También se puede fijar una semilla como valor inicial para la generación de números aleatorios: set seed {# code} Ejemplo 4.2 Para una mejor explicación, se utilizarán los datos de sysuse bpwide.dta del Example datasets de Stata, los que corresponden a medidas de la presión sanguínea tomadas a un grupo de 120 personas antes y después de la aplicación de un medicamento. En la figura 4.7 se muestra una parte de estos datos: Ahora, suponga que a un investigador le interesa saber si en la segunda medición hay una subida en la presión sanguínea de los pacientes, para esto primero se generará una nueva variable que tendrá por nombre bp dif, la cual estará formada por la diferencia entre la segunda medición (after) y la primera medición (before) y luego se generará otra variable llamada bp alza que tendrá sólo los casos en los que la diferencia entre las mediciones es mayor que cero: gen bp_dif = bp_after-bp_before gen bp_alza = bp_dif if bp_dif>0 Hay que notar que al crear la variable bp alza también se generaron 77 valores perdidos correspondientes a los casos en los que la diferencia entre las mediciones de la presión sanguínea es menor que cero (ver figura 4.8). Luego, se borrarán los casos en los cuales la diferencia entre mediciones es negativa: drop if bp_alza ==. Con esto quedan sólo los 43 pacientes que presentaron un alza en la presión sanguínea. Ahora suponga que el mismo investigador tiene que tomar una muestra aleatoria de la mitad de los pacientes que presentaron un alza en la presión sanguínea para poder probar otro tipo de tratamiento. Para esto primero se generarán números aleatorios con distribución uniforme de semilla igual a 1990 (ver figura 4.9): 31

4.2. CREACIÓN DE NUEVAS VARIABLES generate Figura 4.7: Datos de sysuse bpwide.dta. set seed 1990 gen random = uniform() Luego, haciendo: sort random sample 21, count Se obtiene una muestra aleatoria de 21 pacientes de los 43 que presentaron un alza en la presión sanguínea. A continuación se presenta la lista de los pacientes a los que se les aplicará el nuevo tratamiento: +------------------------------+ patient bp_alza random ------------------------------ 1. 34 36.4832145 2. 87 5.6497909 3. 77 7.3519351 4. 49 14.1419565 5. 26 6.137853 32

CAPíTULO 4: NOCIONES GENERALES DEL USO DE STATA Figura 4.8: Variables bp dif y bp alza. Figura 4.9: Variable random. ------------------------------ 6. 55 15.7210993 7. 97 25.465901 8. 73 27.3593707 9. 101 10.3661099 10. 119 2.0242004 ------------------------------ 11. 14 14.5665284 12. 2 7.7746237 13. 108 7.4608473 14. 1 10.3160134 15. 33 8.1500585 ------------------------------ 16. 60 2.0320469 33

4.3. USO DEL COMANDO egen 17. 63 2.6549666 18. 38 19.1134934 19. 114 26.2365237 20. 91 3.1445396 ------------------------------ 21. 46 9.2519576 +------------------------------+ Existen dos comandos que se encuentran fuertemente relacionados con el comando generate, estos son: drop y keep. El primero elimina ya sea datos o variables desde la memoria, mientras que el segundo se utiliza para especificar las variables u observaciones que se quieren conservar. Por ejemplo, para eliminar la variable bp dif hay que tipear en la línea de comando de Stata o en el DO-file editor: drop bp_dif Mientras que si sólo se quiere conservar en la base de datos las variables patient y bp alza, hay que tipear: keep patient bp_alza 4.2.1. Archivo do utilizado en esta sección sysuse bpwide.dta (fictional blood-pressure data) gen bp_dif=(bp_after-bp_before) gen bp_alza=bp_dif if bp_dif>0 drop if bp_alza==. set seed 1990 gen random = uniform() sort random sample 21, count 4.3. Uso del Comando egen El comando egen (help egen) realiza funciones por individuos para cada una de las variables que se le indique, es decir, realiza operaciones por filas en las bases de datos. 34

CAPíTULO 4: NOCIONES GENERALES DEL USO DE STATA Ejemplo 4.3 Para una mejor explicación, se utilizarán datos ficticios (ver cuadro 4.5) que corresponden a una parte de las notas de un curso. Alumno Nota 1 Nota 2 Nota 3 Claudia 5.5 6.0 6.7 Hector 4.2 5.5 Francisco 6.0 5.2 Pía 4.7 Andrés 4.7 4.9 5.2 Andrea 6.7 6.2 5.8 Pamela 5.4 Antonio 5.5 3.8 4.1 Cuadro 4.5: Parte de las notas del curso Como se puede apreciar en el cuadro 4.5, hay lugares en los cuales no existen notas, es decir, existen valores perdidos. Ocupando el comando egen se puede conocer el número de valores perdidos para cada uno de los alumnos. Esta función es de gran utilidad cuando se tiene una gran cantidad de datos. La sintaxis para el uso de este comando es la siguiente: egen [type] newvar = fcn(arguments)[if exp][in range][, options] Como primer ejemplo, se calculará el número de notas perdidas para cada uno de los alumnos de la tabla anterior. Se debe tomar en cuenta que el nombre de las variables fue ingresado a Stata de la siguiente manera: nota 1: nota_1 nota 2: nota_2 nota 3: nota_3 Entonces, la estructura queda de la forma: egen n_per = rmiss(nota_1 - nota_3) Con esto se genera una nueva variable llamada n per la cual contiene el número de notas faltantes para cada uno de los alumnos (rmiss = row miss). Luego, utilizando el comando list se puede observar la nueva variable generada: +----------------------------------------------+ alumno nota_1 nota_2 nota_3 n_per ---------------------------------------------- 35

4.3. USO DEL COMANDO egen 1. Claudia 5.5 6 6.7 0 2. Hector 4.2.. 2 3. Francisco 6 5.2. 1 4. Pia.. 4.7 2 5. Andres 4.7 4.9 5.2 0 ---------------------------------------------- 6. Andrea 6.7 6.2 5.8 0 7. Pamela. 5.4. 2 8. Antonio 5.5 3.8 4.1 0 +----------------------------------------------+ Ahora se generará otra variable que contenga la nota promedio para cada uno de los alumnos, para esto se creará una variable que tenga el número total de notas por alumno (número de notas que debería tener cada alumno - valores perdidos): gen n_tot = 3 - n_per Luego, utilizando el comando rsum para sumar las notas de cada alumno: egen sum = rsum(nota_1 - nota_3) Qué hubiese ocurrido si se genera una variable con un promedio simple prom s? gen prom_s = (nota_1 + nota_2 + nota_3)/3 Entonces, el promedio de notas queda dado por: gen prom = sum / n_tot +-----------------------------------------------------------------+ alumno nota_1 nota_2 nota_3 n_per n_tot sum prom ----------------------------------------------------------------- 1. Claudia 5.5 6 6.7 0 3 18.2 6.066667 2. Hector 4.2.. 2 1 4.2 4.2 3. Francisco 6 5.2. 1 2 11.2 5.6 4. Pia.. 4.7 2 1 4.7 4.7 5. Andres 4.7 4.9 5.2 0 3 14.8 4.933333 ----------------------------------------------------------------- 6. Andrea 6.7 6.2 5.8 0 3 18.7 6.233334 7. Pamela. 5.4. 2 1 5.4 5.4 8. Antonio 5.5 3.8 4.1 0 3 13.4 4.466667 +-----------------------------------------------------------------+ Ahora se creará la variable rank not, que tendrá el ranking del promedio de notas del grupo, esta nueva variable presenta la siguiente estructura: egen rank_not = rank(prom) 36

CAPíTULO 4: NOCIONES GENERALES DEL USO DE STATA Como se puede ver en la siguiente figura, una vez ingresada la variable rank not, y haciendo un sort rank not para ordenar las notas promedios desde la más baja a la más alta, se obtiene el ranking de notas de los alumnos: +---------------------------------+ alumno prom rank_not --------------------------------- 1. Hector 4.2 1 2. Antonio 4.466667 2 3. Pia 4.7 3 4. Andres 4.933333 4 5. Pamela 5.4 5 --------------------------------- 6. Francisco 5.6 6 7. Claudia 6.066667 7 8. Andrea 6.233334 8 +---------------------------------+ Por último, para una presentación mejor de los datos, se reducirá a 2 el número de decimales de la variable prom de la siguiente manera: format prom %9.2f Donde 9 indica el ancho, 2 el número de decimales y f indica que el número de decimales es fijo. Ahora, el resultado obtenido es el siguiente: +-----------------------------+ alumno prom rank_not ----------------------------- 1. Hector 4.20 1 2. Antonio 4.47 2 3. Pia 4.70 3 4. Andres 4.93 4 5. Pamela 5.40 5 ----------------------------- 6. Francisco 5.60 6 7. Claudia 6.07 7 8. Andrea 6.23 8 +-----------------------------+ 4.3.1. Archivo do utilizado en esta sección egen n_per=rmiss( nota_1- nota_3) gen n_tot=3-n_per 37

4.4. CONCATENANDO LA INFORMACIÓN egen sum=rsum( nota_1- nota_3) gen prom=sum/n_tot egen rank_not=rank(prom) sort rank_not list alumno prom rank_not format prom %9.2f 4.4. Concatenando la información Los comandos merge y append se utilizan para juntar bases de datos que son grandes (puede ser que tengan una gran cantidad de variables) y están divididas en varios archivos de tipo de texto. A continuación se explicará cada uno de estos comandos. 4.4.1. Uso del comando merge El comando merge (help merge) realiza una concatenación horizontal, es decir, junta la información por filas. La sintaxis para este comando es la siguiente: merge [varlist] using filename [filename...] [, options] Si el nombre del archivo que se va a utilizar tiene espacios en blanco hay que escribirlo entre comillas. También hay que destacar que una vez que se lleva a cabo la concatenación Stata genera una variable llamada merge que puede tomar tres valores según sea el origen de la o las nuevas observaciones: merge = 1 Si la observación estaba en la base de datos original. merge = 2 Si la observación esta solo en la nueva base fucionada. merge = 3 Si las observaciones estaban en ambas bases antes de la concatenación. Ejemplo 4.4 Para explicar de una mejor manera cómo funciona este comando, se utilizarán los datos de auto.dta y autornd.dta del Example datasets de Stata. El primer paso será crear una variable indicadora que se encuentre en ambas bases de datos, esta variable llevará el nombre de id y enumerará las marcas de auto de manera ascendente desde 1 a 74. Entonces para auto.dta se tiene: 38

CAPíTULO 4: NOCIONES GENERALES DEL USO DE STATA use auto gen id = _n save auto, replace Con lo anterior, se le indica a Stata que para el archivo auto.dta se crea la variable indicadora id. Para ver el resultado obtenido se realizará un list de las variables make e id, del cual se mostrarán sólo los primeros 10 casos y 2 variables: +------------------------+ make id ------------------------ 1. AMC Concord 1 2. AMC Pacer 2 3. AMC Spirit 3 4. Audi 5000 4 5. Audi Fox 5 ------------------------ 6. BMW 320i 6 7. Buick Century 7 8. Buick Electra 8 9. Buick LeSabre 9 10. Buick Opel 10 ------------------------ Luego, para el archivo autornd.dta se tiene: use autornd gen id = _n save autornd, replace Con esto se obtiene el mismo resultado que para auto.dta. Ahora, para concatenar los dos archivos mediante el comando merge la secuencia a seguir es la siguiente: use auto sort id save auto use autornd sort id merge id using auto Note que para los dos archivos de datos se ocupa el comando sort para ordenar la variable indicadora, con esto se consigue que dicha variable tenga el mismo orden en ambos archivos de datos. Ahora se mostrará una parte de los datos concatenados: 39

4.4. CONCATENANDO LA INFORMACIÓN +-----------------------------------------------------------+ make weight mpg price turn _merge ----------------------------------------------------------- 1. AMC Concord 3000 20 4,099 40 3 2. AMC Pacer 3500 15 4,749 40 3 3. AMC Spirit 2500 20 3,799 35 3 4. Buick Century 3500 20 9,690 37 3 5. Buick Electra 4000 15 6,295 36 3 ----------------------------------------------------------- 6. Buick LeSabre 3500 20 9,735 34 3 7. Buick Opel 2000 25 4,816 40 3 8. Buick Regal 3500 20 7,827 43 3 9. Buick Riviera 4000 15 5,788 43 3 10. Buick Skylark 3500 20 4,453 34 3 ----------------------------------------------------------- Como se puede ver en el resultado anterior, las bases de datos han sido correctamente concatenadas, como también se observa la variable merge creada por Stata, compuesta sólo por números 3 que indica que las observaciones estaban en ambas bases de datos antes de la concatenación. 4.4.2. Uso del comando append El comando append (help append) se utiliza cuando se quiere hacer concatenación vertical. Como se sabe, en la mayoría de los casos las bases de datos vienen dadas por columnas, por lo tanto, para utilizar correctamente este comando los nombres de las variables deben ser los mismos, es decir, deben estar escritos de la misma forma en ambas bases de datos. Uno de los errores más comunes es el uso de minúsculas o mayúsculas al escribir el nombre de las variables en las distintas bases de datos, con lo que se hace imposible el poder concatenar la información. La sintaxis para el uso de este comando es la siguiente: append using filename [, options] Al igual que el comando merge si el nombre del archivo que se va a utilizar tiene espacios en blanco hay que escribirlo entre comillas. Ejemplo 4.5 Para aclarar el uso de este comando, se utilizarán nuevamente los archivos auto.dta y autornd.dta del Example datasets de Stata. El primer paso es abrir el archivo auto.dta : use auto Luego, se procede a la concatenación de ambos archivos: append using autornd 40

CAPíTULO 4: NOCIONES GENERALES DEL USO DE STATA Observación 4.4 Se tiene que recordar que cada base de datos tiene un total de 74 observaciones (filas), con lo que al concatenar ambas bases se tendrá un total de 148 observaciones. Observación 4.5 Como el archivo autornd sólo consta de tres variables (make, weight, mpg) para el resto de las variables del archivo auto se generarán valores perdidos al momento de la concatenación de archivos. Utilizando el comando describe se puede ver que el número de observaciones ha aumentado: Contains data from auto.dta obs: 148 1978 Automobile Data vars: 13 25 Dec 2005 20:51 size: 8,140 (99.9% of memory free) (_dta has notes) En la figura 4.10 se muestra una parte de los datos concatenados. Figura 4.10: Datos concatenados por el comando append. 4.4.3. Archivo do utilizado en esta sección /** Concatenado por el comando merge **/ use auto 41

4.4. CONCATENANDO LA INFORMACIÓN gen id=_n save auto, replace use autornd gen id=_n save autornd, replace use auto sort id save auto, replace use autornd sort id merge id using auto /** Concatenado por el comando append **/ use auto append using autornd 42

Capítulo 5 Nociones generales de gráficos en Stata Un gráfico podría definirse como una representación visual de un grupo de datos, es por esto que un gráfico debe ser lo más práctico y explicativo posible. Stata cuenta con una gran variedad de gráficos que se pueden utilizar en la presentación de un grupo de datos. En este capítulo se explicará el uso de alguno de estos gráficos (help graph). 5.1. Gráfico de tallo y hoja: stem Este tipo de gráfico generalmente se utiliza al inicio de cualquier investigación ya que permite observar tanto el centro de la distribución de los datos como también la forma general de dicha distribución. Otra cosa importante que se puede observar en este tipo de gráfico es la existencia de outliers, que son observaciones individuales que caen por fuera del patrón general de los datos. La sintaxis para el uso de este tipo de gráfico es la siguiente: stem varname [if] [in] [, options] Existen dos opciones muy útiles al momento de utilizar este tipo de gráfico: lines(#) : Corresponde al número de tallos por intervalos de 10 dígitos. digits(#) : Corresponde al número de dígitos que se quieren utilizar por hoja. Si este número no es especificado, por defecto Stata lo asume como 1. Ejemplo 5.1 Se utilizarán los datos de auto.dta del Example datasets de Stata, en donde se ocupará la variable length (largo). Primero se realizará un gráfico de tallo y hoja que tenga 1 línea por tallo y 1 dígito por hoja: stem length, lines(1) digits(1) El resultado obtenido es el que se muestra a continuación: Stem-and-leaf plot for length (Length (in.)) 14* 279 43

5.1. GRÁFICO DE TALLO Y HOJA: stem 15* 45567 16* 133455589 17* 00002234457999 18* 02469 19* 23356788889 20* 00001113446667 21* 224788 22* 00112 23* 03 Se puede observar que el primer tallo es 14, y sus correspondientes hojas son 2, 7 y 9, es decir, el primer valor o largo es 142 y corresponde al auto de marca Renault Le Car que se encuentra en el lugar 65 de la base de datos. Luego, aumentando a 2 el número de dígitos por cada hoja: stem length, lines(1) digits(2) Se obtiene el siguiente resultado: Stem-and-leaf plot for length (Length (in.)) 1** 42,47,49,54,55,55,56,57,61,63,63,64,65,65,65,68,69,70,... (47) 2** 00,00,00,00,01,01,01,03,04,04,06,06,06,07,12,12,14,17,... (27) Ahora, se puede observar que sólo existen dos tallos, 1 y 2, para los que se tienen 47 y 27 hojas respectivamente (note que la suma del número total de hojas para cada tallo es 74, valor que corresponde al número total de datos del archivo). Ejemplo 5.2 Para el tipo de gráfico de tallo y hoja, se aumentará a 2 el número de tallos (líneas) para cada categoría. stem length, lines(2) digits(1) Con esto, el resultado obtenido es: Stem-and-leaf plot for length (Length (in.)) 14* 2 14. 79 15* 4 15. 5567 16* 1334 16. 55589 17* 000022344 17. 57999 18* 024 44

CAPíTULO 5: NOCIONES GENERALES DE GRÁFICOS EN STATA 18. 69 19* 233 19. 56788889 20* 0000111344 20. 6667 21* 224 21. 788 22* 00112 22. 23* 03 En el resultado anterior se puede observar que ahora existen dos líneas por tallo, como se puede notar para el primer caso, donde para el tallo 14 en la primera línea sólo aparece la hoja con valor 2 y en la segunda línea aparecen las hojas 7 y 9. 5.2. Scatterplots y gráficos de caja El primer gráfico que se estudiará es el scatterplot. Este tipo de gráfico es comúnmente utilizado para la presentación de dos variables. La sintaxis para este tipo de gráfico es la siguiente: scatter varlist [if] [in] [weight] [, options] Para explicar este tipo de gráfico y los que vendrán más adelante, se ocupará la base de datos limpiada (vea el ejemplo 6.1 del capítulo 6, página 57). Los datos corresponden a un estudio realizado en Estados Unidos a un grupo mujeres embarazadas, durante los años 1960 y 1967. Este estudio que se realizó con el fin de observar si el tabaco afecta negativamente a los recién nacidos. Ejemplo 5.3 Se hará un gráfico de dispersión para las variables meses y p nac kg (peso al nacer en kilogramos). scatter meses p_nac_kg El gráfico obtenido se muestra en la figura 5.1(a), en el cual se puede observar que en la esquina inferior derecha existen dos valores atípicos u outliers, los que pueden requerir una especial atención por parte del investigador. Entre las opciones que tiene este tipo de gráfico existe la de poder cambiar el símbolo que representa a las observaciones, es decir, suponga que en vez de querer que aparezcan las observaciones en forma de círculo se prefiere que aparezcan como pequeños cuadrados, para esto se debe utilizar la opción symbol de la siguiente manera: scatter meses p_nac_kg, symbol(sh) donde las letras sh que se encuentran en paréntesis especifican que el símbolo que se quiere utilizar corresponde a cuadrados pequeños, como se ve en la Figura 5.1(b). 45

5.2. SCATTERPLOTS Y GRÁFICOS DE CAJA (a) Realizado por defecto (b) Observaciones representadas por otro símbolo Figura 5.1: Scatterplot meses y p nac kg. Otra opción interesante es la de poder identificar a través de un nombre o característica cada punto del scatterplot. Para esto se debe utilizar la opción mlabel, la que en este caso será ocupada para poder identificar en el scatterplot qué puntos corresponden a madres que fumaron durante el embarazo y cuáles no lo hicieron: scatter meses p_nac_kg, mlabel(smoke) Entonces, gráficamente se obtiene el resultado mostrado en la figura 5.2. Figura 5.2: Scatterplot meses y p nac kg utilizando mlabel. Ahora, suponga que se quiere identificar los dos puntos atípicos que se observan en la esquina inferior derecha del gráfico de dispersión, para esto, se utiliza un gráfico del tipo twoway, que para este caso tiene la siguiente estructura: 46

CAPíTULO 5: NOCIONES GENERALES DE GRÁFICOS EN STATA twoway (scatter meses p_nac_kg) (scatter meses p_nac_kg if meses<7, mlabel(id)), legend(off) Se puede notar en el segundo paréntesis que se agrega la condición if meses<7, lo que indica que el mlabel(id) que aparece después es solo aplicable a los puntos que se encuentran por debajo de los siete meses. Con esto el resultado obtenido se enseña en el gráfico 5.3(a). (a) Identificación de datos atípicos. (b) Título del gráfico y nombre de los ejes Figura 5.3: Complementos para un scatterplot Con esto, se puede ver que los datos atípicos corresponden a los casos 15 y 42, respectivamente. Ahora, suponga que se quiere colocar nombre al gráfico 5.3(a) y a sus ejes, para lo cual se utilizará la opción title. El título del gráfico será Meses y Peso al nacer, mientras que el de los ejes x e y serán Meses de gestación y Peso al nacer, respectivamente. Para esto, se tiene la siguiente estructura: twoway (scatter meses p_nac_kg) (scatter meses p_nac_kg if meses<7, mlabel(id)), title("meses de Gestaci\ on y Peso al nacer") xtitle("meses de gestación") ytitle("peso al nacer") De manera similar al etiquetado de variables, cuando existen espacios en blanco, ya sea en el nombre del gráfico como en el de sus ejes, estos deben ir entre comillas. El nombre del gráfico y el de sus ejes se presentan en la Figura 5.3(b). Suponga que se quiere ajustar un modelo de regresión a los datos, con lo que es necesario ver qué tipo de ecuación (una recta o una curva) se ajusta mejor. Para esto se agrega la opción (lfit variables) para ajustar una recta y la opción (qfit variables) para ajustar una curva de la forma que se muestra a continuación: twoway (scatter meses p_nac_kg) (scatter meses p_nac_kg if meses<7, mlabel(id)) (lfit meses p_nac_kg) (qfit meses p_nac_kg), 47

5.2. SCATTERPLOTS Y GRÁFICOS DE CAJA title("meses y Peso al nacer") xtitle("meses de gestación") ytitle("peso al nacer") Hay que destacar que toda la instrucción que se muestra para ajustar las curvas, como todas las descritas con anterioridad, deben ser especificadas en una sola línea en el DO-file Editor o en la línea de comandos de Stata para que puedan ser ejecutadas de manera correcta y no arrojen algún mensaje de error. Teniendo esto en consideración, el gráfico obtenido se muestra en la figura 5.4: Figura 5.4: Ajuste de curvas. En la figura 5.4 se pueden ver las dos curvas ajustadas, la línea recta es de color verde y la curva de color salmón. Ejemplo 5.4 Suponga que se quiere comparar los meses de gestación y el peso de los bebés con respecto a si la madre fue fumadora (identificada con 1) o no fue fumadora (identificada con 0). Para poder realizar esta comparación se ocupa la instrucción by dentro de la siguiente estructura: twoway scatter p_nac_kg meses, by(smoke) title("meses y Peso al nacer") xtitle("meses de gestación") ytitle("peso al nacer") En Figura 5.5 se ve que las mujeres que no fuman durante el embarazo tienen bebés con un mayor peso, pero a la vez estos pesos son más dispersos que en el caso de las mujeres que fumaron durante el embarazo, también se puede ver que es en el grupo de las no fumadoras en donde se encuentran los dos valores atípicos observados en los gráficos anteriores: Otro tipo de gráfico que puede ser útil en este caso es el de caja. Este gráfico es comúnmente utilizado para comparar la medianas como también para ver la dispersión entre distintos grupos de datos. La sintaxis está dada por: 48

CAPíTULO 5: NOCIONES GENERALES DE GRÁFICOS EN STATA Figura 5.5: Comparación por sexo. graph box yvars [if] [in] [weight] [, options] Como ejemplo, se hará un gráfico de caja para las mismas variables que para el scatterplot con respecto a si la madre fue fumadora (identificada con 1) o no fue fumadora (identificada con 0). Para este caso, se tiene la siguiente estructura: graph box meses p_nac_kg, by(smoke) Al ejecutar las sentencias anteriores en Stata, se obtiene el gráfico de la figura 5.6: Figura 5.6: Gráfico de caja de meses y p nac kg. Como se puede ver en la figura 5.6, los cajones de color celeste corresponden a los meses de gestación, en donde se puede ver que el cajón correspondiente a las mujeres que no fumaron durante el embarazo (designadas por 0) es más ancho que para el caso de las mujeres que lo hicieron 49

5.3. GRÁFICOS PARA DATOS LONGITUDINALES (designadas por 1), es decir, presenta una mayor dispersión en los meses de gestación, mientras que para sus respectivas medias presentan valores aproximadamente similares. Con respecto al peso al nacer representado en el mismo gráfico (figura 5.6) por los cajones de color marrón, se puede decir que los pesos de los bebés de las madres que no fumaron durante el embarazo son más altos y más dispersos que el de los bebés de madres que fumaron durante el embarazo, mientras que para sus valores medios se puede notar que difieren de manera muy leve. Otro tipo de gráfico que puede ser útil en distintos tipos de estudios es el graph matrix o gráfico de matriz, el cual sirve para crear scatterplots a partir de dos o más variables. La sintaxis para este tipo de gráfico es la siguiente: graph matrix varlist [if] [in] [weight] [, options] A modo de ejemplo, se hará un gráfico de matriz para las variables peso de la madre durante el embarazo (p m p kg), meses y peso al nacer en kilogramos (p nac kg) con respecto a si la madre fumó o no durante el embarazo. Para esto se tiene la siguiente estructura: graph matrix p_m_p_kg meses p_nac_kg, by(smoke) (a) Gráfico de matriz completa. (b) Parte inferior del gráfico de matriz. Figura 5.7: Gráficos de Matriz. El resultado gráfico se muestra en la figura 5.7(a) y como se puede observar, los tres gráficos de la parte superior son como un reflejo de los tres de la parte inferior. Agregando la palabra half al final de la secuencia establecida para elaborar el gráfico solo se dejan los tres gráficos de la parte inferior de la matriz como se muestra en la figura 5.7(b). 5.3. Gráficos para datos longitudinales Se podría definir como datos longitudinales a las mediciones de ciertas características realizadas a través del tiempo, como por ejemplo mediciones del peso de un grupo de niños sometidos 50

CAPíTULO 5: NOCIONES GENERALES DE GRÁFICOS EN STATA a un determinado tratamiento durante un tiempo determinado, mediciones de efectividad de un medicamento, etc. Ejemplo 5.5 Para una mejor explicación, se tomarán los datos de Variceal Pressures que se encuentran en la página 156, tablas 4.1 y 4.2 del libro Linear Mixed Models in Practice. Estos datos muestran medidas de la presión sanguínea en las varices para 17 individuos, y sobre la base de tal medición se intenta determinar si existe riesgo de sangramiento. A continuación se muestra una parte de estos datos: +----------------------------------------+ id tiempo presion grupo ---------------------------------------- 1. 1 0 11.6 0:Placebo 2. 1.5 11.1 0:Placebo 3. 1 1 11.3 0:Placebo 4. 1 1.5 11.4 0:Placebo 5. 1 2 11 0:Placebo ---------------------------------------- 6. 1 2.5 11.5 0:Placebo 7. 1 3 12.3 0:Placebo 8. 1 3.5 12 0:Placebo 9. 1 4 13.2 0:Placebo 10. 1 4.5 13.6 0:Placebo ---------------------------------------- 11. 1 5 13.5 0:Placebo 12. 1 5.5 14 0:Placebo 13. 1 6 13.8 0:Placebo 14. 2 0 22.5 0:Placebo 15. 2.5 22.6 0:Placebo ---------------------------------------- 16. 2 1 23.1 0:Placebo 17. 2 1.5 23.5 0:Placebo 18. 2 2 23.9 0:Placebo 19. 2 2.5 23.8 0:Placebo 20. 2 3 24.2 0:Placebo ---------------------------------------- Se puede notar que se tienen cuatro variables: id, tiempo, presión y grupo. La variable id es indicadora y muestra cuántas mediciones fueron tomadas para cada individuo (por ejemplo, el individuo 1 tiene 13 mediciones). La variable tiempo muestra el tiempo en que se realizaron dichas mediciones, la variable presión muestra el resultado de cada medición y por último la variable grupo muestra si el individuo pertenece al grupo de placebos o al grupo tratado con terlipressin. Ya que para cada individuo existen distintos números de mediciones a lo largo del tiempo establecido (8 minutos) puede ser de interés ver gráficamente el comportamiento de estas mediciones 51

5.3. GRÁFICOS PARA DATOS LONGITUDINALES para cada individuo con respecto al tiempo y al total del grupo. Para esto se debe seguir la siguiente secuencia: twoway scatter presion tiempo, by(id, total) mfcolor (gs13) mlcolor(gs0) Figura 5.8: Comportamiento de las mediciones para los 17 individuos. La figura 5.8 muestra el gráfico generado; para poder analizarlo hay que destacar que los individuos desde el 1 al 9 pertenecen al grupo de placebos, y el resto al grupo tratado con terlipressin. Se puede observar para los individuos del grupo placebo que las mediciones realizadas presentan una leve pendiente positiva, es decir, en la mayoría de los casos las mediciones tienen una pequeña alza o bien se mantienen casi constantes. Para los individuos del grupo tratado con terlipressin se puede observar que la pendiente de las mediciones es negativa para la mayoría de los casos, lo que podría estar indicando que el tratamiento causa una disminución en la presión de las varices. Para ver la situación anterior de una manera más clara, se realizará un gráfico que permitirá ver el tipo de pendiente e intercepto de cada uno de los individuos. Para ello, se utilizará el comando statsby como se muestra a continuación: egen num=count (presion), by(tiempo) statsby inter=_b[_cons] pend=_b[tiempo], by(id) clear: regress presion tiempo La salida entregada por Stata es: (running regress on estimation sample) command: inter: pend: regress presion tiempo _b[_cons] _b[tiempo] 52

CAPíTULO 5: NOCIONES GENERALES DE GRÁFICOS EN STATA by: id Statsby groups ----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5... Luego, tomando como base lo entregado por Stata, el gráfico para identificar la pendiente y el intercepto para cada individuo está diseñado de la siguiente manera: graph twoway scatter pend inter, xtitle(intercepto) ytitle(pendiente) mlabel(id) mlabsize(tiny) msize(small) yline(0) El gráfico resultante se muestra en la figura 5.9. Figura 5.9: Gráfico intercepto vs pendiente. En la Figura 5.9 se observa que el gráfico es cortado por una línea roja, la cual identifica el lugar en donde no existe pendiente, es decir, donde la pendiente es igual a cero. Los puntos que se encuentran por sobre la línea roja indican que los interceptos para las mediciones de esos individuos en particular tienen una pendiente positiva, los que en su mayoría pertenecen al grupo de placebos. Mientras que los puntos que se encuentran por debajo de la línea roja indican que los interceptos para las mediciones de esos individuos en particular tienen pendiente negativa y corresponden en su mayoría a los individuos tratados con terlipressin. Ahora, al realizar un summarize (basta tipear sum)para el intercepto y la pendiente, se tiene la siguiente tabla: sum inter pend Variable Obs Mean Std. Dev. Min Max ---------+-------------------------------------------------------- 53

5.4. HISTOGRAMAS inter 17 21.25257 7.494384 10.74835 31.59556 pend 17 -.8065553 1.39126-3.660606 1.286667 Al ver la tabla entregada por Stata, se puede notar que la media de las pendientes es negativa (-0,806), lo que entrega un indicio de que hay una tendencia a pendientes negativas. Ahora, para finalizar con el ejemplo, se realizarán estimaciones de rectas para cada uno de los casos. Para esto se tiene la siguiente secuencia: 1. Al momento de determinar el intercepto y la pendiente la base de datos sólo quedó con id, intercepto y pendiente como variables, por lo que es necesario concatenar esta base de datos con la base original tomando como referencia la variable id. 2. El siguiente paso es generar las ecuaciones de predicción estimadas: gen pred=inter+pend*tiempo sort id tiempo 3. Para finalizar se tiene el gráfico con las ecuaciones de predicción estimadas (Figura 5.10): graph twoway (line pred tiempo, connect(ascending)), \* *\ xtitle(tiempo(minutos)) \* *\ ytitle(ecuaciones de rectas estimadas) Figura 5.10: Ecuaciones de rectas estimadas. 5.4. Histogramas El histograma (help histogram) de un conjunto de datos es un gráfico de barras que representan las frecuencias con que aparecen las mediciones agrupadas en ciertos rangos o intervalos. La sintaxis para este tipo de gráfico es: 54

CAPíTULO 5: NOCIONES GENERALES DE GRÁFICOS EN STATA histogram varname [if] [in] [weight] [, [continuous_opts discrete_opts], [options] Hay que destacar que para hacer un histograma en Stata hay que hacer la distinción entre un conjunto de datos con variables discretas o un conjunto con variables continuas. Ejemplo 5.6 Se ocuparán nuevamente los datos que corresponden a un estudio realizado en Estados Unidos a mujeres embarazadas, durante los años 1960 y 1967, estudio que se realizó con el fin de observar si el tabaco afecta negativamente a los recién nacidos. Entonces, se hará un histograma de la variable peso al nacer en kilogramos: histogram p_nac_kg Luego de ejecutar la secuencia anterior, Stata además de entregar el gráfico (figura 5.11(a)) entrega la siguiente información: (bin=7, start=1.559224, width=.36044388) Lo que indica que el gráfico consta de 7 bines (barras), 1,55 es el mínimo valor teórico y que cada bin tiene un ancho de 0,36 unidades. (a) Frecuencia relativa (b) Frecuencia absoluta Figura 5.11: Histograma variable peso al nacer. Ahora, si prefiere que en el eje y aparezca la frecuencia: histogram p_nac_kg, frequency Con esto, se tiene la figura 5.11(b). Para el último ejemplo, suponga que se quiere crear un histograma que identifique tanto la media como la desviación estándar, para esto primero se hace un summarize de la variable peso al nacer: 55

5.4. HISTOGRAMAS Variable Obs Mean Std. Dev. Min Max -----------+-------------------------------------------------------- p_nac_kg 59 2.752306.6358634 1.559224 4.082331 Entonces, conociendo tanto la media como la desviación estándar se tiene la siguiente secuencia: histogram p_nac_kg, freq xaxis(1 2) ylabel(0(10)60, grid) xlabel(2.752306 "mean" 2.1164426 "-1 s.d." 3.3881694 "+1 s.d.", axis(2) grid gmax)xtitle("", axis(2))subtitle("ultimo ejemplo") note("grafico con la media y s.d") Con esto, gráficamente se obtiene el resultado enseñado en la figura 5.12(a). (a) Histograma variable peso al nacer. (b) Ajuste de la curva normal. Figura 5.12: Histograma y normalidad. Como se puede ver en la figura 5.12(a), se destacan claramente la media, -1 s.d (media - desv. est) y +1 s.d (media + desv. est). Luego, para ajustar una curva normal a los datos del histograma hay que agregar en la secuencia anterior la palabra normal después de freq. En la figura 5.12(b) se puede ver el ajuste de la curva normal de color verde. 56

Capítulo 6 Limpieza y análisis de datos 6.1. Procedimiento de limpieza de una base de datos en Stata En estadística la limpieza de datos es algo fundamental para realizar cualquier análisis. Esto se explicará con detalles en el capítulo 7 (página 69). En este capítulo, se quiere motivar y desarrollar el tópico; se presentará una idea a través de un ejemplo. Ejemplo 6.1 La siguiente base de datos corresponde a un estudio realizado en Estados Unidos en un grupo de mujeres embarazas entre las cuales algunas fumaban y otras no, durante los años 1960 y 1967. Esto se realizó con el fin de observar si el tabaco afecta negativamente a los recién nacidos. Esta base de datos se encuentra disponible en: http://www.stat.berkeley.edu/users/statlabs/data/babies.data En este sitio (http://www.stat.berkeley.edu/users/statlabs/data) aparece una breve descripción de las variables en la unidades típicamente usadas por los norteamericanos. De ahí en forma natural se utilizaron los siguientes procedimientos: 1. Cambio de nombre a las variables. 2. Codificación de algunos valores (99, 999). 3. Cambio de unidades de medición. Se utilizaron las siguientes unidades de medida. a) 1 onza = 0,0283495 kg b) 1 semana = 7 días c) 1 mes = 4 semanas d) 1 pulgada = 0,0254 metros e) 1 libra = 0,0453592 kg 4. Se realiza un chequeo para ver si existen datos anómalos, o si existen valores perdidos 5. Como existen valores perdidos en algunas variables y datos anómalos en otras, se convierten por valores correctos. 57

6.1. PROCEDIMIENTO DE LIMPIEZA DE UNA BASE DE DATOS EN STATA 6. La base de datos está limpia. 7. Se realiza un análisis estadístico a las variables para ver qué efecto tiene el fumar durante el embarazo sobre los recién nacidos. 8. Este análisis se ve mediante tablas. 9. Gráficos. Éstos se pueden observar en el capítulo 5 de gráficos (página 43). El procedimiento en Stata es el siguiente: clear all insheet using "C:\Documents and Settings\Katherine Rojas\Escritorio\ willimas\base_manual.csv", delimiter(";") /* cambio de nombre a las variables */ /* pesos del recien nacido en onzas */ rename bwt p\_nac\_onzas /* longitud del embarazo en dias */ rename gestation gestación rename parity paridad /* edad madre en años */ rename age e\_m\_años /* altura madre en pulgadas */ rename height a\_m\_pulgadas /* peso madre durante el embarazo en libras */ rename weight p\_m\_p\_libras /* se realiza un chequeo a las variables */ codebook p_nac_onzas gestación e_m_años a_m_pulgadas p_m_p_libras smoke /* como existen valores desconocidos se reemplaza por un valor especifico, en este caso por un ".", estas variables son gestación, e_m_años, a_m_pulgadas p_m_p_libras, smoke */ replace gestación=. if gestación==999 replace e\_m\_años=. if e\_m\_años==99 replace a\_m\_pulgadas=. if a\_m\_pulgadas==99 replace p\_m\_p\_libras=.if p\_m\_p\_libras==999 replace smoke=. if smoke==9 58

CAPíTULO 6: LIMPIEZA Y ANÁLISIS DE DATOS /* comprobar si existen valores desconocidos */ codebook p_nac_onzas gestación e_m_años a_m_pulgadas p_m_p_libras smoke /* cambio de unidades, para esto se generan nuevas variables */ gen p\_nac\_kg=p\_nac\_onzas*0.02834952 gen gest\_semanas=gestación/7 gen a\_m\_metros=a\_m\_pulgadas*0.0254 gen p\_m\_p\_kg=p\_m\_p\_libras*0.4535924 /* otro chequeo */ codebook p_nac_kg gest_semanas e_m_años a_m_metros p_m_p_kg smoke /* se crea la variables meses */ gen meses=gest\_semanas/4 /* se realiza un conteo de cuantas mujeres, se existen con más de 9 y 9.2 meses de embarazo */ count if meses > 9 count if meses > 9.2 /* existe un problema con la base de datos */ /* ya ques la longitud de embarazo de las mujeres */ /* y hay de más de 1172 con 9 mesess de embarazo*/ count if meses < 9 /* se trabaja con las variable que quedan limpias */ /* el comando para esto es:*/ keep if meses < 9 keep smoke p_nac_kg gest_semanas /* */ a_m_metros p_m_p_kg meses e_m_años /* Se crea una variable indicadora */ gen id=\_n /* Se etiquetan las variables */ label data "Datos Consecuencia del cigarrillo durante el embarazo" label variable meses "meses" label variable p_nac_kg "Peso al nacer en kilogramo" label variable gest_semanas "tiempo de gestacion del bebe" label variable e_m_años "edad madre en años" 59

6.2. ANÁLISIS ESTADíSTICO MEDIANTE TABLAS label variable a_m_metros "altura madre en metros" label variable p_m_p_kg "Peso madre durante el embarazo en kilogramos" label variable smoke "fuma" label define codfuma 1 "1:si" 0 "0:no" label values smoke codfuma Hay que dejar claro que esta base de datos, fue un estudio realizado en Estados Unidos durante los años 1960 y 1967, la cual se encuentra disponible en internet, pero no está del todo correcta ya que existen varios problemas como: mujeres con más de nueve meses de embarazo, por lo cual se llevó un proceso de limpieza y los problemas que se presentaron durante este proceso fueron los siguientes: 1. Cambio de nombre a las variables. 2. Datos desconocidos o faltantes 3. Cambio de unidades de medidas 4. Mujeres con más de nueve meses de embarazo. 6.2. Análisis estadístico mediante tablas Las tablas son una herramienta clave para resumir la información o dar respuestas claras y correctas a los estudios, por ejemplo: se quiere saber cuántos niños están con bajo peso al nacer y si sus madres fuman, esta información se puede obtener de manera correcta y clara mediante una tabla de doble entrada. Para este efecto, se tiene la siguiente tabla. by smoke: sum smoke meses p_m_p_kg a_m_metros p_nac_kg, f -> smoke = 0 Variable Obs Mean Std. Dev. Min Max -------------+---------------------------------------------------- smoke 34 0 0 0 0 meses 34 8.426471.7486817 5.285714 8.964286 p_m_p_kg 34 60.40778 11.37875 43.99842 95.25432 a_m_metros 34 1.621865.069387 1.4732 1.778 p_nac_kg 34 2.926671.681678 1.559224 4.082331 -> smoke = 1 Variable Obs Mean Std. Dev. Min Max ------------+----------------------------------------------------- 60

CAPíTULO 6: LIMPIEZA Y ANÁLISIS DE DATOS smoke 25 1 0 1 1 meses 25 8.592857.2879378 7.964286 8.964286 p_m_p_kg 25 56.42684 8.140471 44.45201 77.11064 a_m_metros 25 1.618488.0628703 1.4478 1.7272 p_nac_kg 25 2.515169.4863354 1.644272 3.600389 Observación 6.1 Estas variables se encuentran sin formato, pero están etiquetadas. Se puede ver que las variables tienen 6 decimales, lo que a veces trae más de algún problema en cuanto a legibilidad. Es por eso que antes de seguir creando más tablas, se modifica la presentación de los resultados numéricos, fijando el número de decimales, sin perder la precisión interna de los respectivos valores de las variables. Stata dispone de varios tipos de formato los que pueden modificarse. El formato de variables numéricas tiene la siguiente estructura: format %w.dg : w indica el ancho, d el número de decimales y g tipo de formato por defecto. format %w.df : w y d como antes, f indica que el número de decimales es fijo. format %w.de : w y d como antes, e indica presentación en notación científica (exponentes). Para realizar estas tablas se ocuparon los siguientes comandos. tabulate: Cuenta el número de observaciones en las diversas categorías de una variable categórica o discreta. Su sintaxis es: [by variable:] tabulate [variable][if expresión][in rango] [,missing nofreq nolabel] También se pueden obtener tablas de frecuencia univariantes, pueden obtenerse medias y desviaciones estándar de otra variable. La sintaxis del comando es: [by variable:] tabulate variable 1 [variable 2][if expresion][in rango], summarize(variable 3) [[no]means [no]standar [no]freq [no]obs [no]label missing] Las opciones producen los siguientes resultados: missing : Los datos faltantes son tabulados como otros. nofreq : Suprime la impresión de frecuencias. nolabel : Se usan los valores númericos y no los rótulos de las observaciones. 61

6.2. ANÁLISIS ESTADíSTICO MEDIANTE TABLAS Si no indica la supresión de una alternativa, Stata entrega media, desviación estándar y frecuencias para las diversas categorías de la tabulación. Para obtener tablas bivariadas se puede usar el comando tab2 El procedimiento del análisis mediante tablas en Stata es el siguiente: /* ANALISIS */ /* contar cuantos niños hay bajo peso */ count if p_nac_kg < 90*0.02834952 /* fijar el numero de decimales */ /* para presentacion en tablas */ sort smoke format p_m_p_kg %9.2f format a_m_metros %9.2f format p_nac_kg %9.2f format meses %9.2f format gest_semanas %9.2f tabulate smoke tab meses, summ (p_nac_kg) means freq /* tabla de medias, desviaciones desviaciones estandar */ /* maximo y minimos sin resticciones, para meses */ by smoke: sum smoke meses p_m_p_kg a_m_metros p_nac_kg,f /* tabla de medias, desviaciones desviaciones estandar */ /* maximo y minimos sin resticciones, para semanas de gestación */ by smoke: sum smoke gest_semanas p_m_p_kg a_m_metros p_nac_kg, f /* tabla de medias, desviaciones desviaciones estandar */ /* maximo y minimos, con respecto al nacimiento */ /* bajo peso con respesto a meses */ by smoke: sum smoke meses p_m_p_kg a_m_metros p_nac_kg if p_nac_kg < 90*0.02834952, f /* tabla de medias, desviaciones desviaciones estandar */ /* maximo y minimos sin resticciones con respesto */ /* a semanas gestadas */ 62

CAPíTULO 6: LIMPIEZA Y ANÁLISIS DE DATOS by smoke: sum smoke gest_semanas p_m_p_kg a_m_metros p_nac_kg if p_nac_kg < 90*0.02834952, f /* tabla multivariada con respecto */ /* a niño que nacen antes de 7 meses */ tab smoke p_nac_kg if meses < 7 tab2 smoke p_nac_kg e_m_años if meses < 7 /* tabla multivarada con respecto */ /* a niño que nacen bajo peso antes de 28 semanas */ tab smoke p_nac_kg if gest_semanas < 28 tab2 smoke p_nac_kg e_m_años if gest_semanas < 28 /* tabla con respecto al peso medio de los niños */ tabulate smoke e_m_años, summ (p_nac_kg) means Las salidas para las tablas en Stata son las siguientes: tabulate smoke fuma Freq. Percent Cum. ------------+----------------------------------- 0:no 34 57.63 57.63 1:si 25 42.37 100.00 ------------+----------------------------------- Total 59 100.00 Acá se observa que más del 57 % de las madre no fuma, que equivale a 34 mujeres de las 59 que quedaron después de limpiar la base de datos. tab meses, summ (p_nac_kg) means freq Summary of Peso al nacer en kilogramo meses Mean Freq. ------------+------------------------ 5.29 3.29 1 6.46 3.12 1 7.29 1.56 1 7.96 1.93 1 8.00 2.61 1 8.04 3.16 2 8.14 1.76 1 8.18 2.47 1 8.29 1.98 3 63

6.2. ANÁLISIS ESTADíSTICO MEDIANTE TABLAS 8.32 2.98 1 8.36 2.39 3 8.39 3.66 1 8.43 1.79 1 8.46 2.03 2 8.50 2.30 3 8.54 2.13 1 8.57 2.92 1 8.61 3.18 2 8.64 3.02 2 8.68 2.83 1 8.71 3.35 3 8.75 2.72 4 8.79 2.92 6 8.82 2.73 3 8.86 3.04 3 8.89 2.79 4 8.93 2.97 3 8.96 3.59 3 ------------+------------------------ Total 2.75 59 Esta tabla indica la frecuencia del peso al nacer con respecto al tiempo de embarazo de la madre (tiempo de embarazo en meses). by smoke: sum smoke meses p_m_p_kg a_m_metros p_nac_kg, f ------------------------------------------------------------------ -> smoke = 0:no Variable Obs Mean Std. Dev. Min Max -------------+---------------------------------------------------- smoke 34 0 0 0 0 meses 34 8.43 0.75 5.29 8.96 p_m_p_kg 34 60.41 11.38 44.00 95.25 a_m_metros 34 1.62 0.07 1.47 1.78 p_nac_kg 34 2.93 0.68 1.56 4.08 ------------------------------------------------------------------ -> smoke = 1:si Variable Obs Mean Std. Dev. Min Max -------------+---------------------------------------------------- smoke 25 1 0 1 1 meses 25 8.59 0.29 7.96 8.96 64

CAPíTULO 6: LIMPIEZA Y ANÁLISIS DE DATOS p_m_p_kg 25 56.43 8.14 44.45 77.11 a_m_metros 25 1.62 0.06 1.45 1.73 p_nac_kg 25 2.52 0.49 1.64 3.60 Acá se hacen varias observaciones, ya que hay dos tablas, estas son: Observación 6.2 El peso promedio de los bebés al nacer de madres que fuman es menor al peso promedio de los bebés al nacer de madres que no fuman. Observación 6.3 El peso promedio de las madres que fuman es más bajo que el peso promedio de las madres que no fuman. Observación 6.4 La cantidad de meses de gestación en las madres que fuman son más largos, en promedio, al número de meses de gestación en las madres que no fuman. Observación 6.5 La altura promedio de las madres es la misma tanto para las madres que fuman como para las que no fuman. by smoke: sum smoke gest_semanas p_m_p_kg a_m_metros p_nac_kg, f ------------------------------------------------------------------ -> smoke = 0:no Variable Obs Mean Std. Dev. Min Max -------------+----------------------------------------------------- smoke 34 0 0 0 0 gest_semanas 34 33.71 2.99 21.14 35.86 p_m_p_kg 34 60.41 11.38 44.00 95.25 a_m_metros 34 1.62 0.07 1.47 1.78 p_nac_kg 34 2.93 0.68 1.56 4.08 ------------------------------------------------------------------- -> smoke = 1:si Variable Obs Mean Std. Dev. Min Max -------------+------------------------------------------------------ smoke 25 1 0 1 1 gest_semanas 25 34.37 1.15 31.86 35.86 p_m_p_kg 25 56.43 8.14 44.45 77.11 a_m_metros 25 1.62 0.06 1.45 1.73 p_nac_kg 25 2.52 0.49 1.64 3.60 Acá se hacen varias observaciones, ya que hay dos tablas, algunas de ellas son: Observación 6.6 La cantidad de semanas de gestación es menor, en promedio, en las madres que no fuman. 65

6.2. ANÁLISIS ESTADíSTICO MEDIANTE TABLAS Observación 6.7 El peso promedio de los bebés al nacer de madres que fuman es menor al peso promedio de los bebés al nacer de las madres que no fuman. Observación 6.8 El peso promedio de las madres que fuman es más bajo al peso promedio de las madres que no fuman. by smoke: sum smoke gest_semanas p_m_p_kg a_m_metros p_nac_kg if p_nac_kg < 90*0.02834952, f --------------------------------------------------------- -> smoke = 0:no Variable Obs Mean Std. Dev. Min Max -------------+------------------------------------------- smoke 9 0 0 0 0 gest_semanas 9 32.94 1.51 29.14 34.00 p_m_p_kg 9 57.15 7.42 44.91 65.32 a_m_metros 9 1.60 0.08 1.47 1.70 p_nac_kg 9 2.08 0.35 1.56 2.52 --------------------------------------------------------- -> smoke = 1:si Variable Obs Mean Std. Dev. Min Max -------------+-------------------------------------------- smoke 13 1 0 1 1 gest_semanas 13 34.19 1.08 31.86 35.43 p_m_p_kg 13 55.93 7.42 46.72 70.76 a_m_metros 13 1.63 0.05 1.50 1.70 p_nac_kg 13 2.14 0.26 1.64 2.47 Acá se ve que no hay una diferencia con las observaciones anteriores aunque los bebés estén con bajo peso al nacer. tab smoke p_nac_kg if meses < 7 Peso al nacer en kilogramo fuma 3.12 3.29 Total -----------+----------------------+---------- 0:no 1 1 2 -----------+----------------------+---------- Total 1 1 2 66

CAPíTULO 6: LIMPIEZA Y ANÁLISIS DE DATOS Se ve claramente que existen dos niños que nacen antes de los 7 meses y ambas madres no fuman, además de obtener el peso promedio de cada niño. tabulate smoke e_m_años, summ (p_nac_kg) means Means of Peso al nacer en kilogramo edad madre en años fuma 17 18 19 20 21 Total -------+---------------------------------+---------- 0:no 3.63. 3.69 3.03 3.60 2.93 1:si 3.60 2.52 2.91 2.44 3.09 2.52 -------+---------------------------------+---------- Total 3.61 2.52 3.17 2.74 3.35 2.75 edad madre en años fuma 23 24 25 26 27 Total -------+---------------------------------+---------- 0:no 2.98 2.51. 2.75 2.79 2.93 1:si 2.66 1.84 2.44 2.68. 2.52 -------+---------------------------------+---------- Total 2.77 2.38 2.44 2.73 2.79 2.75 edad madre en años fuma 28 30 31 32 33 Total -------+---------------------------------+---------- 0:no 3.64 4.08 1.84. 2.73 2.93 1:si.. 2.38 1.97 2.64 2.52 -------+---------------------------------+---------- Total 3.64 4.08 2.20 1.97 2.72 2.75 edad madre en años fuma 34 35 36 37 38 Total -------+---------------------------------+---------- 0:no 3.08 2.18. 2.69. 2.93 1:si 1.64. 2.13 2.47 2.18 2.52 -------+---------------------------------+---------- Total 2.60 2.18 2.13 2.62 2.18 2.75 edad madre en años fuma 39 40 Total 67

6.2. ANÁLISIS ESTADíSTICO MEDIANTE TABLAS -------+----------------------+---------- 0:no. 2.92 2.93 1:si 2.83. 2.52 -------+----------------------+---------- Total 2.83 2.92 2.75 Estas tablas se presentan sólo con fines de mostrar que también es posible usar procedimientos básicos para detectar dificultades en las bases de datos. 68

Capítulo 7 Administración de datos Nunca dé por hecho que las observaciones que conforman una base de datos están libres de errores. Si toma en cuenta esta afirmación y la considera en cada uno de sus proyectos Ud. disminuirá los denominados errores que suelen descubrirse en etapas avanzadas de los análisis. Así al limpiar los datos de errores en las etapas preliminares, los análisis que Ud. realice en sus datos serán válidos y a la vez será altamente probable que no contengan errores. El chequear la consistencia de los datos debiera ser una tarea tan primordial como rutinaria para todos los que estén involucrados con el uso de datos en estudio. Se debe tener claridad cómo opera el sistema computacional escogido con los valores perdidos. El observar los datos en planillas de cálculos ordenados por filas y columnas no es garantía que estén sin errores. Existe una gran gama de errores. Estos pueden ser de tipo sistemático producto de la etiqueta que se usó para estandarizar parte o la totalidad de los mismos; no sistemáticos o esporádicos que se producen al tipear incorrectamente un registro. Estos últimos pueden llegar a ser más complicados de detectar. Por ejemplo, si un alumno de primer año es ingresado como de 91 años en vez de 19, es fácil de ver. Sin embargo en vez de 19 se tipea 21; puede ser prácticamente imposible de chequear si es incorrecto o no, etc. 7.1. Errores sistemáticos Como su nombre indica, no son debidos al azar o a causas no controlables. Pueden surgir de emplear un método inadecuado, un instrumento defectuoso o bien por usarlo en condiciones para las que no estaba previsto su uso. Por ejemplo, emplear una regla metálica a una temperatura muy alta, puede introducir un error sistemático si la dilatación del material hace que su longitud sea mayor que la nominal. En este caso, todas las medidas pecarán (sistemáticamente) por defecto. El error podría evitarse eligiendo un material de coeficiente de dilatación bajo o controlando la temperatura a la que se mide. Medir temperaturas con un termómetro graduado en grados Fahrenheit, suponiendo por equivocación que está graduado en grados Celsius, introduce también un error sistemático al registro. El error se evita en este caso recabando información sobre la escala del termómetro. 69

7.2. VALORES PERDIDOS Otro ejemplo. Suponga que se quiere estudiar la procedencia según la región de un grupo de alumnos, suponga además que no se establece para lo digitadores algún procedimiento de digitación para los valores de la variable región (de procedencia). Así, algunos pueden digitar las regiones de distintas formas estas pueden ser: 1, 2, 3,..., 12 y 13, otros como primera, segunda, tercera,...,duodécima y R M, ó I, II, III,..., XII, R M. Se debe tener presente cómo el Software trata esta situación, ya que si se coloca 13 como región metropolitana La variable de procedencia quedará como numérica, pero si se coloca como R M la variable quedará como caracter, lo cual para realizar cualquier análisis estadístico, como obtener media, varianza, etc. no se podrá realizar. Los errores sistemáticos no son objeto de la teoría de errores. Realmente son equivocaciones que pueden y deben evitarse, empleando métodos e instrumentos de medida correctos y adecuados a los fines que se deseen obtener. 7.2. Valores perdidos En Stata los valores perdidos se muestran como. (periodo) cuando las variables son numéricas o con espacios en blanco cuando las variables son categóricas. Esta entrada se crea cuando un campo numérico está vacío, o son de un valor numérico muy alto. A continuación se ejemplificará el tipo de error más frecuente que se comete al momento de traspasar una base de datos a Stata. Ejemplo 7.1 Se tiene la siguiente base de datos. Nombre edad peso Carlos 26 58,3 Alberto 25 60,5 Alejandro 20 67,9 Alison 21 57,1 Cuadro 7.1: Base de datos 1 Al reconocer en Stata sólo una variable que fue creada en Excel, se tiene: list edad +------+ edad ------ 1.. 2. 25 3. 20 70

CAPíTULO 7: ADMINISTRACIÓN DE DATOS 4. 21 +------+ Se observa que existe un valor perdido. Al realizar un listado de las personas mayores de 20 años, se obtiene: list edad if edad > 20 +------+ edad ------ 1.. 2. 25 4. 21 +------+ La salida de Stata muestra que existen 2 personas mayores de 20 años, si observa el cuadro 7.1 existen 4 personas mayores de 20 años, si estos datos se llevan a un análisis se estarán cometiendo graves errores. Por ejemplo. Obtener una estadística descriptiva de las edades, Stata entrega lo siguiente: Variable Obs Mean Std. Dev. Min Max -------------+-------------------------------------------------------- edad 3 22 2.645751 20 25 Acá se observa que la media es 22 y el máximo es 25, desde el cuadro 7.1 se puede ver que esto no es así, ya que la media es 23 y el máximo es 26. Es por esto y muchos otros casos, que se debe tener mucho cuidado con la manipulación y el trabajo que se realiza con los datos cuando existan valores perdidos. 7.3. Traspaso de información Uno de los errores más comunes se produce en el traspaso de datos a Stata. Para este efecto se utilizará la misma base de datos. Una vez pasados los datos de la Tabla 7.1 a Stata, lo primero que se sugiere hacer para verificar si los datos están correctamente ingresados es hacer uso de los siguientes comandos: codebook,summarize En el ejemplo se tiene: codebook edad peso La salida generada en Stata por el comando codebook es la siguiente: --------------------------------------------------------------------- edad (unlabeled) --------------------------------------------------------------------- type: numeric (byte) 71

7.3. TRASPASO DE INFORMACIÓN range: [20,26] units: 1 unique values: 4 missing.: 0/4 tabulation: Freq. Value 1 20 1 21 1 25 1 26 --------------------------------------------------------------------- peso (unlabeled) --------------------------------------------------------------------- type: string (str4) unique values: 4 missing "": 0/4 tabulation: Freq. Value 1 "57,1" 1 "58,3" 1 "60,5" 1 "67,9" En esta salida se observa que la variable peso es erróneamente reconocida como de tipo string. Aun más, si se realiza summarize a las variables peso y edad, para este ejemplo se tiene: sum peso. La salida generada por Stata del comando summarize es la siguiente: sum edad peso Variable Obs Mean Std. Dev. Min Max -------------+----------------------------------------------------- edad 4 23 2.94392 20 26 peso 0 7.3.1. Cómo solucionar este problema? Para esto se deben tener en cuenta los siguientes comandos: enconde y decode. encode : Permite transformar variables alfa-numéricas (como nombre, caracteres, etc.) en numéricas, su sintaxis es: encode varname [if expression] [in rang], generate(newvar) [label(name)] decode : generate () : No es opcional. Especifica el nombre de la variable que se creará. label () : Es opcional. Especifica el nombre de los rótulos que se crearán o se emplearán si ya existen. Si se escribe: encode peso, generate(pesova), se creará la variable pesova con los valores numéricos. 72

CAPíTULO 7: ADMINISTRACIÓN DE DATOS Por otra parte al escribir: encode peso, generate(pesoval) label(codval), se creará la variable pesoval con los valores numéricos que se almacenan como variable de rótulos con nombre codval. Para verificar esto se usa un codebook, la salida computacional es la siguiente. codebook edad pesova --------------------------------------------------------------------- edad (unlabeled) --------------------------------------------------------------------- type: numeric (byte) range: [20,26] units: 1 unique values: 4 missing.: 0/4 tabulation: Freq. Value 1 20 1 21 1 25 1 26 --------------------------------------------------------------------- pesova (unlabeled) --------------------------------------------------------------------- type: numeric (long) label: pesova range: [1,4] units: 1 unique values: 4 missing.: 0/4 tabulation: Freq. Numeric Label 1 1 57,1 1 2 58,3 1 3 60,5 1 4 67,9 Acá se puede observar que la variable pesoval es de tipo numérica y contiene los mismos valores numéricos que la variable peso. 7.4. Errores no sistemáticos Estos son los errores más difícil de detectar, es cuando a una variable en particular se le ha asignado erróneamente un valor que no le corresponde. Ejemplo 7.2 Cuando se tiene una variable genero, codificada con 1 para hombre y 0 para mujer, estarán bien los posibles registros si se han ingresado, supuestamente, sólo 0 y 1 a la variable genero. Cómo lograr detectar el que un hombre haya sido codificado por 0 o que mujeres hayan sido codificadas por 1? Este error de ingreso de datos sólo podría ser detectado a través del cruce con otra(s) variable(s). Una forma de detectar si están bien ingresados los datos, es realizar un análisis 73

7.4. ERRORES NO SISTEMÁTICOS de esta variable con respecto a una que registra datos exclusivamente para mujeres o exclusivamente para hombres. Específicamente, si se relaciona la variable género con la variable marca t h que registra la marca preferida de toallas higiénicas, se debe realizar un listado de todos los hombres que indican una preferencia de marca. Ante lo cual surgen dos alternativas: tales hombres realmente eran mujeres, o bien habrán sido datos falseados por los encuestadores? Así puede percatarse que tiene un 1 en vez de 0. Para visualizar como solucionar este problema, se presentan los siguientes datos: observación género marca t h 1 0 A 2 0 B 3 0 C 4 1 A 5 1 6 0 A 7 0 C 8 1 9 0 B Cuadro 7.2: Preferencia de marca de toalla higiénica Acá se observa que en la observación número 4, la variable género es 1 (hombre) tiene una marca de tipo A. Para realizar esta operación se utiliza el comando browse, éste permite mostrar sólo las variables que se quiere observar. Si se quiere ver exclusivamente las variables genero y marca t h se debe escribir: br genero marca t h Para solucionar este problema existen varias alternativas: La primera es verificar si el valor 1 realmente es un hombre, la segunda es verificar si ese valor de la variable marca t h realmente debiera estar, es decir, habrá sido un error de digitación?, habrán falseados los datos? Por ello hay que tener bastante cuidado cuando se realiza una limpieza de datos. Observación 7.1 Cuando existen muchas observaciones es recomendable utilizar el comando list con sus respectiva restricciones, para éste caso sería de la siguiente forma: list genero marca\_t\_h if genero == "1" Esto sólo mostrará las variables genero y marca t h que cumplan la condición que la variable genero sea igual a 1. 74

CAPíTULO 7: ADMINISTRACIÓN DE DATOS 7.5. Datos faltantes Otro problema que puede ocurrir es sobre los datos faltantes y éstos pueden ocurrir de las siguientes maneras: periodos, ausencia de códigos o espacios en blanco. 7.5.1. Periodos Stata suele representar al valor faltante introduciéndolo como missing (valor perdido) en el lugar que correspondería al valor de la variable. Ejemplo 7.3 Suponga que se tiene un grupo de personas a las que se les registró su nombre, edad y peso. Si no se tuviera la edad de Carlos, en Stata se representaría como un missing en el lugar en el que debiera ir el dato de su edad. Es decir, Stata lo tomaría como se indica en la Figura 7.1. Figura 7.1: Muestra de valores perdidos Si realiza un codebook a la variable edad se obtiene lo siguiente. ------------------------------------------------------------------- edad (unlabeled) ------------------------------------------------------------------- type: numeric (byte) range: [20,25] units: 1 unique values: 3 missing.: 1/4 tabulation: Freq. Value 1 20 75

7.5. DATOS FALTANTES 1 21 1 25 1. Se observa que existe un missing, pero para Stata los missing, aparte de tomarlos como valores perdidos, son valores numéricos grandes con formato de.. Esto implica que el programa no incluirá a Carlos en los cálculos o procedimientos de la variable edad. 7.5.2. Códigos de valor faltante o espacios en blanco: Lo más común es asignar un valor negativo o positivo específico a la variable, cuando el verdadero valor falta. Por ejemplo: la edad debe ser un valor positivo, se puede asignar el valor -1. Existen dos formas de convertir un código de valor faltante. La más común es mediante el comando replace. Los datos aparecerán tal y como se muestra en la figura 7.2: Figura 7.2: Reemplazando un valor faltante por -1 El comando replace indica a Stata que sustituya los valores de la variable edad con la representación del valor faltante en aquellos casos en los que edad sea igual a -1. Esta técnica resulta tediosa si se tiene un gran número de variables en las que faltan el mismo código de valor. Stata dispone de un comando, mvencode, que convierte los valores faltantes de las variables edad y peso. Se podría introducir un único comando para acomodar los valores que faltan: mvencode edad pesova (-1) Los datos aparecen de la forma mostrada en la figura 7.3: 76

CAPíTULO 7: ADMINISTRACIÓN DE DATOS Figura 7.3: Reemplazo de los valores perdidos Observación 7.2 Este comando sólo resulta si las variables son numéricas. Observación 7.3 Existe una limitación en este comando, es que sólo funciona cuando las variables en cuestión usan un mismo código de valor faltante. En encuestas, los investigadores suelen emplear distintos códigos para indicar los distintos motivos por los que no existe un valor. En estos casos resulta más conveniente crear una nueva variable con generate y realizar el reemplazo de los valores, este reemplazo se hace con el comando replace. 77

Capítulo 8 Cómo almacenar lo calculado A veces se quiere estandarizar una o varias variables en un conjunto de datos. A la variable X sólo se le resta su media para centrarla o se le resta su media y se divide por su desviación estándar para estandarizarla. Para eso se necesita calcular sólo la media y adicionalmente la desviación estándar para estandarizar. En la práctica es común calcularlas, anotarlas y después incluirlas en las sentencias o comandos correspondientes que permiten calcular (con el generate) las nuevas variables centradas y estandarizadas. Un problema adicional que suele ocurrir cuando se trabaja en Stata es que los cálculos no se van modificado automáticamente como en Excel cuando las variables se crean en función de las otras. Qué pasaría si se agrega uno o más casos o variables?, es evidente que la media y la desviación estándar ya no van a ser las mismas. Stata tiene la capacidad de calcular: media, mediana, moda, desviación estándar, cuartiles, percentiles, etc. sin tener que anotarlas en papel para retipearlos al crear las nuevas variables; ya que estos estadígrafos, -para la última variable requerida en Stata- quedan almacenadas y el usuario puede acceder a tales valores. Existen dos comandos para recuperar lo que se calcula. Éstos son: Return list: Para comandos regulares (por ejemplo summarize). Ereturn list: Para comandos de estimación (por ejemplo regress). 8.1. Return list 8.1.1. Para el comando summarize El commando summarize, es el comando que calcula las medidas de tendencia central, de posición y de dispersión. Al usar este comando automáticamente estos valores y otras medidas quedan almacenadas en una memoria RAM. Para visualizarlas se usa el comando return list (help return list). Para que este comando muestre esto, antes hay que usar el comando summarize. Ejemplo 8.1 summarize price Este comando proporciona en la pantalla los siguientes resultados: Variable Obs Mean Std. Dev. Min Max ----------+---------------------------------------------------------- 79

8.1. Return list price 74 6165.257 2949.496 3291 15906 Ahora al escribir return list en la ventana de comandos o en el DO-file: Ejemplo 8.2 return list Este comando proporciona en la pantalla los siguientes resultados: scalars: r(n) = 74 r(sum_w) = 74 r(mean) = 6165.256756756757 r(var) = 8699525.974268789 r(sd) = 2949.495884768919 r(min) = 3291 r(max) = 15906 r(sum) = 456229 Se tienen ocho medidas de la variable price. Con éstas se podría centrar e incluso estandarizar esa variable escribiendo lo siguiente en la barra de comandos o bien, en un código de programación DO-file. Ejemplo 8.3 Para recuperar la media por ejemplo se tiene que usar r(mean). 1. Para centrar: generate price_cen=price-r(mean) 2. Para estandarizar: generate price_est=(price-r(mean))/r(sd) Con esto se tendrán nuevas variables que se podrán ver en el Browser Editor o en el Data Editor, usando la siguiente instrucción: browse price price_cen price_est. Pero esto no es suficiente, qué pasa ahora si se quisiera hacer algún cálculo con el percentil 5? El comando detail (help detail) entrega resultados mucho más detallados, como se ven en el siguiente ejemplo. Ejemplo 8.4 summarize price, detail Este comando proporciona en la pantalla los siguientes resultados: Price ------------------------------------------------------------- Percentiles Smallest 1% 3291 3291 5% 3748 3299 10% 3895 3667 Obs 74 80

CAPíTULO 8: CÓMO ALMACENAR LO CALCULADO 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 Análogamente se usará el return list para mostrar lo que aparece en la ventana Results. Ejemplo 8.5 return list Este comando proporciona en la pantalla los siguientes resultados: 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 Teniendo esto, se pueden hacer los cálculos necesarios para cualquier problema que se tenga, como por ejemplo el cálculo del percentil 5, aquí se puede observar que el r(p5)=3748, para visualizarlo en la pantalla Results se escribe display r(p5). Esto es de gran ayuda principalmente cuando se tienen grandes bases de datos, y con un pequeño código de programación la información se guardará o almacenará para reproducir los resultados cada vez que se quieran utilizar. 81

8.1. Return list 8.1.2. Para el comando describe Este comando hace una descripción general de las variables, esta información se puede recuperar también con el return list. Ejemplo 8.6 describe rep78 Este comando proporciona los siguientes resultados: scalars: r(changed) = 0 r(widthmax) = 60000 r(k_max) = 5000 r(n_max) = 201647 r(width) = 43 r(k) = 12 r(n) = 74 Esto nos proporciona información general de las variables, no importa qué variable se esté describiendo, por ejemplo el valor r(k) muestra el número de variables, en este caso son 12 y el r(n) muestra la cantidad de observaciones que tienen las variables. 8.1.3. Para el comando table Con este comando se hacen tablas que registran la cantidad de veces o frecuencia que tienen los valores de una variable. Si se tienen dos o más variables, hace una tabla de frecuencia unidimensional o multidimensional. Ejemplo 8.7 table rep78 Este comando proporciona los siguientes resultados: ---------------------- Repair Record 1978 Freq. ----------+----------- 1 2 2 8 3 30 4 18 5 11 ---------------------- 82

CAPíTULO 8: CÓMO ALMACENAR LO CALCULADO Ahora se escribirá return list en la ventana de comandos o en el DO-file: Ejemplo 8.8 return list Este comando proporciona el siguiente resultado: scalars: r(n) = 69 Se sabe que este ejemplo tiene 74 casos y el return list muestra que tiene 69, esto ocurre porque la variable rep78 tiene valores perdidos. Ahora se probará el comando table con dos variables: rep78 y foreign. Ejemplo 8.9 table rep78 foreign Este comando proporciona el siguiente resultado: ------------------------------ Repair Record Car type 1978 Domestic Foreign ----------+------------------- 1 2 2 8 3 27 3 4 9 9 5 2 9 ------------------------------ Esto es una tabla de contingencia donde se muestra la frecuencia que tienen los valores de la variable rep78 y foreign. Se puede notar aquí que dos autos que fueron reparados una vez durante el año 1978 fueron nacionales, en cambio, ningún auto que fue reparado el año 1978 fue extranjero. Ahora se escribirá return list en la ventana de comandos o en el DO-file: Ejemplo 8.10 return list Este comando proporciona los siguientes resultados: scalars: r(n) = 69 83

8.2. Ereturn list 8.1.4. Para el t-test El comando ttest realiza el test de comparación de medias para una o dos muestras. Se puede recuperar la información que se requiera para llegar a la conclusión del test, como por ejemplo el valor p. Ejemplo 8.11 ttest price == 6000 Este comando proporciona en la pantalla los siguientes resultados: One-sample t test ---------------------------------------------------------------------- Variable Obs Mean Std. Err. Std. Dev. [95% Conf. Interval] ---------+------------------------------------------------------------ price 74 6165.257 342.8719 2949.496 5481.914 6848.6 ---------------------------------------------------------------------- mean = mean(price) t = 0.4820 Ho: mean = 6000 degrees of freedom = 73 Ha: mean < 6000 Ha: mean!= 6000 Ha: mean > 6000 Pr(T < t) = 0.6844 Pr( T > t ) = 0.6313 Pr(T > t) = 0.3156 Ejemplo 8.12 return list Este comando proporciona en la pantalla los siguientes resultados: scalars: r(sd_1) = 2949.495884768919 r(se) = 342.8719320889989 r(p_u) =.3156317175379593 r(p_l) =.6843682824620407 r(p) =.6312634350759185 r(t) =.4819780836241245 r(df_t) = 73 r(mu_1) = 6165.256756756757 r(n_1) = 74 Con esta información se puede recuperar el valor que se requiera como el valor p, que en este caso es 0,6313 siempre y cuando se quiera hacer un test bilateral. 8.2. Ereturn list 84

CAPíTULO 8: CÓMO ALMACENAR LO CALCULADO 8.2.1. Para el comando regress El comando regress calcula la regresión lineal simple (o múltiple) para las variables de respuesta y regresora(s) que se señalan, adjuntando la tabla ANOVA. En el siguiente ejemplo se verá cómo recuperar el R 2, para estudios posteriores, relacionados con el ajuste o relación que existe entre las variables price weight length, de los datos del archivo de los autos. Ejemplo 8.13 regress price weight length Este comando proporciona los siguientes resultados: Source SS df MS Number of obs = 74 ---------+------------------------------ F( 2, 71) = 18.91 Model 220725280 2 110362640 Prob > F = 0.0000 Residual 414340116 71 5835776.28 R-squared = 0.3476 ---------+------------------------------ Adj R-squared = 0.3292 Total 635065396 73 8699525.97 Root MSE = 2415.7 ---------------------------------------------------------------------- price Coef. Std. Err. t P> t [95% Conf. Interval] ---------+------------------------------------------------------------ weight 4.699065 1.122339 4.19 0.000 2.461184 6.936946 length -97.96031 39.1746-2.50 0.015-176.0722-19.84838 _cons 10386.54 4308.159 2.41 0.019 1796.316 18976.76 ---------------------------------------------------------------------- Ejemplo 8.14 ereturn list Este comando proporciona los siguientes resultados: scalars: macros: e(n) = 74 e(df_m) = 2 e(df_r) = 71 e(f) = 18.91138982106364 e(r2) =.3475630724239044 e(rmse) = 2415.735142695644 e(mss) = 220725280.2661347 e(rss) = 414340115.8554868 e(r2_a) =.3291845674217608 e(ll) = -679.9123590332625 e(ll_0) = -695.7128688987767 e(title) : "Linear regression" 85

8.2. Ereturn list e(depvar) : "price" e(cmd) : "regress" e(properties) : "b V" e(predict) : "regres_p" e(model) : "ols" e(estat_cmd) : "regress_estat" matrices: functions: e(sample) e(b) : 1 x 3 e(v) : 3 x 3 Ejercicio 8.1 La siguiente base de datos muestra la fecha en que una mujer dio a luz, la edad que tenía, cuántas veces dio a luz antes, la talla y el peso. fecha de parto edad paridad talla peso 28-12-2004 32 3 1,58 50 30-12-2004 24 1 1,58 65 11-01-2005 20 2 1,56 68 15-01-2005 23 1 1,62 59 Cuadro 8.1: Base de datos para el ejercicio 2 del capítulo 8 1. A la variable talla réstele su media y divídala por su desviación estándar. 2. Haga una regresión con la variable de respuesta peso y las variables regresoras: edad, paridad y talla, y a continuación realice un ereturn list y comente los resultados. 86

Capítulo 9 Datos que contienen fechas Al recolectar datos usualmente una o más variables involucran fechas, las que suelen ser utilizadas para determinar o actualizar edades, calcular los días de estadía de un paciente en una clínica, determinar el número de días, semanas o meses que una persona extranjera ha permanecido en el país, etc. Estas fechas pueden estar ingresadas en las bases de datos como variables categóricas; por ejemplo, 12-04-99 ó marzo12, 1999, o en tres valores por separado: día, mes y año, donde día y año son numéricas y mes es categórica. Stata 9.0 (Statacorp, 2005) proporciona herramientas muy amigables que le permitirán trabajar de manera óptima con los datos relacionados con fechas de calendario. 9.1. Las fechas en Stata En Stata las fechas se registran como un número del cual no hay que preocuparse, pues el sistema le entrega un formato leíble y comprensible. El software para poder trabajar con datos que contienen fechas las transforma en un valor numérico entero único mediante la función date, que será abarcada en el punto 9.2. Luego, el formato %d de Stata, transforma esos valores numéricos enteros en un formato de fecha, siguiendo la regla que se muestra en el cuadro 9.1, en donde se considera al cero como valor de referencia: Cada día es representado por un número entero único. Stata considera como el día 0 al 1 o de febrero de 1960, cualquier otra fecha anterior a ésta, será identificada con un número entero negativo; similarmente fechas posteriores, serán representadas por un número entero positivo. La utilidad de esta característica, es que se podrán calcular fácilmente la cantidad de días existentes entre dos fechas cualesquiera, simplemente realizando la resta de las fechas involucradas. Por ejemplo, si se quiere determinar la cantidad de días existentes entre el 11 de abril de 1960 y el 02 de enero de 1960, Stata realizará el siguiente cálculo: 11apr1960 02jan1960 = 101 1 = 100 Aun cuando las fechas no son sustraíbles, éstas son sólo formatos y por ende el Software realiza la diferencia entre los números que corresponden al formato de fecha. 87

9.2. LA FUNCIÓN date... -16500 corresponde a 29oct1914... -101 corresponde a 22sep1959... -1 corresponde a 31dec1959 0 corresponde a 01jan1960 1 corresponde a 02jan1960... 101 corresponde a 11apr1960... 16500 corresponde a 05mar2005... Cuadro 9.1: Regla de valores numéricos asociados a las fechas Existen varias otras funciones asociadas a las fechas, las que involucran el trabajo con los meses, trimestres, semestres, meses o años, que serán abarcadas en este mismo capítulo. 9.2. La función date Como primer paso, para poder ocupar las funciones de fechas (date functions), es necesario que las variables involucradas se encuentren en formato caracter (string), para que Stata las pueda convertir a formato de fecha (date). Esto generalmente no es un problema, pues al importar su base de datos a Stata, las variables relacionadas con fechas son automáticamente reconocidas en formato string, al estar usualmente escritas con elementos como - ó / entre los números que representan las fechas. Por ejemplo, 12/23/2005 ó 16-08-04. Otra consideración importante es que los meses del año deben estar escritos con el respectivo valor numérico que los representa: enero = 1, febrero = 2,..., y diciembre = 12. 9.2.1. Una primera implementación La función más básica de todas es date(var1,s); la cual toma la fecha indicada a través del argumento var1, que corresponde al nombre de una variable caracter en Stata; siguiendo el orden dado por el segundo argumento s: mes (m), día (d), y año (y), asociándole su respectivo valor numérico. El orden de los factores en el componente s es arbitrario; usted asigna el orden según los datos que posea: mdy o dmy o ymd o cualquier otro orden; debiendo utilizar las letras del inglés (sólo año no coincide con year ). El cuidado que se debe tener en esta implementación de la función date, es que el año necesariamente debe estar escrito con sus cuatro dígitos especificados (por ejemplo, 12/04/1986); en caso contrario, Stata no reconocerá los valores contenidos en la variable original y su salida será sim- 88

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS plemente un valor perdido. Suponiendo que la variable caracter var_original incluye fechas con la siguiente estructura: 18-04-1986, la forma de ejecutar el comando es: gen fecha = date((var_original),"dmy") 9.2.2. Especificando las centurias La función date permite especificar la centuria en la cual se está trabajando; o sea, indicar en el argumento s de la función a qué siglo corresponden los años trabajados. Esta modificación en el segundo argumento de la función date permite trabajar exclusivamente y sin inconvenientes las fechas en las que el año se encuentra indicado sólo con sus dos últimos dígitos, como podría ser: 12-04-86. Para implementar en Stata esta modificación, se debe agregar en el argumento s de la función date, antes de la letra y que representa a los años, los dígitos relacionados con el milenio y la centuria, respectivamente. La única precaución que se debe tener, es ser consistente con la forma de la variable en la base de datos teniendo claro el orden de los factores y, d y m. Suponga que la base de datos contiene las fechas con la siguiente estructura: 07-21-97, y que corresponden a fechas de muebles finos fabricados en el siglo XIX. Por ende, los años deberán tener la estructura 18YY y el comando es: gen fecha = date((var_original),"md18y") 9.2.3. Acotando las fechas a través de los años Stata proporciona un nuevo argumento a la función date que le permitirá dar una cota superior a las fechas que esté trabajando en cuanto al año. Es decir, podrá indicar el año máximo admisible para las fechas de la variable original. Los restantes argumentos de la función, se trabajan de la misma forma indicada en la sección 9.2.1. Se debe tener presente que en la variable original, el año debe estar especificado sólo con sus dos últimos dígitos. Por ejemplo, 08/15/63. Suponga que se está trabajando con datos de pasajeros de una línea aérea cualquiera. En esta situación las fechas de nacimiento de los pasajeros pueden fluctuar mucho; sin embargo, ninguno de ellos puede tener una fecha de nacimiento posterior al año en curso (2006 en este caso). Por ello, se colocará como año máximo admisible a 2006 y la forma de ejecutar el comando con este nuevo argumento es: gen fecha = date((var_original),"mdy",2006) Es importante destacar que el valor del año especificado en la función date es admitido también. Pero no hay problema alguno en indicar un valor superior a éste, siempre y cuando tenga la precaución de no causar incoherencias en los datos. Podría suceder que si acota por el valor 2040 y una persona nació en el año 1937, en su nueva variable figurará naciendo el año 2037; estos cien años de diferencia podrían distorsionar demasiado sus resultados y llevarlo a conclusiones poco adecuadas. Ejemplo 9.1 Suponga que se tienen algunos datos recolectados desde el 1 o de enero de 2005 en el paso fronterizo de Los Libertadores en la 5ta. región, hasta el 31 de diciembre de 2005. Las 89

9.2. LA FUNCIÓN date personas estudiadas tienen residencia en el país trasandino y entre todos los datos solicitados a los turistas antes de cruzar a territorio chileno, se prestará atención a su fecha de nacimiento, fecha de ingreso al país, fecha de salida del país y el género. (Datos Ficticios) Nota: No se registraron turistas con edad superior a los 80 años de edad. Visualizando los datos (utilice el browse) y suponiendo que todos los turistas nacieron en el siglo XX, se determina que se debe aplicar el comando date como se señaló en la sección 9.2.2: gen nacim = date(nac_date,"dm19y") /* Generará el número entero asociado a la fecha de nacimiento de los turistas, teniendo los años la estructura 19YY */ list id nombre genero nac_date nacim in 1/3 /* Listará los 3 primeros elementos de la base de datos */ La salida generada por Stata se muestra en la siguiente tabla: +----------------------------------------------------------+ id nombre genero nac_date nacim ---------------------------------------------------------- 1 ACEVEDO BRIONES, FELIPE Masc. 12-05-64 1593 2 ACUÑA MALDONADO, JORGE Masc. 02-04-73 4840 3 AGUIRRE OLEA, PABLO Masc. 23-03-58-649 +----------------------------------------------------------+ En la tabla anterior, por ejemplo, para el primer turista de la lista, la cantidad de días entre el día 0 en Stata (1 o de enero de 1960) y su fecha de nacimiento (12 de mayo de 1964) es de 1593 días. Sin embargo, la lectura de dicho valor obtenido por el comando date para las fechas de nacimiento, es posible mostrarlo de un modo más amigable. Esto se logra dándole a los valores numéricos el formato de fecha a través de: format fecha %d. Ejecute desde la ventana de comandos (o anote en el DO-file) las siguientes líneas: format nacim %d /* Da formato de fecha a la variable nacim */ list id nombre genero nac_date nacim in 1/3 La nueva salida en Stata incluirá la siguiente modificación en la variable nacim: 90

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS +--------------------------------------------------------------+ id nombre genero nac_date nacim -------------------------------------------------------------- 1 ACEVEDO BRIONES, FELIPE Masc. 12-05-64 12may1964 2 ACUÑA MALDONADO, JORGE Masc. 02-04-73 02apr1973 3 AGUIRRE OLEA, PABLO Masc. 23-03-58 23mar1958 +--------------------------------------------------------------+ La visualización dada es la que el programa Stata incluye por defecto, empero existen muchos otros formatos para mostrar el mismo resultado, los que serán explicados en la sección 9.9 (página 116). En el código que se presenta a continuación, se considera la variable original y se asigna arbitrariamente como año máximo a 2010 (como se describió en la sección 9.2.3). Anote en el DO-file la siguiente rutina para realizar los cálculos y visualizar parte de los resultados. gen nacim2 = date(nac_date,"dmy",2010) format nacim2 %d list id nombre genero nac_date nacim2 in 1/3 A primera vista todo parece funcionar bien, no se aprecia cambio alguno en los resultados respecto a cuando se especificó la vigésima centuria para los datos (como se describió en la sección 9.2.2). Lo más importante es que el software NO ARROJA UN MENSAJE DE ERROR. Efectivamente el programa fue ejecutado en su totalidad por lo que se podría asumir que todo ha funcionado perfectamente; sin embargo, se produce una contrariedad en el elemento número 26 de la base de datos. Tipee el comando: list id nombre nac_date nacim nacim2 in 26. Stata le mostrará la información relacionada al turista identificado con el número 26: +------------------------------------------------------------------+ id nombre nac_date nacim nacim2 ------------------------------------------------------------------ 26 FLORES BENNER, SEBASTIAN 15-10-04 15oct2004 15oct1904 +------------------------------------------------------------------+ Se produce un inconveniente en la fecha de nacimiento de este turista, discrepa en 100 años. Precisamente esta es la situación contradictoria mencionada en la página 89 de la sección 9.2.3. Como ayuda para orientarlo en este problema en particular está la nota anexada tras el enunciado del ejemplo 9.1. Surge la pregunta: será el único elemento de la lista con problemas en su fecha de nacimiento? La forma de obtener la respuesta es a través de: 91

9.3. FUNCIONES COMPLEMENTARIAS A LA FUNCIÓN date list id nombre nacim nacim2 if nacim2!=nacim Para evitar este tipo de contradicciones, es razonable tener alguna referencia acerca de las fechas que esté trabajando. Es importante destacar que este inconveniente no se producirá si las fechas contienen el año escrito con sus cuatro dígitos. En este caso, la modalidad explicada en la sección 9.2.1 es suficiente. 9.3. Funciones complementarias a la función date En la sección 9.2 se mostró cómo utilizar la función date. Con la variable generada por dicha función se debe trabajar en todo este segmento del capítulo. Se mostrarán otras funciones importantes que pueden optimizar el tiempo en el trabajo de datos que contienen fechas. Stata proporciona una serie de funciones que permiten seleccionar desde un dato el mes, el día de la semana o del año o del mes, el semestre, el trimestre, el mismo año y la semana del año de la fecha relacionada a un dato. Es importante destacar que las funciones de esta sección poseen un formato único y por defecto: formato numérico. Por lo que no podrá cambiar la estructura del resultado que le arroje el software. 9.3.1. El día desde una fecha Cuando se trabaja con fechas a veces es importante saber en qué día de la semana, del mes o del año aconteció el suceso estudiado. Stata le permitirá por medio de tres funciones distintas mostrar como una nueva variable el dato solicitado. 1. Día del mes: Si es de interés obtener exclusivamente el día del mes desde un dato con formato de fecha, debe recurrir a la función day. La numeración de esta función va desde 1 hasta 28, 29, 30 ó 31 según corresponda. El comando para ejecutarla es: gen dia = day(fecha) Ejemplo 9.2 Para la base de datos trabajada en el ejemplo 9.1, anote en el DO-file y ejecute las sentencias: gen dia = day(nacim) /* día del mes */ list id nombre nacim dia in 1/3 La salida generada por el software es: +----------------------------------------------------+ id nombre nacim dia ---------------------------------------------------- 92

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS 1 ACEVEDO BRIONES, FELIPE 12 May 1964 12 2 ACUÑA MALDONADO, JORGE 02 April 1973 2 3 AGUIRRE OLEA, PABLO 23 March 1958 23 +----------------------------------------------------+ Al comparar la información entre las variables nacim y dia, se puede apreciar que efectivamente la función day seleccionó el día del mes en el que nació cada uno de los turistas en la base de datos, omitiendo tanto el mes como el año de nacimiento. La información obtenida se almacenó en la variable dia. 2. Día de la semana: En este punto, el interés del usuario es determinar exclusivamente el día de la semana en el que aconteció el suceso estudiado. Stata codifica los nombres (en inglés) de los días de la semana según la siguiente regla: (0) domingo, (1) lunes,..., (5) viernes, y (6) sábado. Al momento de generarse la salida por Stata, éste le mostrará el número correspondiente al día de la semana. El comando a emplear es: gen dia sem = dow(fecha) Ejemplo 9.3 Para la base de datos del ejemplo 9.1, escriba en el DO-file y ejecute las siguientes líneas: gen dia_sem = dow(nacim) /* día de la semana */ list id nombre nacim dia_sem in 1/3 La salida generada será: +--------------------------------------------------------+ id nombre nacim dia_sem -------------------------------------------------------- 1 ACEVEDO BRIONES, FELIPE 12 May 1964 2 2 ACUÑA MALDONADO, JORGE 02 April 1973 1 3 AGUIRRE OLEA, PABLO 23 March 1958 0 +--------------------------------------------------------+ Desde la tabla anterior se aprecia que, por ejemplo, el primer turista nació el día de la semana número 2, o sea, nació un día martes (martes 12 de mayo de 1964). Es importante destacar que los días de la semana al tener un formato numérico (desde 0 hasta 6) pueden ser etiquetados. Es decir, se puede encomendar a Stata que muestre a cada uno de dichos números como el día de la semana al que corresponden. La forma de hacerlo es la siguiente: label variable dia_sem "Dia de la semana" label define dias 0 Domingo 1 Lunes 2 Martes /* */ 3 Miércoles 4 Jueves 5 Viernes 6 Sábado 93

9.3. FUNCIONES COMPLEMENTARIAS A LA FUNCIÓN date label values dia_sem dias +----------------------------------------------------+ id nombre nacim dia_sem ---------------------------------------------------- 1 ACEVEDO BRIONES, FELIPE 12may1964 Martes 2 ACUÑA MALDONADO, JORGE 02apr1973 Lunes 3 AGUIRRE OLEA, PABLO 23mar1958 Domingo +----------------------------------------------------+ 3. Día del año: En este caso los valores posibles que se generarán oscilarán entre 1 y 366, si es que corresponde. Con la función a mostrar a continuación, el usuario podrá determinar el día del año en el que aconteció el suceso estudiado. El comando que permite generar estos valores es: gen dia anio = doy(fecha) Ejemplo 9.4 Aplicando el comando en el ejemplo 9.1, los comandos para ejecutar la función y mostrar los resultados será: gen dia_anio = doy(nacim) /* día del año */ list id nombre nacim dia_anio in 1/3 Los resultados que mostrará Stata son: +---------------------------------------------------------+ id nombre nacim dia_anio --------------------------------------------------------- 1 ACEVEDO BRIONES, FELIPE 12 May 1964 133 2 ACUÑA MALDONADO, JORGE 02 April 1973 92 3 AGUIRRE OLEA, PABLO 23 March 1958 82 +---------------------------------------------------------+ Para el primer turista del listado, por ejemplo, se tiene que la nueva variable generada toma el valor 133; o sea, esta persona nació en el día número 133 del año 1964. 9.3.2. El semestre desde una fecha En ocasiones es de interés trabajar con el año particionado en dos partes: primer semestre y segundo semestre. La función que se mostrará a continuación permite a partir de una variable con formato de fecha obtener el semestre en el que acontece el suceso estudiado. 94

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS La función halfyear selecciona el semestre asignando el valor 1 (primer semestre) si el mes del dato en formato de fecha oscila entre enero y junio inclusive; y asigna el valor 2 (segundo semestre) si la fecha oscila entre julio y diciembre inclusive. El comando a ejecutar es: gen semestre = halfyear(fecha) Ejemplo 9.5 Para una aplicación, nuevamente se trabajará con los datos del ejemplo 9.1 utilizado en las secciones previas, el comando en este caso será: gen semestre = halfyear(nacim) /* semestre (mitad) del año */ list id nombre nacim semestre in 31/34 La salida generada por el software es: +---------------------------------------------------------------+ id nombre nacim semestre --------------------------------------------------------------- 31 GUAJARDO SALAS, EDUARDO 30 January 1981 1 32 GUZMAN CARRASCO, FERNANDO 03 September 1973 2 33 HENRIQUEZ CASTRO, CLAUDIO 09 September 1989 2 34 LILLO VEGA, JUAN 31 March 1962 1 +---------------------------------------------------------------+ Se aprecia que los turistas 31 y 34 nacieron en el primer semestre de 1981 y 1962, respectivamente. Los otros dos turistas nacieron el segundo semestre de sus respectivos años. En este punto los semestres también tienen un formato numérico (1 ó 2) y similarmente a como aconteció con los días de la semana, pueden ser etiquetados. Una forma de hacerlo es: label variable semestre "Semestre" label define semest 1 Primero 2 Segundo label values semestre semest +-------------------------------------------------------+ id nombre nacim semestre ------------------------------------------------------- 31 GUAJARDO SALAS, EDUARDO 30jan1981 Primero 32 GUZMAN CARRASCO, FERNANDO 03sep1973 Segundo 33 HENRIQUEZ CASTRO, CLAUDIO 09sep1989 Segundo 34 LILLO VEGA, JUAN 31mar1962 Primero +-------------------------------------------------------+ 95

9.3. FUNCIONES COMPLEMENTARIAS A LA FUNCIÓN date 9.3.3. El trimestre desde una fecha En forma similar a la sección 9.3.2, en esta ocasión se desea dividir el año en 4 partes, codificando de la siguiente manera: (1) enero - marzo, (2) abril - junio, (3) julio - septiembre, y (4) octubre - diciembre. La función a utilizar es: gen trimestre = quarter(fecha) Ejemplo 9.6 Para los datos del ejemplo 9.1 se generarán los trimestres para las fechas de nacimiento utilizando el comando tal y como se explicó en el párrafo previo: gen trimestre = quarter(nacim) /* trimestre (cuarto) del año */ list id nombre nacim trimestre in 6/9 La salida obtenida es: +---------------------------------------------------------+ id nombre nacim trimes e --------------------------------------------------------- 6 ARANCIBIA GONZALEZ, IGNACIO 10jan1980 1 7 ARAVENA GALVEZ, MIGUEL 18jul1949 3 8 ARAYA CHOQUE, DANIEL 09oct1971 4 9 ARAYA PEREZ, JUAN 20jun1984 2 +---------------------------------------------------------+ De los turistas mostrados, por ejemplo, el número 6 nació en el primer trimestre de 1980; el número 7 en el tercer trimestre de 1949 y así sucesivamente. Los trimestres también tienen un formato numérico (1, 2, 3 ó 4) y similarmente a como aconteció con los días de la semana y los semestres, pueden ser etiquetados. La forma de hacerlo es la siguiente: label variable trimestre "Trimestre" label define trim 1 Primero 2 Segundo 3 Tercero 4 Cuarto label values trimestre trim +---------------------------------------------------------------+ id nombre nacim trimes e --------------------------------------------------------------- 6 ARANCIBIA GONZALEZ, IGNACIO 10 January 1980 Primero 7 ARAVENA GALVEZ, MIGUEL 18 July 1949 Tercero 8 ARAYA CHOQUE, DANIEL 09 October 1971 Cuarto 9 ARAYA PEREZ, JUAN 20 June 1984 Segundo +---------------------------------------------------------------+ 96

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS 9.3.4. El mes desde una fecha La función a explicar a continuación le permitirá seleccionar desde un dato con formato de fecha el mes que se halla inserto en él. Los meses en la visualización están codificados de la forma tradicional pero con los nombres en inglés: (1) enero, (2) febrero,..., (11) noviembre, y (12) diciembre. El comando a ejecutar es: gen mes = month(nacim) Ejemplo 9.7 La aplicación nuevamente se relaciona con el ejemplo 9.1; para ello tipee los siguientes comandos: gen mes = month(nacim) /* mes del año */ list id nombre nacim mes in 50/52 Stata mostrará el siguiente resultado: +--------------------------------------------------------+ id nombre nacim mes -------------------------------------------------------- 50 OYARZUN ARAYA, CRISTIAN 28 January 1970 1 51 PEÑA BURGOS, PAULA 25 September 1974 9 52 PEREZ LAGOS, CRISTIAN 13 April 1959 4 +--------------------------------------------------------+ Se desprende de la información mostrada que el turista número 50 nació el primer mes del año 1970; el turista 51 nació el noveno mes del año 1974; y así sucesivamente. Los meses del año también tienen un formato numérico (1, 2,..., 11 ó 12) y similarmente a como aconteció con los días de la semana, los semestres y los trimestres pueden ser etiquetados. La forma de hacerlo es la siguiente: label variable mes "Mes del Anio" label define mes_anio 1 Enero 2 Febrero 3 Marzo 4 Abril 5 Mayo /* */ 6 Junio 7 Julio 8 Agosto 9 Septiembre 10 Octubre /* */ 11 Noviembre 12 Diciembre label values mes mes_anio +---------------------------------------------------------------+ id nombre nacim mes --------------------------------------------------------------- 50 OYARZUN ARAYA, CRISTIAN 28 January 1970 Enero 51 PEÑA BURGOS, PAULA 25 September 1974 Septiembre 52 PEREZ LAGOS, CRISTIAN 13 April 1959 Abril +---------------------------------------------------------------+ 97

9.4. CONVIRTIENDO UNA FECHA EN FORMATO CARACTER EN UNA SERIE DE TEMPORAL 9.3.5. La semana desde una fecha En esta sección la función a utilizar le permitirá especificar la información de la semana del año implícita en su dato en formato de fecha. El comando a ejecutar es: gen semana = week(fecha) El rango de la variable generada estará entre 1 y 52. Ejemplo 9.8 Determine la semana del año en que nació cada uno de los turistas del ejemplo 9.1. Los comandos que deberá ejecutar para lograr el objetivo y visualizarlo son: gen semana = week(nacim) /* semana del año */ list id nombre nacim semana 9.3.6. El año desde una fecha Stata posee una función que le permitirá trabajar exclusivamente con el año contenido en su dato en formato de fecha. El comando a utilizar es: gen anio = year(fecha) Ejemplo 9.9 Una aplicación sencilla se tiene nuevamente en el ejemplo 9.1. Los años de nacimiento de cada uno de los turistas en la base de datos serán generados y visualizados usando los comandos: gen anio = year(nacim) /* año de nacimiento */ list id nombre nacim anio 9.4. Convirtiendo una fecha en formato caracter en una serie de temporal Comprendiendo ya el manejo correcto de la función date y sus complementos para extraer la información de interés desde una variable con formato de fecha, en esta parte del capítulo se abarcará la administración de las fechas siguiendo su cronología; o sea, tomar una fecha en particular como punto de referencia y a partir de ésta contabilizar hacia adelante o hacia atrás la cantidad de meses, semanas, años, semestres, trimestres o días transcurridos desde la fecha de referencia (o cualquier otra) a la fecha del dato que se posea. Por ejemplo, un cálculo de fácil verificación es la cantidad de trimestres transcurrido entre las primeras vueltas de las elecciones presidenciales de 1999 y de 2005. Naturalmente la respuesta es 98

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS 24 trimestres. Se puede pensar que la función quarter vista en la sección 9.3.3 servirá (página 96), empero ésta no distingue entre los años, sólo identifica el trimestre del año asociado al dato analizado. Por esta razón Stata permite convertir variables en formato de fecha (%d) en un nuevo valor numérico que contabilizará, desde la fecha de referencia, la totalidad de semestres transcurridos hasta las fechas en cuestión, luego tras una simple diferencia, se obtendrá la respuesta. Finalmente se le asignará el formato respectivo, que en este caso será serie de tiempo con trimestres (%tq). Las funciones a explicar a continuación tienen un grado de similitud en su estructura con lo visto en la sección 9.3 (página 92). Para cada una de éstas la presentación de los datos en la variable original tiene estructuras distintas. Recordará que para usar la función date de la sección 9.2 (página 88) se requería que el dato original incluyera día-mes-año, en cualquier orden; en esta sección se requiere que la variable original contenga estrictamente lo que se quiere trabajar. Por ejemplo, si es de su interés trabajar únicamente con los meses y los años, entonces la variable original deberá tener la estructura: mes-año o año-mes exclusivamente. En general todas las funciones tienen tres argumentos: la variable a transformar (ejemplo: variable), el orden de los componentes del dato (ejemplo: ymd ), y al año máximo tolerado por los datos (ejemplo: 1990). Los resultados que arrojará Stata seguirán la siguiente regla: año(caracter)(valor); donde caracter puede tomar los valores h (semestre), m (mes), q (trimestre) ó w (semana); y valor corresponde al número del semestre, del mes, del trimestre o de la semana, según corresponda, del año analizado. Pero no se debe olvidar que esto es sólo un formato, una representación que de no ser asignada mostrará, por ejemplo, la cantidad de semanas transcurridas desde la semana cero en Stata (1ra. semana de 1960). 9.4.1. Función daily Esta función es idéntica a la función date de la sección 9.2, para su comprensión remítase a la página 88. Los datos originales deben tener la estructura: mes-día-año en cualquiera de los órdenes posibles. El formato que deberá asignar es %td, que es idéntico al formato %d mencionado al comienzo del punto 9.1. El comando a ejecutar, con su repectivo formato es: gen dia = daily(var_original,"dmy",2010) /* nro. de días contados desde el día 0 (1 o de enero de 1960) */ format dia %td /* equivalente a format dia %d */ 9.4.2. Función halfyearly Esta función contabiliza la cantidad de semestres o medios años transcurridos desde el valor de referencia: 1er. semestre de 1960, que es el semestre 0 en Stata. Los datos en la variable origi- 99

9.4. CONVIRTIENDO UNA FECHA EN FORMATO CARACTER EN UNA SERIE DE TEMPORAL nal deben tener la estructura: año-semestre en cualquier orden (2003/2 ó 1/96). El formato que deberá asignar es %th. El comando a ejecutar, con su respectivo formato es: gen sem = halfyearly(var_original,"yh",2010) /* nro. de semestres contados desde el semestre 0 */ format sem %th 9.4.3. Función monthly Esta función contabiliza la cantidad de meses transcurridos desde el valor de referencia: enero de 1960, que es el mes 0 en Stata. Los datos en la variable original deben tener la estructura: añomes en cualquier orden (2001/10 ó 13/00). El formato que deberá asignar es %tm. El comando a ejecutar, con su respectivo formato es: gen meses = monthly(var_original,"my",2010) /* nro. de meses contados desde el mes 0 */ format meses %tm 9.4.4. Función quarterly Esta función contabiliza la cantidad de trimestres transcurridos desde el valor de referencia: 1er. trimestre de 1960, que es el trimestre 0 en Stata. Los datos en la variable original deben tener la estructura: trimestre-año en cualquier orden (1998-4 ó 68/1). El formato que deberá asignar es %tq. El comando a ejecutar, con su respectivo formato es: gen trim = quarterly(var_original,"qy",2010) /* nro. de trimestres contados desde el trimestre 0 */ format trim %tq 9.4.5. Función weekly Esta función contabiliza la cantidad de semanas transcurridas desde el valor de referencia: 1ra. semana de 1960, que es la semana 0 en Stata. Los datos en la variable original deben tener la estructura: semana-año en cualquier orden (2001/38 ó 50-99). El formato que deberá asignar es %tw. El comando a ejecutar, con su respectivo formato es: 100

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS gen semanas = weekly(var_original,"yw",2010) /* nro. de semanas contadas desde la semana 0 */ format semanas %tw 9.4.6. Función yearly Esta función muestra el año contenido en la variable original, en este caso NO HAY año de referencia, salvo el año 0 de la Era Común. Los datos en la variable original deben tener la estructura: año (1896 ó 73). El formato que deberá asignar es %ty. El comando a ejecutar, con su respectivo formato es: gen anyo = yearly(var_original,"y",2010) format anyo %ty Observación 9.1 En TODAS las funciones puede omitir el valor 2010 que se ejemplificó como el año máximo admisible, o cambiarlo por el valor que estime conveniente (según sus datos). Si los años están especificados con sus dos últimos dígitos, debe indicar la centuria y el milenio como se explicó en la sección 9.2.2 (página 89). 9.5. Transformando datos en formato de fecha a serie temporal y viceversa En este punto se enseñarán las funciones que permiten relacionar los tópicos vistos en las secciones 9.3 y 9.4, respectivamente. 9.5.1. Formato de fecha a serie temporal Las funciones de series temporales para variables creadas a través de la función date cuyo formato es %d o %td ( date o time-date, equivalentemente), asignan el formato de serie temporal que se requiera, los que pueden ser %td, %th, %tm, %tq, %tw o %ty. Las transformaciones posibles en Stata se explican a continuación: 1. Función dofd: Esta función actúa como una identidad, pues cuenta la cantidad de días transcurridos desde el día cero en Stata (1 o de enero de 1960) hasta la fecha de interés y, precisamente, la función date realiza el mismo cálculo. En todo caso, el comando de ejecución es: gen dia = dofd(fecha) format dia %d /* puede ser también %td */ 101

9.5. TRANSFORMANDO DATOS EN FORMATO DE FECHA A SERIE TEMPORAL Y VICEVERSA 2. Función hofd: Esta función retorna la cantidad de semestres transcurridos desde el semestre cero en Stata (1er. semestre de 1960) hasta la fecha de interés. A la variable generada se le asigna el formato %th visto en la sección 9.4.2 en la página 99. El comando de ejecución es: gen semestre = hofd(fecha) format sem %th 3. Función mofd: Esta función proporciona la cantidad de meses transcurridos desde el mes cero en Stata (enero de 1960) hasta la fecha de interés. A la variable generada, se le asigna el formato %tm visto en la sección 9.4.3 en la página 100. El comando de ejecución es: gen mes = mofd(fecha) format mes %tm 4. Función qofd: Esta función proporciona la cantidad de trimestres transcurridos desde el trimestre cero en Stata (1er. trimestre de 1960) hasta la fecha de interés. A la variable generada, se le asigna el formato %tq visto en la sección 9.4.4 en la página 100. El comando de ejecución es: gen trimestre = qofd(fecha) format trim %tq 5. Función wofd: Esta función proporciona la cantidad de semanas transcurridas desde la semana cero en Stata (1ra. semana de 1960) hasta la fecha de interés. A la variable generada, se le asigna el formato %tw visto en la sección 9.4.5 en la página 100. El comando de ejecución es: gen semana = wofd(fecha) format semana %tw 6. Función yofd: Esta función proporciona la cantidad de años transcurridos desde el año cero de la Era Común hasta la fecha de interés. A la variable generada, le asigna el formato %ty visto en la sección 9.4.6 en la página 101. El comando de ejecución es: gen anio = yofd(fecha) format anho %ty 102

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS 9.5.2. Serie temporal a formato de fecha Las funciones a tratar en este tópico realizan exactamente el proceso inverso a las funciones vistas en la sección anterior (9.5.1). En otras palabras, a partir de un dato en alguno de los formatos de serie temporal, estas funciones transforman dicho dato a uno con formato de fecha (precisamente el mismo formato que se obtiene con la función date, mencionado en la página 88), teniendo siempre como referencia el día cero en Stata (1 o de enero de 1960). Las funciones en cuestión tienen una particularidad: asignan siempre el primer día del semestre, mes, semana, trimestre o del año, según corresponda. Por ejemplo, al tener el dato: 1970m4 (mes de abril de 1970) cuyo formato es %tm, no se tiene información del día exacto del mes de abril en que ocurrió el suceso en estudio, por lo que el resultado en formato %d o %td que arrojará la función correspondiente será el primer día del mes de abril del año 1970 (1 o de abril de 1970). Similarmente, el mismo dato corresponde al primer semestre de 1970: 1970h1 con formato %th, por lo cual el resultado en formato %d o %td que se obtendrá será el primer día de dicho semestre (1 o de enero de 1970). Las restantes funciones actuarán en forma similar, todo dependerá del formato original que tengan los datos que se estén trabajando (%th, %tm, %tq, %tw o %ty). 1. Función dofh: Esta función es válida sólo para aquellos datos con formato %th visto en la sección 9.4.2 en la página 99. La nueva variable generada contabilizará la cantidad de días existentes entre el día cero en Stata (1 o de enero de 1960) y el primer día del semestre y del año correspondientes al dato original. Las sentencias para ejecutar esta función con su respectivo formato, son: gen fecha = dofh(semestre) format fecha %d /* pueder ser también %td */ 2. Función dofm: Esta función es válida sólo para aquellos datos con formato %tm visto en la sección 9.4.3 en la página 100. La nueva variable generada contabilizará la cantidad de días existentes entre el día cero en Stata (1 o de enero de 1960) y el primer día del mes y del año correspondientes al dato original. Las sentencias para ejecutar esta función con su respectivo formato, son: gen fecha = dofm(mes) format fecha %d /* pueder ser también %td */ 3. Función dofq: Esta función es válida sólo para aquellos datos con formato %tq visto en la sección 9.4.4 en la página 100. La nueva variable generada contabilizará la cantidad de días existentes entre el día cero en Stata (1 o de enero de 1960) y el primer día del trimestre y del año correspondientes al dato original. Las sentencias para ejecutar esta función con su respectivo formato, son: gen fecha = dofq(trimestre) format fecha %d /* pueder ser también %td */ 103

9.6. TIPEANDO FECHAS FIJAS EN EXPRESIONES 4. Función dofw: Esta función es válida sólo para aquellos datos con formato %tw visto en la sección 9.4.5 en la página 100. La nueva variable generada contabilizará la cantidad de días existentes entre el día cero en Stata (1 o de enero de 1960) y el primer día de la semana y del año correspondientes al dato original. Las sentencias para ejecutar esta función con su respectivo formato, son: gen fecha = dofw(semana) format fecha %d /* pueder ser también %td */ 5. Función dofy: Esta función es válida sólo para aquellos datos con formato %ty visto en la sección 9.4.6 en la página 101. La nueva variable generada contabilizará la cantidad de días existentes entre el día cero en Stata (1 o de enero de 1960) y el primer día del año correspondiente al dato original. Las sentencias para ejecutar esta función con su respectivo formato, son: gen fecha = dofy(anio) format fecha %d /* pueder ser también %td */ 9.6. Tipeando fechas fijas en expresiones En muchas ocasiones será de interés del usuario fijar algún valor (entiéndase como alguna fecha en particular, algún semestre, mes, trimestre, semana o año), ya sea para realizar comparaciones o seleccionar un subconjunto de datos que cumplan alguna condición de interés. En otras palabras, en este punto definirá una constante con estructura de fecha o de serie temporal. Por ejemplo, suponga que se tienen los datos de la cantidad de pasajeros que abordaron los trenes que realizaron los servicios ferroviarios popularmente conocidos como El Longino, entre la estación La Calera y la estación Iquique (vía longitudinal norte de los Ferrocarriles del Estado); además se dispone de la fecha en la cual se realizó cada viaje. Los datos van desde el 1 o de enero de 1950 hasta el último servicio realizado por dicho ferrocarril (9 de junio de 1975). Es de interés estudiar la cantidad de pasajeros mensuales que viajaron en dirección norte por el ya desaparecido Longino desde el mes de noviembre de 1972 hasta el último servicio efectuado. Stata le permitirá trabajar de una manera amigable situaciones como la descrita, pues no será necesario programar una rutina muy elaborada ni complicada; tampoco deberá perder tiempo contabilizando a qué número corresponden los meses de noviembre de 1972 y junio de 1975, respectivamente, desde el mes cero en Stata (enero de 1960). Simplemente, ayudado por las funciones a describir a continuación podrá condicionar según los meses relevantes logrando listar, graficar o analizar exclusivamente el subconjunto de datos deseados. 9.6.1. Fijando un día Si es de su interés especificar un día en especial de algún mes y año en particular. En el argumento de la función d( ) el orden de los elementos deberá ser siempre: DDMMMYYYY (día-mes-año), 104

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS espacios entre los elementos son admitidos; DD deberá reemplazarse por el número del día solicitado, MMM indique el mes que puede escribirse abreviadamente con sus tres primeras letras o con su nombre completo (siempre en inglés) y finalmente el año YYYY deberá tener especificados los cuatro dígitos que lo componen. Por ejemplo: 2jan2006 (2 de enero de 2006), 9-february- 1980 (9 de febrero de 1980), 9 september 1989 (9 de septiembre de 1989), 15-08 - 1963 (15 de agosto de 1963), 12-02-1818 (12 de febrero de 1818), etc. La sentencia que deberá ocupar es: d(dd MMM YYYY), cuyo formato es %d o %td. Ejemplo 9.10 Utilizando los datos de los turistas trasandinos del ejemplo 9.1, liste los pasajeros que tienen una fecha de nacimiento posterior al 1 o de enero de 1990. Las sentencias que deberá ocupar para lograr el objetivo planteado en este caso y el respectivo listado obtenido por Stata son: list id nombre nacim if nacim > d(1 January 1990) +----------------------------------------------------+ id nombre nacim ---------------------------------------------------- 11 ASTORGA LAZCANO, CAROLINA 29 December 1993 13 BRITO CORNEJO, ALEJANDRO 23 February 1993 26 FLORES BENNER, SEBASTIAN 15 October 2004 27 FUENZALIDA OGALDE, PAULINA 01 April 2002 +----------------------------------------------------+ Observación 9.2 Para el ejemplo recién explicado, haber condicionado por d(1 jan 1990) es equivalente a colocar el valor numérico 10958, que corresponde efectivamente al valor numérico para la fecha en cuestión contabilizado desde el día cero en Stata (1 o de enero de 1960). El condicionante perfectamente pudo ser: if nacim > 10958. 9.6.2. Fijando un semestre Si es de su interés especificar un semestre en especial de algún año en particular. En el argumento de la función h( ) el orden de los elementos deberá ser siempre: YYYYhS (año-h-semestre), espacios entre los elementos son admitidos; YYYY corresponde al año de interés escrito con sus cuatro dígitos, h debe siempre incluirse (puede reemplazarse por un guión), finalmente S se reemplazará por el número del semestre solicitado, tomará valores 1 ó 2. Por ejemplo: 1973h2 (1973, mitad 2), 1948 h1 (1948, mitad 1), 1891-2 (1891, mitad 2), etc. La sentencia que deberá ocupar es: h(yyyy h S), cuyo formato es %th. Ejemplo 9.11 Utilizando los datos de los turistas trasandinos del ejemplo 9.1, liste los pasajeros que nacieron después del primer semestre de 1990. 105

9.6. TIPEANDO FECHAS FIJAS EN EXPRESIONES Para la resolución en primer lugar deberá crear una variable que se encuentre en formato %th, para lo cual deberá implementarse la función hofd vista en la página 102 (punto 2 de la sección 9.5.1). Luego, a partir de esta nueva variable podrá realizar el listado solicitado. Las sentencias a utilizar en este caso son: gen semestre = hofd(nacim) format semestre %th list id nombre nacim semestre if semestre > h(1990 h1) Observación 9.3 Note que los resultados arrojados por Stata no varían respecto a los obtenidos en el ejemplo 9.10. Observación 9.4 Para el ejemplo recién explicado, haber condicionado por h(1990 h1) es equivalente a colocar el valor numérico 60, que corresponde efectivamente al valor numérico asociado al semestre en cuestión, contabilizado desde el semestre cero en Stata (primer semestre de 1960). El condicionante perfectamente pudo ser: if semestre > 60. 9.6.3. Fijando un mes Si es de su interés especificar un mes en especial de algún año en particular. En el argumento de la función m( ) el orden de los elementos deberá ser siempre: YYYYmMMM (año-m-mes), espacios entre los elementos son admitidos; YYYY corresponde al año de interés escrito con sus cuatro dígitos, m debe siempre incluirse (puede reemplazarse por un guión), finalmente MMM se reemplazará por el número del mes solicitado, tomará valores 1, 2,..., 12. Por ejemplo: 1973m10 (1973, mes 10), 1948 m8 (1948, mes 8), 1963-4 (1963, mes 4), etc. La sentencia que deberá ocupar es: m(yyyy m MMM), cuyo formato es %tm. Existe una leve variación en esta constante, pues podrá reemplazar en la función m(yyyymmmm) el argumento m MMM simplemente por el nombre en inglés (completo o abreviado por sus tres primeras letras) del mes de interés. Por ejemplo: 1987m6 = 1987 june = 1987June = 1987jun = 1987 jun = 1987-Jun = 1987 - jun = 1987-6 = 1987-6. Ejemplo 9.12 Utilizando los datos de los turistas trasandinos del ejemplo 9.1, liste los pasajeros que nacieron después del mes de octubre de 1993. En forma similar al ejemplo 9.11 se deberá en primer lugar crear una variable cuyo formato sea %tm. Se implementará en primer término la función mofd explicada en la página 102 (punto 3 de la sección 9.5.1); posteriormente se listarán a los turistas que cumplen la condición. Las sentencias a implementar en este caso son: gen mes = mofd(nacim) format mes %tm 106

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS list id nombre nacim mes if mes > m(1993 October) /* válidos también son: m(1993m10) y m(1993 oct), entre otros */ Observación 9.5 Para el ejemplo recién explicado, haber condicionado por m(1993 oct) es equivalente a colocar el valor numérico 405, que corresponde efectivamente al valor numérico asociado al mes en cuestión contabilizado desde el mes cero cero en Stata (enero de 1960). El condicionante perfectamente pudo ser: if mes > 405. 9.6.4. Fijando un trimestre Si es de su interés especificar un trimestre en especial de algún año en particular. En el argumento de la función q( ) el orden de los elementos deberá ser siempre: YYYYqT (año-q-trimestre), espacios entre los elementos son admitidos; YYYY corresponde al año de interés escrito con sus cuatro dígitos, q debe siempre incluirse (puede reemplazarse por un guión), finalmente T se reemplazará por el número del trimestre solicitado, tomará valores 1, 2, 3 ó 4. Por ejemplo: 2003q2 (2003, trimestre 2), 1963 q4 (1963, trimestre 4), 1910-3 (1910, trimestre 3), etc. La sentencia que deberá ocupar es: m(yyyy q T), cuyo formato es %tq. Ejemplo 9.13 Utilizando los datos de los turistas trasandinos del ejemplo 9.1, liste los pasajeros que nacieron en el tercer trimestre de 1978. Para la resolución en primer lugar deberá crear una variable que se encuentre en formato %tq, para lo cual deberá implementarse la función qofd vista en la página 102 (punto 4 de la sección 9.5.1). Luego, a partir de esta nueva variable podrá realizar el listado solicitado. Las sentencias a utilizar en este caso son: gen trimestre = qofd(nacim) format trimestre %tq list id nombre nacim trimestre if trimestre == q(1978 q3) Observación 9.6 Para el ejemplo recién explicado, haber condicionado por q(1978 q3) es equivalente a colocar el valor numérico 74, que corresponde efectivamente al valor numérico asociado al trimestre en cuestión contabilizado desde el trimestre cero en Stata (primer trimestre de 1960). El condicionante perfectamente pudo ser: if trimestre == 74. 9.6.5. Fijando una semana Si es de su interés especificar una semana en especial de algún año en particular. En el argumento de la función w( ) el orden de los elementos deberá ser siempre: YYYYwW (año-w-semana), espacios entre los elementos son admitidos; YYYY corresponde al año de interés escrito con sus cuatro dígitos, w debe siempre incluirse (puede reemplazarse por un guión), finalmente W se reemplazará por el número de la semana solicitada, tomará valores 1, 2,..., 51 ó 52. Por ejemplo: 107

9.6. TIPEANDO FECHAS FIJAS EN EXPRESIONES 1879w36 (1879, semana 36), 1955s22 (1955, semana 22), 2004-16 (2005, semana 16), etc. La sentencia que deberá ocupar es: w(yyyy w W), cuyo formato es %tw. Ejemplo 9.14 Utilizando los datos de los turistas trasandinos del ejemplo 9.1, liste los pasajeros que nacieron entre la vigésima semana de 1970 y la cuadragésima semana de 1980. Para la resolución en primer lugar deberá crear una variable que se encuentre en formato %tw, para lo cual deberá implementarse la función wofd vista en la página 102 (punto 5 de la sección 9.5.1). Luego, a partir de esta nueva variable podrá realizar el listado solicitado. Las sentencias a utilizar en este caso son: gen semana = wofd(nacim) format semana %tw list id nombre nacim semana if semana>=w(1980w20) & semana<=w(1980 w40) Observación 9.7 Para el ejemplo anterior, haber condicionado por w(1970w20) y w(1980w40) es equivalente a colocar los valores numéricos 539 y 1079, respectivamente, los que corresponden efectivamente en cada caso al valor numérico asociado a las semanas en cuestión contabilizado desde la semana cero en Stata (primera semana de 1960). El condicionante perfectamente pudo ser: if semana>=539 & semana<=1079. 9.6.6. Fijando un año Si es de su interés especificar un año en particular. En el argumento de la función y( ) el elemento único deberá ser siempre: YYYY (año); YYYY corresponde al año de interés escrito con sus cuatro dígitos. Por ejemplo: 1997, 2005, 1905, etc. La sentencia que deberá ocupar es: y(yyyy), cuyo formato es %ty. Ejemplo 9.15 Utilizando los datos de los turistas trasandinos del ejemplo 9.1, liste los pasajeros que nacieron antes del año 1945. Para la resolución en primer lugar deberá crear una variable que se encuentre en formato %ty, para lo cual deberá implementarse la función yofd vista en la página 102 (punto 6 de la sección 9.5.1). Luego, a partir de esta nueva variable podrá realizar el listado solicitado. Las sentencias a utilizar en este caso son: gen anio = yofd(nacim) format anio %ty list id nombre nacim anio if anio < y(1945) 108

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS Observación 9.8 Para el ejemplo recién explicado, haber condicionado por y(1945) es equivalente a colocar el valor numérico 1945, que corresponde efectivamente al valor numérico asociado al año en cuestión contabilizado desde el año cero en Stata (año cero de la Era Común). El condicionante perfectamente pudo ser: if anio < 1945. 9.7. Creando series temporales desde argumentos numéricos Cuando se introdujeron las series temporales en este capítulo (sección 9.4, página 98), recordará que se indicó que éstas se generarían a partir de variables en formato caracter, las que además deberían cumplir una estructura determinada como se indicó en su momento. Suponga ahora que la base de datos contiene dos variables con la siguiente estructura: la primera de ellas contiene al año y la segunda contiene al mes; ambas poseen formato numérico. Es posible ahora generar nueva variable con formato de serie temporal %tm en este caso particular. La manera de lograrlo es ocupando las funciones que se detallarán a continuación. 9.7.1. El año y el semestre Cuando el año y el semestre son dos variables numéricas distintas, trabajando la función yh(, ) logrará generar una nueva variable cuyo formato será %th y su resultado será equivalente a si utilizase la función halfyearly para variables en formato caracter (sección 9.4.2, página 99). Si la variables anio y semest denotan a los años y a los semestres, respectivamente, en una base de datos cualquiera, entonces para generar la serie temporal, con su respectivo formato, asociada a estas dos variables la función a implementar es: gen semestre = yh(anio,semest) format semestre %th Ejemplo 9.16 Para la base de datos original utilizada en el ejemplo 9.1, utilizando las funciones adecuadas genere la variable que le permita obtener únicamente el semestre y el año de nacimiento de cada uno de los turistas. Para este ejemplo en particular, recuerde que en primer lugar deberá generar la variable en formato de fecha usando la función date, luego la respuesta la obtendrá fácilmente ayudado por la función hofd vista en el punto 2 de la sección 9.5.1. Sin embargo, para utilizar la herramienta proporcionada en esta sección, la rutina a implementar ocupará las funciones complementarias a la función date que se explicaron en la sección 9.3. gen nacim = date(nac_date,"dmy",2010) format nacim %d gen anio = year(nacim) /* selecciona el año */ 109

9.7. CREANDO SERIES TEMPORALES DESDE ARGUMENTOS NUMÉRICOS gen semest = halfyear(nacim) /* selecciona el semestre de nacimiento: 1 ó 2 */ gen semestre = yh(anio,semest) format semestre %th list id nombre nacim semestre in 10/14 El resultado que arrojará Stata para todos los turistas tendrá la siguiente estructura: +-----------------------------------------------------------+ id nombre nacim semestre ----------------------------------------------------------- 10 ARENAS KEIMER, MAREN 23apr1974 1974h1 11 ASTORGA LAZCANO, CAROLINA 29dec1993 1993h2 12 BOLAÑOS LEON, JUAN 22nov1984 1984h2 13 BRITO CORNEJO, ALEJANDRO 23feb1993 1993h1 14 BUSTAMANTE MAC VICAR, RICARDO 03jan1947 1947h1 +-----------------------------------------------------------+ Compare el resultado anterior con lo que hubiese obtenido si hubiese utilizado la función hofd (sección 9.5.1). La rutina en este caso es: gen semestre2 = hofd(nacim) format semestre2 %th list id nombre nacim semestre* in 10/14 9.7.2. El año y el mes Cuando el año y el mes son dos variables numéricas distintas, trabajando la función ym(, ) logrará generar una nueva variable cuyo formato será %tm y su resultado será equivalente a si utilizase la función monthly para variables en formato caracter (sección 9.4.3, página 100). Si la variables anio y meses denotan a los años y a los meses, respectivamente, en una base de datos cualquiera, entonces para generar la serie temporal, con su respectivo formato, asociada a estas dos variables la función a implementar es: gen mes = ym(anio,meses) format semestre %tm 110

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS Ejemplo 9.17 Nuevamente utilice la base de datos original del ejemplo 9.1, utilizando las funciones adecuadas genere la variable que le permita obtener únicamente el mes y el año de nacimiento de cada uno de los turistas. Nuevamente deberá generar la variable en formato de fecha usando la función date, luego la respuesta la obtendrá fácilmente ayudado por la función mofd vista en el punto 3 de la sección 9.5.1. Sin embargo, para utilizar la herramienta proporcionada en esta sección, la rutina a implementar ocupará las funciones complementarias a la función date que se explicaron en la sección 9.3. gen nacim = date(nac_date,"dmy",2010) format nacim %d gen anio = year(nacim) /* selecciona el año */ gen meses = month(nacim) /* selecciona el mes de nacimiento: 1, 2,..., 11 ó 12 */ gen mes = ym(anio,meses) format mes %tm list id nombre nacim mes in 31/35 El resultado que arrojará Stata para todos los turistas tendrá la siguiente estructura: +-----------------------------------------------------+ id nombre nacim mes ----------------------------------------------------- 31 GUAJARDO SALAS, EDUARDO 30jan1981 1981m1 32 GUZMAN CARRASCO, FERNANDO 03sep1973 1973m9 33 HENRIQUEZ CASTRO, CLAUDIO 09sep1989 1989m9 34 LILLO VEGA, JUAN 31mar1962 1962m3 35 LOPEZ BUSTAMANTE, JAVIER 12apr1988 1988m4 +-----------------------------------------------------+ Compare el resultado anterior con lo que hubiese obtenido si hubiese utilizado la función mofd (sección 9.5.1). La rutina en este caso es: gen mes2 = mofd(nacim) format mes2 %tm list id nombre nacim mes* in 31/35 111

9.7. CREANDO SERIES TEMPORALES DESDE ARGUMENTOS NUMÉRICOS 9.7.3. El año y el trimestre Cuando el año y el trimestre son dos variables numéricas distintas, trabajando la función yq(, ) logrará generar una nueva variable cuyo formato será %tq y su resultado será equivalente a si utilizase la función quarterly para variables en formato caracter (sección 9.4.4, página 100). Si la variables anio y trim denotan a los años y a los trimestres, respectivamente, en una base de datos cualquiera, entonces para generar la serie temporal, con su respectivo formato, asociada a estas dos variables la función a implementar es: gen trimestre = yq(anio,trim) format semestre %tq Ejemplo 9.18 Nuevamente utilice la base de datos original del ejemplo 9.1, utilizando las funciones adecuadas genere la variable que le permita obtener únicamente el trimestre y el año de nacimiento de cada uno de los turistas. Nuevamente deberá generar la variable en formato de fecha usando la función date, luego la respuesta la obtendrá fácilmente ayudado por la función qofd vista en el punto 4 de la sección 9.5.1. Sin embargo, para utilizar la herramienta proporcionada en esta sección, la rutina a implementar ocupará las funciones complementarias a la función date que se explicaron en la sección 9.3. gen nacim = date(nac_date,"dmy",2010) format nacim %d gen anio = year(nacim) /* selecciona el año */ gen trim = quarter(nacim) /* selecciona el trimestre de nacimiento: 1, 2, 3 ó 4 */ gen trimestre = yq(anio,trim) format trimestre %tq list id nombre nacim trimestre in 60/64 El resultado que arrojará Stata para todos los turistas tendrá la siguiente estructura: +-------------------------------------------------------+ id nombre nacim trimes e ------------------------------------------------------- 60 ROSSEL TORRES, JOSE 06jun1947 1947q2 61 ROZAS VIDAL, VIVIANA 04oct1949 1949q4 112

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS 62 SANCHEZ GIRALDEZ, ANDRES 07aug1939 1939q3 63 SANCHEZ GIRALDEZ, RODRIGO 03apr1944 1944q2 64 SANHUEZA OLIVARES, MIGUEL 25sep1974 1974q3 +-------------------------------------------------------+ Compare el resultado anterior con lo que hubiese obtenido si hubiese utilizado la función qofd (sección 9.5.1). La rutina en este caso es: gen trimestre2 = qofd(nacim) format trimestre2 %tq list id nombre nacim trimestre* in 60/64 9.7.4. El año y la semana Cuando el año y la semana son dos variables numéricas distintas, trabajando la función yw(, ) logrará generar una nueva variable cuyo formato será %tw y su resultado será equivalente a si utilizase la función weekly para variables en formato caracter (sección 9.4.5, página 100). Si la variables anio y semana denotan a los años y a las semanas, respectivamente, en una base de datos cualquiera, entonces para generar la serie temporal, con su respectivo formato, asociada a estas dos variables la función a implementar es: gen week = yw(anio,semana) format week %tw Ejemplo 9.19 Nuevamente utilice la base de datos original del ejemplo 9.1, utilizando las funciones adecuadas genere la variable que le permita obtener únicamente la semana y el año de nacimiento de cada uno de los turistas. Nuevamente deberá generar la variable en formato de fecha usando la función date, luego la respuesta la obtendrá fácilmente ayudado por la función wofd vista en el punto 5 de la sección 9.5.1. Sin embargo, para utilizar la herramienta proporcionada en esta sección, la rutina a implementar ocupará las funciones complementarias a la función date que se explicaron en la sección 9.3. gen nacim = date(nac_date,"dmy",2010) format nacim %d gen anio = year(nacim) /* selecciona el año */ gen semana = week(nacim) 113

9.8. LA FECHA DE HOY /* selecciona la semana de nacimiento: 1, 2,..., 51 ó 52 */ gen week = yw(anio,semana) format week %tw list id nombre nacim week in 48/52 El resultado que arrojará Stata para todos los turistas tendrá la siguiente estructura: +-----------------------------------------------------+ id nombre nacim week ----------------------------------------------------- 48 OLIVARES COLLAO, RODRIGO 17oct1975 1975w42 49 OSORIO VARGAS, BRENDA 15apr1970 1970w15 50 OYARZUN ARAYA, CRISTIAN 28jan1970 1970w4 51 PEÑA BURGOS, PAULA 25sep1974 1974w39 52 PEREZ LAGOS, CRISTIAN 13apr1959 1959w15 +-----------------------------------------------------+ Compare el resultado anterior con lo que hubiese obtenido si hubiese utilizado la función wofd (sección 9.5.1). La rutina en este caso es: gen week2 = wofd(nacim) format week2 %tw list id nombre nacim week* in 48/52 9.8. La fecha de hoy Stata permite trabajar con la fecha actual registrada en su computador, si éste se encuentra correctamente establecido en el calendario podrá trabajar fácilmente con datos que requieran ser siempre actualizados (tomando como referencia la fecha actual) y así evitará estar cambiando sus programas una y otra vez para volver a utilizarlos y mantener al día su base de datos. Simplemente citando la fecha contenida en el sistema (vea creturn list) utilizando la sentencia: c(current_date). A modo de ejemplo, tipee en la barra de comandos: display c(current_date) podrá visualizar la fecha actual en la ventana de resultados. 114

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS 9.8.1. Característica principal La principal característica para la fecha actual es que es un caracter, o sea posee formato string; por lo tanto para poder trabajar con ella necesariamente debe asignarle un formato de fecha. Por otro lado, una vez visualizada la fecha actual en la ventana de resultados, es muy importante que note que el año se encuentra especificado con sus 4 digítos, lo que facilitará enormemente trabajar con ella. 9.8.2. Cómo trabajar con la fecha de hoy? La manera más eficiente de trabajar con la fecha actual es a través de la función date (sección 9.2, página 88), pues el orden establecido es siempre día-mes-año y el año está escrito con sus 4 dígitos. O sea, deberá implementar la función date en su versión más simple. A modo de ejemplo utilice una base de datos cualquiera y escriba en la línea de comandos (o anote en el DO-file) las siguientes líneas: gen actual = date(c(current_date),"dmy") format actual %td Utilice el browse para ver que la nueva variable generada contiene precisamente la fecha del día de hoy. Con esta nueva variable podrá utilizar todas las funciones estudiadas en las secciones previas de este capítulo, podrá extraer información sobre el día del año en que se encuentra, en qué semana se encuentra, el trimestre, el semestre, etc. Además podrá utilizar sin inconvenientes las funciones que le permiten llevar este nuevo a una serie temporal (vea la sección 9.5.1, página 101) para lograr determinar, entre otras cosas, el tiempo transcurrido en semanas para el suceso estudiado. Ejemplo 9.20 Cargue en el programa la base de datos de los turistas trasandinos que ingresaron al país durante el año 2005. Genere variables que contengan la edad de cada una de las personas a la fecha actual, la cantidad de semanas de vida, cantidad de trimestres y la cantidad de semestres. Para realizar los cálculos solicitados no es necesario que genere una nueva variable que contenga la fecha actual, puede trabajar sin inconvenientes con funciones compuestas, o sea, a la función date le podrá aplicar de inmediato la función wofd por ejemplo. gen nacim = date(nac_date,"dmy",2010) format nacim %tdd_m_cy /* fecha de nacimiento */ gen edad_anios = yofd(date(c(current_date),"dmy")) - yofd(nacim) gen edad_semanas = wofd(date(c(current_date),"dmy")) - wofd(nacim) 115

9.9. CAMBIANDO EL FORMATO QUE SE MUESTRA POR DEFECTO gen edad_semest = hofd(date(c(current_date),"dmy")) - hofd(nacim) gen edad_trim = qofd(date(c(current_date),"dmy")) - qofd(nacim) list nacim edad_anios edad_semanas edad_semest edad_trim in 1/10 Un inconveniente que puede surgir con los años es que a la fecha actual algún turista aún no cumpla años, pues la variable edad_anios en su estructura selecciona el año en curso y realiza la sustracción de indicada, por lo cual se pueden producir errores. Lo más aproximado a la realidad es simplemente trabajar con la función date exclusivamente y si quiere obtener, por ejemplo, una aproximación más cercana a la edad de los turistas deberá restar la cantidad de días de vida y luego dividirlos por 365,25. gen edad_anios2 = (date(c(current_date),"dmy") - nacim) / 365.25 gen edad_semanas2 = (date(c(current_date),"dmy") - nacim) / 7 gen edad_semest2 = (date(c(current_date),"dmy") - nacim) / 182.5 gen edad_trim2 = (date(c(current_date),"dmy") - nacim) / 91.25 list nacim edad_anios edad_anios2 in 1/10 /* compara sólo las edades */ 9.9. Cambiando el formato que se muestra por defecto Cuando se trabaja con datos que contienen fechas, como se ha visto en las secciones anteriores de este capítulo, dichos datos son convertidos a un valor numérico entero que se obtiene siempre contabilizando desde el valor de referencia situado en el año 1960 para los días, meses, semestres, trimestres y semanas, según corresponda. Posteriormente a dichos valores se les asigna el formato correspondiente (%d ó %td, %tw, %tm, %tq, %th, %ty), Stata a continuación despliega los datos en un formato de fecha o de serie temporal claro, aunque a veces es poco elegante y probablemente sería del gusto del usuario modificar la forma (la estructura) en la cual el software muestra los resultados. Por ejemplo, le gustaría que los años fuesen desplegados sólo con sus dos últimos dígitos o que los meses sean desplegados con su nombre completo (en inglés) y con su primera letra en mayúsculas, etc. Con el fin de mostrar las diferentes formas de desplegar los resultados es que ha sido elaborada esta sección. Observación 9.9 Las diferentes estructuras posibles para los formatos que se mostrarán a continuación son sólo aplicables para las fechas que han sido trabajadas como Series Temporales. 116

CAPíTULO 9: DATOS QUE CONTIENEN FECHAS (Secciones 9.4 y 9.5.1, en las páginas 98 y 101, respectivamente) 9.9.1. Caracteres utilizados y sus definiciones para mostrar los resultados Stata dispone de una serie de caracteres, cada uno con su definición y función dentro de los formatos de fecha. En el caso de las letras se admite en algunos casos que sean mayúsculas o minúsculas. Los únicos caracteres permitidos para los formatos de fecha son: c y m l n d j h q w _., : - /! C Y M L N D J W Cuadro 9.2: Caracteres permitidos para formatos de fecha Los caracteres desplegados en al cuadro 9.2 probablemente sean difíciles de recordar. Sin embargo, en el cuadro 9.3 (vea página 118) se detallan las definiciones de cada uno de ellos. 9.9.2. La implementación Todos los caracteres descritos en la sección anterior (9.9.1) siempre deben incorporarse a continuación de la estructura que da el formato a los datos trabajados. Por ejemplo: %tqcy:q. Siguiendo esta regla el formato por defecto (formato que trae incluido Stata en su programación) para cada uno de los tipos de formato es: %td ó %d %tw %tm %tq %th %ty %tddlcy %twcy!ww %tmcy!mn %tqcy!qq %thvy!hh %tycy Ahora, conociendo ya todos los formatos disponibles y las distintas estructuras que se les puede dar a las fechas, es cosa de empezar a jugar con distintas combinaciones, siempre y cuando sean acordes al formato asignado al dato, pues puede conducir a errores. Por ejemplo, el día 0 en Stata (1 o de enero de 1960) se le asigna el formato %td, empero si le asigna cualquier otro no mostrará en pantalla lo deseado. Ejemplo 9.21 Distintas muestras para la fecha: 07 de julio de 1948. Formatos Fecha de muestra según formato %td 07jul1948 %tdm_d,_cy July 7, 1948 %tdy/m/d 48/07/11 %tdm-d-cy 07-11-1948 %tqcy.q 1948.3 %tqcy:q 1948:3 %twcy,_w 1948, 28 117

9.9. CAMBIANDO EL FORMATO QUE SE MUESTRA POR DEFECTO c Despliega las centuria sin antecederla por un 0. C Despliega la centuria liderada por un 0 si corresponde. y Despliega sólo los dos últimos dígitos del año si anteponer un 0. Y Despliega sólo los dos últimos dígitos del año anteponiendo un 0 si corresponde. m M l L Despliega el nombre del mes abreviado con tres letras, la primera letra capitalizada. Despliega el nombre completo del mes, la primera letra capitalizada. Despliega el nombre del mes abreviado con tres letras, la primera letra sin capitalizar. Despliega el nombre completo del mes, la primera letra sin capitalizar. n Despliega el número del mes sin anteponer un 0. N Despliega el número del mes anteponiendo un 0 si corresponde. d Despliega el número de día del mes sin anteponer un 0. D Despliega el número de día del mes antecedido por un 0 si corresponde. j Despliega el número de día del año sin anteponer un 0. J Despliega el número de día del año antecedido por un 0 si corresponde. h Despliega la mitad del año correspondiente (1 ó 2). q Despliega el trimestre del año correspondiente (1, 2, 3 ó 4). w Despliega el número de semana del año sin anteponer un 0. W Despliega el número de semana del año anteponiendo un 0 si corresponde. _ Genera un espacio en blanco.. Despliega un punto., Despliega una coma. : Despliega los dos puntos. - Despliega un guión. / Despliega un slash (raya diagonal) Despliega un apóstrofe.!k Despliega el caracter k (!! despliega un signo de exclamación). Cuadro 9.3: Significado de los caracteres para los formatos de series temporales 118

Capítulo 10 Comandos de programación En este capítulo se comenzará hablando de la programación, se hablará también de la importancia que tienen las variables macros (local y global) para facilitar la programación y se mostrará cómo usar los comandos if, forvalues y foreach. 10.1. Las macros La instrucción program (help program) define subrutinas, que pueden ser útiles para procedimientos que se utilizan más de una vez para distintas variables. Esta instrucción es recomendable usarla en el DO-file y no en la barra de comandos. Para facilitar estas subrutinas existen las variables macro (help macro) que se dividen en local (help local) y global (help global), éstas permiten definir controles de flujo. La variable local sólo es valida en el programa que se está ejecutando corrientemente, la variable global permanece activa en todos los programas que se ejecutan en una secuencia. Una macro se debe rodear por un acento ( ) en la izquierda y un apóstrofe ( ) en la derecha como se ejemplifica a continuación: m. 10.1.1. Variable local Con esta variable se puede agrupar tanto variables o dejar algún número constante, pero no necesariamente puede ser un número también puede ser un string (caracter), pero para ingresarlo tiene que estar entre comillas. Sintaxis: local lclname [=exp :extended_fcn [ ]"[string]"[ ] ] Ejemplo 10.1 local i=50 local i 50 Con esta instrucción la variable i va a ser siempre 50 dentro de un programa. 119

10.2. COMANDOS: if, forvalues, foreach 10.1.2. Variable global Sintaxis: global mname [=exp :extended_fcn [ ]"[string]"[ ]] Observación 10.1 El signo igual en la variable local no es necesario colocarlo, la única diferencia que existe al ponerlo o no es la cantidad de caracteres que acepta. Con el signo igual acepta un total de 80 caracteres, en cambio, sin el signo igual acepta 67784 caracteres. 10.2. Comandos: if, forvalues, foreach Existen tres condiciones que son las más utilizadas dentro de los programas o subrutinas, éstas ayudan y/o facilitan el uso de procedimientos. 10.2.1. Condición if Este comando es de fácil uso. Se utiliza para decisiones, es decir, hace una cosa si es verdadero y otra si es falso. Sintaxis: if exp { or if exp single_command multiple_commands } else { or else single_command multiple_commands } Ejemplo 10.2 if foreign==1{ display rep78 weight length } Este comando además de ser utilizado dentro de programas o subrutinas, también se puede usar interactivamente, pero hay que tener mucho cuidado de cómo se utiliza, por ejemplo: summarize rep78 weight length if foreign==1 Este comando proporcionan los siguientes resultados: 120

CAPíTULO 10: COMANDOS DE PROGRAMACIÓN Variable Obs Mean Std. Dev. Min Max ------------+--------------------------------------------------- rep78 21 4.285714.7171372 3 5 weight 22 2315.909 433.0035 1760 3420 length 22 168.5455 13.68255 142 193 Esta instrucción muestra las estadísticas básicas de las variables rep78 weight y lenght siempre que la variable foreign sea igual a 1; o sea, que sean autos extranjeros. 10.2.2. Condición forvalues Este comando itera sobre series de valores más o menos complejas. Su sintaxis es: forvalues lname = range { commands referring to lname } Un ejemplo de esto, es un programa que cuente del 1 al 10 de 1 en 1. Ejemplo 10.3 1. program diez 2. forvalues i=1(1)10{ 3. display i 4. } 5. end Al ejecutar el programa diez, en la pantalla Results aparece lo siguiente:. diez 1 2 3 4 5 6 7 8 9 10 Este comando no es muy utilizado, ya que casi todos los análisis que se hacen son para las variables, por eso que se usa más el foreach que es el comando a estudiar a continuación. 121

10.2. COMANDOS: if, forvalues, foreach 10.2.3. Condición foreach Este comando es el más utilizado dentro de los programas, éste itera sobre una serie de variables que el usuario quiera analizar. Su sintaxis es: foreach lname {in of listtype} list { commands referring to lname } Un ejemplo de esto usando variable local sería: Ejemplo 10.4 A los países de Chile, Argentina, Brasil y Estados Unidos, les asignaremos un número para que queden ordenados. 1. local i 0 2. 3.local pais CL AR BR US 4. foreach c of local pais { 5. local i = i +1 6. local newlist " newlist i c " 7.} 8. 9. display " newlist " Con estas instrucciones lo que aparece en pantalla es lo siguiente: 1 CL 2 AR 3 BR 4 US Ejemplo 10.5 Para el ejemplo 10.4 se hará ahora un procedimiento para que los países queden mostrados verticalmente. 1. local i 0 2. 3. local pais CL AR BR US 4. 5. foreach c of local pais { 6. local i = i +1 7. display "Pais i : c " 8.} Al hacer correr este procedimiento da como resultado lo siguiente: Pais 1 : CL Pais 2 : AR Pais 3 : BR Pais 4 : US 122

Índice alfabético abreviar las variables, 19 abrir, 12 acceder a Stata, 11 acceso directo, 11 administración de datos, 9 agregar, 13 casos, 15 variables, 16 ajustar una curva, 47 una recta, 47 ajuste de la curva normal, 56 almacenamiento, 10 almacenando la información, 12 almacenar, 10 archivos, 7 análisis, 9, 69, 71, 73 de datos, 7, 15 estadístico, 70 mediante tablas, 62 preliminares, 13 anova, 85 append, 38, 40 archivo de programa, 12 do, 12, 13 log, 12 archivos, 12 ASCII, 21 de gabinete, 10 dta, 21 txt, 21 barra de comando, 12 de comandos, 13 de herramientas, 12 de menú, 12 base de datos, 16, 20 de datos original, 21 bases de datos, 87 browse, 74, 90 browser editor, 80 by, 48 código de error, 12 de programa, 12 de programación, 81 códigos alfa-numéricos, 27 campo numérico, 70 caracteres, 9, 23 carpeta, 7, 8 categoría, 44 categorías, 61 de la tabulación, 62 123

ÍNDICE ALFABÉTICO codebook, 18, 71, 73, 75 codificaciones, 23, 24 comandos, 12, 13, 15, 61 básicos, 15 comentario, 10 comparación, 48 comparar, 48 concatenación, 38, 40 de archivos, 41 horizontal, 38 vertical, 40 concatenar la información, 40 conclusión del test, 84 conservar observaciones, 34 variables, 34 consistencia de los datos, 69 contabilizar, 98 copiar la base de datos, 14 crear bases de datos, 14 variables, 17 curva normal, 56 curvas ajustadas, 48 día de la semana, 93 del año, 94 del mes, 92 dígitos, 9, 88 data editor, 21, 27, 80 date, 87 89, 92 datos, 12 anómalos, 57 atípicos, 47 concatenados, 39, 41 faltante, 75 longitudinales, 50 originales, 8 day, 92, 93 decode, 72 delimitado por coma, 14 desactivado, 13 describe, 16, 25, 27, 41, 82 descripción de las variables, 16 desviación estándar, 19, 55, 62 detail, 80 detalle de la variable, 18 digitación, 70 dirección, 15 dispersión, 48 distribución uniforme, 31 DO-file, 12, 13, 21 documentar, 10, 12 los resultados, 13 dow, 93 doy, 94 drop, 34 ecuación, 47 ecuaciones de predicción, 54 editar, 13 editor de texto, 13, 25 egen, 34, 35 ejecución de un programa, 13 ejecutar el archivo do, 21 un comando, 13 eliminar, 13 datos, 34 variables, 34 encode, 72 ereturn list, 79, 84, 85 124

ÍNDICE ALFABÉTICO error, 70 sistemático, 69 errores, 8, 21, 69 no sistemáticos, 69, 73 sistemáticos, 69, 70 escritura de los programas, 10 estadística descriptiva, 71 estadísticas descriptivas, 18, 20 estandarizar, 69 una variable, 79 estructura, 61 etiqueta, 69 etiquetado de variables, 47 etiquetar archivos, 23 valores, 23, 24 variables, 23 etiquetas de las variables, 16 de los valores, 16 explorador de Windows, 7 fechas, 87 foreach, 119, 122 forma interactiva, 12 formato, 16, 19, 61 caracter, 88, 98 de fecha, 87, 90, 94, 97, 98 de serie temporal, 101 fecha, 88 numérico, 92, 93, 95 97 por defecto, 61 formatos, 87 forvalues, 119, 121 frecuencia, 83 frecuencias, 54, 62 generate, 17, 31, 34, 72, 77, 79 gráfico, 13, 43, 48, 52, 54 de barras, 54 de caja, 48, 49 de dispersión, 45, 46 de matriz, 50 de tallo y hoja, 43, 44 scatterplot, 45 tipo twoway, 46 graph box, 48 matrix, 50 grupos de programas, 9 guardando, 12 guardar, 12 electrónicacmente, 10 la base de datos, 14 halfyear, 95 histograma, 54, 55 hoja, 43 icluir líneas, 12 icono, 12, 13, 21 DO current file, 21 iconos, 12 if, 119, 120 imprimir, 12 incoherencias en los datos, 89 ingresar, 13 input, 15 instrucción, 15, 19 program, 119 interactivamente, 12, 21 interactivo, 13 intercepto, 52, 53 intervalos, 54 investigador, 45 itera, 121, 122 juntar bases de datos, 38 keep, 34 125

ÍNDICE ALFABÉTICO línea de comandos, 13, 25, 48 label, 72 define, 27 values, 27 limpiar los datos, 69 limpieza de datos, 57, 74 list, 16, 27, 35, 74 máximo, 19 mínimo, 19 macro, 119 global, 119 local, 119 macros, 119 media, 55, 62 medias, 50 memoria RAM, 79 mensaje de error, 28, 48, 91 mensajes de error, 12 merge, 38 40 metodología, 7 mezclando varias variables, 17 missing, 75 modelo de regresión, 47 modificación, 13 modificar, 13 modify, 27 modo interactivo, 21 month, 97 muestra los datos, 16 mvencode, 76 número de decimales, 37, 61 de observaciones, 19, 41, 61 números aleatorios, 31 consecutivos, 7 romanos, 28 nombre del gráfico, 47 notación científica, 61 objetivos, 7 observar los datos, 21 operaciones matemáticas, 17 por filas, 34 orden de los factores, 89 ordena variables, 17 outliers, 43, 45 pantalla de los datos, 13 results, 13 pegar la base de datos, 14 pendiente, 52, 53 percentil, 81 precisión, 61 problemas, 12 procedimiento, 13, 58 procedimientos de Stata, 9 proceso de limpieza, 60 programa, 9 11 detallado, 21 por pasos, 21 programación, 8 programas, 7 con extensión do, 10 promedio, 19 proyectos, 7 punto decimal, 14 126

ÍNDICE ALFABÉTICO puntos atípicos, 46 quarter, 96 rótulo, 29 rótulos, 23, 26 random, 31 rangos, 54 recolección de datos, 7 recuperar el valor, 84 reemplaza valores, 17 variables, 17 registro, 12 regresión lineal simple, 85 regress, 79, 85 replace, 17, 76, 77 replicabilidad, 8, 12 reproducir, 8 los resultados, 81 respaldo, 7 resultados, 12, 13, 20 numéricos, 61 resumir la información, 60 return list, 79 84 rotulación, 9 rotular, 24 archivos, 23 valores, 23 variables, 23, 25 rsum, 36 símbolo, 45 scatter, 45 scatterplot, 46, 49, 50 semilla, 31 serie temporal, 98, 101 sistema computacional, 69 de etiquetado, 9 sort, 17, 39 Stata command, 21 statsby, 52 stem, 43, 44 string, 88 subconjunto de datos, 104 summarize, 18, 71, 72, 79 t-test, 84 tab2, 62 tabla de doble entrada, 60 de frecuencias, 26 tablas, 60, 61 bivariadas, 62 table, 82, 83 tabulate, 61 tallo, 43 teoría de errores, 70 tipo de variable, 16 tipos de formato, 61 trabajar la información, 21 transformación de observaciones, 21 de variables, 21 traspasar una base de datos, 70 twoway, 47 valor faltante, 75, 76 numérico, 87, 88, 99 perdido, 75, 89 valores, 24 atípicos, 45, 48 de las variables, 13 numéricos, 26, 73 perdidos, 12, 35, 69, 70 127

ÍNDICE ALFABÉTICO variable, 18 merge, 38, 40 categórica, 61 discreta, 61 global, 119 indicadora, 38, 51 local, 119 numérica, 29 variables, 12, 13, 16, 19, 24 alfa-numéricas, 25, 72 categóricas, 18, 24, 25, 87 continuas, 55 de interés, 13 discretas, 55 numéricas, 18, 25, 27, 61 ventana results, 12, 17, 81 variables, 13 week, 98 year, 98 128