viernes, 3 de enero de 2020

Programando un comando de estimación en Stata: Permitiendo opciones.


David M. Drukker, Director Ejecutivo de Econometría.

Realizó tres mejoras al comando que implementa el estimador de mínimos cuadrados ordinarios (OLS) que discutí en Programando un comando de estimación en Stata: Permitir restricciones de muestra y variables factor. Primero, permito al usuario que solicite un estimador robusto de la varianza-covarianza del estimador (VCE). En segundo lugar, permito que el usuario suprima el término constante. Tercero, almaceno los grados de libertad residuales en e(df_r) para que test use la distribución t o F en lugar de la distribución normal o chi cuadrada para calcular el p-value de las pruebas de Wald. 

Esta es la novena publicación de la serie Programando un comando de estimación en Stata: Permitir restricciones de muestra y variables factor. Te recomiendo que empieces por el principio. 

Permitiendo errores estándar robustos

La sintaxis de myregress6, la cual discuto en Programando un comando de estimación en Stata: Permitir restricciones de muestra y variables factor, es 

myregress6 depvar [indepvars] [if] [in]

Donde las variables independientes pueden ser series de tiempo o variables factor. myregress7 tiene la sintaxis

myregress7 depvar [indepvars] [if] [in] [,robust]

Por defecto, myregress7 estima el vce asumiendo que los errores son independientes e idénticamente distribuidos (IID). Si la opción robust se especifica, myregress7 usa el estimador robusto de el VCE. Vea Cameron y Trivedi (2005), Stock y Watson (2010), Wooldridge (2015) para una introducción a OLS; vea Programando un comando de estimación en Stata: Usando comandos matriciales y funciones para calcular objetos MCO para las formulas y las implementaciones matriciales en Stata. Dé un clic en el nombre del archivo para descargar cualquier bloque de código. Vea el código en el editor de archivos do, o en su editor de texto favorito para ver los números de línea.


Code block 1: myregress7.ado








El usuario puede especificar la opción robust escribiendo robust, robus, robu, rob, ro o r. En otras palabras, r es la mínima abreviación de la opción robust, la línea 5 de myregress7 implementa esta sintaxis. Especificar robust es opcional porque Robust está entre corchetes. r es la abreviación mínima porque R está en mayúscula y las letras restantes están en minúsculas. 


Si el usuario especifica robust, o una abreviación valida, la macro local robust contendrá la palabra “robust”; de otra manera, la macro local robust estará vacía. La línea 25 usa este hecho para determinar cuál VCE debería ser calculada; especifica que las líneas 26 a 31 deberán ser ejecutadas si la macro local robust está vacía y que las líneas 32 a 36 deberían ejecutarle de otro modo. Las líneas 26-31 computan el estimador IID de del VCE. Las líneas 32-34 calculan el estimador robusto del VCE. Las líneas 35 y 36 colocan “robust” y “Robust” dentro de las macros locales vce y vcetype respectivamente. 

La línea 41 coloca el contenido de la macro local vce dentro de la macro local e(vce), la cual informa a los usuarios y a los comandos posteriores a la estimación qué estimador de VCE se utilizó. Por convención, e(vce) está vacío para el caso IID. La línea 42 coloca el contenido de la macro local vcetype dentro de la macro local e(vcetype), la cual se utiliza por ereturn display para etiquetar correctamente los errores estándar como robustos. 

Ahora ejecutaré una regresión con errores estándar robustos. 

Ejemplo 1: myregress7 con errores estándar robustos




Suprimiendo el término constante
 myregress8 tiene la sintaxis 
myregress8 depvar [indepvars] [if] [in] [,robust noconstant]



Code block 2: myregress8.ado















































El comando syntax en la linea 5 coloca “noconstant” dentro de la macro local constant si el usuario escribe nocons, noconst, noconsta, noconstan o noconstant; de otra forma, la macro local constant está vacía. La abreviación minima de la opción noconstant es nocons porque el no en minusculas está seguidop por CONStant. Note que especificar la opción crea la macro local constant porque el no es seguido por letras mayusculas que especifican la abreviación minima.

Para implementar la opción, especifico qué contiene la macro local constant como una opción en el comando  matrix accum en la linea 14 y en el comando matriz accum repartidos en las lineas 33 y 34. El comando matrix accum que comienza en la linea 33 es muy largo para una linea. Usé /// para continuar el comando en la linea 34.
Ahora ilustro la opción noconstant.

Ejemplo 2: myregress8 con la opción noconstant


Usando distribuciones t o F

Las tablas de resultados resportadas en los ejemplos 1 y 2 usan la distribución normal para calcular los p-values y lo sintervalos de confianza, porque los comandos de estimación basados en Wald como test y ereturn display usan la normal o la distribución chi cuadrada a menos que los grados de libertad residuales se almacenen en e(df_r).


Code block 3: myregress9.ado


La línea 42 de myregress9.ado guarda los grados de libertad residuales en e(df_r).
El ejemplo 3 ilustra que ereturn display y test ahora usan la distribución t y F.

Ejemplo 3: distribuciones t o F después de myregress9


Hecho y sin hacer

Agregué una opción para el estimador robusto del VCE, agregué una opción para suprimir el término constante y guardé los grados de libertad residuales en e(df_r) con lo cual los comandos postestimación basados en Wald usarán las distribuciones t o F. Ilustré el análisis de opciones con los ejemplos, pero omití la teoría general y muchos detalles. Escriba . help syntax para más detalles sobre opciones de análisis de gramática usando el comando syntax.
En la siguiente publicación, implementaré la sintaxis moderna para errores estándar robustos y tipo clúster.


Referencias
Cameron, A. C., and P. K. Trivedi. 2005. Microeconometrics: Methods and applications. Cambridge: Cambridge University Press.
Stock, J. H., and M. W. Watson. 2010. Introduction to Econometrics. 3rd ed. Boston, MA: Addison Wesley New York.
Wooldridge, J. M. 2015. Introductory Econometrics: A Modern Approach. 6th ed. Cincinnati, Ohio: South-Western.



¡Gracias por leernos!




No hay comentarios.:

Publicar un comentario