lunes, 21 de enero de 2019

Programando estimadores en Stata: Por qué deberías

Artículo original por David M. Drukker, Director Ejecutivo de Econometría.

Distribuir un comando de Stata que implemente un método estadístico hará que ese método sea utilizado por muchas personas. Ellos te lo agradecerán. ¡Y te citarán!

Esta publicación es la primera en la serie #StataProgramming sobre la programación de un comando de estimación en Stata que usa Mata para hacer el trabajo numérico. En el proceso de mostrar cómo programar un comando de estimación en Stata, analizaré la programación en  do-file, la programación en ado-file y la programación en Mata. Cuando la serie termine, será capaz de escribir comandos de Stata.

A los usuarios de Stata les gusta su sintaxis predecible y su estructura de estimación y postestimación que facilita la prueba de hipótesis, las pruebas de especificación y la interpretación de parámetros. Para ayudarlo a escribir los comandos de Stata que la gente quiere usar, ilustro cómo la sintaxis de Stata es predecible y le ofrezco una descripción general de la estructura de estimación-postestimación que deseará emular en sus programas.

Estructura de Stata por ejemplo
Uso y describo algunos datos simulados sobre el número de accidentes de tráfico observados en 948 personas.

Ejemplo 1: Datos de accidentes

La sintaxis predecible de Stata
Estimo los parámetros de un modelo de regresión de Poisson para accidentes (accidents) en función de las condiciones del tráfico (traffic), un indicador de ser un conductor masculino (male) y el número de multas recibidas en los últimos dos años (tickets).

Ejemplo 2: Un modelo Poisson para accidentes


Quiero centrarme en la estructura de este ejemplo para que usted pueda usarla para que sus comandos sean más fáciles de usar. En particular, quiero discutir la estructura de la sintaxis del comando y señalar que la salida es fácil de leer e interpretar porque es una tabla de salida estándar de Stata. Para los estimadores, la tabla casi siempre reporta estimaciones (a menudo coeficientes), errores estándar, pruebas contra cero y sus p-values e intervalos de confianza.

La sintaxis de Stata es predecible, lo que facilita su uso. Los usuarios de Stata "hablan Stata" y ni siquiera notan los detalles. Resalto algunos de estos detalles para que podamos hacer que la sintaxis de los comandos que escribimos sea predecible. Estos son algunos de los elementos de sintaxis estándar ilustrados en el ejemplo 2.


  1. El comando tiene cuatro elementos sintácticos;
    1. Nombre del comando (poisson),
    2. Lista de nombres de variables (accidents traffic male tickets),
    3. Una coma,
    4. Una opción (vce(robust)).
  2. En la lista de nombres de variables, el nombre de la variable dependiente es la primera y es seguida por los nombres de las variables independientes.
  3. El trabajo de la coma es separar el nombre del comando y la lista de variables de la opción u opciones.

La salida también está estructurada; se compone de un registro de iteración, un encabezado y una tabla de salida estándar. 

Marco de estimación-postestimación
Como usuario de Stata, ahora podría usar el marco de estimación-postestimación. Por ejemplo, podría realizar una prueba de Wald sobre la hipótesis de que el coeficiente de male es 3. 

Ejemplo 3: Una prueba de Wald de restricción lineal

O podría realizar una prueba de Wald de la hipótesis no lineal de que la proporción del coeficiente male sobre el coeficiente tickets es igual a 2.

Ejemplo 4: Una prueba de Wald de restricción no lineal

También podría predecir el promedio de accidentes para cada observación y resumir los resultados.

Ejemplo 5: Resumen de las medias condicionales predichas

Finalmente, podría usar margins para estimar los parámetros condicionales o promediados de la población que son funciones de los parámetros en el modelo original. Utilizo margins para estimar el número promedio de accidentes que se observarían si cada individuo recibiera 0 multas, o 1 multa, o 2 multas, ..., o 7 multas. Consulte [R] margins, Long y Freese (2006, sec. 4.4.2-4.4.3), y Cameron y Trivedi (2010, 10.5.6 {10.6.9) para introducirse a las funciones de estimación de los parámetros del modelo con margins.

Ejemplo 6: Funciones de estimación de los parámetros del modelo


El pegamento
Los resultados de la estimación almacenados en e() son el pegamento que mantiene unido el marco de estimación-postestimación. El comando poisson almacena muchas cosas en e(). Podría usar ereturn list para enumerar todas estas cosas, pero hay muchos objetos almacenados que todavía no le interesan.

La mayoría de las características de estimación-postestimación que discutí se implementaron utilizando e(b), e(V) y e(predict), que son el vector de estimaciones puntuales, el VCE estimado y el nombre del comando que implementa predict después de poisson.

Mostraré cómo almacenar lo que necesita en e() en la serie #StataProgramming.

Estructura de los comandos de Stata
Aquí hay un resumen de las tareas realizadas por un comando de estimación de Stata.

  1. Análisis sintáctico de la entrada del comando.
  2. Calcular los resultados
  3. Almacenar resultados en e()
  4. Desplegar el resultado
Debe escribir un comando de predicción para completar el marco de estimación-postestimación. Una vez que haya almacenado los resultados de la estimación y haya escrito el comando predict, el comando margins funcionará.

Explicaré cada uno de estos pasos en la serie de publicaciones #StataProgramming.

Use esta estructura a tu favor. Para hacer que su comando sea fácil de usar, diséñelo para tener la sintaxis predecible implementada en otros comandos y para que funcione en el marco de estimación-postestimación. Esta tarea es mucho más fácil de lo que parece. De hecho, es simplemente fácil. El lenguaje Stata le dirige en esta dirección.

Hecho y sin hacer
Le enseñaré cómo programar un comando de estimación en Stata en la serie #StataProgramming. También le mostraré cómo funciona el trabajo numérico en Mata. Comenté los siguientes puntos, en este primer post.
  1. La estructura predecible de la sintaxis de Stata hace que Stata sea fácil de usar. Debes emular esta estructura, para que tus comandos sean fáciles de usar.
  2. El marco de estimación-postestimación simplifica la inferencia y la estimación avanzada. Es fácil para usted hacer que su comando funcione con este marco.
  3. Los resultados de la estimación almacenados en e(), y el comando predict, son el pegamento que mantiene el marco de estimación-postestimación juntos.
En la siguiente publicación, discuto las herramientas de programación en do-file que usaré posteriormente para el análisis sintáctico de la entrada del comando.

Referencias
Cameron, A. C., and P. K. Trivedi. 2010. Microeconometrics Using Stata. Revised ed. College Station, Texas: Stata Press.
Long, J. S., and J. Freese. 2014. Regression models for categorical dependent variables using Stata. 3rd ed. College Station, Texas: Stata Press.


Este blog es administrado por MultiON Consulting S.A. de C.V.

No hay comentarios.:

Publicar un comentario