← Lab

Macroeconomia Avançada · Lista de Exercícios II

Ciclo Real de Negócios
e Log-Linearização

Em setembro de 2008, o Lehman Brothers entrou em colapso. Os modelos macroeconômicos em uso falharam em prever o que viria a seguir, não por falta de rigor técnico, mas por escolhas sobre o que simplificar.

Esta lista foi organizada para que você resolva os exercícios enquanto entende o que está em jogo: onde os modelos funcionam, onde eles falham, e por quê. Cada seção começa com contexto histórico e uma perspectiva crítica. As questões vêm depois.

9Questões
4Seções
~3hEstimado

Seção 1 · 1 questão

O Comportamento do Consumidor sob Incerteza

Antes do colapso, as famílias americanas poupavam menos de 3% da renda disponível. Nos meses seguintes a setembro de 2008, esse número mais que dobrou. A taxa de juros esperada não havia subido o suficiente para explicar isso. O que mudou foi a incerteza sobre ela.

Contexto histórico A poupança como termômetro da incerteza

Taxa de poupança pessoal americana, trimestral (% da renda disponível)

Fonte: Bureau of Economic Analysis (FRED). Valores aproximados para fins ilustrativos. Lehman Brothers: setembro de 2008.

A taxa de poupança americana permaneceu abaixo de 3% ao longo de toda a expansão dos anos 2000. Em poucos meses após setembro de 2008, saltou para quase 8%. Nenhum modelo com mercados completos e consumidor forward-looking estava equipado para gerar esse salto: a taxa de juros esperada não havia subido o suficiente.

O mecanismo correto envolve incerteza, não o nível esperado da taxa. Quando a variância da taxa de juros aumenta, um consumidor com utilidade côncava responde poupando mais como precaução. Isso é o que a questão abaixo demonstra formalmente.

Simplificação importante

O modelo de dois períodos captura a lógica correta via desigualdade de Jensen. Mas em 2008 o mecanismo dominante não era incerteza sobre a taxa de juros, e sim sobre a renda futura: risco de desemprego, quedas nas carteiras de ativos, desvalorização de imóveis. Para capturar isso você precisa de modelos com renda estocástica e mercados incompletos. O modelo de dois períodos com taxa de juros estocástica é um ponto de entrada, não a história completa.

Carroll (1997). "Buffer-Stock Saving and the Life Cycle / Permanent Income Hypothesis." QJE 112(1). Parker e Preston (2005). "Precautionary Saving and Consumption Fluctuations." AER 95(4).
Q1
~25 min
dois períodosincertezaJensen
A parte (i) é mecânica. A parte (ii) tem uma sutileza. Antes de calcular, pense: quando $r$ passa a ter variância positiva mas sua média não muda, um consumidor com utilidade logarítmica deveria poupar mais, menos, ou o mesmo?

Admita que um indivíduo viva dois períodos e que suas preferências sejam representadas por:

$$U = \ln C_1 + \ln C_2$$

O indivíduo tem renda zero no primeiro período e $Y_2$ no segundo. O consumo no segundo período é $C_2 = Y_2 - (1+r)\,C_1$, onde $Y_2$ é conhecida com certeza e $r$ pode ser estocástica.

i) Obtenha a condição de primeira ordem que permite determinar $C_1$.

ii) Admita que $r$ passe de não-estocástica para estocástica, mas que $\mathbb{E}(r)$ não mude. $C_1$ responde a esta mudança? Se sim, qual é a direção da resposta?

Dica

Para (i): substitua $C_2$ na função utilidade e maximize em relação a $C_1$. Se $r$ é estocástica, a condição envolve $\mathbb{E}[\,\cdot\,]$.

Para (ii): com utilidade log, a FOC é $1/C_1 = \mathbb{E}[(1+r)/C_2]$. Expanda usando a definição de $C_2$ e pergunte se $\mathbb{E}[f(r)] = f(\mathbb{E}[r])$ quando $f$ é convexa.

A função $1/(Y_2-(1+r)C_1)$ é convexa em $r$. Pela desigualdade de Jensen, $\mathbb{E}[1/(Y_2-(1+r)C_1)] > 1/(Y_2-(1+\mathbb{E}[r])C_1)$. Para reequilibrar a FOC, $C_1$ precisa cair. Isso é poupança precaucionária.

Por que isso importa

O mecanismo exige que a utilidade tenha derivada terceira positiva, o que a log satisfaz. Em modelos com mercados incompletos (Aiyagari, 1994; Huggett, 1993), esse motivo precaucionário gera uma taxa de poupança agregada que varia com a incerteza ao longo do ciclo, algo que os modelos de agente representativo com mercados completos não conseguem reproduzir.

Seção 2 · 4 questões

O Sistema Log-Linearizado

Para analisar como perturbações se propagam num modelo dinâmico, você precisa de uma versão linearizada das equações de movimento. Log-linearizar é o procedimento padrão: substituir variáveis em nível por desvios percentuais em relação a uma trajetória de referência.

Fundamentos metodológicos Por que log-linearizar, e a que custo

Log-linearizar é admitir que uma aproximação local é suficiente. O procedimento transforma um sistema não-linear de equações num sistema linear que pode ser resolvido analiticamente, o que explica sua popularidade no ensino e em modelos de política.

O problema surge em episódios de crise. Quando o PIB cai 4% a 5% em poucos trimestres, você está fora da vizinhança em que a aproximação de primeira ordem é confiável. As quedas são subestimadas, as recuperações também.

O que a fronteira da pesquisa usa

Métodos de perturbação de segunda e terceira ordem preservam mais curvatura do problema original e são significativamente mais precisos em episódios extremos. Em pesquisa de fronteira, eles substituíram a log-linearização padrão para análise de bem-estar e crises. O custo: a solução não é mais legível à mão, exige métodos numéricos. A linearização ainda domina o ensino por gerar resultados analíticos.

Judd e Guu (1997). "Perturbation Solution Methods for Economic Growth Models." In: Advances in Computational Economics. Schmitt-Grohé e Uribe (2004). "Solving Dynamic General Equilibrium Models Using a Second-Order Approximation." JEDC 28(4).
Q2
~15 min
log-linearizaçãoidentidade nacionalTaylor
O ponto de partida obrigatório. Os pesos que emergem no lado direito são os primeiros parâmetros a calibrar, e a maioria erra na primeira tentativa por descuido com os shares de estado estacionário.

Log-linearize a seguinte equação em torno da trajetória de crescimento equilibrado, utilizando uma expansão de Taylor de primeira ordem:

$$Y_t = C_t + I_t$$

Ao log-linearizar, você obterá uma expressão em função de $\tilde{Y}_t$, $\tilde{C}_t$ e $\tilde{I}_t$, onde, para qualquer variável $X_t$:

$$\tilde{X}_t \;\equiv\; \ln X_t - \ln \bar{X}_t$$

e $\bar{X}_t$ é o valor da variável em $t$ ao longo de sua trajetória de crescimento equilibrado.

Dica

Escreva $Y_t = \bar{Y}_t\,e^{\tilde{Y}_t}$ e o mesmo para $C_t$ e $I_t$. Substitua na equação original.

Use $e^x \approx 1+x$ para pequenos desvios. Os termos de estado estacionário se cancelam; o que sobra é a relação linear.

O coeficiente de $\tilde{C}_t$ é $\bar{C}/\bar{Y}$ e o de $\tilde{I}_t$ é $\bar{I}/\bar{Y}$. Esses são os shares de estado estacionário.

Por que isso importa

A identidade nacional log-linearizada é o bloco de construção de qualquer modelo DSGE. Ela transforma uma restrição em nível numa relação entre taxas de crescimento ponderadas pelos shares, que são os primeiros parâmetros a calibrar ao estimar o modelo.

Q3
~20 min
equação de Eulerdinâmica do consumoexpectativas
A equação que governa como o consumidor distribui recursos ao longo do tempo. Log-linearizada, ela conecta o consumo corrente ao esperado via taxa de juros real. O operador $\mathbb{E}_t$ não desaparece nesse processo.

Obtenha a log-linearização da equação de Euler do modelo de Romer em torno da trajetória de crescimento equilibrado:

$$\frac{1}{c_t} = \beta\;\mathbb{E}_t\!\left[\frac{1+r_{t+1}}{c_{t+1}}\right]$$

Dica

No estado estacionário: $\beta(1+\bar{r}) = 1$. Guarde essa relação.

Log-linearize $1/c_t$ como $-\tilde{c}_t$. Para $(1+r_{t+1})$, use $\ln(1+r_{t+1}) \approx \ln(1+\bar{r}) + \tilde{r}_{t+1}/(1+\bar{r})$.

Com $\beta(1+\bar{r}) = 1$, o resultado deve ter a forma $\tilde{c}_t = \mathbb{E}_t[\tilde{c}_{t+1}] + \lambda\,\mathbb{E}_t[\tilde{r}_{t+1}]$ para algum $\lambda$ que você identifica.

Por que isso importa

O coeficiente de $\mathbb{E}_t[\tilde{r}_{t+1}]$ que emerge é a elasticidade intertemporal de substituição (EIS). É um dos parâmetros mais debatidos da macroeconomia empírica: estimativas variam de 0,1 a 2 dependendo do método. A EIS baixa implica que mudanças na taxa de juros movem pouco o consumo, o que tem implicações diretas para a eficácia da política monetária.

Q4
~15 min
condição intratemporalsalário realmodelo de Romer
Versão direta da condição de ótimo intratemporal do trabalhador. O salário real aparece explicitamente, e a linearização expressa como desvios dele se transmitem para consumo e trabalho simultaneamente.

Obtenha a log-linearização da equação abaixo, do modelo de Romer, em torno da trajetória de crescimento equilibrado:

$$\frac{1}{c_t}\,w_t = \frac{b}{1 - n_t}$$

Dica

Tome $\ln$ dos dois lados. O lado esquerdo vira $\tilde{w}_t - \tilde{c}_t$. O lado direito: $\ln b$ é constante; o único termo variável é $-\ln(1-n_t)$.

Para $-\ln(1-n_t)$, use a aproximação em torno de $\bar{n}$: $-\ln(1-n_t) \approx -\ln(1-\bar{n}) + \frac{\bar{n}}{1-\bar{n}}\,\tilde{n}_t$. Substitua e colete.

Por que isso importa

Essa equação fecha o sistema intratemporal do modelo. Dado o salário real, ela determina a divisão entre consumo e lazer. Log-linearizada, ela é necessária para montar o sistema completo de equações de movimento que você vai resolver para obter as funções de resposta a impulso.

Q5
~20 min
condição intratemporaloferta de trabalhoCampbell (1994)
Campbell (1994) reformulou a condição intratemporal de forma a revelar um resultado importante: com as hipóteses certas, choques de tecnologia não afetam a oferta de trabalho. Esta questão constrói a expressão log-linearizada que vai ser usada na Seção 4.

Obtenha a log-linearização da equação abaixo, do modelo de Romer (Campbell), em torno da trajetória de crescimento equilibrado:

$$\frac{b\,c_t}{1 - n_t} = \frac{(1-\alpha)\,Y_t}{\eta_t\,N_t}$$

Dica

Tome $\ln$ de ambos os lados. Produtos viram somas.

Para $\ln(1-n_t)$, use: $\ln(1-n_t) \approx \ln(1-\bar{n}) - \frac{\bar{n}}{1-\bar{n}}\,\tilde{n}_t$.

No lado direito, $\ln(Y_t/\eta_t N_t) = \tilde{Y}_t - \tilde{\eta}_t - \ln(N_t/\bar{N}_t)$. O crescimento demográfico cancela em per capita.

Por que isso importa

Log-linearizada, essa equação revela como choques de tecnologia se transmitem para a oferta de trabalho. A Seção 4 vai mostrar que, com as hipóteses do modelo simplificado do Romer, essa transmissão é nula: $\eta$ não responde a $A_t$. Isso é notável e, ao mesmo tempo, é parte do problema: nos dados, as horas trabalhadas variam muito ao longo do ciclo.

Seção 3 · 2 questões

O Modelo RBC em Questão

Os modelos de Ciclo Real de Negócios eram, em 2008, o framework dominante na macroeconomia acadêmica. Eles interpretavam flutuações como respostas ótimas a choques de produtividade. Quando a crise chegou, a pergunta óbvia foi: onde estavam esses choques?

