Tag

econometria Archives - Análise Macro

Previsão da inflação (EUA) com fatores textuais do FOMC

By | Data Science

Reflexo da era da informação, atualmente não se faz mais política monetária sem uma boa dose de comunicados, atas, entrevistas, conferências, etc. Os chamados central bankers atuam, sobretudo, como comunicadores e qualquer pequena nuance em sua comunicação (futuros passos da política monetária) pode ser um sinal para alvoroço nos "mercados".

Nesse sentido, uma área da literatura econômica que vem prosperando busca investigar o chamado canal informacional (de transmissão) da política monetária, propiciando uma intersecção entre métodos econométricos e de machine learning. Como exemplo, Lucca e Trebbi (2009) exploram a relação entre mudanças nos comunicados (statements) do Federal Open Market Committee (FOMC) com variáveis macroeconômicas, como taxas de juros, mostrando que há poder preditivo no conteúdo informacional dos comunicados. De forma similar, Ferreira (2022) expande um modelo VAR usando fatores textuais extraídos dos comunicados do FOMC, mostrando que a técnica (denominada VAR-teXt) é útil para finalidade de previsão.

Mais informalmente, neste espaço da Análise Macro já exploramos a extração de sentimentos e de tópicos latentes dos comunicados do Banco Central do Brasil (BCB). De forma a avançar mais nessa área, no exercício de hoje exploramos, de forma similar a Ferreira (2022), a utilidade de tópicos latentes extraídos dos comunicados do FOMC, por um modelo LDA, na previsão da inflação norte-americana, medida pelo CPI. O objetivo é comparar um modelo econométrico simples, tal como um AR-GAP de Faust e Wright (2013), em especificações com e sem os fatores textuais.

Uma visão geral

O exercício de previsão em questão consiste em extrair os dados de interesse das devidas fontes (FRED-MD e FOMC/FED), realizar o pré processamento e extração de fatores textuais e, por fim, treinar duas especificações de modelos simples para o CPI: AR e AR-teXt (i.e., um modelo autoregressivo com fatores textuais como variáveis exógenas). O diagrama abaixo ilustra os principais procedimentos:

Recomenda-se a leitura prévia dos textos a seguir, assim como referências correspondentes, para uma boa compreensão do exercício proposto:

Dados e especificação

Os modelos são estimados em frequência trimestral, onde a variável de interesse, o CPI, é medido como a variação percentual em relação ao trimestre imediatamente anterior.

As fontes de dados são:

  • CPI (variável endógena) é proveniente do banco de dados FRED-MD (código CPIAUCSL), veja McCracken e NG (2016);
  • Tópicos textuais (variáveis exógenas) são extraídos através do modelo LDA, tendo como origem os statements do FOMC/FED.

As especificações dos modelos são:

Partindo da construção de uma medida de tendência, τt, do CPI, πt, definimos o "gap" da inflação como gt = πt − τt e consideramos essa medida nos modelos abaixo, tal como em Faust e Wright (2013).

  • AR(p): gt = α1 gt-1 + … + αpgt-p + ϵt
  • AR-teXt(p,s): gt = α1 gt-1 + … + αpgt-p + βsxt-s + ϵt

onde αi e βi são coeficientes dos modelos, xt são as variáveis exógenas e ϵt é o erro do modelo.

Em nosso exercício geramos previsão 10 trimestres à frente (pseudo fora da amostra) e, então, adicionamos de volta a tendência, τt, para obter a previsão "final". A amostra utilizada é de 1998 até a observação mais recente do ano atual, 2022.

Visualização de dados

Abaixo plotamos um gráfico de linha da série de interesse, o CPI dos Estados Unidos em variação percentual trimestral:

E na imagem a seguir trazemos a estrutura textual de apenas um dos statements do FOMC/FED que foram extraídos (web scraping) de forma online para construção dos fatores textuais.

Vale pontuar que a estrutura textual dos comunicados pode variar consideravelmente no tempo.

Resultados

