miércoles, 25 de julio de 2018

Creando un archivo PDF desde Stata

¡Hola! Bienvenidos de nuevo a nuestro Blog de Usuarios Stata para la comunidad de habla hispana.

En esta nueva entrada de nuestro Blog, mostraremos algunos de los alcances del comando putpdf, realizando breves ejemplos de cómo usarlo para realizar algunos reportes.

El comando putpdf viene acompañado de un conjunto de comandos útiles para escribir párrafos, pegar imágenes y tablas a un archivo .pdf que guardaremos en memoria.

Para iniciar, debemos crear el documento .pdf escribiendo el siguiente comando:
.putpdf begin


Esto ha creado un documento en la carpeta en la cual estemos trabajando, por lo que si se encuentran trabajando en una carpeta diferente a la deseada pueden utilizar el comando cd para cambiar el directorio de trabajo de Stata. Cabe mencionar que este documento está guardado en la memoria y no el disco, por lo que no veremos un nuevo archivo dentro de la carpeta seleccionada hasta que utilicemos el siguiente comando:

. putpdf save nombredearchivo.pdf


Este último comando se utiliza, normalmente, una vez que hayamos terminado la edición de nuestro archivo; además, podemos utilizar la opción replace para sobrescribir nuestro documento cuando ya exista en disco.

En nuestro ejemplo, utilizaremos ola base de datos precargada en Stata: nlsw88.dta. En primera instancia, obtendremos estadística descriptiva de una variable para después obtener los resultados guardados en memoria de Stata para poder usarlos en nuestro documento y realizar un breve párrafo donde se describe la variable. Escribiremos en la barra de comandos lo siguiente:

. sysuse nlsw88.dta
. sum age

. return list





Antes de que podamos agregar texto a nuestro documento necesitamos indicarle a Stata la creación de un nuevo párrafo utilizando putpdf paragraph. Con el cual podemos realizar los ajustes necesarios de formato de este, tal como la alineación. Una vez creado el párrafo podemos insertar texto a través del comando putpdf text, este texto se añadirá a cualquier texto o imagen que haya sido agregada anteriormente; también podemos darle un formato especial a este texto.

Utilizaremos los datos obtenidos anteriormente para escribir nuestro primer párrafo, sólo necesitamos escribir lo siguiente en la barra de comandos:

. putpdf begin
. putpdf paragraph, halign(justified)
. putpdf text ("En la base de datos ")
. putpdf text ("nlsw88.dta"), font("Courier New")
. putpdf text (", se cuenta con")
. putpdf text (r(N)), nformat("%7.0fc")
. putpdf text (" datos sobre el salario de mujeres. Si observamos la edad de cada una, observamos que ")
. putpdf text (r(max)), bold
. putpdf text (" es la edad máxima. En promedio, las mujeres de esta muestra tienen ")
. putpdf text (r(mean)), nformat("%4.1fc")
. putpdf text (" años.")
. putpdf text (" Además, contamos con información sobre su estado civil, años de experiencia laboral y años de educación"), linebreak

En la segunda línea, la opción halign(justified) indica que la alineación del párrafo será justificada, entre otras opciones puede ser centrado o justificado a la derecha o izquierda. Notarán que todo el texto debe estar entre comillas; en nuestra cuarta línea, el nombre de la base de datos ocupa la opción font("Courier New") para indicar qué tipo de fuente se utilizará para ese texto en especial.

La sexta línea se utiliza la información que Stata retiene en memoria del comando summarize age, específicamente utilizamos el número de datos y le dimos un formato especifico a la cifra con la opción nformat("%7.0fc")

En la octava línea, nuevamente utilizamos la estadística descriptiva, pero especificando el tipo de letra con la que se reportaría (bold).

Por último, al escribir las líneas finales del párrafo especificamos que habrá un salto de línea para iniciar un segundo párrafo, esto a través de la opción linebreak.


Así luce hasta ahora nuestro documento:




Para que usted pueda ver el documento, recuerde que tiene que indicarle a Stata que quiere guardar el documento en disco, con el comando putpdf save.

. putpdf save BlogUsuariosEspañolSTATA.pdf, replace