O modelo confronta os dados Fatos estilizados do ciclo: onde o RBC acerta e onde erra

Todo modelo macroeconômico é julgado pela sua capacidade de reproduzir os padrões de volatilidade e correlação do ciclo de negócios. O gráfico abaixo compara os desvios padrão de variáveis-chave nos dados americanos com as previsões do modelo RBC básico, todos normalizados pelo desvio padrão do PIB.

Desvio padrão relativo ao PIB (PIB = 1,00) — Dados EUA vs Modelo RBC básico

Baseado em Kydland e Prescott (1982) e King, Plosser e Rebelo (1988). Dados: EUA, série HP-filtrada.

O modelo acerta razoavelmente no investimento. Erra sistematicamente nas horas trabalhadas: no modelo, os trabalhadores reduzem pouco o trabalho em resposta a um choque negativo, porque o salário cai pouco. Nos dados, as horas caem quase três vezes mais do que o modelo prevê.

A crise de 2008 pelo olhar do RBC

Ohanian (2010) tentou aplicar o modelo RBC à crise de 2008. O argumento: o colapso do produto refletia principalmente uma distorção no mercado de trabalho, com trabalhadores relutando em aceitar cortes salariais. A interpretação foi amplamente criticada. Chamar de "resposta ótima de lazer" o desemprego de 10 milhões de americanos custou credibilidade ao programa de pesquisa nos anos seguintes.

Kydland e Prescott (1982). "Time to Build and Aggregate Fluctuations." Econometrica 50(6). King, Plosser e Rebelo (1988). "Production, Growth and Business Cycles." JME 21(2-3). Ohanian (2010). "The Economic Crisis from a Neoclassical Perspective." JEP 24(4).
Q6
~40 min
RBChistória do pensamentoquestão aberta
Esta questão não tem derivações. O que o modelo RBC é, onde ele se encaixa na história do pensamento macroeconômico, e onde ele falha empiricamente. Uma avaliação, não um resumo.

Descreva, cuidadosamente, o que é um modelo do ciclo real dos negócios. Como estes modelos se inserem na história da evolução recente da macroeconomia, e quais são os aspectos do ciclo de negócios que são ou que não são reproduzidos por algumas versões destes modelos.

Você pode basear a sua resposta apenas nos textos indicados ao longo do curso e no capítulo 4 do livro do Romer.

Dica

Estruture em três partes: (1) o que é o modelo, (2) onde ele se encaixa historicamente, (3) o que reproduz e o que não reproduz. A ordem importa para a clareza do argumento.

Para o posicionamento histórico: pense na crítica de Lucas às políticas keynesianas, no surgimento das expectativas racionais, e em como o RBC radicaliza essa agenda ao eliminar até a rigidez nominal.

Fatos que o modelo reproduz bem: volatilidade de investimento, correlações positivas. Fatos que reproduz mal: volatilidade de horas trabalhadas, papel da moeda, persistência do desemprego.

Por que isso importa

Entender onde o RBC se encaixa historicamente é o que separa quem aprendeu as equações de quem entendeu o debate. Kydland-Prescott (1982), a crítica de Lucas e a resposta keynesiana formam um triângulo de tensões que ainda organiza boa parte da discussão em macroeconomia aplicada.

Q7
~35 min
RBCcalibração vs estimaçãometodologia
A parte (a) pede uma avaliação empírica. A parte (b) aprofunda o debate sobre calibração, a escolha técnica mais controversa de Kydland e Prescott. A questão não é técnica: é epistemológica.

a) Descreva, cuidadosamente, que aspectos do ciclo de negócios são ou não são reproduzidos pelo modelo básico do ciclo real de negócios descrito no capítulo 4 do livro do Romer.

b) Como são calibrados os modelos de Ciclo Real de Negócios? Quais as vantagens e desvantagens de se calibrar estes modelos? Os parâmetros do modelo deveriam ser estimados?

Dica

Para (a): liste os fatos estilizados do Romer e marque quais o modelo reproduz. As correlações entre variáveis são o critério principal, não apenas a volatilidade.

