SØries Temporais em R∗ Ricardo Lima† ∗Este arquivo ainda encontra-se em fase de constru(cid:231)ªo. Logo, nªo deve ser citado e nem usado como referŒncia para trabalhos acadŒmicos. †Economista pela Universidade Federal Fluminense e Mestrando em economia pela Universidade de Estocolmo. Email para contato: [email protected]. SumÆrio 1 Introdu(cid:231)ªo 5 1.1 Por que usar o R? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 O que Ø uma sØrie de tempo? . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3 Porque analisar sØries de tempo? . . . . . . . . . . . . . . . . . . . . . . . 7 2 Come(cid:231)ando os trabalhos 8 2.1 Importando e visualizando os dados . . . . . . . . . . . . . . . . . . . . . . 8 3 Fatos estilizados do Ciclo de Neg(cid:243)cios 11 3.1 Removendo tendŒncias de sØries univariadas . . . . . . . . . . . . . . . . . 11 3.1.1 Removendo sazonalidade . . . . . . . . . . . . . . . . . . . . . . . . 11 3.1.2 TendŒncia de longo prazo . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 Calculando correla(cid:231)ıes c(cid:237)clicas . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.3 Defasagens no R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.4 Calculando a volatilidade c(cid:237)clica . . . . . . . . . . . . . . . . . . . . . . . . 24 4 Modelos univariados 26 4.1 Alguns conceitos bÆsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.2 Processos de mØdias m(cid:243)veis . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.3 Processos autoregressivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3.1 O operador de defasagem, L . . . . . . . . . . . . . . . . . . . . . . 33 4.3.2 Passeio aleat(cid:243)rio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.3.3 Passeio aleat(cid:243)rio com drift . . . . . . . . . . . . . . . . . . . . . . . 35 4.3.4 Processos tendŒncia-estacionÆrios . . . . . . . . . . . . . . . . . . . 37 5 Fun(cid:231)ªo de autocorrela(cid:231)ªo 38 6 Fun(cid:231)ªo de autocorrela(cid:231)ªo parcial 40 6.1 Um breve resumo dos resultados . . . . . . . . . . . . . . . . . . . . . . . . 41 7 Processos ARMA 43 7.1 Estimando modelos ARIMA - Intro . . . . . . . . . . . . . . . . . . . . . . 43 7.1.1 A metodologia Box-Jenkins - Intro . . . . . . . . . . . . . . . . . . 43 2 8 Testes de estacionaridade 45 8.1 O teste de Dickey-Fuller . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 8.2 O Poder do teste de Dickey-Fuller de ra(cid:237)z unitÆria . . . . . . . . . . . . . . 51 8.3 O teste de Dickey-Fuller Aumentado . . . . . . . . . . . . . . . . . . . . . 52 8.4 O teste de Phillips-Perron . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.5 O teste ADF sequencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 9 Estimando modelos ARIMA 64 9.1 A metodologia Box-Jenkins . . . . . . . . . . . . . . . . . . . . . . . . . . 64 9.2 A metodologia Box-Jenkins - Um exemplo prÆtico . . . . . . . . . . . . . . 65 9.2.1 Ordem de integra(cid:231)ªo . . . . . . . . . . . . . . . . . . . . . . . . . . 66 9.2.2 Escolhendo p e q . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 9.2.3 Estimando um modelo ARMA . . . . . . . . . . . . . . . . . . . . . 69 9.2.4 Diagn(cid:243)sticos dos res(cid:237)duos . . . . . . . . . . . . . . . . . . . . . . . . 71 10 Previsªo com modelos ARIMA 77 10.1 Usando modelos ARIMA para construir previsıes . . . . . . . . . . . . . . 77 10.1.1 O caso do processo autoregressivo . . . . . . . . . . . . . . . . . . . 77 10.1.2 O caso do processo de mØdias m(cid:243)veis . . . . . . . . . . . . . . . . . 78 10.2 Prevendo com o R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 10.3 Avaliando previsıes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 11 Modelos multivariados 86 11.1 Modelos din(cid:226)micos com variÆveis estacionÆrias . . . . . . . . . . . . . . . . 86 11.2 Modelos de corre(cid:231)ªo de erro . . . . . . . . . . . . . . . . . . . . . . . . . . 88 11.3 Estimando e testando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 11.4 Causalidade de Granger . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 11.5 Propriedades dos estimadores de MQO: Amostra Finita . . . . . . . . . . . 89 11.5.1 Estimadores nªo viesados . . . . . . . . . . . . . . . . . . . . . . . 89 11.5.2 Estimadores e(cid:28)cientes . . . . . . . . . . . . . . . . . . . . . . . . . 89 11.5.3 InferŒncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 11.6 Propriedades assint(cid:243)ticas dos estimadores de MQO . . . . . . . . . . . . . 90 11.7 Modelos din(cid:226)micos com variÆveis nªo estacionÆrias . . . . . . . . . . . . . 91 11.7.1 Regressªo espœria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 3 11.8 Cointegra(cid:231)ªo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 11.9 Cointegra(cid:231)ªo e modelos de corre(cid:231)ªo de erro . . . . . . . . . . . . . . . . . . 94 11.10Estimando um modelo de corre(cid:231)ªo de erro usando o mØtodo de dois passos de Engle-Granger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 11.11Estimando um modelo de corre(cid:231)ªo de erro em um passo . . . . . . . . . . . 100 11.12Um pouco mais sobre cointegra(cid:231)ªo . . . . . . . . . . . . . . . . . . . . . . 102 11.12.1Cointegra(cid:231)ªo e Causalidade de Granger . . . . . . . . . . . . . . . . 103 ReferŒncias 105 4 1 Introdu(cid:231)ªo A idØia deste trabalho Ø somente de fornecer uma (cid:17)porta de entrada(cid:17) para alunos com algum interesse em programa(cid:231)ªo e em econometria de sØries temporais. Vale destacar que ele se baseia fortemente no curso de sØries temporais, dado no primeiro ano de mestrado em economia da Universidade de Estocolmo, com dura(cid:231)ªo de 8 semanas. Todo trabalho serÆ feito no GUI do R chamado RStudio. Para come(cid:231)ar vocŒ deve instalar o R e, em seguida, o RStudio. Caso tenha interesse tambØm de aprender a produzir documentos LATEXutilizando o RStudio recomendo entrar em PreferŒncias e em seguida Sweave. Finalmente, alterando a primeira op(cid:231)ªo dispon(cid:237)vel para knitr. Desta maneira a manipula(cid:231)ªo do c(cid:243)digo dentro do arquivo .Rnw serÆ mais parecido com o pr(cid:243)prio LATEX. Para isso serÆ necessÆria a instala(cid:231)ªo do pacote knitr e do programa MikTeX. Note que muitos dos pacotes nªo estarªo dispon(cid:237)veis no seu RStudio, logo deverªo ser instalados. Isto pode ser feito atravØs do menu de Ferramentas. Finalmente, note que vocŒ pode alterar o diret(cid:243)rio de trabalho do RStudio, ou seja, onde todo o trabalho serÆ salvo. Isto pode ser feito atravØs do RStudio na janela inferior 1 direita ou atravØs do seguinte comando : setwd("C:/Desktop/Nome/R/") 1.1 Por que usar o R? Nosso primeiro contato com econometria na prÆtica Ø, quase sem exce(cid:231)ªo, atravØs de programas economØtricos de relativo fÆcil acesso a todos os comandos (como Ø o caso de Gretl, Stata e Eviews). Desta maneira, (cid:28)camos acostumados desde o in(cid:237)cio a clicar em determinados comandos e obter resultados diretamente, algo que didaticamente Ø (cid:243)timo especialmente em se tratando de uma matØria tªo (cid:17)adorada(cid:17) como a econometria. Por isso, em geral, come(cid:231)ar a usar o R (ou qualquer linguagem de programa(cid:231)ªo) Ø um grande 1Note que se usa / e nªo \. 5 desa(cid:28)o pois alØm de aprender uma nova (cid:17)lingua(cid:17) temos que aprender a nos expressar nela de maneira l(cid:243)gica. (cid:201) esta (cid:17)l(cid:243)gica(cid:17) que na minha opiniªo Ø o mais dif(cid:237)cil de se aprender. Creio que o principal motivo de se utilizar o R estÆ na capacidade de se repetir e reproduzir processos. (cid:201) (cid:243)bvio que podemos usar um destes programas para estimar 10- 20 varia(cid:231)ıes de um mesmo modelo, porØm quanto tempo isso irÆ levar ? Como serªo armazenados os resultados ? Obviamente alguØm pode entªo responder: mas tambØm Ø poss(cid:237)vel programar e (cid:17)auto- matizar(cid:17) com estes outros programas! Sim, isto Ø verdade (apesar de muitos nªo saberem disso). O problema aqui Ø que em geral a linguagem Ø bastante espec(cid:237)(cid:28)ca para cada pro- grama e, em geral, nªo seguem a l(cid:243)gica das linguagens mais comuns (como por exemplo Matlab). De maneira mais direta aqui vai alguns pontos a favor e contra o uso do R: Usar R (cid:136) Gratuito; (cid:136) Nªo serve somente para econometria/estat(cid:237)stica; (cid:136) Automatizar/repetir procedimentos; (cid:136) Similiaridade com outras linguagens de programa(cid:231)ªo; (cid:136) Facilidade de divulgar/dividar resultados com outros programas e formatos2 (LATEX, Shiny, PDF, por exemplo); (cid:136) Pacotes e fun(cid:231)ıes sªo atualizados constantemente; (cid:136) Mercado de trabalho (grandes empresas estªo cada vez mais interessados em pro(cid:28)s- sionais que saibam usar R); (cid:136) Te obriga a ter um conhecimento te(cid:243)rico maior; Nªo usar R 2Esta apostila, por exemplo, foi toda feita utilizando a interliga(cid:231)ªo do R com o LATEX. 6 (cid:136) Custo alto de entrada; (cid:136) Trabalhoso para pequenos procedimentos; (cid:136) Econometria/estat(cid:237)stica nªo faz parte do seu dia a dia; (cid:136) Te obriga a ter um conhecimento te(cid:243)rico maior; 1.2 O que Ø uma sØrie de tempo? Uma sØrie de tempo Ø uma cole(cid:231)ªo de variÆveis aleat(cid:243)rias ordenadas ao longo do tempo. O PIB brasileiro no intervalo entre 1950 e 2014, por exemplo, pode ser descrito como uma variÆvel aleat(cid:243)ria, Y , onde {Y }2014 = {Y ,Y ,...,Y }. Ou seja, cada Y Ø uma t t 1950 1950 1951 2014 t variÆvel aleat(cid:243)ria, porØm somente observamos uma œnica realiza(cid:231)ªo dela. Aqui nasce a principal diferen(cid:231)a entre a econometria de cross-section, ou dados de corte, e a de sØries temporais. Com dados de corte temos acesso a N observa(cid:231)ıes das k variÆveis de interesse para um dado instante no tempo, enquanto que no caso de sØries de tempo somente temos 1 observa(cid:231)ªo das k variÆveis de interesse para um dado instante no tempo. Veremos que esta pequena diferen(cid:231)a traz grandes consequŒncias para nosso objetivo (cid:28)nal que, pelo menos na grande maioria dos casos, Ø fazer inferŒncias sobre e tentar descrever o futuro desenvolvimento da variÆvel de interesse. 1.3 Porque analisar sØries de tempo? Qual seria entªo nosso objetivo ao analisar dados de sØrie de tempo? Basicamente o que queremos fazer Ø descrever estatisticamente os dados dispon(cid:237)veis e, alØm disso, descrevŒ- los matematicamente, ou seja, queremos uma equa(cid:231)ªo que nos mostre como a sØrie de interesse se comporta. A partir disto podemos construir novas teorias econ(cid:244)micas ou simplesmente testar teorias jÆ estabelecidas. AlØm disso, podemos, a partir do nosso conhecimento dos dados, tentar construir previsıes para valores futuros das variÆveis em mªos. 7 2 Come(cid:231)ando os trabalhos 2.1 Importando e visualizando os dados Existem muitas maneiras de importar dados para o R, sendo que os formatos mais fÆceis de se trabalhar sªo .txt e .csv. A maneira mais simples de importar os dados para o R Ø usando o RStudio e clicando diretamente no botªo (cid:17)Import Dataset(cid:17) no canto superior direito. Como primeiro exemplo vamos come(cid:231)ar com um banco de dados dispon(cid:237)vel no pr(cid:243)prio R no pacote pwt8. O primeiro passo Ø instalar e carregar o pacote e, em seguida, devemos escolher os dados que vamos analisar: library(pwt8) # Carregando o pacote data("pwt8.0") # Carregando os dados do pacote # VariÆveis escolhidas sªo: # Pib real # MØdia de horas trabalhadas # Taxa de c\^ambio br <-subset(pwt8.0, country=="Brazil", select=c(rgdpna, avh, xr)) A partir desses dados podemos criar novas variÆveis. Que tal criarmos uma proxy, de(cid:28)nida como PIB real dividido pela mØdia de horas trabalhadas, para produtividade: br$prod <- br$rgdpna/br$avh Para (cid:28)nalizar, podemos salvar os dados que separamos como um arquivo .txt e visua- lizar os dados atravØs do comando plot. ’ ’ write.table(br, file= dados.txt ) Agora temos o arquivo dados.txt no nosso diret(cid:243)rio de trabalho. Podemos carregar este e, em seguida, visualizar os dados. Note que, na maioria das vezes, temos que avisar 8 ao R sobre o tipo de dados que estamos usando. Logo, neste caso devemos avisar que estamos utilizando sØries de tempo. ’ ’ dados <- read.table( dados.txt ) dados <- ts(dados, start=1950, freq=1) Aqui o comando ts estÆ avisando ao R que a matriz dados possui sØries temporais que se iniciam em 1950 com frequŒncia 1, ou seja, sªo dados anuais. FrequŒncia 4 e 12 seriam, respectivamente, dados trimestrais e mensais. Note que poder(cid:237)amos escrever este c(cid:243)digo de maneira mais curta : ’ ’ dados <- ts(read.table( dados.txt ), start=1950, freq=1) Para (cid:28)nalizar podemos visualizar os dados atravØs do comando plot. plot(dados) dados a n p 0 d 0 g 00 r 0 5 0 h 05 v 2 a 0 5 80 13. r 5 x 1. 0 0.0 0 d 8 o r p 0 0 2 1950 1960 1970 1980 1990 2000 2010 Time Podemos aprimorar um pouco este grÆ(cid:28)co atravØs das op(cid:231)ıes do comando plot, como pode ser visto abaixo. plot(dados, ’ ’ col= blue , ’ ’ main= Dados brasileiros , ’ ’ xlab= Ano ) 9 Dados brasileiros a n p 0 d 0 g 00 r 0 5 0 h 05 v 2 a 0 5 80 13. r 5 x 1. 0 0.0 0 d 8 o r p 0 0 2 1950 1960 1970 1980 1990 2000 2010 Ano 10
Description: