Você está na página 1de 105

Sries Temporais em R

Ricardo Lima


Este arquivo ainda encontra-se em fase de construo. Logo, no deve ser citado e nem usado como

referncia para trabalhos acadmicos.



Economista pela Universidade Federal Fluminense e Mestrando em economia pela Universidade de

Estocolmo. Email para contato: ricardo.lima@ne.su.se.


Sumrio
1 Introduo 5
1.1 Por que usar o R? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 O que uma srie de tempo? . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3 Porque analisar sries de tempo? . . . . . . . . . . . . . . . . . . . . . . . 7

2 Comeando os trabalhos 8
2.1 Importando e visualizando os dados . . . . . . . . . . . . . . . . . . . . . . 8

3 Fatos estilizados do Ciclo de Negcios 11


3.1 Removendo tendncias de sries univariadas . . . . . . . . . . . . . . . . . 11

3.1.1 Removendo sazonalidade . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1.2 Tendncia de longo prazo . . . . . . . . . . . . . . . . . . . . . . . 16

3.2 Calculando correlaes cclicas . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.3 Defasagens no R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.4 Calculando a volatilidade cclica . . . . . . . . . . . . . . . . . . . . . . . . 24

4 Modelos univariados 26
4.1 Alguns conceitos bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2 Processos de mdias mveis . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.3 Processos autoregressivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4.3.1 O operador de defasagem, L . . . . . . . . . . . . . . . . . . . . . . 33

4.3.2 Passeio aleatrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3.3 Passeio aleatrio com drift . . . . . . . . . . . . . . . . . . . . . . . 35

4.3.4 Processos tendncia-estacionrios . . . . . . . . . . . . . . . . . . . 37

5 Funo de autocorrelao 38

6 Funo de autocorrelao 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 raz unitria . . . . . . . . . . . . . . 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 prtico . . . . . . . . . . . . . . 65

9.2.1 Ordem de integrao . . . . . . . . . . . . . . . . . . . . . . . . . . 66

9.2.2 Escolhendo peq . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

9.2.3 Estimando um modelo ARMA . . . . . . . . . . . . . . . . . . . . . 69

9.2.4 Diagnsticos dos resduos . . . . . . . . . . . . . . . . . . . . . . . . 71

10 Previso com modelos ARIMA 77


10.1 Usando modelos ARIMA para construir previses . . . . . . . . . . . . . . 77

10.1.1 O caso do processo autoregressivo . . . . . . . . . . . . . . . . . . . 77

10.1.2 O caso do processo de mdias mveis . . . . . . . . . . . . . . . . . 78

10.2 Prevendo com o R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

10.3 Avaliando previses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

11 Modelos multivariados 86
11.1 Modelos dinmicos com variveis estacionrias . . . . . . . . . . . . . . . . 86

11.2 Modelos de correo 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 no viesados . . . . . . . . . . . . . . . . . . . . . . . 89

11.5.2 Estimadores ecientes . . . . . . . . . . . . . . . . . . . . . . . . . 89

11.5.3 Inferncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

11.6 Propriedades assintticas dos estimadores de MQO . . . . . . . . . . . . . 90

11.7 Modelos dinmicos com variveis no estacionrias . . . . . . . . . . . . . 91

11.7.1 Regresso espria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

3
11.8 Cointegrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

11.9 Cointegrao e modelos de correo de erro . . . . . . . . . . . . . . . . . . 94

11.10Estimando um modelo de correo de erro usando o mtodo de dois passos

de Engle-Granger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

11.11Estimando um modelo de correo de erro em um passo . . . . . . . . . . . 100

11.12Um pouco mais sobre cointegrao . . . . . . . . . . . . . . . . . . . . . . 102

11.12.1 Cointegrao e Causalidade de Granger . . . . . . . . . . . . . . . . 103

Referncias 105

4
1 Introduo
A idia deste trabalho somente de fornecer uma porta de entrada para alunos com

algum interesse em programao e em econometria de sries temporais. Vale destacar que

ele se baseia fortemente no curso de sries temporais, dado no primeiro ano de mestrado

em economia da Universidade de Estocolmo, com durao de 8 semanas.

Todo trabalho ser feito no GUI do R chamado RStudio. Para comear voc deve

instalar o R e, em seguida, o RStudio. Caso tenha interesse tambm de aprender a

AT Xutilizando o
produzir documentos L E RStudio recomendo entrar em Preferncias e em

seguida Sweave. Finalmente, alterando a primeira opo disponvel para knitr. Desta

maneira a manipulao do cdigo dentro do arquivo .Rnw ser mais parecido com o

AT X.
prprio L E Para isso ser necessria a instalao do pacote knitr e do programa

MikTeX.

Note que muitos dos pacotes no estaro disponveis no seu RStudio, logo devero

ser instalados. Isto pode ser feito atravs do menu de Ferramentas.

Finalmente, note que voc pode alterar o diretrio de trabalho do RStudio, ou seja,

onde todo o trabalho ser salvo. Isto pode ser feito atravs do RStudio na janela inferior
1
direita ou atravs do seguinte comando :

setwd("C:/Desktop/Nome/R/")

1.1 Por que usar o R?

Nosso primeiro contato com econometria na prtica , quase sem exceo, atravs de

programas economtricos de relativo fcil acesso a todos os comandos (como o caso de

Gretl, Stata e Eviews ). Desta maneira, camos acostumados desde o incio a clicar em

determinados comandos e obter resultados diretamente, algo que didaticamente timo

especialmente em se tratando de uma matria to adorada como a econometria. Por

isso, em geral, comear a usar o R (ou qualquer linguagem de programao) um grande

1 Note que se usa / e no \.

5
desao pois alm de aprender uma nova lingua temos que aprender a nos expressar nela

de maneira lgica. esta lgica que na minha opinio o mais difcil de se aprender.

Creio que o principal motivo de se utilizar o R est na capacidade de se repetir e

reproduzir processos. bvio que podemos usar um destes programas para estimar 10-

20 variaes de um mesmo modelo, porm quanto tempo isso ir levar ? Como sero

armazenados os resultados ?

Obviamente algum pode ento responder: mas tambm possvel programar e auto-

matizar com estes outros programas! Sim, isto verdade (apesar de muitos no saberem

disso). O problema aqui que em geral a linguagem bastante especca para cada pro-

grama e, em geral, no seguem a lgica 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

Gratuito;

No serve somente para econometria/estatstica;

Automatizar/repetir procedimentos;

Similiaridade com outras linguagens de programao;

2
Facilidade de divulgar/dividar resultados com outros programas e formatos AT X,
(L E

Shiny, PDF, por exemplo);

Pacotes e funes so atualizados constantemente;

Mercado de trabalho (grandes empresas esto cada vez mais interessados em pros-

sionais que saibam usar R);

Te obriga a ter um conhecimento terico maior;

No usar R

2 Esta apostila, por exemplo, foi toda feita utilizando a interligao do R AT X.


com o L E

6
Custo alto de entrada;

Trabalhoso para pequenos procedimentos;

Econometria/estatstica no faz parte do seu dia a dia;

Te obriga a ter um conhecimento terico maior;

1.2 O que uma srie de tempo?

Uma srie de tempo uma coleo de variveis aleatrias ordenadas ao longo do tempo.

O PIB brasileiro no intervalo entre 1950 e 2014, por exemplo, pode ser descrito como uma

varivel aleatria, Yt , onde {Yt }2014


1950 = {Y1950 , Y1951 , . . . , Y2014 }. Ou seja, cada Yt uma

varivel aleatria, porm somente observamos uma nica realizao dela.

Aqui nasce a principal diferena entre a econometria de cross-section, ou dados de

corte, e a de sries temporais. Com dados de corte temos acesso a N observaes das k
variveis de interesse para um dado instante no tempo, enquanto que no caso de sries de

tempo somente temos 1 observao das k variveis de interesse para um dado instante no

tempo.

Veremos que esta pequena diferena traz grandes consequncias para nosso objetivo

nal que, pelo menos na grande maioria dos casos, fazer inferncias sobre e tentar

descrever o futuro desenvolvimento da varivel de interesse.

1.3 Porque analisar sries de tempo?

Qual seria ento nosso objetivo ao analisar dados de srie de tempo? Basicamente o que

queremos fazer descrever estatisticamente os dados disponveis e, alm disso, descrev-

los matematicamente, ou seja, queremos uma equao que nos mostre como a srie de

interesse se comporta.

A partir disto podemos construir novas teorias econmicas ou simplesmente testar

teorias j estabelecidas. Alm disso, podemos, a partir do nosso conhecimento dos dados,

tentar construir previses para valores futuros das variveis em mos.

7
2 Comeando os trabalhos

2.1 Importando e visualizando os dados

Existem muitas maneiras de importar dados para o R, sendo que os formatos mais fceis

de se trabalhar so .txt e .csv. A maneira mais simples de importar os dados para o R

usando o RStudio e clicando diretamente no boto  Import Dataset  no canto superior

direito.

Como primeiro exemplo vamos comear com um banco de dados disponvel no prprio

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

# Variveis escolhidas so:


# Pib real
# Mdia 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 variveis. Que tal criarmos uma proxy,
denida como PIB real dividido pela mdia de horas trabalhadas, para produtividade:

br$prod <- br$rgdpna/br$avh

Para nalizar, podemos salvar os dados que separamos como um arquivo .txt e visua-

lizar os dados atravs do comando plot.

write.table(br, file='dados.txt')

Agora temos o arquivo dados.txt no nosso diretrio 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 sries 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 sries temporais que

se iniciam em 1950 com frequncia 1, ou seja, so dados anuais. Frequncia 4 e 12 seriam,

respectivamente, dados trimestrais e mensais.

Note que poderamos escrever este cdigo de maneira mais curta :

dados <- ts(read.table('dados.txt'), start=1950, freq=1)

Para nalizar podemos visualizar os dados atravs do comando plot.

plot(dados)

dados
rgdpna
2050 500000
avh
1850
3.0
1.5
xr
8000.0
prod
200

1950 1960 1970 1980 1990 2000 2010

Time

Podemos aprimorar um pouco este grco atravs das opes do comando plot, como
pode ser visto abaixo.

plot(dados,
col='blue',
main='Dados brasileiros',
xlab='Ano')

9
Dados brasileiros
rgdpna
2050 500000
avh
1850
3.0
1.5
xr
8000.0
prod
200

1950 1960 1970 1980 1990 2000 2010

Ano

10
3 Fatos estilizados do Ciclo de Negcios
Quais so ento os fatos que devemos buscar entender quando queremos estudar as va-

riveis macroeconmicas e, principalmente, os ciclos econmicos? As principais caracte-

rsticas que precisamos so a volatilidade, correlao contempornea e se a varivel em

questo antecedente ou no ao desenvolvimento do PIB.

Que tal vermos o caso brasileiro utilizando os dados do Banco Central do Brasil ?

Volatilidade Rel. Volatilidade Abs. (t-1) (t) (t+1)

PIB 1.00 1.43 0.66 1.00 0.66

CF 1.10 1.57 0.43 0.67 0.57

CG 0.90 1.88 -0.10 0.19 0.14

I 1.37 5.08 0.74 0.91 0.58

Tabela 1: Comportamento cclico da economia brasileira.

Como podemos ver da tabela anterior...

3.1 Removendo tendncias de sries univariadas

O motivo pelo qual queremos remover tendncias de nossas variveis macroeconmicas,

pelo menos neste contexto, de separar tendncias de crescimento de longo prazo e vari-

aes sazonais de fenmenos exclusivamente ciclicos, ou aleatrios. Ao longo desta seo

tenha em mente a seguinte equao:

Xt = sazonalidadet + tendenciat + ciclot + t

3.1.1 Removendo sazonalidade


A maioria das sries macroeconmicas apresentam algum tipo de sazonalidade e, como

ns estamos interessados no comportamento cclico de nossas variveis devemos tentar

limpar nossas sries desse componente sazonal antes de tudo.

Existem muitas maneiras de se tentar eliminar a sazonalidade dos dados, mas para o

nosso caso usaremos o mtodo mais simples, atravs de dummies. Repare que esse mtodo

11
somente remover a parte determinstica da sazonalidade .
3

Assuma agora que temos dados trimestrais, assim podemos fazer a seguinte regresso:

Yt = + 2 D2 + 3 D3 + 4 D4 + t

Repare que incluimos dummies para cada trimestre exceto o primeiro, isto para no

termos problemas de linearidade perfeita. Isto tambm signica que todos os efeitos

medidos por Di sero relativos ao primeiro trimestre.

Feita a regresso podemos efetuar um teste F, onde H0 : 2 = 3 = 4 = 0, ou seja,


testamos se todos os coecientes so estatisticamente conjuntamente iguais a zero. Isto

, estamos testando a presena de uma sazonalidade trimestral determinstica nos dados.

Se rejeitarmos a hiptese nula estaremos aceitando a hiptese de que a srie Yt apre-

senta sazonalidade. Logo, podemos usar t como nossa srie dessazonalizada. Veja porque,

+ 2 D2 + 3 D3 + 4 D4 + t
Yt =

Yt = Yt + t

Logo, temos que a prpria srie menos a parte que capta os efeitos da sazonalidade

igual a parte ltrada da srie, ou seja, a srie dessazonalizada.

t = Yt Yt

Obviamente, se no rejeitarmos a hiptese nula teramos que a prpria srie original

representaria a srie dessazonalizada.

Agora vamos para um exemplo prtico. Neste prximo exerccio usaremos o PIB

trimestral (srie 1232 do SGS do Banco Central do Brasil). Como sempre comeamos

importando os dados e, em seguida, visualizando eles.

pib <- ts(read.delim("pib.csv", dec=","),


start=1991, freq=4)

pib <- pib[,-1]

3 Sazonalidade estocstica ser abordado mais frente.

12
plot(pib,main='PIB brasileiro',
ylab='Indice', xlab = 'Ano',
bty='l',col='red',lty=1)

grid(col='darkgrey',
lwd=2)

PIB brasileiro
160
140
Indice

120
100
80

1995 2000 2005 2010 2015

Ano

Agora devemos rodar a regresso, para isso devemos criar os dummies sazonais.

Q <- ordered(cycle(pib))

pib.reg <- lm(pib~Q)

Utilizando o comando summary podemos obter um resumo da regresso.

summary(pib.reg)

##
## Call:
## lm(formula = pib ~ Q)
##
## Residuals:
## Min 1Q Median 3Q Max

13
## -38.031 -18.642 -7.356 21.339 46.177
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 122.6690 2.7099 45.266 <2e-16 ***
## Q.L 4.4144 5.4199 0.814 0.418
## Q.Q -3.2150 5.4199 -0.593 0.555
## Q.C 0.8823 5.4199 0.163 0.871
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 26.27 on 90 degrees of freedom
## Multiple R-squared: 0.01159,Adjusted R-squared: -0.02136
## F-statistic: 0.3516 on 3 and 90 DF, p-value: 0.7881

Como podemos ver, o resumo j nos d o p-valor do teste F que neste caso igual a

4
0.79 . Logo, no rejeitamos a hiptese nula de que no existe sazonalidade. Porm, para