Para (b): a vantagem da calibração é usar evidências externas ao modelo. A desvantagem é que você nunca rejeita o modelo formalmente. A estimação por máxima verossimilhança resolve isso, mas enfrenta problemas sérios de identificação em sistemas com choques não observáveis.

Por que isso importa

O debate calibração versus estimação é, no fundo, um debate sobre o que significa "testar" um modelo. Os modelos DSGE modernos tentam um meio-termo: estimação bayesiana com priors informados por evidências microeconômicas. Cada escolha metodológica carrega consequências para as conclusões de política que o modelo gera.

Seção 4 · 2 questões

As Fundações do Modelo de Romer

O modelo simplificado do Romer tem duas propriedades notáveis: a taxa de poupança e a oferta de trabalho são constantes, independentes dos choques de tecnologia. Essas são consequências das hipóteses, não hipóteses em si.

Retornando a 2008 Quando a tractabilidade analítica encontra os dados

A questão seguinte vai demonstrar que, no modelo simplificado do Romer, a taxa de poupança é uma constante igual a $\beta$. Isso é matematicamente elegante. Também significa que nenhum choque, de qualquer natureza, altera a fração da renda que os agentes poupam.

Os dados contam outra história. A taxa de poupança americana ficou abaixo de 3% durante a expansão e chegou a quase 8% em 2009. Esse comportamento não é possível, por construção, num modelo com taxa de poupança constante e mercados completos.

A alternativa: mercados incompletos

Modelos com mercados de ativos incompletos e renda estocástica idiossincrática, como o de Aiyagari (1994), geram motivo precaucionário endógeno: quando a incerteza aumenta, os agentes poupam mais como seguro contra estados ruins futuros. A taxa de poupança agregada varia com o ciclo. O custo computacional é alto: não há solução de forma fechada, os resultados dependem de simulações com distribuições de agentes heterogêneos. A simplicidade do modelo de Romer vem com um preço explícito.

Aiyagari (1994). "Uninsured Idiosyncratic Risk and Aggregate Saving." QJE 109(3). Krusell e Smith (1998). "Income and Wealth Heterogeneity in the Macroeconomy." JPE 106(5).
Q8
~30 min
modelo de Romer$\eta$ constantetaxa de poupançaprova
As duas partes usam a mesma estrutura algébrica: substituir expressões de equilíbrio até que a variável de choque cancele dos dois lados. A surpresa é que, com as hipóteses do modelo simplificado, ela sempre cancela.

Considere o modelo de Romer na versão simplificada: sem gastos do governo, depreciação de 100% e choque de tecnologia. Utilize as seguintes equações:

$$\frac{b\,c_t}{1-\eta_t} = w_t \qquad\quad c_t = \frac{(1-\hat{s})\,Y_t}{N_t} \qquad\quad w_t = \frac{(1-\alpha)\,Y_t}{\eta_t\,N_t}$$

i) Prove que a oferta de trabalho $\eta$ é constante e não é afetada pelos choques de tecnologia. Justifique cuidadosamente.

ii) Prove que a taxa de poupança é constante e não é afetada pelos choques de tecnologia. Justifique cuidadosamente.

Dica

Para (i): substitua $c_t$ e $w_t$ na condição intratemporal. $Y_t$ e $N_t$ aparecem dos dois lados.

Para (i): após a substituição, $Y_t$ e $N_t$ se cancelam. O que resta é $b(1-\hat{s})/(1-\eta) = (1-\alpha)/\eta$, determinada apenas por parâmetros.

Para (ii): com depreciação de 100% e utilidade log, a equação de Euler gera $c_t = (1-\beta)\,y_t$. O choque $A_t$ escala $c_t$ e $y_t$ na mesma proporção, portanto $c_t/y_t = 1-\beta$ permanece constante.

Por que isso importa

Esses dois resultados são o que torna o modelo analiticamente tratável. Mas eles são consequências das hipóteses. Em particular, a constância da poupança é exatamente o que impede o modelo de gerar o comportamento observado em 2008. A tractabilidade analítica e o realismo empírico estão, aqui, em tensão direta.

Q9
~25 min
modelo de Romerutilidade modificadataxa de poupança
Alterar a função utilidade não é cosmético. A questão pede para verificar se as propriedades provadas acima sobrevivem à mudança, com justificativa cuidadosa.