Ahora pegaremos una imagen en nuestro documento. Se pueden gregar imágenes con formato .jpg y .png; debido a que las gráficas de Stata son formato .gph, debmos utilizar el comando graph export para convertir la gráfica a un formato soportado por putpdf image.

Si se requiere que la imagen sea agregada al párrafo activo, la imagen adoptará las especificaciones de formato del propio párrafo, pero si se requiere que la imagen sea independiente del párrafo activo, es necesario activar un nuevo párrafo en el cual podemos darle las opciones de formato distintas a las anteriores y que se ajusten a nuestra imagen; para esto, antes escribiremos en la ventana de comandos lo siguiente:

. histogram wage, percent kdensity by(race, total)
. graph export histo.png, replace

Obtuvimos un histograma del salario para cada subgrupo de la muestra según la raza, y la exportamos a un formato soportado por el comando. Ahora insertaremos esta imagen a nuestro documento PDF.

. putpdf paragraph, halign(center)
. putpdf image histo.png, width(4) height(2) linebreak
. putpdf text ("Observamos cómo se distribuye el salario por hora de las mujeres según la raza a la que pertenezcan."), italic


Esta vez nuestro párrafo fue centrado y a la imagen le especificamos las medidas que ocuparía en pulgadas (width(4) height(2)), además de especificarle un salto de línea, sin esta opción (linebreak) las líneas de texto posteriores se escribirían sobre la misma línea en la que se ubica la gráfica, produciendo un error visual fatal. Y por último describimos brevemente el gráfico con letras itálicas. 




Nuestro siguiente paso será agregar una tabla a nuestro documento. Necesitamos un nombre válido para nuestra tabla, pues lo utilizaremos para darle formato. La edición del formato de la tabla durará hasta que un nuevo párrafo, gráfico u otra tabla sean añadidas. En esta ocasión utilizaremos nuestra base de datos para obtener estadística descriptiva que pegaremos en el archivo.

Utilizaremos nuestra base de datos para obtener estadística descriptiva referente al salario por hora de las trabajadoras según su raza, obteniendo el número total de trabajadoras en cada categoría, el promedio, el valor máximo y el valor mínimo. Para hacer esto utilizaremos el comando statsby; sin embargo, esto modifica nuestra base de datos por lo cual usaremos el comando preserve para mantener guardado en memoria el estado actual de la base.

Cambiaremos de nombre la variable race a Raza para que nuestra tabla luzca mejor.
. rename race Raza

Si observamos nuestra base de datos se ha reducido a lo siguiente:


Para añadir esta tabla a nuestro documento necesitamos darle un nombre a esta tabla (tabla1), indicando que lo que pegaremos a nuestro archivo será parte de la base de datos e indicando el nombre de las variables (data("Raza Total Promedio Max Min")). El comando es el siguiente:
. putpdf table tabla1= data("Raza Total Promedio Max Min"), varnames border(start, nil) border(end, nil) border(insideV, nil)

Las opciones indican que la tabla debe ocupar el nombre de las variables y el tipo de línea que debe tener la tabla de inicio a fin y dentro de esta. Ejecutamos el comando restore para regresar la base de datos a su estado anterior al de realizar el comando statsby
Nuestro documento ahora luce de la siguiente forma:


Por último, exportaremos los resultados de una estimación. Vamos a estimar un modelo de regresión exponencial tipo Poisson, dicho sea de paso, sirve para evadir el problema de predicción de los niveles de una variable expresada en logaritmos y nos ayuda a estimar de manera individual ciertas interacciones que no tienen el mismo impacto pero que se alojan en la misma variable; por ejemplo, el efecto en el salario del estado civil de las trabajadoras según su estado civil. Escribimos en la ventana de comandos:
. poisson wage i.union##(c.grade c.ttl_exp##c.ttl_exp), vce(robust)


Esta tabla de resultados es grande, por lo que la pondremos en una página nueva de nuestro documento, para realizar esta acción sólo escribimos:

. putpdf pagebreak

Para exportar todas las columnas de la salida de regresión, sólo necesitamos escribir:

. putpdf table reg = etable



