Uncategorized

Momento R do Dia – O Passeio Aleatório da Taxa de Câmbio

Vamos fazer um exercício interessante hoje: importar diretamente os dados de um provedor, ao invés de baixá-los para o computador para depois importá-los. Em seguida, vamos verificar um comando simples – mas potencialmente perigoso se mal usado (como diria o tio Ben: grandes poderes são acompanhados de grandes responsabilidades…e eu diria: e eles são complementares perfeitos).

Eis os comandos.

library(tseries)
con if(!inherits(try(open(con), silent = TRUE), "try-error")) {
close(con)
x start = Sys.Date() - 500)
plot(x, main = "USD/BRL")
}
head(x)
library(forecast)
Acf(x)
Pacf(x)
auto.arima(x)

Caso você simplesmente copie e cole, conseguirá repetir todo o exercício. Basta que tenha acesso à internet, certo?

cambio_real_dolar

Ok. Agora, para a segunda parte, veja as funções de autocorrelação e autocorrelação parcial.

acf_real_dolarpacf_real_dolar

É, você que conhece mais de séries de tempo já deve ter ficado meio nervoso com esta fortíssima memória aparente no primeiro gráfico, não é? Mas vamos ignorar este importante aspecto e vamos falar da função auto.arima do R.

Trata-se de um algoritmo que, conforme os critérios de seleção que eu use, pode apresentar este ou aquele modelo como sendo o “melhor” modelo para a série. Então, ok, você descobrirá que:

> auto.arima(x)
Series: x
ARIMA(0,1,0)

sigma^2 estimated as 0.0001772: log likelihood=1447.2
AIC=-2892.4 AICc=-2892.39 BIC=-2888.19

Não sei se você percebeu, mas ele está nos dizendo que o modelo para a taxa de câmbio é exatamente um passeio aleatório (random walk) puro (ou seja, sem drift). Quando a série é um passeio aleatório puro, ou seja, tem raiz unitária, sabemos que a previsão será um desastre, não é? Veja um pouco sobre estes processos aqui (embora meu exemplo seja um passeio aleatório com drift).

Chamei o modelo de random, fiz a previsão e também aproveitei para fazer um diagrama de dispersão entre os resíduos da regressão e a série do câmbio (nosso “x”).

random<-Arima(x,order=c(0,1,0))
summary(random)
plot(forecast(random,h=48))
lines(x,col=2)

library(car)

plot(residuals(random),col=4)
erros<-residuals(random)

# para usar scatterplot, vamos transformar as duas séries em colunas de um
# data frame

frame<-data.frame(erros,x)
scatterplot(frame$erros,frame$x)

Viu só o gráfico que você obteve? Muito ruim, não? Veja a correlação dos resíduos com a série do câmbio.

scatter_cambio

Pois é. Mas será que a taxa de câmbio realmente é um passeio aleatório? Não vou tomar mais seu tempo, mas eu brinquei um pouco com um pacote de detecção de quebras estruturais sem me preocupar muito com o exercício. Sei que o período de tempo é curto, embora a frequência seja alta, e isto sempre pode ser um problema (como explicar quebras em tão curto espaço de tempo?). Eis o que obtive.

quebras_cambioSim, você viu a média da série (em verde) e seis segmentos (portanto, cinco quebras) ao longo do período em questão (os dados se iniciam em 27/10/2012 e vêm até hoje). A grande dificuldade de alguém que estuda uma série de tempo, pelo menos no caso dos economistas, diz respeito a saber se o que se tem aí no gráfico é, de fato, um processo com cinco quebras ou um simples passeio aleatório que, por ser aleatório, de fato, vai aparentar ter quebras (mas pode ser que não as tenha).

Bem, acho que já fiz minha boa ação do dia para os alunos que desejam estudar um pouco de séries de tempo. O restante do trabalho é com você.

 

Anúncios

4 comentários em “Momento R do Dia – O Passeio Aleatório da Taxa de Câmbio

  1. Taxa de câmbio é um ativo financeiro, e por isso deve ser um martingale, no caso um random walk. Se não for teríamos possibilidades de arbitragem em cada instante de tempo.
    Nesse teste de quebras você está capturando a tendência estocástica, e assim o teste não faz sentido. O teste de quebras exige variâncias finitas, e isso não ocorre em um random walk.

    1. Obrigado, Saulo. Eu já alertei para isto no texto logo após as funções de autocorrelação. Ótimo comentário. Claro que é preciso mais um pouco de trabalho para ver se, de fato, temos um random walk (que, aliás, está lá, detectado pelo auto.arima).

      Num próximo texto, quem sabe, podemos discutir modelos de alta frequência, ARFIMAs e coisas do gênero.

      Obrigado.

  2. Mas será que é um passeio aleatório? O pacote vrtest pode ajudar a responder. Se restar alguma dúvida tem um ótimo teste para passeio aleatório em Ely (2011) na Rbfin 9(4). Mas uma coisa é certa, a volatilidade do câmbio é previsível, e um bom modelo para isso estará em Ely (2013) na RBEE 13(1).

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s