Os procedimentos brevemente descritos acima foram implementados através da linguagem R usando, para estimação, o pacote {fable} (veja um tutorial aqui)). Os modelos foram treinados usando validação cruzada, considerando uma janela amostral crescente, partindo de 60 observações iniciais e adicionando 1 observação a cada iteração. O cálculo de métricas de acurácia foi realizado por horizonte preditivo (1, 2, ..., 10 trimestres).

A seguir resumimos os resultados de acurácia em um gráfico que mostra o RMSE por horizonte de previsão dos dois modelos considerados:

Comentários

  • Modelo com fatores textuais parece performar melhor no curto prazo em relação ao benchmark (AR);
  • Os resultados apresentados estão em linha com o encontrado por Ferreira et al. (2020), que considera uma abordagem vetorial com diferente método de estimação (e aqui não aplicamos testes estatísticos para comparar previsões);
  • Pontua-se que a performance do modelo proposto, AR-teXt, pode ser consideravelmente sensível a escolha do número de tópicos definidos, assim como ao tratamento dos dados textuais;
  • O modelo de tópicos LDA é intensivo computacionalmente.

Códigos de R para replicação estão disponíveis para membros do Clube AM da Análise Macro.

Referências

Faust, J., & Wright, J. H. (2013). Forecasting inflation. In Handbook of economic forecasting (Vol. 2, pp. 2-56). Elsevier.

Ferreira, L. N. (2022). Forecasting with VAR-teXt and DFM-teXt Models: exploring the predictive power of central bank communication. BCB Working Paper Serie No. 559.

Lucca, D. O., & Trebbi, F. (2009). Measuring central bank communication: an automated approach with application to FOMC statements. National Bureau of Economic Research (No. w15367).

McCracken, M. W., & Ng, S. (2016). FRED-MD: A monthly database for macroeconomic research. Journal of Business & Economic Statistics, 34(4), 574-589.

Introdução à Econometria

By | Data Science

Neste post mostraremos como construir modelos de regressão linear de maneira aplicada. Se você já se perguntou em como replicar no R aqueles modelos introdutórios, comuns em disciplinas de estatística e econometria, este post é pra você!

Dessa forma, usaremos a econometria - que é um conjunto de métodos estatísticos utilizados para estimar relações econômicas, testar teorias e avaliar políticas públicas ou de negócios - para explorar um problema aplicado ao mercado de trabalho. Nada melhor do que entender como utilizar algo com um exemplo prático, certo?

Portanto, assumimos que você já possui algum conhecimento teórico sobre modelos de regressão linear, pois daremos ênfase no aspecto prático de como implementar este tipo de modelo usando o R. Você pode conferir o curso de Introdução à Econometria (em R e Python) para explorar mais a fundo os pormenores dos modelos, assim como tópicos mais avançados que fogem do escopo deste post. É uma ótima oportunidade se você acha o assunto "assustador", pois o curso traz exemplos intuitivos e práticos do dia a dia.

Ademais, nossa referência base sobre o assunto é o livro-texto do Wooldridge (2020), que é muito utilizado em disciplinas de econometria de cursos de graduação.

Pacotes

Para reproduzir os códigos deste exercício, você precisará dos seguintes pacotes de R:

O problema e os dados

Para começar a entender o assunto, e exemplificar a estimação de um modelo linear, vamos recorrer a um conjunto de dados clássico do Wooldridge, que traz informações de uma pesquisa populacional. Mais especificamente, iremos investigar um problema de economia do mercado de trabalho: suponha que você seja contratado para determinar o efeito de um programa de aperfeiçoamento profissional na produtividade de trabalhadores. Sem se aprofundar muito na teoria econômica e especializada da área, podemos dizer que fatores como escolaridade, experiência profissional e treinamentos podem afetar a produtividade do trabalhador e, portanto, seus salários. Com esse simples entendimento em mente, podemos então definir um modelo econômico como:

onde é o salário por hora, são os anos de educação formal, são os anos de experiência no mercado de trabalho e é o tempo despendido em aperfeiçoamento profissional. Outros fatores podem afetar , mas este modelo simples capta a essência do problema em questão.

