Uncategorized

Momento R do Dia – breve: termos de troca e preços das exportações

Pastore e Pinotti têm um belíssimo texto neste documento que citei aqui ontem. Em algum momento, eles falam de duas séries da Funcex: um índice de termos de troca de commodities e um índice de preços das exportações, ambos referentes ao Brasil e, também, ambos, com a mesma base (2006 = 100).

Resolvi verificar, por curiosidade, alguns trechos do texto. Você deveria ler. Não são nem 20 páginas e é um belo resumo da economia brasileira recente com boas pontes para temas históricos importantes. Vale realmente a pena. Mas vamos aos dados. Achei quase as mesmas séries (não achei o índice de termos de troca para commodities, mas acho que foi erro meu…)  e, bem, vamos aos gráficos iniciais.

pastore1

É impressionante como o prof. Pastore tem um olhar sempre muito bom para séries de tempo econômicas. No texto ele dizia:

Entre 1975 e 2002 há uma sucessão de ciclos em ambas as variáveis sem qualquer tendência de crescimento. Mas por volta de 2002 se inicia um período de forte elevação do CRB, que provoca o aumento intenso dos preços das exportações brasileiras. (p.42)

Sim, eu sei que eu basicamente segui o que ele disse (embora, novamente, minha série de termos de troca pareça ser mais abrangente).

Sobre a causalidade, resolvi também fazer um teste rápido. Dá para ver que, no primeiro período, as séries são estacionárias e, no segundo, não. Ok, o certo é fazer um teste de raiz unitária, mas eu não tinha muito tempo e fui na pressa. Em resumo, para um período eu usei as séries em nível e, no outro, eu fiz a diferença supondo – acho razoável – que ambas tenham apenas uma raiz unitária cada no período final (meu corte é diferente do dele porque considerei o início do período seguinte em 2003, não em 2002).

Assim, para o período inicial (com uma defasagem):

Model 1: termos_troca_1 ~ Lags(termos_troca_1, 1:1) + Lags(precos_X_1, 1:1)
Model 2: termos_troca_1 ~ Lags(termos_troca_1, 1:1)
Res.Df Df F Pr(>F)
1 296
2 297 -1 0.0025 0.9603
> grangertest(termos_troca_1,precos_X_1, order=1)
Granger causality test

Model 1: precos_X_1 ~ Lags(precos_X_1, 1:1) + Lags(termos_troca_1, 1:1)
Model 2: precos_X_1 ~ Lags(precos_X_1, 1:1)
Res.Df Df F Pr(>F)
1 296
2 297 -1 0.0344 0.8529

Em ambos os casos é difícil rejeitar a hipótese de não-causalidade (para ambos). Já no segundo caso, lembrando que minha série de termos de troca não é a mesma, encontrei causalidade bilateral (ok, eu vou rever a especificação depois…).

Model 1: diff(termos_troca_2) ~ Lags(diff(termos_troca_2), 1:1) + Lags(diff(precos_X_2), 1:1)

Model 2: diff(termos_troca_2) ~ Lags(diff(termos_troca_2), 1:1)
Res.Df Df F Pr(>F)
1 134
2 135 -1 36.187 1.609e-08 ***

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> grangertest(diff(termos_troca_2),diff(precos_X_2), order=1)
Granger causality test

Model 1: diff(precos_X_2) ~ Lags(diff(precos_X_2), 1:1) + Lags(diff(termos_troca_2), 1:1)
Model 2: diff(precos_X_2) ~ Lags(diff(precos_X_2), 1:1)
Res.Df Df F Pr(>F)
1 134
2 135 -1 19.462 2.09e-05 ***

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> grangertest(precos_X_1, termos_troca_1, order=1)
Granger causality test

É, mas já dava para desconfiar. Veja só os gráficos das correlações cruzadas (com defasagens em j=0, 1, …, 12).

pastore2 pastore3 pastore4 pastore5

Já dava para desconfiar que haveria algo assim, não? Bem, mas eu preciso revisitar os dados e ver se consigo a série correta dos termos de troca. De qualquer forma, qualquer aluno de Economia pode replicar o exercício. Não precisa muito.

Outro ponto é, como fiz outro dia em um exercício sobre preços livres e monitorados, devemos verificar a significância estatística destas correlações.

Finalmente, embora não pareça haver sazonalidade nas séries, é necessário dar uma pesquisada em como as séries são construídas. Aliás, isto é algo que se aprende com o prof. Pastore em suas aulas de Econometria ou de Economia Monetária ou qualquer outro curso que ele ministre (embora eu só o tenha visto nestes dois).

Obviamente, eu me concentrei aqui na operacionalização do texto de Pastore e Pinotti em R. Mas uma análise completa exige mais do que isto. É preciso revisitar o texto (este trecho do texto) e refazer umas contas. Quando tiver tempo, ok?

library("astsa")  # para os graficos de autocorrelações cruzadas

base<-read.table("c:/Users/cdshi_000/Documents/Meus Documentos/Meus Documentos/pastore.csv",header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)

summary(base)
series<-ts(base,start=c(1978,1),freq=12)
head(series)
precos_X<-series[,2]
termos_troca<-series[,3]

plot(termos_troca)
plot(termos_troca,precos_X)

# criando sub-amostras

precos_X_1<-window(precos_X,c(1978,1), c(2002,12))
termos_troca_1<-window(termos_troca,c(1978,1), c(2002,12))

lag2.plot(precos_X_1, termos_troca_1, max.lag=12,corr=TRUE, smooth=FALSE)
lag2.plot(termos_troca_1, precos_X_1, max.lag=12,corr=TRUE,smooth=FALSE)

precos_X_2<-window(precos_X,c(2003,1), c(2014,7))
termos_troca_2<-window(termos_troca,c(2003,1), c(2014,7))

lag2.plot(precos_X_2, termos_troca_2, max.lag=12, corr=TRUE,smooth=FALSE)
lag2.plot(termos_troca_2, precos_X_2, max.lag=12, corr=TRUE,smooth=FALSE)

library(lmtest) # para o teste de causalidade

par(mfrow=c(2,2))  # é, dividi a janela em duas linhas e duas colunas
plot(precos_X_1)
plot(termos_troca_1)
plot(precos_X_2)
plot(termos_troca_2)

grangertest(precos_X_1, termos_troca_1, order=1)
grangertest(termos_troca_1,precos_X_1,  order=1)

grangertest(diff(precos_X_2), diff(termos_troca_2), order=1)
grangertest(diff(termos_troca_2),diff(precos_X_2),  order=1)
Anúncios