Considere o modelo do capítulo 4 do Romer na versão simplificada: sem gastos do governo, depreciação de 100% e choque de tecnologia. A função utilidade instantânea é:

$$u(t) = \ln c_t + \frac{b\,(1-\eta_t)^{1-\gamma}}{1-\gamma}, \qquad \eta_t = \text{oferta de trabalho}$$

i) Obtenha a condição de primeira ordem que relaciona os valores correntes do consumo e do lazer $(1-\eta_t)$, para um dado valor do salário real.

ii) Com esta alteração na função utilidade, a taxa de poupança continua constante e não afetada pelos choques de tecnologia? Justifique cuidadosamente.

Dica

Para (i): calcule $-\partial u/\partial \eta$ e $\partial u/\partial c$. A FOC intratemporal iguala a razão das utilidades marginais ao salário real.

Para (ii): tente mostrar se $\eta_t$ continua constante. Use a FOC de (i) com $w_t = (1-\alpha)Y_t/(\eta_t N_t)$ e $c_t = (1-s)Y_t/N_t$. Veja se $\eta_t$ pode ser isolado sem $A_t$.

Com a nova utilidade, a FOC intratemporal resulta em $b(1-\eta)^{-\gamma} = w_t/c_t$. Substitua $w_t$ e $c_t$. A chave está em se o expoente $\gamma$ permite ou não o cancelamento de $Y_t$ dos dois lados.

Por que isso importa

Esta questão mostra que os resultados da questão anterior dependem crucialmente da especificação da utilidade. É um exemplo de como resultados aparentemente gerais são, na verdade, propriedades de escolhas funcionais específicas. Identificar essas dependências é o que permite avaliar criticamente um modelo.

Seção 5 · Projeto computacional

Chefão Final

Você derivou as equações, calibrou a intuição, aprendeu onde o modelo falha. Agora faça o que economistas fazem: baixe os dados, replique os fatos estilizados com suas próprias mãos, e veja se o ciclo de 2008 parece mais com um choque de tecnologia ou com uma falha de demanda.

RBC versus Keynesiano A disputa que ainda não tem vencedor

O modelo RBC diz que recessões são respostas ótimas a choques negativos de produtividade. Os agentes reduzem voluntariamente o trabalho porque o salário real caiu; consumo e investimento caem juntos, na mesma proporção do produto. Não há espaço para política fiscal ou monetária melhorar o resultado: a recessão é eficiente.

O Keynesiano diz o oposto. Recessões nascem de colapsos de demanda agregada, não de tecnologia. Investimento desaparece, consumo cai mais do que renda (poupança precaucionária), desemprego é involuntário e persistente. O governo pode — e deve — intervir.

Na Seção 3 você viu um gráfico comparando as previsões do modelo RBC com os dados americanos. O projeto abaixo pede que você reproduza esse gráfico com suas próprias mãos, e então examine o episódio de 2008 especificamente: o padrão daquela recessão parece mais com o que o modelo RBC prevê, ou mais com o que um Keynesiano descreveria?

O que faz isso difícil

Um choque de tecnologia e um choque de demanda podem, em princípio, produzir padrões de dados parecidos. A identificação — distinguir um do outro — é um dos problemas mais antigos da macroeconomia empírica. O que o projeto pede não é uma prova formal, mas uma análise visual e intuitiva: olhe para os dados e diga o que você vê.

Kydland e Prescott (1982). "Time to Build and Aggregate Fluctuations." Econometrica 50(6). Mankiw (1989). "Real Business Cycles: A New Keynesian Perspective." JEP 3(3). Blanchard (2009). "The State of Macro." Annual Review of Economics 1.
Q10 · Projeto
~2–3h
dados reaisPython / Rfatos estilizadosHP-filterRBC vs Keynesiano
Você vai reproduzir os fatos estilizados do ciclo americano com dados do FRED, comparar com as previsões do modelo RBC, e fazer uma análise qualitativa do episódio de 2008. Não é econometria: é olhar para os dados e pensar.

O modelo RBC, calibrado com os parâmetros padrão, prevê que as volatilidades relativas ao PIB sejam aproximadamente:

$$\sigma_C / \sigma_Y \approx 0{,}32 \qquad \sigma_I / \sigma_Y \approx 3{,}28 \qquad \sigma_H / \sigma_Y \approx 0{,}38$$

Seu objetivo é calcular esses mesmos números com dados reais americanos, reproduzir o gráfico da Seção 3, e então examinar o episódio de 2008.

O que é o filtro HP — leia antes de rodar o código

Uma série como o PIB tem dois componentes misturados: uma tendência de longo prazo (crescimento estrutural, de décadas) e flutuações de curto prazo em torno dela (o ciclo de negócios, de meses a anos). Macroeconomistas querem estudar só as flutuações, não a tendência.

O filtro Hodrick-Prescott (HP) faz exatamente isso: dado uma série, ele encontra a tendência suave que melhor a acompanha sem seguir cada solavanco. O que sobra — série menos tendência — é o componente cíclico. O parâmetro $\lambda = 1600$ controla quão suave a tendência deve ser; para dados trimestrais, 1600 é o valor padrão da literatura desde Kydland e Prescott (1982).

No código abaixo, hpfilter(x, lamb=1600) devolve dois objetos: a tendência e o ciclo. A função ciclo() já descarta a tendência e retorna só o que interessa.

Dados necessários (FRED — clique para baixar CSV)

GDPC1 PIB real trimestral (bilhões de dólares encadeados de 2017)
PCECC96 Consumo pessoal real trimestral
GPDIC1 Investimento privado bruto real trimestral
HOANBS Horas trabalhadas no setor não-agrícola (índice trimestral)

Instale antes de começar: pip install pandas numpy matplotlib statsmodels

O código abaixo está completo e roda do início ao fim. Leia cada bloco antes de executar. As perguntas que você precisa responder estão na seção de passos logo abaixo.

# ── Imports e carregamento ────────────────────────────────────
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.filters.hp_filter import hpfilter

gdp   = pd.read_csv('GDPC1.csv',   index_col=0, parse_dates=True).squeeze()
cons  = pd.read_csv('PCECC96.csv', index_col=0, parse_dates=True).squeeze()
inv   = pd.read_csv('GPDIC1.csv',  index_col=0, parse_dates=True).squeeze()
hours = pd.read_csv('HOANBS.csv',  index_col=0, parse_dates=True).squeeze()

# ── Filtro HP: extrai o componente cíclico ────────────────────
# hpfilter retorna (tendência, ciclo). Ficamos só com o ciclo.
def ciclo(s, lamb=1600):
    _, c = hpfilter(np.log(s.dropna()), lamb=lamb)
    return c

cy_y = ciclo(gdp)    # ciclo do PIB
cy_c = ciclo(cons)   # ciclo do consumo
cy_i = ciclo(inv)    # ciclo do investimento
cy_h = ciclo(hours)  # ciclo das horas trabalhadas

# ── Fatos estilizados: volatilidade relativa ao PIB ───────────
std_y = cy_y.std()
modelo_rbc = {'Consumo': 0.32, 'Investimento': 3.28, 'Horas': 0.38}
dados = {
    'Consumo':      cy_c.std() / std_y,
    'Investimento': cy_i.std() / std_y,
    'Horas':        cy_h.std() / std_y,
}
print("Volatilidade relativa ao PIB:")
for var in dados:
    print(f"  {var:<14} dados = {dados[var]:.2f}   modelo RBC = {modelo_rbc[var]:.2f}")

# ── Correlação com o ciclo do PIB ────────────────────────────
comum = cy_y.index.intersection(cy_c.index)
print("\nCorrelação com ciclo do PIB:")
for cy, nome in [(cy_c, 'Consumo'), (cy_i, 'Investimento'), (cy_h, 'Horas')]:
    r = cy.reindex(comum).corr(cy_y.reindex(comum))
    print(f"  {nome:<14} {r:.3f}")