Nuestro PDF queda como vemos a continuación:





Gracias por leernos. Nos vemos en la próxima entrada. Este blog es administrado por MultiON Consulting S.A. de C.V.

lunes, 9 de julio de 2018

Exportar resultados de tabulación a Excel - Actualización

El siguiente texto es un extracto del artículo original "Export tabulation results to Excel—Update" publicado por Kevin Crow, Desarrollador de Software Senior en el Stata Blog. 


Es verano, lo que significa que tenemos pasantes trabajando en StataCorp nuevamente. Nuestro nuevo pasante, Chris Hassell, se encargó de actualizar mi comando aportado por la comunidad tab2xl con la mayoría de las sugerencias que los lectores del blog dejaron en los comentarios.

Chris actualizó tab2xl y escribió tab2docx, que escribe una tabla de tabulación en un archivo de Word utilizando el comando putdocx.

Para instalar o actualizar su comando tab2xl, escriba:


Para instalar el nuevo comando tab2docx, escriba:


tab2xl ahora permite ponderaciones, condicionales (if, in), formateo de las celdas y tabulaciones bidireccionales. Una vez instalado, puede escribir:


Para producir:


Para escribir la tabla en un documento de Word, primero debe abrir un archivo .docx con el comando putdocx begin, escriba su comando tab2docx para agregar la tabla a su archivo, y luego guarde el documento usando putdocx save nombredeldocumento. Por ejemplo, escribiendo:


Producirá:



Chris hizo un excelente trabajo actualizando tab2xl y codificando tab2docx, facilitando la creación de tablas para su inclusión en un archivo de Word.

Accede al artículo original aquí.



Si deseas solicitar precios sobre cursos, licenciamiento o libros de Stata, escríbenos a info@multion.com.


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

lunes, 25 de junio de 2018

Explorando los resultados de los modelos de regresión no paramétricos

Explorando los resultados de los modelos de regresión no paramétricos
Kristin MacDonald, Director de Servicios Estadísticos


En su entrada del blog, Enrique Pinzon discutió cómo realizar una regresión cuando no queremos hacer ningún supuesto sobre la forma funcional: usar el comando npregress. Concluyó realizando unas cuantas preguntas y respuestas sobre los resultados usando los comandos magins y marginsplot.

Recientemente, He estado pensando sobre los diferentes tipos de preguntas que podeos responder usando margins después de una regresión no paramétrica, o en realidad después de cualquier tipo de regresión. margins y marginsplot son poderosas herramientas para explorar los resultados de un modelo y extraer distintos tipos de inferencias. En esta publicación, mostraré cómo hacer y responder preguntas muy especificas y cómo explorar toda la superficie de respuesta en función de los resultados de su regresión no paramétrica.

El conjunto de datos que utilizaremos incluye tres covariables: variables continuas x1 y x2 y la variable categórica a con tres niveles. Si desea seguir, puede usar estos datos escribiendo http://www.stata.com/users/kmacdonald/blog/npblog

Primero vamos a ajustar nuestro modelo.


Enrique discute la interpretación de estos resultados en su blog, así que no me enfocaré en esto aquí. Debo señalar, sin embargo, que debido a que mi objetivo es mostrarle cómo usar margins, utilicé solo 10 repeticiones bootstrap (un número ridículamente pequeño) al estimar los errores estándar. En la investigación real, seguramente querrá utilizar más repeticiones tanto con el comando npregress como con los comandos margins que siguen.

El resultado del comando npregress incluye estimaciones de los efectos de x1, x2 y los niveles de a en nuestro resultado, pero estas estimaciones probablemente no sean suficientes para responder algunas de las preguntas importantes que queremos abordar en nuestra investigación.

A continuación, primero te mostraré cómo puedes explorar la respuesta no lineal: el valor esperado de y en diferentes combinaciones de x1, x2 y a. Por ejemplo, suponga que su variable resultado es la respuesta a un medicamento, y desea conocer el valor esperado para una mujer cuyo peso es de 150 libras y cuyo nivel de colesterol es de 220 miligramos por decilitro. ¿Qué tal para un hombre con las mismas características? ¿Cómo cambian estas expectativas en un rango de pesos y niveles de colesterol?