Essa formulação básica que elaboramos carrega a hipótese de que esses fatores especificados estão, de alguma forma, relacionados com o dos trabalhadores. O que precisamos fazer agora é investigar esse "modelinho" de forma empírica.

Dado que estes fatores e variáveis podem ser observados - e se não fossem teríamos que levar isso em consideração -, o próximo passo é transformarmos esta especificação de modelo econômico para um modelo econométrico, como:

onde as constantes , , ..., são parâmetros do modelo que descrevem as direções (sinal) e as magnitudes (tamanho) da relação entre e as demais variáveis utilizadas para explicar no modelo; e o termo de erro contém fatores como "habilidade inata", qualidade da educação, histórico familiar e outros que podem influenciar o salário de um trabalhador, ou seja, o erro é comumente chamado de "medida do nosso desconhecimento". Se estivermos especialmente interessados no efeito do programa de aperfeiçoamento profissional, então  é o parâmetro de interesse.

Para uma análise empírica deste modelo precisamos de dados, portanto, após essa breve introdução vamos partir para a prática! No R, o conjunto de dados para usarmos nesse modelo vem do pacote {wooldridge} e pode ser carregado conforme abaixo:

Exploração dos dados

Os dados são do tipo cross-section e contém variáveis de 526 indivíduos referente ao ano de 1976. Deste conjunto de dados, usaremos apenas as variáveis wage (salário por hora), educ (anos de educação) e exper (anos de experiência). Para facilitar o entendimento, utilizaremos a transformação logarítmica na variável dependente (wage), de forma a obter uma interpretação percentual dos parâmetros do modelo.

No R, com um simples comando também é possível obter uma tabela de estatísticas descritivas das variáveis:

Com o pacote ggplot2 podemos facilmente visualizar, em um gráfico de dispersão, a relação entre as variáveis do modelo:

Estimar o modelo

Conforme dito, iremos estimar o modelo econométrico acima mas com algumas modificações: sem o fator e com transformação logarítmica na variável . Com estes ajustes, comuns em exercícios empíricos, chegamos a uma especificação como esta:

Ou seja, queremos saber a relação entre a escolaridade e experiência profissional dos trabalhares sobre os seus salários (em log). Dessa forma, devemos agora estimar os coeficientes que medem esses efeitos.

No R, estimamos este modelo de regressão com a função lm() especificando os termos por uma fórmula e o objeto com os dados:

Resultados do modelo

Para obter os resultados do modelo estimado use a função summary(), que é uma função genérica para obter resultados de diversas famílias de modelos:

A interpretação dos resultados deste modelo deve ser feita ceteris paribus e os parâmetros, neste caso, possuem uma intepretação percentual. Por exemplo, o coeficiente educ (escolaridade) com valor 0,097 significa que, mantendo exper (experiencia) constante, um ano adicional de escolaridade aumenta wage (salario) em 9,7%. É isso que os economistas querem dizer quando se referem ao “retorno a mais por um ano de educação”.

Pode ser mais fácil utilizar essa saída de resultados, especialmente para usuários do {tidyverse}, se a mesma for transformada em tabela. Para organizar dessa maneira o pacote {broom} possui excelentes funções:

Diagnóstico do modelo

Além disso, no R existem diversos pacotes focados em análise estatística. Por exemplo, com o pacote {performance} podemos facilmente investigar visualmente as hipóteses do modelo com um simples comando:

Reportando resultados

Para reportar estes resultados, seja em um artigo, em uma apresentação, etc., também existem diversas facilidades no R. Por exemplo, você pode construir a representação da equação, já em LaTeX, com base no objeto que contém o modelo estimado:

E essa expressão do LaTeX pode ser renderizada, com o R Markdown por exemplo, para:

Já com o pacote {report} é possível criar um texto (em inglês) com alguns parágrafos que já interpretam os resultados do modelo de forma automatizada:

Gerando:

We fitted a linear model (estimated using OLS) to predict wage with educ and exper (formula: log(wage) ~ educ + exper). The model explains a statistically significant and moderate proportion of variance (R2 = 0.25, F(2, 523) = 86.86, p < .001, adj. R2 = 0.25). The model's intercept, corresponding to educ = 0 and exper = 0, is at 0.22 (95% CI [3.52e-03, 0.43], t(523) = 2.00, p = 0.046). Within this model:

- The effect of educ is statistically significant and positive (beta = 0.10, 95% CI [0.08, 0.11], t(523) = 12.85, p < .001; Std. beta = 0.17, 95% CI [0.15, 0.20])
- The effect of exper is statistically significant and positive (beta = 0.01, 95% CI [7.29e-03, 0.01], t(523) = 6.65, p < .001; Std. beta = 0.09, 95% CI [0.06, 0.12])

Standardized parameters were obtained by fitting the model on a standardized version of the dataset. 95% Confidence Intervals (CIs) and p-values were computed using the Wald approximation.

Para criar um tabela de resultados, usualmente presente em papers, use a variante *_table():

Por fim, gráficos de parâmetros do modelo também podem ser gerados facilmente:

Saiba mais

Para saber mais e se aprofundar no assunto, confira o curso de Introdução à Econometria (em R e Python). Além disso, existem alguns materiais gratuitos sobre modelos disponíveis no blog:

Criando modelos no R

By | Data Science

Neste post mostraremos como construir modelos de regressão linear de maneira aplicada. Se você já se perguntou em como replicar no R aqueles modelos introdutórios, comuns em disciplinas de estatística e econometria, este post é pra você!

Dessa forma, usaremos a econometria - que é um conjunto de métodos estatísticos utilizados para estimar relações econômicas, testar teorias e avaliar políticas públicas ou de negócios - para explorar um problema aplicado ao mercado de trabalho.

Portanto, assumimos que você já possui algum conhecimento teórico sobre modelos de regressão linear, pois daremos ênfase no aspecto prático de como implementar este tipo de modelo usando o R. Caso necessário, sugerimos como referência para revisão teórica o livro-texto do Wooldridge (2020), que é muito utilizado em disciplinas de econometria de cursos de graduação e será nossa base aqui.

Pacotes

Para reproduzir os códigos deste exercício, você precisará dos seguintes pacotes de R:

O problema e os dados

Para exemplificar a estimação de um modelo linear vamos recorrer a um conjunto de dados clássico do Wooldridge, que traz informações de uma pesquisa populacional. Mais especificamente, iremos investigar um problema de economia do mercado de trabalho: suponha que você seja contratado para determinar o efeito de um programa de aperfeiçoamento profissional na produtividade de trabalhadores. Sem se aprofundar muito na teoria econômica e especializada da área, podemos dizer que fatores como escolaridade, experiência profissional e treinamentos podem afetar a produtividade do trabalhador e, portanto, seus salários. Com esse simples entendimento podemos definir um modelo econômico como:

onde é o salário por hora, são os anos de educação formal, são os anos de experiência no mercado de trabalho e é o tempo despendido em aperfeiçoamento profissional. Outros fatores podem afetar , mas este modelo simples capta a essência do problema em questão.

Dado que estes fatores e variáveis podem ser observados - e se não fossem teríamos que levar isso em consideração -, o próximo passo é transformarmos esta especificação de modelo econômico para um modelo econométrico, como:

onde as constantes , , ..., são parâmetros do modelo que descrevem as direções (sinal) e as magnitudes (tamanho) da relação entre e as demais variáveis utilizadas para explicar no modelo; e o termo de erro contém fatores como "habilidade inata", qualidade da educação, histórico familiar e outros que podem influenciar o salário de um trabalhador. Se estivermos especialmente interessados no efeito do programa de aperfeiçoamento profissional, então  é o parâmetro de interesse.

Para uma análise empirica deste modelo precisamos de dados, portanto, após essa breve introdução vamos partir para a prática! No R, o conjunto de dados para usarmos nesse modelo vem do pacote {wooldridge} e pode ser carregado conforme abaixo:

Exploração dos dados