# ── Gráfico 1: barras agrupadas (reproduz o da Seção 3) ───────
variaveis = list(dados.keys())
x = np.arange(len(variaveis))
fig, ax = plt.subplots(figsize=(8, 4))
ax.bar(x - 0.2, [dados[v] for v in variaveis],     0.38, label='Dados (EUA)',  color='#2e7d72', alpha=0.8)
ax.bar(x + 0.2, [modelo_rbc[v] for v in variaveis], 0.38, label='Modelo RBC', color='#ad5f2b', alpha=0.75)
ax.set_xticks(x); ax.set_xticklabels(variaveis)
ax.set_ylabel('Desvio padrão relativo ao PIB')
ax.set_title('Fatos estilizados: dados vs modelo RBC')
ax.legend(); ax.grid(axis='y', alpha=0.3)
plt.tight_layout(); plt.show()

# ── Gráfico 2: zoom em 2008 ──────────────────────────────────
janela = slice('2005', '2013')
fig, axes = plt.subplots(3, 1, figsize=(10, 7), sharex=True)
pares = [(cy_y, 'PIB'), (cy_c, 'Consumo'), (cy_h, 'Horas trabalhadas')]
for ax, (cy, nome) in zip(axes, pares):
    ax.plot(cy[janela] * 100, color='#1a1510', lw=1.5)
    ax.axhline(0, color='gray', lw=0.6)
    ax.axvspan('2007-12-01', '2009-06-01', alpha=0.1, color='#ad5f2b')
    ax.set_title(nome, fontsize=10, loc='left')
    ax.set_ylabel('% desvio da tendência', fontsize=8)
axes[0].annotate('Recessão NBER', xy=('2008-06-01', ax.get_ylim()[1]*0.85),
                 fontsize=8, color='#ad5f2b')
plt.tight_layout(); plt.show()
1
Rode o código e observe a tabela de volatilidades. Em qual variável o modelo mais erra? Em qual ele acerta melhor? Isso é coerente com o que a Seção 3 mostrou?
2
Observe as correlações com o PIB. O modelo RBC prevê que consumo, investimento e horas são todos positivamente correlacionados com o produto. Os dados confirmam? Há alguma surpresa?
3
Olhe o Gráfico 1 (barras agrupadas). A barra de horas trabalhadas é o lugar onde o modelo mais falha. Por que isso acontece? Conecte com o resultado da Q8: se $\eta$ é constante no modelo, o que isso implica sobre a volatilidade prevista das horas?
4
Olhe o Gráfico 2 (zoom em 2008). Compare a queda nas horas com a queda no PIB naquele período. A queda nas horas foi proporcionalmente maior ou menor do que o modelo prevê? O que isso sugere sobre o tipo de choque que causou a recessão?
5
Conecte com a Seção 1. O consumo cíclico caiu mais ou menos do que o PIB em 2008? Lembre que a taxa de poupança subiu de 3% para 8% naquele período. Se as pessoas pouparam mais, o consumo deve ter caído relativamente mais que a renda. Isso é compatível com o modelo RBC, onde consumo e produto caem juntos na mesma proporção?
6
Escreva uma conclusão de um parágrafo. Com base nos dois gráficos e nos números da tabela, o ciclo de 2008 parece mais com o que o modelo RBC descreve (choque de tecnologia, resposta ótima) ou com o que um Keynesiano descreveria (colapso de demanda, desemprego involuntário)? Justifique com pelo menos dois elementos concretos dos seus gráficos.
Vale publicar. Um notebook Python que baixa dados do FRED, aplica HP-filter, reproduz uma tabela de fatos estilizados e conclui sobre um debate da literatura é algo concreto para mostrar. Documenta que você sabe ligar teoria a dado, o que é raro entre alunos de graduação. Publique no GitHub com um README explicando o que foi feito, e coloque o link no LinkedIn. Três linhas: o que o projeto faz, o que você encontrou, qual modelo o dado favorece.

Por que isso importa

A distinção entre choques de oferta e choques de demanda é central para a política econômica. Se recessões são sempre choques de tecnologia (visão RBC), intervenção governamental é ineficaz ou contraproducente. Se são choques de demanda (visão Keynesiana), há espaço para política fiscal e monetária. Os dados de 2008 foram usados por ambos os lados desse debate. Este projeto não vai resolver a questão, mas vai dar a você a capacidade de entender o que cada lado está argumentando e com que evidência.