También demostraré cómo responder preguntas sobre promedios poblacionales, contrafactuales, efectos de tratamiento y más. Estos son exactamente los tipos de preguntas que los formuladores de políticas hacen. ¿Cómo, en promedio, una variable afecta a la población en la que están interesados? Por ejemplo, supongamos que su variable resultado es el ingreso de individuos en sus 20 años. ¿Cuál es el valor esperado del ingreso para este grupo, el promedio poblacional? ¿Cuál es el valor esperado si, en lugar de tener su nivel educativo observado, todos fueran graduados de la escuela secundaria? ¿Qué pasaría si todos fueran graduados universitarios? ¿Cuál es la diferencia en estos valores - el efecto de la educación universitaria?

Estos son solo algunos ejemplos de los tipos de preguntas que podría responder. Continuaré con los nombres de variables x1, x2 y a, pero puede imaginar preguntas relevantes para su investigación.


Explorando el área de respuesta.

Empecemos desde el principio. Es posible que deseemos saber el valor esperado del resultado en un punto específico. Para obtener el valor esperado de y cuando a = 1, x1 = 2 y x2 = 5, podemos escribir:


Predecimos que y=12.7 en este punto.

Podemos evaluar en otro punto, digamos, a = 2, x1 = 2, y x2 = 5.


Con a = 2, el valor esperado de y ahora es 14.8.

Si nuestro interés está en el efecto de pasar de a = 1 a 2 cuando x1 = 2 y x2 = 5. Esto es solo un contraste: la diferencia en nuestros dos resultados previos. Usando el operador r.  de contraste con margins, podemos realizar una prueba de hipótesis sobre si estos dos valores son los mismos.


El intervalo de confianza para la diferencia no incluye el cero. Usando un nivel de confianza de 5%, encontramos que el valor esperado es significativamente diferente para estos dos puntos de interés.

Pero pudiera ser que estemos interesados en más que estos dos puntos, Continuemos manteniendo x2 = 5 y observemos un rango de valores para x1. Y estimamos los valores esperados en los tres niveles de a. En otras palabras, veamos una porción del área de respuesta tridimensional (en x2 = 5) y examinemos la relación entre otras dos variables.


Mejor aún, grafiquemos estos valores.


Encontramos que cuando x2 = 5, el valor esperado de y incrementa al hacerlo x1, y el valor esperado es menor para a = 3 que para a = 1 y a = 2 en todos los niveles de x1.

¿Pero es este patrón el mismo para otros valores de x2?

Tenemos sólo tres covariables. Así que podemos explorar fácilmente toda el área de respuesta. Veamos porciones adicionales en otros valores de x2. Aquí está el comando:


Esto produce una gran cantidad de salida, por lo que no lo mostraré. Pero aquí está el gráfico:


Ahora podemos ver que la superficie de respuesta cambia a medida que x2 cambia. Cuando x2 = 2, el valor esperado de y aumenta ligeramente a medida que x1 aumenta, pero casi no hay diferencia entre los niveles de a. Para x2 = 8, las diferencias entre los niveles de a son más pronunciadas y parecen tener un patrón diferente, aumentando con x1 y luego comenzando a nivelarse.

Anteriormente, escribimos r (1 2).a para probar la diferencia en los valores esperados cuando a = 1 y a = 2. Del mismo modo, podríamos escribir r (1 3).a para comparar a = 1 con a = 3. Podríamos hacer ambas comparaciones simplemente escribiendo r.a. Y podemos hacer esto a través de un rango de valores de x1 y x2. Solo cambiamos a a r.a en nuestro comando previo margins.


La leyenda en la parte superior de la salida nos dice que 1._at corresponde a x1 = 1 y x2 = 2. Los valores en paréntesis, como (2 vs 1), al inicio de cada línea de la tabla nos dicen qué valores de a se comparan en esa línea. Por lo tanto, la primera línea de la tabla proporciona una prueba que compara los valores esperados de y para a = 2 versus a = 1 cuando x1 = 1 y x2 = 2. Es cierto que esto es mucho que mirar, y probablemente sea más fácil de interpretar con un gráfico. Usamos marginsplot para graficar estas diferencias con sus intervalos de confianza. Esta vez, usemos la opción yline(0) para agregar una línea de referencia a 0. Esto nos permite realizar la prueba visualmente al verificar si el intervalo de confianza para la diferencia incluye 0.