Os dados são do tipo cross-section e contém variáveis de 526 indivíduos referente ao ano de 1976. Deste conjunto de dados, usaremos apenas as variáveis wage (salário por hora), educ (anos de educação) e exper (anos de experiência). Para facilitar o entendimento, utilizaremos a transformação logarítmica na variável dependente, obtendo uma interpretação percentual dos parâmetros do modelo.

No R, com um simples comando também é possível obter uma tabela de estatísticas descritivas das variáveis:

Com o pacote ggplot2 podemos facilmente visualizar, em um gráfico de dispersão, a relação entre as variáveis do modelo:

Estimar o modelo

Conforme dito, iremos estimar o modelo econométrico acima mas com algumas modificações: sem o fator e com transformação logarítmica na variável . Com estes ajustes, comuns em exercícios empíricos, chegamos a uma especificação como esta:

No R, estimamos este modelo com a função lm() especificando os termos por uma fórmula e o objeto com os dados:

Resultados do modelo

Para obter os resultados do modelo estimado use a função summary(), que é uma função genérica para obter resultados de diversas famílias de modelos:

A interpretação dos resultados deste modelo deve ser feita ceteris paribus e os parâmetros possuem uma intepretação percentual. Por exemplo, o coeficiente educ (escolaridade) com valor 0,097 significa que, mantendo exper (experiencia) constante, um ano adicional de escolaridade aumenta wage (salario) em 9,7%. É isso que os economistas querem dizer quando se referem ao “retorno a mais por um ano de educação”.

Pode ser mais fácil utilizar essa saída de resultados, especialmente para usuários do {tidyverse}, se a mesma for transformada em tabela. Para organizar dessa maneira o pacote {broom} possui excelentes funções:

Diagnóstico do modelo

Além disso, no R existem diversos pacotes focados em análise estatística. Por exemplo, com o pacote {performance} podemos facilmente investigar visualmente as hipóteses do modelo com um simples comando:

Reportando resultados

Para reportar estes resultados, seja em um artigo, em uma apresentação, etc., também existem diversas facilidades no R. Por exemplo, você pode construir a representação da equação, já em LaTeX, com base no objeto que contém o modelo estimado:

E essa expressão do LaTeX pode ser renderizada, com o R Markdown por exemplo, para:

Já com o pacote {report} é possível criar um texto (em inglês) com alguns parágrafos que já interpretam os resultados do modelo de forma automatizada:

Gerando:

We fitted a linear model (estimated using OLS) to predict wage with educ and exper (formula: log(wage) ~ educ + exper). The model explains a statistically significant and moderate proportion of variance (R2 = 0.25, F(2, 523) = 86.86, p < .001, adj. R2 = 0.25). The model's intercept, corresponding to educ = 0 and exper = 0, is at 0.22 (95% CI [3.52e-03, 0.43], t(523) = 2.00, p = 0.046). Within this model:

- The effect of educ is statistically significant and positive (beta = 0.10, 95% CI [0.08, 0.11], t(523) = 12.85, p < .001; Std. beta = 0.17, 95% CI [0.15, 0.20])
- The effect of exper is statistically significant and positive (beta = 0.01, 95% CI [7.29e-03, 0.01], t(523) = 6.65, p < .001; Std. beta = 0.09, 95% CI [0.06, 0.12])

Standardized parameters were obtained by fitting the model on a standardized version of the dataset. 95% Confidence Intervals (CIs) and p-values were computed using the Wald approximation.

Para criar um tabela de resultados, usualmente presente em papers, use a variante *_table():

Por fim, gráficos de parâmetros do modelo também podem ser gerados facilmente:

Saiba mais

Para saber mais e se aprofundar no assunto, confira os cursos aplicados de R e Python da Análise Macro disponíveis neste outono. Além disso, existem alguns materiais gratuitos sobre modelos disponíveis no blog:

Cursos Aplicados de R e Python: Turmas de Outono

By | Cursos da Análise Macro

