El software estadístico Stata – Nivel avanzado: Programación para no programadores
Contenidos
Se prioriza en la selección de contenidos aquellos propios de la programación combinados con un conjunto de métodos y técnicas que aumenten la efectividad en la aplicación del software.
Stata es muy flexible y permite la creación de nuevos comandos para uso personal o para compartir con la amplia comunidad de usuarios. Esta es una característica conocida como “extensibilidad”. Hacer uso de ella implica adquirir buenas prácticas de programación y, al mismo tiempo, conocer elementos de programación avanzada.
El curso está estructurado alrededor de seis módulos y en cada uno se desarrollan dos clases. El Módulo 1 está centrado en una revisión de los conocimientos mínimos requeridos para tomar el posgrado. El Módulo 2 introduce el concepto de Macro, que es fundamental ya que posibilita programar en Stata. Se trata de las llamadas macros locales, que no tienen correspondencia con lo que se conoce por macros en otros softwares, por ejemplo Excel. El Módulo 3, llamado Programación Básica I, llega a presentar el concepto de “ado” (automatic do-file), programa que se carga automáticamente en memoria al invocarlo. El Módulo 4 (Programación Básica II) avanza hasta el uso de objetos temporales, que posibilitan hacer programas generales. El Módulo 5 profundiza en las funciones macro extendidas y da pié a la Programación avanzada I. El Módulo 6 trata de Programación avanzada II, llegando a la creación de un nuevo comando no existente antes en el software y que puede integrarse a él con todas las funcionalidades exigidas a un comando oficial.
Módulo 1: Repaso de los conocimientos requeridos.
Clase 1
- Actualización de Stata
- profile.do
- Creación de do files
- Organización del trabajo (audit trail)
Clase 2
- Sintaxis de los comandos
- Uso de [by varlist:]
- Variables con subíndice (explicit subscripting)
- Variables de sistema _n y _N
- Reglas verdadero-falso
Módulo 2: Macros
Clase 3
- Macros locales
- El significado de “local”
- Estilo de programación
- Do files con pase de argumentos posicionales
- Presentación del trabajo integrador
Clase 4
- Resumen puntos salientes de la clase anterior – macros
- Macros locales – Otros aspectos a tener en cuenta
- Macros globales
- Escalares
- Diferencias entre macros y escalares
- Ejercicios sobre macros y escalares
- Estilo de programación
Módulo 3: Programación Básica I
Clase 5
- Comillas dobles compuestas
- Manejo de listas (foreach – forvalues – while)
- Diferencia entre la claúsula -if- y el comando de programación -if-
- Estilo de programación
- Ejercicios sobre foreach y forvalues
- Soluciones alternativas para el trabajo integrador
Clase 6
- Programación
- Relaciones entre un programa y un do-file
- Do-files combinados con programas
- Ado-files
- Variantes en el uso de Stata
- Envoltorio (wrapper)
Módulo 4: Programación Básica II
Clase 7
- Acumulando resultados
- Do-files combinados con programas (ejercicio completo)
- Estilo de programación
- Escalares que contienen un string
Clase 8
- Accediendo a valores del sistema – Valores c-class
Valores del sistema
Directorios y rutas
Límites del sistema
Límites numéricos y de strings
Base actual (en memoria)
Seteos de la memoria
Seteos de salida
Seteos de la interfaz
Seteos de gráficos
Seteos de eficiencia
Seteos de red
Seteos de actualización
Seteos para la depuración de programas
Seteos de Mata
Otros seteos
Otros - Ejemplos de aplicación utilizando valores c-class
Módulo 5: Programación Avanzada I
Clase 9
- Objetos temporales
- Variables temporales
- Escalares y matrices temporales
- Archivos temporales
- Estilo de programación
- Funciones macro extendidas
Para extraer atributos de los datos
Para nombres de archivos y directorios
Para nombres de resultados salvados en r() y e()
Para recuperar resultados del comando -display-
Para manipular listas - Depuración de errores (debugging)
Clase 10
- Manejo de listas en paralelo
- Operadores incremento / decremento – i++ / ++i / i– / –i
- Funciones macro extendidas
Para parsing - Manejo de listas en paralelo (finalización)
- Usos de una r(varlist)
- Funciones útiles
cond()
inlist()
inrange()
Módulo 6: Programación Avanzada II
Clase 11
- Creación de un ado-file
- Estilo de programación
- Comando syntax
- Programas de propósito general
- Resultados retornados en r()
Clase 12
- Comando syntax (continuación)
- Parsing de alto nivel y de bajo nivel
- Estilo de programación
- Nuevos comandos
- Como crear un nuevo comando
- Como crear un -help- para el nuevo comando
- Estilo de programación (compendio)