En este caso, algunos de los intervalos de confianza son tan estrechos que son difíciles de ver. Si miramos de cerca el punto azul en el extremo izquierdo, vemos que el intervalo de confianza para la diferencia que compara a = 2 versus a = 1 cuando x1 = 1 y x2 = 2 (que corresponde a la primera línea en la salida anterior) incluye el 0. Esto indica que no hay una diferencia significativa en estos valores esperados. Podemos examinar cada uno de los otros puntos e intervalos de confianza de la misma manera. 

Por ejemplo, mirando la línea roja y los puntos en el tercer panel, vemos que el efecto de pasar de a = 1 a a = 3 es negativo y significativamente diferente de 0 para los valores x1 de 2, 3 y 4. Cuando x1 es 1, la estimación puntual del efecto sigue siendo negativa, pero ese efecto no es significativamente diferente de 0 en el nivel del 95%. Pero recordemos que deberíamos aumentar drásticamente la cantidad de repeticiones de arranque para hacer afirmaciones reales sobre los intervalos de confianza.

Hasta ahora, hemos comparado tanto a = 2 con a = 1 como a = 3 con a = 1. Pero no estamos limitados a hacer comparaciones con a = 1. Podríamos comparar 1 con 2 y 2 con 3, lo que a menudo tiene más sentido si los niveles de a tienen un orden natural. Para hacer esto, simplemente reemplazamos r. con ar. en nuestro comando de margins. No mostraré esa salida, pero tienes los datos y puedes probarlos si quieres.


Resultados promediados por población

Hasta ahora, hemos hablado sobre la evaluación de puntos individuales en su superficie de respuesta y cómo realizar pruebas para comparar los valores esperados en esos puntos. Ahora, cambiemos de marcha y hablemos de los resultados promediados por población.

Vamos a necesitar que el conjunto de datos sea representativo de la población. Si eso no es cierto para sus datos, querrá detenerse con los análisis que hicimos anteriormente. Asumiremos que nuestros datos son representativos para que podamos responder una variedad de preguntas basadas en predicciones promedio.

Primero, ¿cuál es el promedio de la población total esperada de esta superficie de respuesta?


Cualquiera que sea el proceso que generó esto, creemos que 15.6 es el valor esperado en la población y [15.3, 16.2] son los intervalos de confianza para él.

¿Difieren los promedios de la población cuando primero establecemos que todos tengan a = 1, luego establecemos que todos tengan a = 2, y finalmente establecemos que todos tengan a = 3? Veamos los promedios esperados para los tres.


Obtuvimos 18.4, 19.9 y 8.2. Parecen no ser iguales. Vamos a probar esta hipótesis.


En la literatura de inferencia causal o de efectos de tratamiento, las medias se considerarían promedios de resultados potenciales, y estas diferencias serían los efectos promedios de tratamiento de un tratamiento multivalor. Aquí el efecto promedio del tratamiento de a = 2 (comparado con a = 1) es 1.5

Vimos en la sección anterior la diferencia en valores esperados para los niveles de valores variados de x2. Estimamos las medias de los resultados potenciales y los efectos del tratamiento de a con diferentes valores de x2. Tenga en cuenta que estos siguen siendo promedios de población porque, a diferencia de la sección anterior, no estamos dando ningún valor especifico a x1. En cambio, las predicciones usan los valores observados de x1 en los datos. 


En lugar de ver la salida, grafiquemos estas medias de resultados potenciales.


El efecto de a se incrementa a medida que incrementa x2. El efecto es mayor cuando x2 = 8.

Ahora, podemos probar las diferencias a cada nivel de x2.


Nuevamente, veamos la gráfica.


La diferencia en medias cuando a = 3 y a = 1, el efecto de tratamiento no es significante cuando x2 = 2. Tampoco el efecto de a = 2 versus a = 1 cuando x2 = 5. Todos los demás efectos son significativamente distintos de 0.