Abrimos hoje, 22/3, as inscrições com 30% de desconto para as Turmas de Outono dos nossos Cursos Aplicados de R e Python. As vagas com esse desconto são limitadas aos primeiros inscritos. Haverá vagas para 25 Cursos Livres e 3 Formações. As turmas de Outono terão início no dia 04/04 e contarão com Cursos de Introdução à Programação em R ou Python, de modo que não é necessário nenhum conhecimento prévio nas linguagens. Para todos os detalhes sobre as Turmas de Outono, continue lendo esse informativo...

Há vagas para as cinco áreas dos nossos Cursos Livres: Data Science, Macroeconomia Aplicada, Econometria, Finanças e Central Banking. Os Cursos com inscrição aberta são os seguintes:

Cursos de Data Science

Macroeconomia Aplicada

Cursos de Econometria e Machine Learning

Cursos de Microdados

Cursos de Finanças

Cursos de Central Banking

Além disso, também abrimos as inscrições para as nossas Formações:

Importante dizer que, para manter o nosso suporte aos alunos funcionando de forma plena, as inscrições com desconto são limitadas. Daremos desconto de 30% apenas para os primeiros alunos inscritos. Tão logo o primeiro lote atinja o limite de alunos, nós fecharemos ele e passaremos para o segundo lote com as vagas restantes, mas com o preço cheio. As inscrições no primeiro lote costumam acabar rápido, então garanta o quanto antes a sua inscrição!

Plano Disponível

Será ofertado um Plano Único com acesso aos Cursos por 24 meses, cursos de Introdução ao R ou ao Python, Certificado e suporte customizado do professor via plataforma exclusiva.

Investimento

Os preços dos Cursos variam de acordo com a complexidade do conteúdo. Os alunos poderão financiar a aquisição dos Cursos em até 10x sem juros no cartão de crédito.

Qualquer dúvida adicional, por favor, nos contacte no botão do whatsapp, no canto inferior direito do Site.

______________

Inscrições Abertas para as Turmas 2022!

By | Cursos da Análise Macro

Estão abertas as inscrições para as Turmas 2022 dos nossos Cursos Aplicados de R e Python. Há vagas para 22 Cursos Livres e 3 Formações.

As turmas 2022 terão início no dia 03/01/2022 e contarão com o nosso Curso de R para Análise de Dados como bônus, de modo que não é necessário nenhum conhecimento prévio em linguagens de programação.

Para todos os detalhes sobre as Turmas 2022, continue lendo esse informativo...

vagas para as cinco áreas dos nossos Cursos Livres: Data Science, Macroeconomia Aplicada, Econometria, Finanças e Central Banking. Haverá vagas para 16 Cursos, a saber:

Começando a lidar com dados: cursos voltados para quem ainda não tem conhecimentos de análise de dados ou de linguagens de programação

Cursos de Econometria e Machine Learning: cursos voltados para quem quer aprender a construir modelos econométricos e de machine learning

Cursos de Macroeconomia Aplicada: cursos voltados para quem quer aprender a usar ferramentas de análise de dados na área macroeconômica

Cursos de Microdados: cursos voltados para quem quer aprender a lidar com microdados usando uma linguagem de programação

Cursos de Finanças Quantitativas: cursos voltados para quem quer aprender a lidar com dados financeiros usando uma linguagem de programação

Cursos de Central Banking

Além disso, também estão abertas as inscrições para as nossas Formações:

Tempo de Acesso ao material do Curso

Será ofertado um Plano Único com acesso ao conteúdo dos Cursos por 24 meses e suporte customizado do professor. Nosso objetivo com isso é dar um treinamento totalmente customizado para os alunos inscritos.

Investimento

Os preços dos Cursos variam de acordo com a complexidade do conteúdo. Os alunos poderão financiar a aquisição dos Cursos em até 10x sem juros no cartão de crédito.

Adquirindo todos os Cursos de uma área

Nossos Cursos Aplicados de R são divididos por áreas temáticas. Caso queiram, os alunos poderão adquirir todos os cursos de uma determinada área com desconto adicional. Para isso, basta utilizar os links abaixo:

Qualquer dúvida adicional, por favor, mande e-mail para comercial@analisemacro.com.br.

______________

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais
e conteúdos exclusivos sobre Análise de Dados!

Assinar Gratuitamente