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)