Conclusión

En este blog, hemos explorado el área de respuesta de una función no lineal, hemos estimado una variedad de promedios poblacionales basados en nuestro modelo no paramétrico y hemos realizado diversas pruebas comparando los valores en puntos específicos del área de respuesta y pruebas de hipótesis comparando promedios poblacionales.

Sin embargo, sólo hemos arañado la superficie de los tipos de estimaciones y pruebas que puede obtener usando margins después de npregress. Hay operadores de contrastes adicionales que le permitirán probar las diferencias desde una gran media, diferencias con respecto a los niveles anteriores o posteriores, y más.

Vea [R] contrast para detalles de los operadores de contraste disponibles. También puede usar marginsplot para ver los resultados de los comandos margins desde diferentes ángulos. Por ejemplo, si escribimos marginsplot, bydimension (x1) en lugar de marginsplot, bydimension (x2), vemos nuestra superficie de respuesta no lineal desde una perspectiva diferente. Ver [R] marginsplot para detalles y ejemplos de este comando.

Ya sea que utilice la regresión no paramétrica u otro modelo, margins marginsplot son la solución para explorar los resultados, hacer inferencias y comprender las relaciones entre las variables que está estudiando.



Gracias por leer esta entrada. Para cotizaciones de licenciamiento, cursos y libros de Stata, favor de escribirnos a: info@multion.com

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

lunes, 7 de mayo de 2018

Modelos de Equilibrio General Dinámico y Estocástico para análisis de políticas

El siguiente texto es una traducción al español del artículo original "Dynamic stochastic general equilibrium models for policy analysis" realizado por David Schenck, Econometra Senior.


¿Qué son los modelos DSGE?

Los modelos de equilibrio general dinámico y estocástico (DSGE, por sus siglas en inglés, Dynamic Stochastic General Equilibrium) son usados por macroeconometristas para modelar múltiples series de tiempo. Un modelo DSGE está basado en teoría económica. Una teoría tendrá ecuaciones sobre cómo se comportan los individuos o sectores de la economía y cómo interactúan estos sectores. Lo que surge es un sistema de ecuaciones cuyos parámetros pueden vincularse a las decisiones de los actores económicos. En muchas teorías económicas, los individuos toman acciones basadas, en parte, en los valores que esperan que las variables tomen en el futuro, y no solo en los valores que toman esas variables en el período actual. La fortaleza de los modelos de DSGE es que incorporan estas expectativas explícitamente, a diferencia de otros modelos con múltiples series de tiempo.

Los modelos DSGE a menudo se usan en el análisis de choques o contrafactuales. Un investigador puede someter el modelo económico a un cambio inesperado en la política o en el ambiente y ver cómo responden las variables. Por ejemplo, ¿cuál es el efecto de un aumento inesperado de las tasas de interés en el producto? O un investigador podría comparar las respuestas de las variables económicas con diferentes regímenes de política. Por ejemplo, un modelo podría usarse para comparar resultados bajo un régimen de impuestos altos versus impuestos bajos. Un investigador exploraría el comportamiento del modelo bajo diferentes configuraciones para los parámetros de tasa impositiva, manteniendo constantes otros parámetros.

En esta publicación, mostraré cómo estimar los parámetros de un modelo de DSGE, cómo crear e interpretar un impulso-respuesta, y cómo comparar el impulso-respuesta estimado a partir de los datos con un impulso-respuesta generado por un régimen de política contrafactual.


Estimar los parámetros del modelo

Tengo datos mensuales sobre la tasa de crecimiento de la producción industrial y las tasas de interés. Usaré estos datos para estimar los parámetros de un pequeño modelo DSGE. Mi modelo tiene solo dos agentes: empresas que generan producto (ip) y un banco central que establece tasas de interés (r). En mi modelo, el crecimiento de la producción industrial depende de la tasa de interés esperada en un período en el futuro y de otros factores exógenos. A su vez, la tasa de interés depende del crecimiento de la producción industrial contemporánea y de otros factores latentes. Llamo a los factores latentes que afectan la producción e y a los factores latentes que afectan las tasas de interés m.