ns didticos vamos assumir que rejeitamos a H0 e continuaremos com o procedimento

de dessazonalizar os dados.

Agora, olhemos para os resduos da regresso, ou seja, nossa srie dessazonalizada, e

o componente sazonal.

pib.des <- ts(resid(pib.reg),


start = 1991, freq=1)

pib.hat <- ts(fitted(pib.reg),


start=1991, freq=1)

par(mfrow=c(1,2))
plot(pib.des)

4 Note que nem individualmente, atravs dos testes t nenhum dos componentes sazonais so estatisti-

camente signicativos.

14
plot(pib.hat)

40

124
20

122
pib.des

pib.hat
0

120
20

118
40

2000 2040 2080 2000 2040 2080

Time Time

Como podemos ver, a srie dessazonalizada comea em nveis negativos. Isto acontece

pois ao subtrair Yt da nossa srie original estamos tambm retirando a sua mdia, captada

por
. Logo, devemos normalizar nossa srie adicionando sua mdia.

pib.desn <- pib.des + mean(fitted(pib.reg))

Agora podemos fazer um grco com a srie original e sua verso dessazonalizada.

par(mfrow=c(1,1))

plot(pib,
main='',
xlab='Ano', ylab='',
col='blue',
bty='l')

par(new=TRUE)

plot(pib.desn,
axes=F, ann=F,
col='red',

15
lty=2)

legend('topleft',
c('PIB', 'PIB dessazonalizado'),
col=c('blue', 'red'), lty=1:2,
bty='n')

grid(col='darkgrey')

PIB
160

PIB dessazonalizado
140
120
100
80

1995 2000 2005 2010 2015

Ano

3.1.2 Tendncia de longo prazo


Assumindo agora que ns temos dados anuais podemos rodar a seguinte regresso:

P IBt = + Anot + t

Aqui, assim como no caso da sazonalidade, se for estatisticamente diferente de zero

podemos concluir que a srie em questo no possui uma tendncia linear. Desta forma,

se o valor de t for estatisticamente signicativo a srie t representar P IBt removido de

sua tendncia linear. Caso contrrio, podemos utilizar a srie original.

Para este prximo exerccio iremos utilizar a srie 1207 do Banco Central do Brasil

que nos d o PIB em reais correntes desde 1962.

De maneira semelhante ao que zemos antes iremos importar os dados, avisar ao R


que se trata de sries de tempo e, em seguida, rodaremos a regresso descrita acima. Note

16
que para isso precisamos criar um vetor representando a tendncia linear (por exemplo

uma sequncia de 1962 at 2013, ou simplesmente de 1 at 52).

Os resultados da regresso podem ser vistos a seguir:

##
## Call:
## lm(formula = pibanual ~ ano)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.194e+11 -3.188e+11 -6.747e+10 2.344e+11 7.142e+11
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.046e+14 2.020e+13 -20.03 1.29e-15 ***
## ano 2.030e+11 1.009e+10 20.12 1.17e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.422e+11 on 22 degrees of freedom
## Multiple R-squared: 0.9485,Adjusted R-squared: 0.9461
## F-statistic: 404.8 on 1 and 22 DF, p-value: 1.175e-15

Como podemos ver o p -valor do teste do qual temos interesse igual a 0, logo podemos
rejeitar a hiptese de que a srie no apresenta uma tendncia linear. Isto signica que t
representa nossa srie sem tendncia, enquanto que P[
IBt ser a nossa tendncia linear.

Em seguida temos as trs sries no mesmo grco.

17
4e+12 PIB
Tendncia
PIB sem tendncia linear
2e+12
0e+00

1990 1995 2000 2005 2010

Obviamente, uma srie no necessariamente possui somente uma tendncia linear.

Assuma, por exemplo, que a srie de nosso interesse siga o seguinte processo

yt = + 1 anot + 2 ano2t + t

Neste caso ser ento necessrio remover a parte quadrtica da tendncia.

Filtro Hodrick-Prescott
O ltro Hodrick-Prescott, ou simplesmente ltro HP, um mtodo comumente utilizado
na hora de retirar tendncias de longo prazo de sries macroeconmicas. Este permite

a existncia de uma tendncia mais exvel dado que ele no assume uma tendncia

perfeitamente linear.

Considere Xt como a soma de um componente cclico, Xtc , um componente de cres-

cimento, Xtg , e um choque aleatrio contemporneo, t . Logo, podemos representar Xt


como:

Xt = Xtc + Xtg + t

Seja um parmetro que representa a varincia relativa do componente de crescimento


ao componente cclico. Agora, dado um valor de , deve-se escolher um componente de

crescimento que minimize a seguinte funo perda:

T T
1X g 2 X g 2
= (Xt Xt ) + (Xt+1 Xtg ) (Xtg Xt1
g
)
T t=1 T t=1

18
Note que quanto maior for o valor de maior ser a penalizao no termo de taxa

de variao do componento de crescimento. Logo, quanto maior o valor de mais Xtg se

aproximar de uma tendncia linear. Caso contrrio, ou seja, quando se aproxima de

zero, teremos que Xtg = Xt .


Abaixo criamos uma funo que calcula o ltro HP para uma srie.

filtrohp <- function(y, lambda){

id <- diag(length(y))
d <- diff(id, d=2)
tendhp <- solve(id+lambda*crossprod(d), y)
tendhp

5
Em geral, os valores recomendados de so aproximadamente 100 para dados anuais,
1600 para dados trimestrais e 14400 para dados mensais.

Agora podemos prosseguir e criar a nossa varivel sem tendncia atravs do uso do

ltro HP.

lambda <- 100


tendencia <- filtrohp(pibanual, lambda)
hppib <- pibanual - tendencia

Finalmente, visualizamos os dados.

5 Note que os valores recomendados dependem fortemente dos autores.

19
PIB
4e+12
Tendncia
PIBhp
2e+12
0e+00

1990 1995 2000 2005 2010

Ano

Diferenas
Tomar a primeira diferena outra maneira simples de se remover a tendncia de uma

srie de tempo. Mais a frente usaremos muito esta ferramenta, porm neste momento

talvez no seja o jeito mais consistente teoricamente para remover a tendncia de uma

srie. Apesar de alguns ainda utilizarem este mtodo, um mtodo mais popular seria de

tomar o logaritmo natural e, em seguida, diferenci

No R podemos tomar a primeira de uma srie atravs do comando di. Com esta

funo podemos usar diferenas at maiores, ou seja, podemos tomar a n -sima diferena.
Abaixo esto alguns exemplos de como usar este comando:

A primeira diferena da srie {xt } calculada como xt xt1 t. Para obter isso

no R digite diff(x,lag=1,differences=1) ou, de maneira mais simples, diff(x);

A segunda diferena de {xt } calculada como [(xt xt1 ) (xt1 xt2 )] t. No

R podemos escrever diff(x,1,2);

A primeira diferena sazonal, no caso em que {xt } representa uma srie trimestral,

calculada como xt xt4 t. No R obtemos isso ao digitar diff(x,1,4) ou

simplesmente diff(x,4).

20
Comparao entre os trs mtodos de remoo de tendncia
Agora que estamos um pouco mais familiarizados com estas trs maneiras de retirar

tendncias de nossos dados, que tal compararmos visualmente a diferena? A sries

so piblin, pibhp e dpib, onde a primeira representa a remoo da tendncia linear,

a segunda a remoo atravs do ltro HP e a ltima representa a remoo atravs da

primeira diferena.

dpib <- diff(pibanual,1)

piblin <- ts(resid(lm(pibanual~seq(1,length(pibanual)))),


start=1990, freq=1)

pibhp <- ts(pibanual - filtrohp(pibanual, 100),


start=1990, freq=1)

dpib
piblin
4e+11

pibhp
0e+00
4e+11

1995 2000 2005 2010

Ano

Podemos examinar a correlao contempornea dessas nossas variveis atravs do co-

mando cor(x,y).

cor(piblin, pibhp)

## [1] 0.6934064

21
cor(piblin[-1], dpib)

## [1] 0.3378531

cor(pibhp[-1], dpib)

## [1] 0.3861809

Como podemos ver as trs sries so bastantes distintas entre si, porm isto no

signica que os fatos estilizados das trs sries sejam necessariamente estatisticamente

diferentes. Voc deveria extrair as fatos estilizados utilizando a srie de cada um desses

mtodos e observar a diferena entre eles. Assim, estar estudando o impacto que cada

um deste mtodos tm no conjunto de fatos.

3.2 Calculando correlaes cclicas

Como foi mostrado anteriormente, para calcular a correlao contempornea entre duas

sries xt e yt podemos simplesmente escrever cor(x,y). Porm, muitas vezes estamos

interessados na correlao entre duas variveis com uma defasagem maior entre elas.

Neste caso podemos utilizar a funo de correlao cruzada do R chamada ccf, que alm
de calcular as correlaes cruzadas e seus respectivos intervalos de conana tambm nos

fornece um grco. Vejamos um exemplo para calcular a correlao de piblin(t) com

pibhp(t), pibhp(t-1) e pibhp(t+1).

cc <- ccf(pibhp, piblin, 1)

22
pibhp & piblin

0.4
ACF

0.0
0.4

1.0 0.5 0.0 0.5 1.0

Lag

cc

##
## Autocorrelations of series 'X', by lag
##
## -1 0 1
## 0.398 0.693 0.448

Note que a linha azul nos d o intervalo de conana de 95%, ou seja, dentro deste

intervalo esto os valores que so estatisticamente no signicativos.

3.3 Defasagens no R

Para defasar uma srie xt n vezes utilizamos lag(x, k=-n). Da mesma forma, para

avanar uma srie n vezes utilizamos o mesmo comando porm com o positivo de n, ou
seja, lag(x, k=n). De modo a ilustrar podemos fazer um grco com as diferentes sries

onde utilizamos n = 5.

ts.plot(pibanual, lag(pibanual, 5), lag(pibanual,-5),


col=1:3,
xlab='Ano', main='Demonstrando defasagens',
lty=1:3, lwd=2)

23
grid(col='darkgrey')

legend('topleft',
c(expression(pib[t]), expression(pib[t+5]), expression(pib[t-5])),
col=1:3, lty=1:3,
bty='n', lwd=2)

abline(v=2005, lty=2)

Demonstrando defasagens

pibt
4e+12

pibt+5
pibt5
2e+12
0e+00

1985 1990 1995 2000 2005 2010 2015

Ano

Repare que ao traarmos uma linha vertical no ano de 2005, por exemplo, estaremos

atingindo os valores de 2000, 2005 e 2010, respectivamente. Isto signica que se estiver-

mos interessados em rodar uma regresso do PIB na sua segunda defasagem poderamos

utilizar os seguintes comandos:

reg.pib <- lm(pibanual~lag(pibanual, -2))

3.4 Calculando a volatilidade cclica

A proposta deste seguinte exerccio a de determinar a volatilidade da varivel x, ou seja


da magnitude das utuaes em x, decorrente de seu prprio comportamento cclico. Aqui

24
6
somente duas maneiras de representar esta volatilidade sero abordadas, a volatilidade

absoluta e a volatilidade relativa. A primeira mede a prpria volatilidade da varivel

como o desvio padro (d.p.) da utuao percentual em torno da tendncia de longo

prazo. Esta volatilidade pode ser calculada como a seguir

 
xt tendencia(x)t
volatilidade x = d.p. 100 .
tendencia(x)t

Por outro lado, a volatilidade relativa de x sua volatilidade relativa a uma outra srie.
Por exemplo, a volatilidade de x relativa a uma outra varivel, y , pode ser calculada como

d.p.(lnx)
volatilidade x/y = .
d.p.(lny)

Agora que sabemos calcular os diferentes tipos de volatilidade podemos reproduzir os

dados da Tabela 1. Para o caso da volatilidade absoluta do PIB, por exemplo, deveramos

7
seguir o cdigo a seguir .

vol.pib <- sd(((pib - filtrohp(pib, 1600))/(filtrohp(pib, 1600)))*100)


vol.pib

## [1] 2.969671

6 Existem muitas maneiras diferentes de se medir volatilidade, por isso sempre importante ter em

mente qual denio voc est usando e sempre deixar de maneira explicita.
7 Observe que neste exemplo estamos calculando a volatilidade do srie sem nenhum tratamento, ou

seja, ainda no foi dessazonalizada. Logo, o valor pode ser diferente ao da tabela.

25
4 Modelos univariados
Suponha que temos o seguinte modelo geral univariado de sries temporais

Yt = f (Yt1 , Yt2 , . . . , ut )

De modo a operacionalizar este modelo temos que especicar trs coisas;

1. A forma funcional de f ();

2. O nmero de defasagens;

3. A estrutura do termo de distrbio, ut .

A base lgica para a anlise univariada pode ser resumida, de certa forma, nos seguintes

pontos

1. Modelos puramente estatsticos (atericos) podem ser extremamente teis quando

queremos resumir informaes/caractersticas de uma srie de tempo e para fazer

previses bastante conveis de curto prazo.

2. Sempre visualize os dados ANTES de rodar as regresses! Muitas vezes os grcos

j nos dizem bastante sobre a natureza do processo por trs dos dados.

(a) Existe algum padro de sazonalidade?

(b) H alguma tendncia de longo prazo?

(c) Existem quebras estruturais e/ou eventos histricos atpicos ?

3. Modelos tericos com defasagens da varivel dependente podem muitas vezes serem

reduzidos a modelos univariados relevantes.

4. Modelos de sries temporais so importantes para mtodos tericos, analticos e

nmericos. No somente para econometria.

Exemplo: Um modelo macroeconmico simples

ct = 0 + 1 yt + 2 ct1 + t (1)

y t = ct + i t (2)

26
it = syt (3)

onde 0 < s < 1 uma taxa de poupana constante, it o investimento, ct o consumo,

yt a renda e t N (0, 2 ) representa um rudo branco. Substituindo (3) em (2) temos

que

ct = 0 + 1 yt + 2 ct1 + t (4)

yt = ct + syt . (5)

Logo, substituindo (5) em (4)

ct
ct = 0 + 1 + 2 ct1 + t
1s

 
1 1
ct ct = 1 ct = 0 + 2 ct1 + t
1s 1s

ct = 0 + 1 ct1 + ut (6)

onde ut N (0, u2 ). Desta forma reduzimos o modelo macroeconmico para um

processo univariado, ou seja, um processo A(1) para o consumo.

4.1 Alguns conceitos bsicos

Comeamos agora a denir alguns conceitos bsicos que iremos usar extensivamente ao

longo do curso.

Processo estocstico uma coleo de variveis aleatrias ordenadas no tempo. Por

exemplo, tome o PIB brasileiro de 1950 at 2013 {Yt }2013


1950 = {Y1950 , Y1951 , . . . , Y2013 }.

Cada Yt uma varivel aleatria (isto , cada Yt uma realizao de um nmero innito de
realidades alternativas). O processo estocstico {Yt }2013
1950 nos ajuda a descrever e inferir

sobre o desenvolvimento do PIB brasileiro ao longo do tempo.

Estacionaridade estrita implica na distribuio de probabilidade conjunta constante


ao longo do tempo, ou seja, ela no depende do instante do t.

Estacionaridade fraca implica que os dois primeiros momentos (ou seja, a mdia e
a matriz de varincia-covarincia) da distribuio de probabilidade conjunta da varivel

estocstica sejam constantes ao longo do tempo, isto

27
E{Yt } = <

V {Yt } = E{(Yt )2 } = 0 <

Cov{Yt , Ytk } = E{(Yt )(Y t k)} = k < , k N+

Por agora, o conceito de estacionaridade fraca (de agora em diante estacionaridade )


ser suciente para o nosso trabalho. Esta condio supre a maioria de nossas necessidades

(i.e., ela nos permite usar as ferramentas padres de estimao, previso e inferncia).

Processo no estacionrio um processo cuja mdia e varincia sero dependentes


do tempo. O fato desses dois momentos serem funes do tempo implica na impossibili-

dade de fazermos inferncia fora da amostra.

Processos puramente aleatrios, ou tambm rudos brancos, so processos que


possuem mdia zero, varincia constante e no possuem correlao serial. Frequentemente

queremos assumir que os choques nos nossos modelos economtricos so processos pura-

mente aleatrios (obviamente iremos testar se esta hiptese vlida ou no), isto , iremos

assumir que

t N (0, 2 )

Como exemplo podemos agora criar dois processos estocsticos, um estacionrio e

outro no estacionrio.

set.seed(22)
TT <- 100
Xt <- ts(rnorm(TT), start=1, freq=1)
Ct <- ts(cumsum(rnorm(TT)), start=1, freq=1)

28
0
5
10
15
20

Xt Estacionrio
Ct No Estacionrio
25

0 20 40 60 80 100

Time

4.2 Processos de mdias mveis

Um processo MA(1) pode ser caracterizado como

Yt = + t + t1

onde

t N (0, 2 ).

A mdia da srie Yt pode ser calculada e igual a

E{Yt } = E{ + t + t1 } = .

Calculando a varincia temos

V {Yt } = E{(Yt )2 } = E{(t + t1 )2 }

= E{2t + 2 2t1 + 2t t1 } = E{2t } + 2 E{2t1 } + 2E{t t1 }

= E{2t } + 2 E{2t1 }

= (1 2 )22 .

A autocovarincia entre Yt e Yt1 dada por

cov{Yt , Yt1 } = E{(Yt )(Yt1 )}

29
= E{(t + t1 )(t1 + t2 )}

= E{(2t1 )}

= 2

Finalmente, a autocovarincia entre Yt e Yt2 dada por

cov{Yt , Yt2 } = E{(Yt )(Yt2 )}

= E{(t + t2 )(t2 + t3 )}

=0

Note que para este processo MA(1), teremos que cov{Yt , Ytk } = 0 k > 1. Dito
P
isto, como ser a matriz varincia-covarincia, , deste processo?

No R podemos simular e visuallizar um processo MA(1) como a seguir

plot(arima.sim(model=list(ma=0.8), n=100),
ylab=expression(Y[t]),
main='',
bty='l')
2
0
Yt

2
4

0 20 40 60 80 100

Time

Figura 1: Processo MA(1) com = 0.8.

30
Veremos mais a diante que se || < 1, este processo MA(1) pode ser invertido e

transformado em um processo autoregressivo innito, ou AR(). Em termos mais gerais

podemos denir um processo MA(q) como

Yt = + t + 1 t1 + 2 t2 + + q tq

onde, como de costume,

t N (0, 2 ).

A condio que garante a invertibilidade de um processo MA(q) que o inverso das

razes do polnomio estejam dentro do crculo unitrio.

4.3 Processos autoregressivos

O exemplo mais simples de um processo autoregressivo dado abaixo

Yt = + Yt1 + t

onde, mais uma vez, assumimos que

t N (0, 2 ).

Calculando a esperana deste processo temos

E{Yt } = E{ + Yt1 + t } = + E{Yt1 }

onde, se a nossa hiptese de estacionaridade vlida, temos que

E{Yt } = E{Yt1 } = E{Ytk } k

logo,

E{Yt } = + E{Yt }

(1 )E{Yt } =

E{Yt } = .
1

Se relembrarmos das propriedades de uma P.G. innita podemos ver que esta ltima

expresso pode ser reescrita como

31
E{Yt } = (1 + + 2 + + ) || < 1.

Teorema Sries Geomtricas: Se |r| < 1, a srie geomtrica a+ar+ar2 + +arn +. . .


converge para a/(1 r) quando n . Se |r| 1, a srie divergir caso a 6= 0. Caso

contrrio, a srie convergir para 0.


De forma a facilitar os clculos da varincia deste processo AR(1), redena y t = Y t ,
logo

V {yt } = E{(yt E{yt })2 } = E{(yt1 t )2 }

= E{(2 yt1
2
2yt1 t + 2t } = 2 E{yt1
2
} + E{2 }

= 2 + 2 E{(yt2 + t2 )2 } = . . .

= 2 (1 + 2 + 4 + + )
2
= .
1 2
Ainda tomando y t = Y t , a autocovarincia pode ser calculada como a seguir

Cov{yt , yt1 } = E{(yt E{yt })(yt1 E{yt1 })} = E{yt yt1 }

= E{(yt + t )yt1 } = E{yt1 yt1 + t1 }


2
= E{yt1 } = V {yt }
2
= || < 1.
1 2
Generalizando, teremos que a autocovarincia entre yt e ytk ser dada pela expresso

k 2
cov{yt , ytk } = || < 1.
1 2

De modo a visualizar um processo AR(1) podemos seguir os cdigos a seguir.

Yt <- arima.sim(model=list(ar=0.8), n=100)


plot(Yt,
lty=1, bty='l,', col=1,
main='',
ylab=expression(paste(Y[t])))

32
3
2
1
Yt

0
1
2

0 20 40 60 80 100

Time

Figura 2: Processo AR(1) com = 0.8.

A condio de estacionaridade para o processo AR(1) ento dado por || < 1. O

caso importante de = 1 ser abordado mais adiante. Um processo autoregressivo de

ordem p pode ento ser descrito como

Yt = + 1 Yt1 + 2 Yt2 + + p Ytp + t

onde,

t N (0, 2 ).

A condio de estacionaridade para o processo generalizado AR(p) que o inverso

de todas as razes do polnomio estejam dentro do crculo unitrio. Um processo AR(1)


estacionrio tambm pode ser reescrito como um processo MA(). Isto pode ser feito de

maneira mais fcil quando utilizamos um operador de defasagem, L.

4.3.1 O operador de defasagem, L


Vejamos agora algumas propriedades bsicas do operador de defasagem e como us-lo.

Propriedades bsicas:

1. L =

2. Lxt = xt1

33
3. L2 xt = L{Lxt } = Lxt1 = xt2

4. (1 L)xt = xt Lxt = xt xt1 = xt

5. L(1 L)xt = (1 L)xt1 = xt1

Agora, utilizando o operador de defasagem, podemos mostrar que um processo AR(1)


pode ser reescrito como um processo MA(). Primeiro, denimos o processo AR(1) como

xt = xt1 + t

onde || < 1. Usando as propriedades (1) e (2) do operador de defasagem temos que

xt = Lxt + t = (1 L)xt = t

t
xt =
1 L
O ltimo passo s ser possvel se (1 L) for inversvel. Dado que assumimos que

|| < 1, sabemos que este processo estacionrio. Agora, lembrando novamente das

propriedades de uma srie geomtrica, podemos reescrever esta ltima expresso como


X
xt = k L k t
k=0

ou simplesmente

X
xt = k tk
k=0

o que nada mais do que um processo de mdias mveis innito.

4.3.2 Passeio aleatrio


Suponha agora um processo AR(1) onde = 1 e = 0, o que temos agora ser um passeio
aleatrio dado por

Yt = Yt1 + t

Que tal vermos se este processo estacionrio ou no?

E{YT } = E{Yt1 + t } = E{Yt2 + t1 + t } = . . .


T
X
= E{Y0 + t } = Y 0
1

34
Como podemos ver, a esperana constante e independe do tempo. Vejamos ento a

varincia

V {YT } = E{(Yt E{Yt })2 } = E{(Yt1 + t1 Y0 )2 } = . . .


T
X T
X
2
= E{(Y0 + t Y 0 ) } = 2 = T 2
1 1

A varincia portanto uma funo crescente do tempo, logo o passeio aleatrio no

um processo estacionrio. Note desde j que a persistncia de um choque neste modelo

innita. Por isso muitas vezes chamado de um modelo com memria innita.

Raz unitria: Quando temos que =1 aparece o problema de raz unitria que,

basicamente, sinnimo de no estacionaridade. O nome surge do fato da soluo da

equao caracterstica ter uma raz igual a 1.

Um passeio aleatrio pode se tornar estacionrio ao ser diferenciado, isto

Yt = Yt1 + t Yt = t .

Este fato ser amplamente usado ao longo deste texto. Processos como este, que se tornam

estacionrios ao serem diferenciados, so chamados de estacionrios em diferena.

Processo estocstico integrado: Um processo estocstico que possa ser feito estaci-

onrio atravs da diferenciao tambm chamado de um processo estocstico integrado.

Se um processo se torna estacionrio ao se tomar sua primeira diferena dizemos que este

processo integrado de ordem um, ou I(1). Da mesma maneira, se o processo somente

se tornar estacionrio na d -sima diferena dizemos que este um processo integrado de


ordem d, ou I(d). Um processo que no precisa ser diferenciado para se tornar estacionrio

integrado de ordem zero, ou I(0).

4.3.3 Passeio aleatrio com drift

Usaremos agora o mesmo processo autoregressivo A(1) que antes com uma pequena mu-

dana, onde assumimos que 6= 0. O resultado um modelo de passeio aleatrio com

drift dado por

Yt = + Yt1 + t

Tendncia estocstica: A srie Yt descrita acima ir ter uma tendncia positiva ou

negativa dependendo do valor do parmetro do drift . Este drift tambm chamado

35
de tendncia estocstica. Vejamos agora que nem a esperana e nem a varincia de um

passeio aleatrio so independentes do tempo.

E{YT } = E{ + YT 1 + T } = E{ + + YT 2 + T 1 + T } = . . .
( T T
)
X X
= E Y0 + + t
1 1

= Y0 + T

Logo a esperana de Yt depende do tempo. A varincia deste processo pode ser

calculada como

V {YT } = E{(YT E{Yt })2 } = E{(YT Y0 +T )2 } = E{(+YT 1 +T Y0 +T )2 } = . . .


T
X
= E{ 2t } = T 2
1

Assim como com o passeio aleatrio anterior, podemos tornar o passeio aleatrio com

drift estacionrio ao tomar a primeira diferena

Yt Yt1 = + t

Yt = + t

Abaixo simulamos e visualizamos o passeio aleatrio com drift e sua primeira diferen.

TT <- 100
et <- rnorm(TT)
mu <- 0.1
Yt <- ts(cumsum(mu+et))
dYt <- diff(Yt)

36
Yt
Yt
10
Yt , Yt

5
0

0 20 40 60 80 100

Time

Figura 3: Passeio aleatorio com drift e sua primeira diferenca.

4.3.4 Processos tendncia-estacionrios


Mais uma vez tomemos o processo autoregressivo AR(1) s que desta vez iremos assumir
que 6= 0, || < 1 e vamos adicionar uma tendncia temporal, t. Assim teremos que

Yt = + t + Yt1 + t

Este processo tambm ser no estacionrio com esperana dada por

+t
E{Yt } =
1

e varincia igual a
2
V {Yt } =
1 2
Podemos tornar esta srie estacionria ao remover, ou subtrair, a tendncia deter-

8
minstica da srie original. Processos como este, que podem ser tornados estacionrios

pela remoo de uma tendncia determinstica so chamados de processos tendncia-

estacionrios.

8 Note que tendncias H-P, quadrtica, cbica e etc. so tendncias determinsticas, apesar de no

serem lineares.

37
5 Funo de autocorrelao
Assumindo estacionaridade fraca, podemos denir a k -sima ordem de autocovarincia,

k , como

k = cov{Yt , Ytk } = cov{Yt , Yt+k }

A autocovarincia de um processo estocstico pode ser normalizada e apresentada

como uma funo de autocorrelao, k

cov{Yt , Ytk } k
k = =
V {Yt } 0

A funo de autocorrelao, ou comumente chamade de ACF do ingls, nos ajuda a

caracterizar o desenvolvimento de Yt ao longo do tempo. Ela nos mostra o quo forte o

valor observado hoje est correlacionado com os valores observados no passado e como

choques hoje afetam valores futuros da varivel estocstica. Alm de nos ajudar a des-

crever os dados, a ACF tambm nos ajuda a achar razes unitrias, escolher modelos e

fazer diagnsticos sobre regresses.

A ACF de um processo AR(1) dado por

2
cov{Yt , Ytk } k 1 2
k = = 2 = k .
V {Yt }
2
1

Para o processo MA(1) a ACF

cov{Yt , Yt1 } 2
1 = = =
V {Yt } (1 + 2 )2 1 + 2

porm,

k = 0 , k > 1.

No R o comando acf calcula e nos d um grco da ACF de uma srie. Abaixo

um exemplo de como simular e calcular a ACF dado e, em seguida, os grcos de 4

processos so dados.

TT <- 200

ar1 <- acf(arima.sim(model=list(ar=0.9), n=TT),


ylab=expression(Y[t]),
main=expression(paste("AR(1) com ", theta, "=0.9")))

38
AR(1) com =0.9 AR(1) com =0.9

1.0

1.0
0.8

0.5
0.6
0.4
Yt

Yt

0.0
0.2
0.0

0.5
0.2

0 5 10 15 20 0 5 10 15 20

Lag Lag

MA(1) com =0.9 MA(1) com =0.9


1.0

1.0
0.8

0.5
0.6
0.4
Yt

Yt

0.0
0.2
0.0

0.5
0.2

0 5 10 15 20 0 5 10 15 20

Lag Lag

Figura 4: Funo de autocorrelao para processos autoregressivos e de mdias mveis.

39
6 Funo de autocorrelao parcial
A funo de autocorrelao parcial (ou comumente PACF, do ingls) nos d correlao

entre a varivel no instante t e uma de suas defasagens, retirado os efeitos das outras

defasagens. Por exemplo, assuma o seguinte processo AR(2)

Yt = + 1 Yt1 + 2 Yt2 + t .

O parmetro 2 nos d ento o coeciente de correlao entre Yt e Yt2 retirado os

efeitos de Yt1 . Assim, 2 pode ser descrito como a seguir

r13 r12 r23


2 = r13,2 = p 2
p
2
.
1 r12 1 r23

Assumindo estacionaridade fraca temos que

r12 = corr {Yt , Yt1 } = corr {Yt1 , Yt2 } = 1

r13 = corr {Yt , Yt2 } = 2 .

Logo, conclumos que


2 21
2 = r13,2 = .
1 2
Assim como para as autocorrelaes, o R possui um comando para calcular e plotar
a autocorrelao parcial. Um exemplo dado a seguir.

TT <- 200

ar1 <- pacf(arima.sim(model=list(ar=0.9), n=TT),


ylab=expression(Y[t]),
main=expression(paste("AR(1) com ", theta, "=0.9")))

40
AR(1) com =0.9 AR(1) com =0.9

0.2
0.8

0.0
0.6

0.2
0.4
Yt

Yt

0.4
0.2

0.6
0.0
0.2

0.8
5 10 15 20 5 10 15 20

Lag Lag

MA(1) com =0.9 MA(1) com =0.9

0.2
0.1 0.2 0.3 0.4

0.1
0.0
Yt

Yt

0.2
0.1

0.4
0.3

5 10 15 20 5 10 15 20

Lag Lag

Figura 5: Funo de autocorrelao parcial para processos autoregressivos e de mdias

mveis.

6.1 Um breve resumo dos resultados

Aps estas duas sees podemos concluir que um processo AR(p) descrito por

1. Uma ACF innita e com queda exponencial;

2. uma PACF (aproximadamente) igual a zero para defasagens maiores que p.

J o processo MA(q) caracterizado por

1. Uma ACF (aproximadamente) igual a zero para defasagens maiores que q;

2. uma PACF innita e com queda exponencial;

41
Mais uma vez deve-se notar que esta estratgia de identicao do processo somente

ser vlido quando se trata de uma srie estacionria. Logo, antes de se comear a

identicao do processo de uma srie, devemos remover padres como sazonalidade e

tendncias da srie. Somente aps esta etapa que podemos analisar, de maneira correta,

a ACF e PACF.

42
7 Processos ARMA
Agora que temos uma noo do que so processos autoregressivos e de mdia mveis

podemos juntar os dois, desta forma podemos analisar processos mistos, ou processos

ARMA. Este processo, ARMA(p,q), mais geral pode ser formulado como a seguir

Yt = + 1 Yt1 + + p Ytp + t + 1 t1 + + q tq

onde
iid
t N (0, 2 ).

Para uma srie no estacionria devemos formular um modelo ARIMA(p,d,q), onde d


9
nos d o nmero de diferenas necessrias para tornar a srie estacionria.

7.1 Estimando modelos ARIMA - Intro

O objetivo da anlise ARIMA representar o processo dos resduos de maneira parcimo-


niosa. Logo, devemos usando somente a quantidade necessria de termos AR e MA.

7.1.1 A metodologia Box-Jenkins - Intro


A metodologia Box-Jenkins pressupe que a srie sendo analisado estacionria, logo

devemos tratar da possvel existncia de raz unitria e sazonalidades. A metodologia

pode ser brevemente caracterizada como a seguir.

1. Identicao

(a) Tratar da sazonalidade

(b) Determinar a order de integrao, d


(c) Achar valores apropriados para peq

2. Estimao

9 Nesta apostila no abordaremos modelos com sazonalidade, denotados por SARIMA.

43
(a) Modelos puramente autoregressivos podem ser estimados de maneira consis-

tente
10
por OLS, OLS no linear e por mxima verossimilhana.

(b) Modelos puramente caracterizados por mdias mveis podem ser estimados de

maneira consistente por OLS no linear e por mxima verossimilhana.

(c) Modelos ARMA podem ser estimados de maneira consistente por OLS no

linear e por mxima verossimilhana.

3. Diagnstico

(a) Especicao do modelo

(b) Autocorrelaes

(c) ARCH

(d) Normalidade

10 Consistncia uma propriedade assinttica, porm no garante estimadores no viesados em pequenas

amostras.

44
8 Testes de estacionaridade
Como vimos anteriormente, o segundo passo da metodologia de Box-Jenkins o de deter-

minar a ordem de integrao, d, de uma srie11 . Apresentamos a seguir alguns dos testes

que existem para se determinar a ordem de integrao de uma srie.

8.1 O teste de Dickey-Fuller

Considere a seguir uma srie caracterizada pelo seguinte processo

Yt = Yt1 + t

onde
iid
t N (0, 2 ).

Se || < 1 ento teremos que o processo estacionrio. Se || = 1 o processo apresentar

uma raz unitria e, portanto, ser no estcionrio. Logo, o teste de raz unitria testa se

=1 ou no. Na prtica fazemos primeiramente a seguinte transformao

Yt Yt1 = Yt1 Yt1 +

Yt = ( 1)Yt1 + t

Yt = Yt1 + t .

Feitas estas transformaes testamos a hiptese nula de que = 0. Desta forma, se =0


ento =1 e, consequentemente, Yt possui raz unitria. Note que a hiptese nula deste

teste dada por H0 : = 0 enquanto que a alternativa H1 : < 0, logo trata-se de um

12
teste unilateral .

Exemplo: Determinando a ordem de integrao - o teste DF

11 Aqui abordamos somente mtodos simples para remover sazonalidade dos dados e, para o nosso

objetivo, assumiremos que estes sero sucientes.


12 Note que sob a H0 o t -valor do coeciente t
no segue uma distribuio . Isto signica que a tabela

t que comumente utilizamos para testes de hiptese no deve ser utilizada.

45
Assuma agora que temos em mos uma certa srie, yt , e que queremos determinar sua

ordem de integrao, ou seja, quantas vezes ns devemos diferenci-la de modo a torn-la

estacionria. Primeiro, devemos sempre comear visualizando a srie em questo.

plot(yt,
ylab=expression(Y[t]),
main='',
bty='l',
col='blue')
grid(col='darkgrey', lwd=2)
10
5
0
Yt

10
20

2000 2005 2010 2015

Time

A srie aparentemente estacionria? Em geral, concluir se uma srie estacionria,

ou no, simplesmente olhando para o seu grco basicamente impossvel. Para testar

esta hiptese de maneira mais formal podemos ento seguir as instrues dadas acima.

13
Ou seja, rodamos a regresso da primeira diferena da srie contra sua defasagem.

summary(lm(diff(yt)~lag(yt,-1)[-length(yt)] - 1))

##

13 Note que no cdigo desta passagem adicionamos o 1, este comando fora a regresso atravs da

origem, ou seja, sem intercepto. Alm disso temos que corrigir o tamanho do vetor das observaes da

defasagem.

46
## Call:
## lm(formula = diff(yt) ~ lag(yt, -1)[-length(yt)] - 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.3856 -0.7056 -0.0622 0.6434 2.8990
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## lag(yt, -1)[-length(yt)] 0.003974 0.008372 0.475 0.636
##
## Residual standard error: 0.9889 on 198 degrees of freedom
## Multiple R-squared: 0.001137,Adjusted R-squared: -0.003908
## F-statistic: 0.2253 on 1 and 198 DF, p-value: 0.6355

Como podemos notar, a estatstica t para a hiptese nula de = 0 igual a 0.47, logo
no rejeitariamos a hiptese nula ao seguir a distribuio padro t. Porm, para testar

de maneira correta esta hiptese, devemos nos guiar pela tabela desenvolvida por Dickey

and Fuller (1979), esta dada por exemplo em Enders (2009). Para o nosso caso temos

que o valor crtico aproximadamente 2.58, logo no podemos rejeitar a hiptese nula.

14
Assim, conclumos que a srie yt no estacionria .

Como veremos agora, o uso de um pacote do R pode facilitar bastante a nossa vida.
Apesar de podermos especicar manualmente as regresses de interesse (e isto contribuir

para criar uma intuio), o trabalho ca muito mais prtico e rpido se tivermos acesso

a processos j automatizados. Assim, de agora e em diante utilizaremos o pacote urca.


15
Para isso devemos carregar o pacote . Abaixo carregamos o pacote necessrio e, em

seguida, rodamos um teste DF.

14 Note que como o teste unilateral temos que | | > crtico no necessariamente signica que rejeitamos
a hiptese nula. Isto pode ser vericado se lembrarmos que a estatstica de teste s ser positiva se valer

que > 1, algo que implica na no estacionaridade da srie.


15 Uma preferncia pessoal que tenho a de sempre comear um script do R declarando e carregando

os pacotes necessrios para todos os meus comandos.

47
library(urca)
summary(ur.df(yt, type='none', lags=0))

##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression none
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.3856 -0.7056 -0.0622 0.6434 2.8990
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## z.lag.1 0.003974 0.008372 0.475 0.636
##
## Residual standard error: 0.9889 on 198 degrees of freedom
## Multiple R-squared: 0.001137,Adjusted R-squared: -0.003908
## F-statistic: 0.2253 on 1 and 198 DF, p-value: 0.6355
##
##
## Value of test-statistic is: 0.4747
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau1 -2.58 -1.95 -1.62

48
Como podemos ver, a funo ur.df nos retorna automaticamente os valores crticos

para o nosso teste, logo no precisamos ter a tabela por perto. Agora a nica que resta

fazer comparar o valor de t com o valor crtico . Se t< rejeitamos a hiptese nula,

H0 : = 0, ou seja, rejeitamos que nossa srie possui raz unitria.

Neste nosso caso especco, como t > , no rejeitamos a hiptese de que a srie

possui raz unitria. Logo, devemos prosseguir com os nossos testes. Agora devemos

testar para ver se nossa srie I(1), pois acabamos de concluir que ela no I(0). Para

isso diferenciamos a nossa srie, visualizamos o grco dela e, nalmente, fazemos o teste

DF em sua primeira diferena.


3
2
1
0
Yt

1
3

2000 2005 2010 2015

Time

dyt <- diff(yt)


summary(ur.df(dyt, type='none', lags=0))

##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression none
##
##
## Call:

49
## lm(formula = z.diff ~ z.lag.1 - 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.3479 -0.6935 -0.0649 0.5995 2.9076
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## z.lag.1 -0.95564 0.07071 -13.52 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9844 on 197 degrees of freedom
## Multiple R-squared: 0.4811,Adjusted R-squared: 0.4785
## F-statistic: 182.6 on 1 and 197 DF, p-value: < 2.2e-16
##
##
## Value of test-statistic is: -13.5146
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau1 -2.58 -1.95 -1.62

Desta vez rejeitamos a hiptese de que = 0, i.e. de raz unitria, e, consequen-

temente, podemos concluir que segundo o teste de Dickey-Fuller a srie yt I(1). Ou

seja,

Se t< = Rejeita-se H0 : = 0

Desta vez podemos armar com certeza absoluta que o processo yt I(1), pois fomos
ns que criamos ele. Como pode ser visto abaixo no cdigo que utilizamos, a srie yt

um passeio aleatrio.

50
yt = ts(cumsum(rnorm(200)), end=c(2014,12), freq=12)

Este caso do teste DF , obviamente, o mais simples de todos. importante notar

que diferentes verses deste teste signica o uso de diferentes distribuies de . Estes

diferentes valores tambm esto reportados em Enders (2009) e se referem a testes como

Yt = Yt1 + t ,

Yt = + Yt1 + t ,

Yt = + t + Yt1 + t ,

ou seja, testes DF que incorporam uma constante e tambm termos de tendncia. Sob

a hiptese nula a estatstica F tambm se modicam e seus valores crticos tambm

podem ser encontrados em Enders (2009).

A no ser que haja forte razes tericas, devemos sempre comear testando a presena

de raz unitria a partir de um modelo com constante e tendncia.

8.2 O Poder do teste de Dickey-Fuller de raz unitria

Erro Tipo II: A hiptese nula no rejeitada quando a a alternativa verdadeira.

Quando o valor verdadeiro do nosso parmetro varia muito em relao a nossa hiptese

nula (por exemplo, no caso de um processo AR(1), = 0.01 e nossa H0 = 1) a

probabilidade de cometermos um erro do tipo II bem pequena. Do contrrio, se es-

tes forem prximos um do outro, a probabilidade de cometer um erro do tipo II ser

signicativamente grande (por exemplo, = 0.98 e H0 de = 1).


O Poder do Teste: O poder do teste 1 menos a probabilidade de se cometer um erro

do tipo II, isto , a probabilidade de se rejeitar a hiptese nula quando ela efetivamente

16
falsa .

O poder dos testes DF e ADF , em geral, pequeno devido a alta persistncia e/ou

tendncia presente nas variveis macroeconmicas. A consequncia disto que muitas

vezes tendemos a aceitar a existncia de uma raz unitria quando na verdade deveramos

16 O tamanho do teste a percentagem de vezes que rejeitamos uma hiptese nula que na verdade

deveramos aceitar.

51
rejeita-l. Este problema, ao se incluir um nmero maior de regressores que no esto

17
presentes no processo da srie, somente aumenta .

8.3 O teste de Dickey-Fuller Aumentado

O teste DF assume que os erros so no correlacionados, ou seja, que a covarincia entre

t e tk para todo k > 0 seja nula. Em se tratando de dados cross-section a existncia de


autocorrelao serial implica em estimadores inecientes, porm no viesados. J no caso

de processos autoregressivos, comumente presentes em sries de tempo, esta correlao

ter como consequencia estimados inecientes e viesados. Logo, neste caso, a inferncia

s pode ser feita aps garantirmos que os resduos no apresentam autocorrelao. As-

sim, aps rodarmos o teste DF faz-se necessrio vericar se os resduos da regresso so

autocorrelacionados, por exemplo atravs dos correlogramas.

Se esta hiptese no valer podemos aumentar o teste DF de forma a incluir um nmero

maior de defasagens das diferenas. Isto , podemos utilizar uma regresso do tipo

m
X
Yt = + t + Yt1 + i Yti + t .
i=1

O problema agora ser o de determinar o nmero de defasagens utilizado no teste.

Dado que o poder do teste baixo, queremos utilizar o menor nmero possvel de defasa-

gens que garanta a no autocorrelao dos resduos. Uma maneira de prosseguir seria o de

comear com um nmero exagerado de defasagens e reduzir de acordo com um teste de

correlao. Alternativamente, pode-se comear sem defasagens e adicionar at chegarmos

a um nmero que resulta em rejeio da hiptese de autocorrelao. Existe porm um

risco com este ltimo mtodo dado que defasagens posteriores possam ser signicativas,

18
logo estariam sendo omitidas do modelo . Outros mtodos incluem: reduzir o nmero de

defasagens atravs de testes t, determinao por critrios de informao (AIC, BIC, por
exemplo).

17 Ou seja, incluir regressores desnecessrios somente agrava o problema.

18 Este risco pode ser ainda maior em dados com sazonalidade.

52
8.4 O teste de Phillips-Perron

Como visto anteriormente, o teste DF assume que os resduos so no correlacionados,

sendo que uma maneira de garantir isso a de incluir defasagens das diferenas da varivel

dependente na regresso de teste, isto , aplicar o teste ADF.


O teste de Phillips-Perron, PP, lida com o problema de correlao dos resduos de uma
19
maneira diferente, sem a adio de defasagens . O teste baseia-se na mesma equao do

teste DF com constante e tendncia, porm utiliza o estimador Newey-West para estimar

a matriz de varincia robusta


20
. O teste PP, utilizando a funo PP.test usa a hiptese
nula de =1 porm tem como alternativa < 1.
De forma a ilustrar o uso deste teste podemos simular duas sries, a primeira sendo

um passeio aleatio e outra sendo um rudo branco, como a seguir.

set.seed(12)
t <- 200
y1 <- ts(cumsum(rnorm(t)))
y2 <- rnorm(t)

O grco das sries dado abaixo, assim como o resultado dos testes.

ts.plot(y1, y2,
ylab='', xlab='Tempo',
main='',
col=c('blue', 'red'),
lwd=2)
grid(col='darkgrey', lwd=2)

legend('bottom',c('Passeio aleatrio','Rudo branco'),


lwd=2, col=c('blue','red'), bty='n')

19 A abordagem do teste PP no paramtrica.

20 Isto se for utilizada a funo PP.test do R .

53
6
4
2
0
4

Passeio aleatrio
Rudo branco
8

0 50 100 150 200

Tempo

PP.test(y1)

Phillips-Perron Unit Root Test

data: y1 Dickey-Fuller = -2.6661, Truncation lag parameter = 4, p-value = 0.2971

PP.test(y2)

Phillips-Perron Unit Root Test

data: y2 Dickey-Fuller = -15.0281, Truncation lag parameter = 4, p-value = 0.01

Como podemos observar, no primeiro caso no rejeitamos a hiptese nula, isto , a

srie apresenta raz unitria. Enquanto que no segundo caso rejeitamos a hiptese nula,

conrmando assim que o rudo branco no possui raz unitria.

8.5 O teste ADF sequencial

Como acabamos de ver, devemos partir da especicao mais geral quando testamos a

presena de raz unitria, ou seja

m
X
Yt = + t + Yt + i Yti + t .
i=1

Alm disso, sabemos que a incluso de regressores desnecessrios ir diminuir o poder

do teste e, consequentemente, iremos tender a aceitar a hiptese nula H0 : = 0. Logo,

54
se mesmo utilizando esta especicao rejeitarmos a hiptese nula podemos concluir que

a srie Yt no possui raz unitria.

Porm, se o contrrio acontecer, isto , se no rejeitarmos a hiptese nula, devemos

suspeitar do poder do teste. Portanto, o primeiro passo o de testar a signicncia da

21
tendncia, ou seja, testar se =0 dado que =0 .

Se no rejeitarmos esta hiptese ( = 0| = 0) podemos prosseguir e testar a hiptese


de que = 0 sob normalidade, ou seja, utilizando a estatstica t. No rejeitando esta

hiptese ( = 0| = 0) estamos concluindo que devemos incluir a tendncia na regresso

de teste e aps testar se = 0 poderemos concluir se a srie apresenta ou no raz unitria.

Considere agora o caso em que a tendncia seja no signicante, isto , = 0| = 0 no


rejeitado. Logo, devemos retirar a tendncia e reestimar o teste. Feito isto, repetimos

o processo acima; testamos a hiptese de que =0 (agora usando a estatstica de teste

2 )22 , se rejeitarmos podemos concluir que a srie possui raz unitria, caso contrrio,

voltamos a suspeitar do poder do teste.

No rejeitando voltamos a testar a signicncia do drift. Logo, testamos se = 0


dado que = 023 . Se rejeitarmos = 0| = 0 podemos prosseguir e testar =0 sob

normalidade. Caso contrrio, reestimamos a regresso de teste sem o termo de drift e,

nalmente, testar se =0 utilizando a estatstica de teste 1 .

Aceitando esta hiptese podemos concluir que a srie Yt , no mnimo, I(1). Porm,

para determinar a ordem de integrao da srie ser preciso repetir desde o incio o

processo descrito acima, s que desta vez utilizando a primeira diferena da srie, Yt .

Utilizando esta estratgia seremos capazes de determinar se uma srie :

1. Estacionria com mdia zero

21 Seguindo Pfa (2008), devemos utilizar para este teste o valor crtico de 3 .
22 Ainda seguindo Pfa (2008).

23 Para isto utilizamos a estatstica de teste 1 .

55
2. Estacionria com mdia diferente de zero

3. Possui raz unitria sem drift

4. Possui raz unitria com drift

Figura 6: Fluxograma para teste de raz unitria.

56
24
A Figura 6, retirada de Pfa (2008) , mostra o uxograma de decises, testes e

25
concluses que podemos fazer quando utilizamos esta estratgia . Vejamos a seguir um

exemplo dessa estratgia de determinao de ordem de integrao.

Exemplo: Determinando a ordem de integrao - o teste ADF sequencial

Para este exemplo iremos utilizar o arquivo table17-2.txt, os dados so anuais e

referentes a gastos com consumo e renda disponvel. No cdigo a seguir importamos os

dados e indicamos para o R que trata-se de dados anuais com incio em 1970. Como o

nosso interesse a renda disponvel (PPDI) iremos extrair somente esta varivel do arquivo.

y <- read.table('table17-2.txt', header=T)$PPDI

y <- ts(y, start = 1970, freq=1)

Feita a importao podemos, como sempre, comear pela visualizao dos dados.

plot(y, col='blue', main='Renda disponvel',


bty='l', xlab='Ano', ylab='$')

Renda disponvel
22000
18000
$

14000

1970 1975 1980 1985 1990 1995 2000

Ano

24 Uma verso parecida pode ser encontrada em Enders (2009).


25 Note que todas as estatsticas de teste envolvidas ( , , , e 3 ) so dadas, com a mesma cono-
1 2 3 1

tao, pelo pacote ur.df.

57
Como podemos ver, a srie tem uma clara tendncia positiva. Logo, devemos testar

pela presena de um processo de raz unitria. O primeiro passo ser ento estimar o

26
modelo mais completo, isto , com constante e tendncia, e trs diferenas defasadas.

library(urca)

adf.y <- ur.df(y, type='trend', lags=3)

Estimada a regresso podemos analisar os resduos que, como vimos anteriormente,

devem ser no correlacionados para que o teste seja vlido.

acf(adf.y@res, ci.type='ma', main='ACF Resduos - ADF com 3 defasagens',


xlab='Defasagem')

ACF Resduos ADF com 3 defasagens


1.0
0.5
ACF

0.0
0.5

0 2 4 6 8 10 12 14

Defasagem

Como nenhuma autocorrelao estatsticamente signicativa talvez seja possvel au-

mentar o poder do teste ao retirarmos uma defasagem do teste. Rodamos agora o teste

ADF com somente duas defasagens e analisamos novamente o correlograma dos resduos.

26 Aqui utilizaremos a regra de bolso 3 f requencia para determinar o nmero inicial de defasagens a

serem includas na regresso.

58
adf.y <- ur.df(y, type='trend', lags=2)

acf(adf.y@res, ci.type='ma', main='ACF Resduos - ADF com 2 defasagens',


xlab='Defasagem')

ACF Resduos ADF com 2 defasagens


1.0
0.5
ACF

0.0
0.5

0 2 4 6 8 10 12 14

Defasagem

Mais uma vez nenhuma defasagem estatisticamente signicativa, podemos ento

repetir o procedimento anterior.

adf.y <- ur.df(y, type='trend', lags=0)

acf(adf.y@res, ci.type='ma', main='ACF Resduos - ADF sem defasagem',


xlab='Defasagem')

59
ACF Resduos ADF sem defasagem

1.0
0.5
ACF

0.0
0.5

0 2 4 6 8 10 12 14

Defasagem

Como pode ser visto no grco anterior, continuando com o procedimento iremos con-

cluir que no necessrio incluir nenhuma defasagem no teste. Agora podemos nalmente

comear a testar nossas hipteses. A primeira que =0 e para isso devemos comparar

o valor t_ com estatstica de teste 3 .

summary(adf.y)

##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression trend
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt)
##
## Residuals:
## Min 1Q Median 3Q Max
## -417.27 -212.19 10.75 134.86 547.15
##

60
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4792.8567 2016.7164 2.377 0.0251 *
## z.lag.1 -0.3549 0.1597 -2.222 0.0352 *
## tt 121.6977 53.8866 2.258 0.0325 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 271.1 on 26 degrees of freedom
## Multiple R-squared: 0.165,Adjusted R-squared: 0.1008
## F-statistic: 2.57 on 2 and 26 DF, p-value: 0.09586
##
##
## Value of test-statistic is: -2.2223 18.5193 2.5696
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -4.15 -3.50 -3.18
## phi2 7.02 5.13 4.31
## phi3 9.31 6.73 5.61

Dado que t > 3 , no podemos rejeitar a hiptese de que = 0, portanto devemos

procurar aumentar o poder do teste. Para isso podemos testar se a tendncia estatisti-

camente signicativa com a hiptese = 0| = 0. A estatstica para esta hiptese dada

por 3 que, utilizando um nvel de signicncia de 5%, igual a 6.73. Como estamos que-

rendo testar se todas os coecientes so no signicativos, isto = 0| = 0, a estatstica


de teste estimada dada por F, que igual a 2.57. Como F < 3 , no podemos rejeitar

que = 0| = 0, logo podemos concluir que o termo da tendncia pode ser retirado para

que o poder do teste que maior.

Agora que a tendncia determinstica foi retirada devemos refazer estes procedimentos

utilizando uma constante, ou o drift, na equao de teste.

61
adfd.y <- ur.df(y, type='drift', lags=0)

summary(adfd.y)

##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression drift
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -574.47 -140.23 -7.91 132.03 771.88
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.955e+02 3.420e+02 0.864 0.395
## z.lag.1 3.516e-03 1.914e-02 0.184 0.856
##
## Residual standard error: 291 on 27 degrees of freedom
## Multiple R-squared: 0.001248,Adjusted R-squared: -0.03574
## F-statistic: 0.03373 on 1 and 27 DF, p-value: 0.8557
##
##
## Value of test-statistic is: 0.1836 21.9026
##
## Critical values for test statistics:
## 1pct 5pct 10pct

62
## tau2 -3.58 -2.93 -2.60
## phi1 7.06 4.86 3.94

Aqui, novamente, no podemos rejeitar a hiptese de raz unitria pois t = 0.18 >
2 = 2.93. Para vericar se podemos aumentar o poder do teste testamos se = 0| =
27
0, comparando a estatstica de teste com seu valor crtico, = 21.90 > 1 = 4.86.
Portanto, podemos rejeitar que = 0| = 0, e conclumos que no devemos retirar o

termo de drift da regresso de teste.

Agora, podemos testar se =0 sob normalidade, isto , comparando t com o t de

28
Student. Obviamente, como t = 0.18 > 0, podemos concluir rapidamente que trata-se

de uma processo com raz unitria.

Para conrmar que esta srie , de fato, I(1) devemos recomear estes testes utilizando
agora a primeira diferena como varivel independente.

Completar com:

1. Teste de raz unitria com quebra estrutural

2. Raz unitria sazonal (HEGY)

27 Note que agora, como se trata de um termo de intercepto, no utilizamos a estatstica F.


28 Lembre-se que = 1, logo se estatstica de teste t for maior que zero signica que > 1 e,

consequentemente, o processo ter uma raz unitria.

63
9 Estimando modelos ARIMA
Agora que j entendemos um pouco mais sobre os prrequisitos do processo de estimao,

isto , que devemos analisar gracamente os dados, limp-los e ltra-los, podemos

prosseguir para a estimao de um modelo ARIMA.

J deve estar bem claro agora que o principal objetivo da anlise economtrica de

sries de tempo de caracterizar um fenmeno da maneira mais parcimoniosa possvel.

Devemos utilizar um nmero suciente de termos AR e MA de forma a garantir que os


resduos sejam completamente aleatrios, ou seja, que sejam caracterizados por um rudo

branco.

Para este objetivo, iremos utilizar a metodologia apresentada em Dickey and Fuller

(1979), que citamos, de maneira breve, anteriormente.

9.1 A metodologia Box-Jenkins

Relembrando, temos que a metodologia Box-Jenkins pode ser brevemente caracterizada

pelos seguintes passos:

1. Identicao

(a) Tratar da sazonalidade

(b) Determinar a ordem de integrao, d


(c) Achar valores apropriados para peq

2. Estimao

(a) Modelos puramente autoregressivos podem ser estimados de maneira consis-

tente
29
por OLS, OLS no linear e por mxima verossimilhana.

(b) Modelos puramente caracterizados por mdias mveis podem ser estimados de

maneira consistente por OLS no linear e por mxima verossimilhana.

29 Consistncia uma propriedade assinttica, porm no garante estimadores no viesados em pequenas

amostras.

64
(c) Modelos ARMA podem ser estimados de maneira consistente por OLS no

linear e por mxima verossimilhana.

3. Diagnstico

(a) Especicao do modelo

(b) Autocorrelaes

(c) ARCH

(d) Normalidade

Relembrado a base da estrutura dessa metodologia que tal um exemplo prtico ?

9.2 A metodologia Box-Jenkins - Um exemplo prtico

Para este exemplo iremos utilizar a srie mensal da variao mensal do IPCA retirada

do SIDRA. A srie tem seu incio em 1980 porm iremos utilizar a srie a partir de

2007. Aqui, de modo a simplicar nossa anlise, trataremos da sazonalidade de maneira

determinstica. Isto , seguiremos os procedimentos feitos anteriormente na apostila. A

seguir temos o grco da srie original e sua verso ltrada, isto , a variao mensal do

IPCA retirado os efeitos de sazonalidade.

IPCA
0.8

IPCA dessazonalizado
0.6
0.4
0.2
0.0

2008 2010 2012 2014

Ano

Como pode ser visto, a retirada da sazonalidade determinstica teve basicamente zero

efeito sobre nossa srie. Logo, as dummies de meses provavelmente so estatisticamente

iguais a zero. Agora, vamos tentar identicar a ordem de integrao da srie.

65
9.2.1 Ordem de integrao
Para isso, comeamos pelo teste ADF com constante e 36 defasagens
30
, vericando o ACF
dos resduos da regresso.

adf1 <- ur.df(ipcad, type='drift', lags=6)

acf(adf1@res, ci.type='ma',
main='Resduos de teste ADF - 6 defasagens',
xlab='Defasagem')

Resduos de teste ADF 6 defasagens


1.0
0.6
ACF

0.2
0.2

0 5 10 15

Defasagem

Comeando pela regresso de teste com 36 defasagens, podemos concluir, com o uso

dos correlogramas, que podemos aumentar o poder do teste usando somente 6 termos de

defasagem. A seguir, temos o resultado do teste ADF incluindo 6 defasagens.

summary(adf1)

##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################

30 Relembrando a regra de bolso de 3*frequencia.

66
##
## Test regression drift
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.37502 -0.10580 -0.01029 0.12128 0.34183
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.47659 0.08553 5.572 3.37e-07 ***
## z.lag.1 -1.02606 0.18080 -5.675 2.20e-07 ***
## z.diff.lag1 0.57071 0.15813 3.609 0.000537 ***
## z.diff.lag2 0.42860 0.14605 2.935 0.004370 **
## z.diff.lag3 0.47473 0.13354 3.555 0.000642 ***
## z.diff.lag4 0.32352 0.13263 2.439 0.016957 *
## z.diff.lag5 0.24056 0.12129 1.983 0.050814 .
## z.diff.lag6 0.23950 0.11403 2.100 0.038884 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1725 on 79 degrees of freedom
## Multiple R-squared: 0.348,Adjusted R-squared: 0.2903
## F-statistic: 6.024 on 7 and 79 DF, p-value: 1.212e-05
##
##
## Value of test-statistic is: -5.6751 16.1136
##
## Critical values for test statistics:

67
## 1pct 5pct 10pct
## tau2 -3.51 -2.89 -2.58
## phi1 6.70 4.71 3.86

Logo, primeiro testamos a H0 : = 0. Como 4.85 < 2.89, podemos rejeitar

a existncia de uma raz unitria. Ou seja, podemos concluir que a variao mensal do

IPCA I(0) segundo o teste ADF.31

9.2.2 Escolhendo p e q
Agora que identicamos que a variao mensal do IPCA estacionria, queremos carac-

terizar esta parte estacionria do processo. Faremos isso utilizando o ACF e PACF de

modo a identicar a ordem de termos ARMA que devemos utilizar. Abaixo temos os

dois correlogramas.

par(mfrow=c(2,1))
acf(ipcad, ci.type='ma', main='IPCA (variao mensal)')
pacf(ipcad, main='')

31 Talvez esta srie tenha sido um exemplo muito fcil para aprendermos o intuito do teste ADF se-

quencial. Poderamos talvez tentar a srie trimestral do PIB?

68
IPCA (variao mensal)

0.8
ACF

0.2
0.4

0.0 0.5 1.0 1.5

Lag
0.6
Partial ACF

0.2
0.2

0.5 1.0 1.5

Lag

Olhando para os correlogramas temos, o que pode parecer, um decaimento exponencial

em ambos grcos (bem de leve) sendo que a primeira defasagem do ACF bastante

signicante. Apesar de ser bem difcil identicar a partir dos correlogramas um modelo

ARMA a ser estimado, bem possvel se tratar de algo como um ARMA(1,0). Podemos

comear com algo mais geral, como por exemplo um ARMA(2,2) e retirar termos no

signicantes.

9.2.3 Estimando um modelo ARMA


Prosseguiremos agora com a estimao de um modelo ARMA(2,2).

coeftest(arima(ipcad, order=c(2,0,2)))

##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)

69
## ar1 0.029864 0.987519 0.0302 0.9759
## ar2 0.205342 0.448281 0.4581 0.6469
## ma1 0.632196 0.983157 0.6430 0.5202
## ma2 0.061693 0.260710 0.2366 0.8129
## intercept 0.454590 0.039221 11.5905 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Como podemos ver, nenhum coeciente estatisticamente diferente de zero, exceto

a constante. Podemos comear reestimando o modelo retirando a defasagem de maior

ordem e maior p -valor, que neste caso o coeciente ma2.

coeftest(arima(ipcad, order=c(2,0,1)))

##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 0.287620 1.078856 0.2666 0.7898
## ar2 0.093555 0.670168 0.1396 0.8890
## ma1 0.374399 1.060180 0.3531 0.7240
## intercept 0.454544 0.039339 11.5546 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Continuando com a mesma estratgia, retiramos o coeciente ar2 e reestimamos o

modelo.

coeftest(arima(ipcad, order=c(1,0,1)))

##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)

70
## ar1 0.44348 0.15543 2.8532 0.004328 **
## ma1 0.21866 0.17357 1.2598 0.207745
## intercept 0.45451 0.03881 11.7111 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Finalmente, retiramos o ltimo termo de mdia mvel e estimamos o modelo nal.

coeftest(arima(ipcad, order=c(1,0,0)))

##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 0.583238 0.082428 7.0757 1.487e-12 ***
## intercept 0.454794 0.042716 10.6470 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Assim, nosso modelo que descreve o comportamento da variao mensal do IPCA

dado por

IP CAt = 0.45 + 0.58IP CAt1 + t

9.2.4 Diagnsticos dos resduos


Agora que temos um modelo nal para a inao mensal medida pelo IPCA devemos ver

se realmente captamos toda a estrutura do processo, isto , devemos checar se os nossos

32
resduos esto limpos. Devemos analisar as seguintes questes :

1. Os resduos da regresso so no autocorrelacionados?

2. Os resduos so normalmente distribudos?

32 Note que estas questes que devemos analisar esto diretamente ligadas s hipteses que zemos

para garantir a validade do nosso modelo. Estamos basicamente tentando garantir que podemos fazer

inferncia a partir da nossa estimativa e que o modelo seja vlido para observaes fora da amostra.

71
3. Devemos incluir/exluir regressores ?

Os resduos da regresso so no autocorrelacionados?


Para responder a primeira questo podemos utilizar o teste Ljung-Box. Este teste tem

como hiptese nula a independncia de uma dada srie de tempo, isto , assume que as

observaes que temos (neste caso os resduos de uma regresso) so conjuntamente no

correlacionados ao longo do tempo. A no independncia dos resduos seria um indicador

de que no capturamos alguma estrutura fora do modelo e, por isso, estaramos errando

de maneira sistematica. Este teste pode ser feito utilizando a funo Box.test, com a

opo de type='Ljung-Box'. A seguir testamos a hiptese nula de que os resduos so

independentes at a sexta defasagem.

Box.test(resid(reg.ipca), lag=6, type='Ljung-Box', fitdf=1)

Box-Ljung test

data: resid(reg.ipca) X-squared = 6.5934, df = 5, p-value = 0.2527

Note que usamos fitdf=133 , isto feito para corregir o grau de liberdade do teste dado
que a srie testada resultado de uma regresso com 1 termo AR. Como podemos ver a
estatstica de teste igual a 6.6 com p -valor de 0.25, logo no rejeitamos a hiptese nula
e podemos concluir que os resduos so conjuntamente no correlacionados (pelo menos

at a sexta defasagem). A seguir os correlogramas dos resduos so expostos.

par(mfrow=c(1,2))
acf(resid(reg.ipca), main='Resduos ARMA(1,0)', ci.type='ma')
pacf(resid(reg.ipca), main='Resduos ARMA(1,0)')

33 Onde fitdf  t degrees of freedom 

72
Resduos ARMA(1,0) Resduos ARMA(1,0)

1.0

0.2
0.1
0.6

Partial ACF
ACF

0.1
0.2
0.2

0.3
0.0 0.5 1.0 1.5 0.5 1.0 1.5

Lag Lag

Agora podemos ver as potenciais fraquezas do uso do teste Ljung-Box. Primeiro,

temos que o Ljung-Box testa a signicncia conjunta das defasagens de uma srie, logo

no verica a signicncia individual. Em segundo lugar, temos que o teste obviamente

s ir testar at a ordem que por ns for especicada. Como pode ser visto pelo grco

anterior, devemos suspeitar de algum padro aps a sexta defasagem. De modo a vericar

essa nossa suspeita podemos realizar outro teste Ljung-Box s que desta vez testando at

a stima defasagem.

Box.test(resid(reg.ipca), lag=7, type='Ljung-Box', fitdf=1)

Box-Ljung test

data: resid(reg.ipca) X-squared = 14.624, df = 6, p-value = 0.02339

Como podemos ver, nossa suspeita no foi em vo. Quais poderiam ser os possveis

problemas aqui ? Os mais interessados devem buscar a resposta, que na verdade no

to difcil assim. Abaixo vai uma dica:

monthplot(ipca, col='darkblue', col.base='red',


main='IPCA por ms e IPCA mdio por ms',
ylab='IPCA (%)', lty.base=2)

legend('bottomleft', legend=c('IPCA', 'Mdia'), lty=c(1,2),


col=c('darkblue', 'red'), bty='n')

73
IPCA por ms e IPCA mdio por ms

0.8
0.6
IPCA (%)

0.4
0.2

IPCA
Mdia
0.0

J F M A M J J A S O N D

Extra: Criando uma funo


Dado essa fraqueza no teste, talvez deveramos fazer o teste Ljung-Box desde a primeira

defasagem at a n -sima defasagem, desta forma seramos capazes de saber exatamente

a partir de qual momento que comeamos a rejeitar ou aceitar a hiptese. So neste

momentos que o R se mostra bastante eciente. O problema que queremos resolver :

como rodar o teste Ljung-Box utilizando a opo lag indo de 1 at n. Que tal criarmos

uma funo?

ljung.n <- function(dados, lag.final,fitdf=1){

# Pr-alocando um vetor que ir receber os p-valores


# dos testes Ljung-Box

pvalores <- matrix(NA, nrow=lag.final, ncol=1)

# Para cada valor entre 1 e o nmero mximo de


# defasagens a ser testada

for (i in 1:lag.final){

74
# Rodar teste Ljung-Box e guardar p-valor no vetor
# 'pvalores'

pvalores[i] <- Box.test(dados, fitdf=fitdf, lag=i)$p.value

# Retornar o vetor com os resultados

return(pvalores)
}

Os resduos so normalmente distribudos?


O teste que iremos utilizar para responder esta pergunta o teste de normalidade de

Shapiro-Wilk, onde a hiptese nula de que a sries analisada normalmente distribuda.


Abaixo o resultado deste teste apresentado.

shapiro.test(resid(reg.ipca))

##
## Shapiro-Wilk normality test
##
## data: resid(reg.ipca)
## W = 0.9911, p-value = 0.7874

Como o p -valor de 0.79, no podemos rejeitar que os resduos desta regresso so

normalmente distribudos.

Devemos incluir/exluir regressores ?


Finalmente, para concluir esta seo de diagnsticos do nosso modelo proposto para o

IPCA mensal, devemos comparar o modelo nal com modelos alternativos. Seria pos-

svel explicar mais da variao do IPCA utilizando mais/menos regressores? Para esta

tarefa podemos utilizar critrios de informao como o de Akaike ou o Bayesiano. Estes

75
critrios so construdos com base nos resduos das regresses e representam, colocando

de uma maneira bem simples, mdias ponderadas. Logo, quanto menor for o critrio de

informao, melhor ser o poder de explicao do modelo.

De modo a manter esta anlise curta, iremos somente utilizar o critrio de informao

de Akaike, ou AIC. Como o nosso modelo nal um ARMA(1,0), que tal comparar este
com um ARMA(0,1), ARMA(1,1) e ARMA(2,2) ? Abaixo, estimamos estes modelos e

calculamos os seus respectivos AIC s.

AIC(reg.ipca) # ARMA(1,0)

## [1] -54.34407

AIC(update(reg.ipca, order=c(0,0,1))) # ARMA(0,1)

## [1] -49.84835

AIC(update(reg.ipca, order=c(1,0,1))) # ARMA(1,1)

## [1] -53.97261

AIC(update(reg.ipca, order=c(2,0,2))) # ARMA(2,2)

## [1] -50.0395

Note que aqui utilizamos a funo update que nos permite atualizar um objeto que

34
era resultado de uma funo, algo que facilita bastante nossas operaes . Alm disso,

podemos concluir que nosso modelo ARMA(1,0) de fato o melhor modelo, pelo menos

de acordo com o AIC.

34 Talvez aqui tambm seria til montar uma funo?

76
10 Previso com modelos ARIMA
Agora que temos um modelo, o nosso interesse passa a ser o uso dele para fazer previses

sobre o comportamento futuro do IPCA. Antes de prosseguir com a previso, vejamos

alguns aspectos mais tcnicos sobre o processo de previso.

10.1 Usando modelos ARIMA para construir previses

Dado o conjunto de informao IT = {Y , . . . , YT }, queremos escolher o preditor timo,

YT +h|IT , que minimize o erro quadrtico mdio esperado, ou seja, o problema que queremos
resolver dado por
 2 
min E YT +h YT +h|T | IT .

10.1.1 O caso do processo autoregressivo


Tome como exemplo um processo AR simples

Yt = Yt1 + t

Assumindo este processo, temos que YT +1 = YT +T +1 e, consequentemente, o preditor


timo para um passo a frente ser

YT +1|T = E {YT +1 |YT , . . . , YT }

= E {(YT + T +1 ) |YT , . . . , YT }

= YT + E {T +1 |YT , . . . , YT }

YT +1|T = YT .

De maneira parecida podemos derivar o preditor timo para dois passos a frente.

YT +2|T = E {YT +2 |YT , . . . , YT }

= E {(YT +1 + T +2 ) |YT , . . . , YT }

77
= E {YT + T +1 |YT , . . . , YT }

YT +2|T = 2 YT .

Assim, generalizando temos que o preditor timo de um processo AR(1) para h passos
frente dado por

YT +h|T = h YT .

Caso o processo AR(1) no seja de mdia zero, ou seja, Yt = + Yt1 + t , teremos

que o preditor timo ser

YT +h|T = + h (YT )

10.1.2 O caso do processo de mdias mveis


Assuma agora um processo de mdias mveis simples, representado por

Yt = t + t1 .

Logo, temos que YT +1 = T +1 + T e o preditor um passo frente ser dado por

YT +1|T = E {YT +1 |YT , . . . , YT }

= E {T +1 + T |YT , . . . , YT }

= E {T |YT , . . . , YT }

YT +1|T = T .

Para o caso de dois passos frente teremos

YT +2|T = E {YT +2 |YT , . . . , YT }

= E {T +2 + T +1 |YT , . . . , YT }

= E {T +1 |YT , . . . , YT }

YT +2|T = 0.

Logo, diferentemente do caso autoregressivo, nossa melhor previso para h passos

frente, quando h for maior que a ordem do processo de mdia mvel, ser igual a zero.

78
10.2 Prevendo com o R

Dada esta pequena introduo terica, podemos prosseguir e comear a fazer previses.

Para isso, iremos utilizar o modelo estimado anteriormente para o IPCA. Utilizando a

funo predict vamos fazer uma previso de 4 meses para o IPCA.

prev <- predict(reg.ipca, n.ahead=4)

Como podemos ver, a funo predict nos d como resultado as estimativas e seus

respectivos desvios-padro. Podemos utilizar estas sries para fazer um grco mostrando

nossas previses. A seguir duas maneiras de fazer os grcos so expostas, uma mais

simples e outra um pouco mais compliacada.

par(mfrow=c(1,2))

ts.plot(window(ipca, start=2013),
prev$pred,
prev$pred+1.96*prev$se,
prev$pred-1.96*prev$se,
col=c(1,2,2,2), lty=c(1,1,2,2))

plot(window(ipca, start=2013),
xlim=c(2013, 2015.2),
col='darkblue', lwd=2, bty='l', ylab='IPCA',
main='Previso IPCA - Modelo AR(1)')

lines(ts(c(ipca[length(ipca)],prev$pred), start=c(2014,10), freq=12),


col='red', lwd=2)

lines(ts(c(ipca[length(ipca)],prev$pred+1.96*prev$se),
start=c(2014,10), freq=12),
col='darkred', lwd=2, lty=2)

lines(ts(c(ipca[length(ipca)],prev$pred-1.96*prev$se),

79
start=c(2014,10), freq=12),
col='darkred', lwd=2, lty=2)

Previso IPCA Modelo AR(1)


0.8

0.8
0.6

0.6
IPCA
0.4

0.4
0.2

0.2
0.0

0.0
2013.0 2014.0 2015.0 2013.0 2014.0 2015.0

Time Time

Agora, como exerccio, iremos remover as 4 ltimas observaes da nossa amostra

do IPCA, re-estimar o modelo e, em seguida, fazer a previso para 4 meses frente e

comparar com os valores observados. Como podem notar, este mtodo ir fazer previses

para valores dentro da nossa amostra, enquanto que no primeiro caso zemos previses

para valores fora da amostra.

ipca.b <- window(ipca, end=c(2014, 06))

reg.ipca.b <- arima(ipca.b, order=c(1,0,0))

prev2 <- predict(reg.ipca.b, n.ahead=4)

A seguir mostramos gracamente os resultados desse exerccio.

par(mfrow=c(1,2))

ts.plot(window(ipca, start=2013),
prev2$pred,
prev2$pred+1.96*prev2$se,
prev2$pred-1.96*prev2$se,

80
col=c(1,2,2,2), lty=c(1,1,2,2))

plot(window(ipca, start=2013),
col='darkblue', lwd=2, bty='l', ylab='IPCA',
main='Previso IPCA - Modelo AR(1)')

lines(ts(prev2$pred, start=c(2014,07), freq=12),


col='red', lwd=2)

lines(ts(prev2$pred+1.96*prev2$se,
start=c(2014,07), freq=12),
col='darkred', lwd=2, lty=2)

lines(ts(prev2$pred-1.96*prev2$se,
start=c(2014,07), freq=12),
col='darkred', lwd=2, lty=2)

Previso IPCA Modelo AR(1)


0.8

0.8
0.6

0.6
IPCA
0.4

0.4
0.2

0.2
0.0

0.0

2013.0 2014.0 2013.0 2014.0

Time Time

10.3 Avaliando previses

Para qualquer dado modelo temos que a nossa varivel de interesse pode ser descrita como

Yt = Yt + t

81
onde Yt a estimativa de Yt e t um erro. Logo, o erro de previso dado por

t = Yt Yt .

As duas medidas mais utilizadas para avaliar a previso de um modelo, ou o quanto

estamos errando, so a raiz quadrada do erro quadrtico mdio (REQM) e o erro absoluto

mdio (EAM). A primeira medida, REQM, dada pela frmula abaixo

s
PT
2t
t=1
REQM =
T

enquanto que a segunda medida, EAM, dada por

PT
t=1 |
t |
EAM = .
T

Note primeiro que as duas medidas esto na mesma unidade que a varivel de inte-

resse, Yt , logo podemos avaliar diretamente o impacto do erro. Em segundo lugar, veja

a stil diferena que existe entre essas duas medidas em relao ao que se busca medir

efetivamente. Preferimos a primeira medida se queremos, em mdia, errar menos (ou ter

uma previso mais centrada no valor observado da varivel). Por outro lado, preferimos a

segunda medida quando buscamos um modelo que tenha, em mdia, valores mais baixos

35
de erro (ou seja, quando erramos no queremos estar muito longe do valor observado) .

Obviamente vale ressaltar que a acurrcia do modelo (segundo estas medidas) pode mudar

dependendo do horizonte de previso (denominado de T neste caso).

Vimos anteriormente que segundo o AIC os dois melhores modelos para o compor-

tamento do IPCA so o AR(1) e o ARMA(1,1). Podemos agora comparar estes dois

modelos utilizando estas duas medidas de erro de previso. Para isso precisamos cons-

truir uma srie de erros de previso (de um passo frente). O processo que iremos seguir

dado a seguir.

1. Estimar modelos utilizando dados do IPCA referente ao perodo de janeiro de 2007

at dezembro de 2012;

2. Fazer previso um passo frente e salvar previso;

35 No caso do EAM todos os erros recebem o mesmo peso, enquanto que no caso do REQM erros

menores receberem pesos menores.

82
3. Calcular e salvar erro de previso;

4. Adicionar uma observao e reestimar modelos;

5. Repetir passos 2-4 at chegar ao nal da amostra.

Seguindo a lgica descrita acima partimos para a parte prtica. Primeiro construimos

a srie de erros de previso.

# Modelo 1

erro1 <- matrix(NA, nrow=length(window(ipcad, start=2013)), ncol=1)

for (i in 1:length(erro1)){

erro1[i] <- ipcad[(length(window(ipcad, end=c(2012, 12)))+i)] -

predict(
arima(ipcad[1:(length(window(ipcad, end=c(2012, 12)))+i-1)], order=c(1,0,0)),
n.ahead=1)$pred

erro1 <- ts(erro1, start=2013, freq=12)

# Modelo 2

erro2 <- matrix(NA, nrow=length(window(ipcad, start=2013)), ncol=1)

for (i in 1:length(erro1)){

erro2[i] <- ipcad[(length(window(ipcad, end=c(2012, 12)))+i)] -

predict(

83
arima(ipcad[1:(length(window(ipcad, end=c(2012, 12)))+i-1)], order=c(1,0,1)),
n.ahead=1)$pred

erro2 <- ts(erro2, start=2013, freq=12)

Em seguida, calculamos as duas medidas.

reqm1 <- sqrt(sum(erro1^2)/length(erro1))


reqm2 <- sqrt(sum(erro2^2)/length(erro2))

reqm1

## [1] 0.1973854

reqm2

## [1] 0.1985689

eam1 <- sum(abs(erro1))/length(erro1)


eam2 <- sum(abs(erro2))/length(erro2)

eam1

## [1] 0.1613305

eam2

## [1] 0.1591327

Assim temos que o REQM dos modelos 1 e 2 so 0.197 e 0.199, respectivamente. J

o EAM de 0.161 e 0.159, respectivamente. Logo, temos que pela primeira medida o

Modelo 1 se sai melhor, enquanto que pela segunda medida o Modelo 2 deveria ser o

84
36
escolhido .

Como se trata de medidas usadas comumente, talvez seria interessante criar uma

funo que calcula o REQM e o EAM. Abaixo segue um exemplo de como se poderia

criar essas funes.

# Funo para calcular REQM

reqm <- function(serie){

reqm <- sqrt(sum(serie^2)/length(serie))

print(reqm)

# Funo para calcular EAM

eam <- function(serie){

eam <- sum(abs(serie))/length(serie)

print(eam)
}

36 claro que estas duas medidas no so as nicas maneiras de se comparar o poder de previso de dois

modelos, porm para o intuito deste curso somente abordaremos esta duas medidas. Os mais interessados

podem procurar testes como o de Granger-Newbold, Diebold-Mariano e a estatstica U de Thiel.

85
11 Modelos multivariados
Nas sees anteriores estudamos modelos onde as variveis de interesse eram explicadas

pelos seus valores passados. Porm, talvez seja de nosso interesse incluir outras variveis

explicativas no modelo. No caso da inao medida pelo IPCA, por exemplo, talvez seria

interessante incluir a taxa de desemprego dado que acreditamos na Lei de Okun. Vejamos

agora o caso de modelos multivariados, onde usamos outras variveis alm de defasagens

da varivel endgena.

11.1 Modelos dinmicos com variveis estacionrias

Aqui surge mais uma diferena entre a econometria de cross-sections e a de sries tem-

porais, os efeitos que uma varivel tem sobre a outra dinmico e existe diferena entre

efeitos de curto e longo prazo. De forma a ilustrar assuma o processo auto-regressivo com

defasagens distribudas, ADL37 , de duas variveis a seguir

Yt = + 1 Yt1 + 0 Xt + 1 Xt1 + t .

Este modelo tambm chamado de um modelo ADL(1), dado que a maior ordem das
defasagens 1. Consequentemente, um modelo ADL(p) pode ser escrito como

Yt = + 1 Yt1 + + p Ytp + 0 Xt + 1 Xt1 + + p Xtp + t .

Obviamente, modelos ADL podem ser extendidos de forma a incluir mais regressores e

componentes determinsticos (como por exemplo variveis dummies ). Como na econome-

tria bsica, o multiplicador de impacto das variveis so dadas pelas derivadas parciais,

ou seja, o multiplicador de impacto, ou efeito instantneo, do modelo ADL(1) acima

dado por
Yt
= 0 .
Xt
Os efeitos de longo prazo, por outro lado, podem ser obtidos de maneira recursiva

como a seguir

Yt+1 = + 1 Yt + 0 Xt+1 + 1 Xt + t+1

37 Como comumente denotada, do ingls Autoregressive Distributed Lag.

86
Yt+1 Yt
= 1 + 1 = 1 0 + 1
Xt Xt

Yt+2 = + 1 Yt+1 + 0 Xt+2 + 1 Xt+1 + t+2

Yt+2 Yt+1
= 1 + 1 = 1 (0 + 1 )
Xt Xt

...

Logo, somando todos esses efeitos teremos que o efeito de longo prazo dado por


X
X
1i 0 + 1i 1 + 1 1
i=0 i=0

0 + 1
=
1 1
Uma maneira alternativa de se obter o multiplicador de longo prazo atravs da

imposio da condio de equilbrio de longo prazo, isto , que as varives se mantenham

no mesmo nvel no equilbrio. Ou seja, que E(Yt ) = E(Yt1 ) e E(Yt ) = E(Yt1 ). Desta

maneira temos que

E(Yt ) = E ( + 1 Yt1 + 0 Xt + 1 Xt1 + t ) .

E(Yt ) 1 E(Yt1 ) = + 0 E(Xt ) + 1 E(Xt1 )

(1 1 )E(Yt ) = + (0 + 1 )E(Xt )

0 + 1
E(Yt ) = + E(Xt )38
(1 1 ) 1 1
Finalmente, temos que no longo prazo

Yt 0 + 1
= .
Xt 1 1

38 Note que podemos denotar esta equao como Yt = + Xt , onde ter uma interpretao de longo

prazo.

87
11.2 Modelos de correo de erro

Podemos agora reescrever o modelo ADL(1) anterior como um modelo de correo de

erro. Para isso, devemos subtrair Yt1 e 0 Xt1 de ambos os lados, obtendo

Yt = (1 1 )Yt1 + 0 Xt + (0 + 1 )Xt1 + t

ou

Yt = 0 Xt (1 1 )[Yt1 Xt1 ] + t

onde /(1 1 ), (0 + 1 )/(1 1 ), (1 1 ) o parmetro de ajuste e

Yt1 Xt1 o erro de equilbrio.

11.3 Estimando e testando

Modelos ADL simples podem ser estimados de maneira consistente utilizando MQO e aqui

utilizaremos a estratgia de modelar do caso mais geral para um mais especco. Esta

ser a estratgia utilizada principalmente por um motivo: a omisso de variveis causa

problemas (vis) maiores que a incluso de variveis no signicantes (inecincia/perda

de graus de liberdade). Os passos a seguir so, em geral,

1. Formular e estimar um modelo ADL irrestrito.

2. Testar sucessivamente signicncia de regressores.

3. Testes diagosticos dos resduos do modelo nal.

Onde como sempre, os testes de diagnsticos devem incluir testes para autocorrelao

Box-Pierce, Ljung-Box
( e Breusch-Godfrey, por exemplo), heterocedasticidade ( White,
Breusch-Pagan / LM e Ljung-Box nos resduos ao quadrado, por exemplo) e normalidade

Jarque-Bera e Shapiro-Wilk, por exemplo).


(

11.4 Causalidade de Granger

Se valores passados de X nos ajudam a prever Y, ento diz-se que X Granger causa Y,
ou simplesmente X Y. Assuma a seguinte equao que descreve a relao entre X e

Y:
n
X n
X
Yt = i Xti + i Yti + 1t .
1 1

88
Pn
Se 1 i 6= 0, ou seja, se todos i so conjuntamente diferentes de zero, ento temos

que X Y. Porm, o contrrio tambm pode valer, isto Y X. Trocando a

causalidade temos ento a seguinte relao

n
X n
X
Xt = i Xti + i Yti + 2t .
1 1
Pn
Onde, se valer que 1 i 6= 0, poderemos concluir que Y X.

11.5 Propriedades dos estimadores de MQO: Amostra Finita

Antes de continuar com a anlise de modelos multivariados, vejamos algumas das hipteses

que devem ser satisfeitas de modo a garantir o bom funcionamento dos estimadores

MQO.

11.5.1 Estimadores no viesados


H1 Linear nos parmetros

H2 Mdia condicional zero

E(t |X) = 0, t = 1, . . . , n.

Note que para H2 valer, t deve ser no correlacionado com Xs mesmo quando s 6= t.
Isto somente valer quando todos os regressores forem estritamente exgenos. Est hip-

tese pode ser bem difcil de garantir e problemas como omisso de variveis e defasagens,

erro de medida, causalidade reversa e at mesmo o caso de um modelo AR(1) violam esta
hiptese.

H3 Ausncia de colinearidade perfeita

Se estas hipteses acima so vlidas ento temos que os estimadores MQO sero no

viesados e, consequentemente, = .
E()

11.5.2 Estimadores ecientes


H4 Homocedasticidade A varincia de t dado X deve ser o mesmo para todo t, ou

seja

V ar(t |X) = V ar(t ) = 2 , t = 1, . . . , n.

89
H5 Ausncia de autocorrelao A correlao dos erros entre dois perodos distintos
dado X zero,

Corr(t , s |X) = 0 t 6= s.

Teorema de Gauss-Markov Sob as hipteses H1-H5 os estimadores MQO so os


melhores estimadores lineares no viesados.

11.5.3 Inferncia
H6 Normalidade Os erros t so independentes de X e
i.i.d.
N (0, 2 ).
Sob as hipteses H1-H6 os estimadores de MQO so normalmente distribuidos dado

X. Alm disso, sob a hiptese nula, as estatsticas t e F seguem as distribuies t e F,


respectivamente, e a construo de intervalos de conana so vlidos.

11.6 Propriedades assintticas dos estimadores de MQO

H1 Dependncia linear e fraca

Mdia condicional zero

E(t |xt ) = 0, t = 1, . . . , n.

Note que aqui a exogeneidade exigida somente contempornea, ou seja, uma hiptese

consideravelmente mais fraca.

Ausncia de colinearidade perfeita


Sob as hipteses H1-H3 os estimadores de MQO so consistentes, ou seja,
.

H4 Homocedasticidade Os erros so contemporneamente homocedasticos.

V ar(t |xt ) = 2 .

H5 Ausncia de autocorrelao

Corr(t , s |xt , xs ) = 0.

Normalidade assinttica dos estimadores de MQO Sob as hipteses H1-H5 os

estimadores de MQO so assintticamente normalmente distribuidos. Consequentemente,

os erros, estatsticas t, F e LM so assintticamente vlidos.

90
11.7 Modelos dinmicos com variveis no estacionrias

No estacionaridade causa estimadores de MQO inconsistentes e, consequentemente, os

resultados das regresses no podem ser conados. Vejamos a seguir o problema do uso

de variveis no estacionrias.

11.7.1 Regresso espria


Suponha duas variveis aleatrias Xt e Yt caracterizadas por um passeio aleatrio. Pode-

mos represent-las como

Xt = Xt1 + Xt

Yt = Yt1 + Y t
i.i.d.
onde Xt , Y t (0, 1). Se rodarmos a regresso a seguir

Yt = + Xt + t

iremos, em geral, ter como resultado um R2 relativamente alto e um estatisticamente

39
signicante . Ou seja, iremos concluir, erroneamente, que existe uma relao entre essas

duas variveis.

De modo a exemplicar iremos agora simular duas variveis no estacionrias e fazer

a regresso de uma na outra.

set.seed(3)

x <- cumsum(rnorm(200))
y <- cumsum(rnorm(200))

Como conhecemos o processo que gera as duas sries, temos certeza absoluta de que

no h nenhuma relao estatstica entre elas. Rodando a regresso obtemos:

summary(lm(y~x))

39 Uma estatstica Durbin-Watson baixa tambm provavelmentes ser encontrada.

91
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -11.2269 -2.8512 -0.1129 2.9624 12.4666
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.3356 0.3613 23.073 < 2e-16 ***
## x 0.7510 0.0959 7.831 2.88e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.061 on 198 degrees of freedom
## Multiple R-squared: 0.2365,Adjusted R-squared: 0.2326
## F-statistic: 61.32 on 1 and 198 DF, p-value: 2.883e-13

Apesar do R2 no ser to alto, especialmente em se tratando de sries temporais,

pode-se notar que o coeciente de Xt altamente signicativo.

Agora vamos ver o que acontece quando acrescentamos um drift nas sries
40
.

driftx <- 0.5


drifty <- 0.2
xd <- cumsum(driftx + rnorm(200))
yd <- cumsum(drifty + rnorm(200))

summary(lm(yd~xd))

40 Note que utilizaremos a mesma semente (ou o mesmo nmero para a opo set.seed) e, portanto,
estaremos analisando as mesmas sries porm com drift.

92
##
## Call:
## lm(formula = yd ~ xd)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.2085 -1.3834 0.2746 1.4287 7.2029
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.650790 0.431231 -13.10 <2e-16 ***
## xd 0.207911 0.006627 31.37 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.591 on 198 degrees of freedom
## Multiple R-squared: 0.8325,Adjusted R-squared: 0.8317
## F-statistic: 984.2 on 1 and 198 DF, p-value: < 2.2e-16

Como podemos ver, a existncia do drift no processo que gera os dados agrava o

problema da regresso espria.

11.8 Cointegrao

41
Vamos agora assumir que exista de fato uma relao entre Xt e Yt , como a seguir

Xt = Xt1 + Xt

Yt = Xt + Y t .

A relao entre Xt e Yt linear e pode ser caracterizada pelo vetor [1, ]. Este

vetor comumente chamado de vetor cointegrante, isto porque ele o vetor que gera uma

combinao estacionria de Xt e Yt .

41 Assuma as mesmas propriedades anteriores de Xt e Y t .

93
Denio As variveis Xt e Yt so ditas cointegradas se existe pelo menos uma com-

binao linear entre elas, Y t = Yt Xt , que gere uma varivel estacionria, ou seja,

I(0).

Este conceito de cointegrao tem uma ligao estreita com o conceito de equilbrio

de longo prazo. Vejamos agora a seguinte relao:

Yt = + Xt + ut

e dena o erro de equilbrio como ut = Yt Xt . ut ir nos dizer o quo longe

Yt est de seu valor de equilbrio, dado Xt . Se ut for estacionrio e utuando ao redor

de zero, ento o sistema estar, em mdia, em equilbrio, apesar de Yt e Xt serem no

estacionrios. Caso contrrio, se ut for no estacionrio o erro de equilbrio poder car

cada vez maior.

Agora que vimos as denies bsicas de regresso espria e cointegrao podemos

prosseguir para a parte formal de como distinguir entre uma relao espria entre duas

variveis e uma relao de cointegrao. Como podemos imaginar, a grande diferena

est nos resduos resultantes da regresso entre as duas variveis de interesse. Logo,

para descobrir se temos uma relao de cointegrao devemos testar se os resduos so

estacionrios. Assim, assumindo que Yt e Xt so I(1) :


1. Rode a regresso

Yt = + Xt + t

2. Teste se t I(0) ou I(1).


Se t for I(1) ento Xt e Yt no so cointegrados. Porm, se t for I(0) no podemos

42
rejeitar a hiptese de que Xt e Yt so cointegrados .

11.9 Cointegrao e modelos de correo de erro

Teorema de representao de Granger Se um conjunto de variveis so cointegradas,


ento existe uma representao de correo de erros vlida dos dados

Yt = 0 + 1 Xt + 2 ut1 + t

42 Note que a maneira mais comum de se testar esta hiptese atravs dos testes ADF, porm neste

caso no so utilizados os mesmo valores crticos.

94
onde t um rudo branco e

ut1 = Yt1 Xt1

o termo de erro de equilbrio derivado da equao de cointegrao, ou seja, da equao

de equilbrio de longo prazo

Yt = + Xt + ut .

Se Xt e Yt so I(1) e possuem uma relao de longo prazo, ento algo deve trazer

os erros de equilbrio de volta para zero. Este algo justamente o erro de equilbrio do

modelo de correo de erro.

11.10 Estimando um modelo de correo de erro usando o mtodo

de dois passos de Engle-Granger

Tome como exemplo a funo de consumo keynesiana

C = f (Y ) = Y.

Assumimos comumente que quando a renda aumenta o consumo aumenta, porm em

proporo menor, ou seja


C
0< = < 1.
Y
Assumimos frequentemente tambm que a propenso marginal a consumir (PMC) de

curto prazo menor que a PMC de longo prazo, neste caso, devido a formao de hbito.

Vejamos agora um exemplo prtico utilizando as sries trimestrais de consumo e renda

disponvel retiradas do Ipeadata. Ambas as sries comeam no primeiro trimestre de 1991,

porm utilizaremos somente os dados a partir de 1996. Abaixo importamos e visualizamos

as sries.

coint <- read.csv("coint.csv",


sep=";", dec=",", stringsAsFactors=FALSE)
coint <- ts(coint, start=1991, freq=4)
coint <- window(coint[,-1], start=1996)

cons <- coint[,1]

95
renda <- coint[,2]

plot(cons, col='darkblue', bty='l',


xlab='', ylab='R$', ylim=range(coint))

par(new=T)

plot(renda, col='black',
ann=F, axes=F, ylim=range(coint))

par(new=F)

grid(col='darkgrey', lwd=2)

legend('topleft', c('Consumo final', 'Renda disponvel bruta'),


col=c('darkblue', 1), bty='n', lty=1)
1200000

Consumo final
Renda disponvel bruta
R$

200000 600000

2000 2005 2010 2015

Assumimos anteriormente que Yt e Xt eram I(1), isto porque no faria sentido buscar
cointegrao entre variveis que so estacionrias. Apesar das sries apresentarem uma

tendncia clara, faremos um teste formal para vericar que ambas as sries so integradas

96
de mesma ordem. Para isto utilizaremos o teste ADF 43 .

ur.df(cons)

##
## ###############################################################
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: 6.1682

ur.df(renda)

##
## ###############################################################
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: 6.7522

ur.df(diff(cons))

##
## ###############################################################
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: -5.3537

ur.df(diff(renda))

##
## ###############################################################

43 Outra maneira seria utilizar o teste de cointegrao de Durbin-Watson, por exemplo.

97
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: -4.34

Dados os resultados acima podemos concluir que as sries de consumo e renda so

I(1). Logo, prosseguimos com a regresso que estima a funo consumo.

reg <- lm(cons~renda)


summary(reg)

##
## Call:
## lm(formula = cons ~ renda)
##
## Residuals:
## Min 1Q Median 3Q Max
## -40789 -12108 -622 11385 67986
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.823e+03 4.818e+03 1.416 0.161
## renda 8.326e-01 7.046e-03 118.170 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 20590 on 73 degrees of freedom
## Multiple R-squared: 0.9948,Adjusted R-squared: 0.9947
## F-statistic: 1.396e+04 on 1 and 73 DF, p-value: < 2.2e-16

Os resultados preliminares indicam que nossa hiptese sobre a PMC de longo prazo

vlida, ou seja, est entre 0 e 1. Agora devemos descobrir se esta regresso espria ou

se realmente ela nos d algo de valor. Para isso devemos salvar os resduos e vericar se

so estacionrios ou no.

98
ur.df(reg$resid)

##
## ###############################################################
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: -3.7513

Como foi dito anteriormente, apesar de utilizarmos o teste ADF no podemos utilizar

os valores crticos normalmente utilizados. Para o teste de cointegrao utilizaremos os

valores crticos disponibilizados na Tabela 2 do arquivo dfdistab7b.pdf. Como podemos

ver, rejeitamos a hiptese de raiz unitria, logo os resduos da regresso so estacionrios

e podemos concluir a existncia de cointegrao entre as variveis de interesse. Logo, o

coeciente de valor 0.83, pode ser interpretado como a PMC de longo prazo. Agora,

podemos prosseguir e estimar o modelo de correo de erro utilizando os resduos do

primeiro passo. Ou seja, iremos estimar a seguinte equao

Const = 0 + 1 Rendat + 2 ut1 t

onde ut so os resduos do primeiro passo.

u <- reg$resid[-length(reg$resid)]
dCons <- diff(cons)
dRenda <- diff(renda)

ecm <- lm(dCons~dRenda + u)

summary(ecm)

##
## Call:
## lm(formula = dCons ~ dRenda + u)
##
## Residuals:

99
## Min 1Q Median 3Q Max
## -28684 -11416 -2883 11382 60992
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -23.03217 2134.84957 -0.011 0.991422
## dRenda 0.83767 0.06075 13.788 < 2e-16 ***
## u -0.39301 0.10030 -3.919 0.000203 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 16670 on 71 degrees of freedom
## Multiple R-squared: 0.7855,Adjusted R-squared: 0.7795
## F-statistic: 130 on 2 and 71 DF, p-value: < 2.2e-16

Primeiramente, devemos notar que o coeciente do termo de correo de erro, 1 , foi

estimado ter o valor de 0.39, ou seja, ele negativo. Isto deve sempre ser verdade,

pois signica que quando existe um erro positivo o modelo ajusta-se para baixo. Ou

seja, o termo de correo de erro est fazendo exatamente o que ele deveria fazer, ajuster

o modelo de volta para o equilbrio. Este valor nos d justamente a velocidade de

convergncia ou velocidade de ajuste do modelo.

Alm disso, podemos ver que a PMC de curto prazo foi estimada em 0.84, indo contra

nossa hiptese de formao de hbito.

11.11 Estimando um modelo de correo de erro em um passo

Acabmos de ver um mtodo de se estimar um modelo de correo de erros. Infelizmente, ao

se usar dois passos este tipo de estimao torna-se menos eciente, isto , seus estimadores

possuem um desvio-padro maior. Uma maneira de contornar este problema de se

estimar o modelo de correo diretamente. Em outras palavras, queremos estimar a

seguinte equao

Const = + 1 Rendat + 1 Const1 + 2 Rendat1 + t .

100
cCons <- cons[-length(cons)]
cRenda <- renda[-length(renda)]

ecm2 <- lm(dCons~dRenda + cCons + cRenda)

summary(ecm2)

##
## Call:
## lm(formula = dCons ~ dRenda + cCons + cRenda)
##
## Residuals:
## Min 1Q Median 3Q Max
## -28785 -12032 -2679 10180 59321
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 960.69728 4097.08048 0.234 0.815294
## dRenda 0.83410 0.06149 13.565 < 2e-16 ***
## cCons -0.39302 0.10083 -3.898 0.000220 ***
## cRenda 0.33023 0.08416 3.924 0.000201 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 16760 on 70 degrees of freedom
## Multiple R-squared: 0.7863,Adjusted R-squared: 0.7771
## F-statistic: 85.86 on 3 and 70 DF, p-value: < 2.2e-16

Como podemos ver, obtemos aproximadamente o mesmo valor para a PMC de curto

prazo, ou seja, 0.83. Alm disso temos que os resduos dessa regresso so estacionrios:

101
ur.df(ecm2$resid)

##
## ###############################################################
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: -7.8055

A PMC de longo prazo pode ser obtido pelo negativo da razo entre os coecientes

das variveis em nvel, neste caso

0.33
PMC de longo prazo = = 0.84
0.39

11.12 Um pouco mais sobre cointegrao

No exemplo anterior deveriamos ser capazes de reverter a ordem das variveis, ou seja, co-

locar renda como varivel explicada, e obter os mesmos resultados. Vejamos os resultados

desta regresso.

reg2 <- lm(renda~cons)

summary(reg2)

##
## Call:
## lm(formula = renda ~ cons)
##
## Residuals:
## Min 1Q Median 3Q Max
## -77741 -14730 761 15201 49655
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.058e+03 5.820e+03 -0.869 0.388

102
## cons 1.195e+00 1.011e-02 118.170 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 24660 on 73 degrees of freedom
## Multiple R-squared: 0.9948,Adjusted R-squared: 0.9947
## F-statistic: 1.396e+04 on 1 and 73 DF, p-value: < 2.2e-16

Notem que obtemos os mesmos valores para as estatsticas t e R2 . O inverso do

coeciente obtido neste caso, tambm se aproxima bastante do valor obtido na primeira

regresso que rodamos, onde no primeiro caso obtemos 0.833 e o inverso do coeciente

desta regresso 0.837.

11.12.1 Cointegrao e Causalidade de Granger


Por denio, se duas variveis I(1) so cointegradas, ento pelo menos uma das variveis
deve Granger causar a outra. O problema de cointegrao se torna mais complexa quando

o nmero de variveis na relao de longo prazo aumenta ( especialmente se as ordens de

integrao so diferentes). Assuma, por exemplo, que yt seja I(0) enquanto que xt e zt
sejam I(1) e que exista a seguinte relao

yt = + xt + zt + t .

Dada esta relao temos que

t I(0) se, somente se (xt + zt ) I(0).

Se as variveis so integradas de ordens diferentes, ento devem existir na equao

no mnimo duas variveis de cada ordem de integrao. Uma varivel I(1), por exemplo,
nunca poder ser cointegrada com uma varivel I(2).

O problema da metodologia de Engle-Granger que ela nos d no mximo um vetor

de cointegrao, independente do nmero de variveis envolvidas. Porm, se n variveis

esto envolvidas no processo, ento podem existir at n 1 vetores cointegrantes. O vetor

cointegrante estimado no caso de 3 ou mais variveis utilizando esta metodologia pode

no ser nico. Podendo ser uma combinao de diferentes vetores cointegrantes.

103
A metodologia de Johansen nos diz quantos vetores cointegrantes existem entre n
variveis. Voltaremos a este mais frente aps introduzir o tpico de modelos de vetores

autoregressivos.

104
Referncias
Dickey, D. A. and Fuller, W. A. Distribution of the estimators for autoregressive time

series with a unit root. Journal of the American statistical association, 74(366a):427
431, 1979.

Enders, W. Applied Econometric Times Series. Wiley Series in Probability and Statistics.
Wiley, 2009.

Pfa, B. Analysis of integrated and cointegrated time series with R. Springer, New York,

second edition, 2008.

105

Você também pode gostar