En la jerga, los factores latentes se conocen como "variables de estado". Podemos imponer un choque a las variables de estado y rastrear cómo afecta ese choque al sistema. Especifico la evolución de m como un proceso AR (1). Para darle al modelo algunas dinámicas adicionales, especifico la evolución de e como un proceso AR (2). Mi modelo completo es:


Antes de discutir estas ecuaciones a mayor detalle, vamos a estimar los parámetros con dsge.


La primera ecuación es la ecuación de producción. Escribimos (1) en Stata como (ip = {alpha} * E (F.r) + e). Esta ecuación especifica el crecimiento de la producción industrial en función de las tasas de interés futuras esperadas. Esta tasa de interés aparece en esta ecuación dentro de un operador E(); E(F.r) representa el valor esperado de la tasa de interés un período por delante. Piense en alpha como un parámetro establecido por las empresas y tomado como dado por los hacedores de política. El valor estimado de alpha es negativo, lo que implica que el crecimiento de la producción industrial disminuye cuando las empresas esperan enfrentar un período de mayores tasas de interés.

La segunda ecuación es la ecuación de la tasa de interés. Escribimos (2) en Stata como (r = {beta} * ip + m). Piense en beta como un parámetro establecido por los hacedores de política; mide qué tan fuertemente los hacedores de política reaccionan a los cambios en la producción. Vemos que la estimación de beta es positiva. Los hacedores de política tienden a aumentar las tasas de interés cuando la producción es alta y recortar las tasas de interés cuando la producción es baja. Sin embargo, el coeficiente de respuesta estimado es bastante pequeño. Pensaremos en el coeficiente de ip como representación de una política sistemática (cómo los hacedores de política responden directamente a la producción industrial) y pensemos que la variable de estado m representa la política discrecional (u otros factores que afectan las tasas de interés además de la política).

La tercera ecuación es una ecuación autorregresiva de primer orden para m, la variable que captura la política discrecional que afecta las tasas de interés. Escribimos (3) en Stata como (F.m = {rho} * m, state). Las variables de estado están predeterminadas, por lo que la convención temporal en dsge es que las ecuaciones de estado se especifican en términos del valor de la variable de estado un período por delante (F.m). Las ecuaciones de estado también se marcan con la opción state. El error v(t+1) está incluido por defecto. El parámetro rho autorregresivo estimado es positivo y captura la persistencia de la tasa de interés.

El modelo tiene cuatro ecuaciones, pero el comando dsge incluye cinco ecuaciones. La ecuación (4) especifica un proceso AR (2) para factores exógenos que afectan el crecimiento de la producción industrial. Para especificar esta ecuación al dsge, necesito dividirla en dos partes, y esas dos piezas se convierten en las dos últimas ecuaciones en el modelo. Para obtener más información, consulte la nota al pie al final de esta publicación. Los parámetros en estas ecuaciones theta1 y theta2 capturan la persistencia en el crecimiento de la producción industrial.


Explorar un choque en el modelo: impulso-respuestas

A continuación, agregamos los choques al modelo y rastreamos sus efectos en la producción industrial. Para hacer esto, necesitamos establecer un archivo de función impulso-respuesta (IRF) y almacenar las estimaciones en él. El comando irf set crea un archivo, dsge_irf.irf, para contener nuestros IRF. El comando irf create estimated crea un conjunto de impulso-respuesta usando las estimaciones actuales de dsge. El comando irf create crea un conjunto completo de todas las respuestas a todos los impulsos posibles. En nuestro modelo, esto significa que ambas variables de estado e y m están impactadas, y la respuesta se registra para ip y r. Finalmente, usaremos el comando irf graph irf para elegir qué respuestas trazar y qué impulsos dirigen esas respuestas. Solo graficamos la respuesta de ip para cada uno de los impulsos e y m.


Cada panel muestra la respuesta de la producción industrial a un choque. Debido a que nuestros datos se miden en tasas de crecimiento, el eje vertical también se mide en tasas de crecimiento. Por lo tanto, un valor de "4" en el panel de la izquierda significa que después de un choque de una desviación estándar, la producción industrial crece cuatro puntos porcentuales más rápido de lo que lo haría. El eje horizontal es el tiempo; ya que usamos datos mensuales, el tiempo está en meses, y 12 pasos representan 1 año.

El panel de la izquierda muestra la respuesta de la producción industrial a un aumento en e, el factor latente que afecta la producción. La producción industrial aumenta, alcanzando su máximo un período después del choque, para después volver a establecerse en el equilibrio a largo plazo. El efecto del shock desaparece rápidamente; la producción industrial vuelve al equilibrio de largo plazo dentro de 12 períodos (1 año de observaciones mensuales).

El panel de la derecha muestra la respuesta de la producción industrial a un aumento en m, que tiene una interpretación natural como un alza inesperada en las tasas de interés. El tamaño de un choque es de una desviación estándar, que a partir de la tabla de estimaciones dsge anterior es un aumento inesperado en las tasas de interés de alrededor de 0.546, o alrededor de la mitad de un punto porcentual. En respuesta, vemos en el gráfico que el crecimiento de la producción industrial cae en aproximadamente un tercio de un punto porcentual y permanece bajo durante más de 24 períodos. Todas las variables en un modelo DSGE son estacionarias, por lo que, en el largo plazo, el efecto de un choque desaparece y las variables vuelven a su media de largo plazo que es cero.


Explorar política sistemática: un cambio en el régimen

A continuación, contemplamos un cambio en el régimen de políticas. Supongamos que los hacedores de políticas reciben instrucciones para suavizar las fluctuaciones en la producción industrial que resultan de los choques a e. En términos del modelo, esta instrucción estaría representada por un cambio del coeficiente de respuesta beta, visto en los datos como relativamente bajo, a uno mayor.

El comando dsge con las opciones from() y solve  permite rastrear un impulso-respuesta desde cualquier conjunto de parámetros arbitrarios. Aprovecharemos esta característica ahora. Primero, almacenamos el vector de parámetro estimado en una matriz de Stata:


A continuación, reemplazamos el coeficiente beta con un coeficiente de respuesta más grande. Para fines ilustrativos, uso un coeficiente de respuesta de 0.8 en lugar de 0.02. Los vectores de parámetros viejos y nuevos son:


Como se esperaba, son idénticos excepto por la entrada beta. A continuación, volvemos a correr el dsge con el nuevo vector de parámetros usando from() y resolve.


Utilizamos este nuevo vector de parámetros para crear un nuevo conjunto de IRFs que llamaremos contrafactual.


Finalmente, graficamos las respuestas bajo los vectores de parámetros estimados y contrafácticos con irf ograph:


La política más agresiva ha amortiguado la respuesta de la producción industrial al choque. El hacedor de políticas podría experimentar con otros valores de beta hasta que encuentre un valor que amortigüe la respuesta de la producción industrial en la cantidad deseada.


Apéndice

Datos

Utilicé datos sobre la tasa de crecimiento de la producción industrial y sobre la tasa de interés de los fondos federales. Ambas series están disponibles mensualmente en la base de datos de la Reserva Federal de St. Louis, FRED. El comando import fred de Stata importa datos FRED. Los códigos son INDPRO para producción industrial y FEDFUNDS para la tasa de fondos federales.

Genero la variable ip como la tasa de crecimiento trimestral anualizada de la producción industrial y utilizo una muestra de 1954 a 2006.



Especificando ecuaciones de estado con rezagos largos

Ver también [DSGE] intro 4c.

Observe que las variables de estado se escriben en forma espacio-estado en términos de sus valores de un período por delante. Para un proceso AR (1), esto es fácil. La ecuación


Se convierte de la siguiente forma en Stata:


Pero para un proceso AR (2), la ley de movimiento para la variable de estado es


Que dividimos en dos ecuaciones:


Estas dos ecuaciones se convierten, en Stata,


Donde la opción nonshock en la última ecuación especifica que es exacta.

Ver también  [TS] sspace example 5, donde un truco similar es usado.



¡Gracias por entrar a nuestro Blog!



>>> Accede al artículo original aquí.
>>> Accede a nuestro micrositio Stata aquí.


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