You are on page 1of 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
R?

1.1

Por que usar o

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

O que uma srie de tempo?

1.3

Porque analisar sries de tempo?

. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .

2 Comeando os trabalhos
2.1

7
7

Importando e visualizando os dados . . . . . . . . . . . . . . . . . . . . . .

3 Fatos estilizados do Ciclo de Negcios


3.1

11

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

3.4

Calculando a volatilidade cclica . . . . . . . . . . . . . . . . . . . . . . . .

24

4 Modelos univariados

26

4.1

Alguns conceitos bsicos

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

4.3.4

Processos tendncia-estacionrios

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

drift

. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .

27

35
37

5 Funo de autocorrelao

38

6 Funo de autocorrelao parcial

40

6.1

Um breve resumo dos resultados . . . . . . . . . . . . . . . . . . . . . . . .

7 Processos ARMA
7.1

Estimando modelos
7.1.1

41

43
ARIMA - Intro

A metodologia

Box-Jenkins

. . . . . . . . . . . . . . . . . . . . . .
- Intro

. . . . . . . . . . . . . . . . . .

43
43

8 Testes de estacionaridade
8.1
O teste de Dickey-Fuller . . . . . . . . . . . . . . .
8.2
O Poder do teste de Dickey-Fuller de raz unitria .
8.3
O teste de Dickey-Fuller Aumentado . . . . . . . .
8.4
O teste de Phillips-Perron . . . . . . . . . . . . . .
8.5
O teste ADF sequencial . . . . . . . . . . . . . . .
9 Estimando modelos ARIMA
9.1
A metodologia Box-Jenkins
9.2
A metodologia Box-Jenkins

45
. . . . . . . . . . . . .

45

. . . . . . . . . . . . .

51

. . . . . . . . . . . . .

52

. . . . . . . . . . . . .

53

. . . . . . . . . . . . .

54

64
. . . . . . . . . . . . . . . . . . . . . . . . . .

64

- Um exemplo prtico . . . . . . . . . . . . . .

65

. . . . . . . . . . . . . . . . . . . . . . . . . .

66

9.2.1

Ordem de integrao

9.2.2

Escolhendo

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

9.2.3

Estimando um modelo ARMA . . . . . . . . . . . . . . . . . . . . .

69

9.2.4

Diagnsticos dos resduos . . . . . . . . . . . . . . . . . . . . . . . .

71

peq

10 Previso com modelos ARIMA


10.1 Usando modelos ARIMA para construir previses

77
. . . . . . . . . . . . . .

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

. . . . . . . . . . . . . . . . . . . . . . . . .

89

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

90

11.5.2 Estimadores ecientes


11.5.3 Inferncia

11.6 Propriedades assintticas dos estimadores de MQO

. . . . . . . . . . . . .

90

11.7 Modelos dinmicos com variveis no estacionrias

. . . . . . . . . . . . .

91

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

91

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

Referncias

Granger

. . . . . . . . . . . . . . . . 103

105

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.

GUI do R chamado RStudio.

Todo trabalho ser feito no


instalar o

e, em seguida, o

RStudio.

AT Xutilizando o
produzir documentos L
E
seguida

Sweave.

Caso tenha interesse tambm de aprender a

RStudio recomendo entrar em Preferncias

Finalmente, alterando a primeira opo disponvel para

maneira a manipulao do cdigo dentro do arquivo

AT X.
prprio L
E

Para comear voc deve

.Rnw

knitr.

e em

Desta

ser mais parecido com o

Para isso ser necessria a instalao do pacote

knitr

e do programa

MikTeX.
Note que muitos dos pacotes no estaro disponveis no seu
ser instalados. Isto pode ser feito atravs do menu de

RStudio,

logo devero

Ferramentas.

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


onde todo o trabalho ser salvo. Isto pode ser feito atravs do

RStudio,

ou seja,

RStudio na janela inferior

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

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

1 Note que se usa / e no

R (ou qualquer linguagem de programao) um grande

\.
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

est na capacidade de se repetir e

reproduzir processos. bvio que podemos usar um destes programas para estimar 1020 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 automatizar 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 programa 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;

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 prossionais 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

AT X.
com o L
E

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,

corte, e a de sries temporais. Com dados de corte temos acesso a

ou dados de

observaes das

variveis de interesse para um dado instante no tempo, enquanto que no caso de sries de
tempo somente temos

observao das

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, descrevlos 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.

Comeando os trabalhos

2.1

Importando e visualizando os dados

Existem muitas maneiras de importar dados para o

.txt e .csv.

de se trabalhar so
usando o

RStudio

R,

sendo que os formatos mais fceis

A maneira mais simples de importar os dados para o

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.
denida como

PIB real

dividido pela

Que tal criarmos uma

proxy,

mdia de horas trabalhadas, para produtividade:

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


Para nalizar, podemos salvar os dados que separamos como um arquivo
lizar os dados atravs do comando

.txt

e visua-

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

ao

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)

8000.0
200

rgdpna
avh
xr
prod

1.5

3.0
1850

2050 500000

dados

1950

1960

1970

1980

1990

2000

2010

Time

Podemos aprimorar um pouco este grco atravs das opes do comando


pode ser visto abaixo.

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

plot, como

8000.0
200

rgdpna
avh
xr
prod

1.5

3.0
1850

2050 500000

Dados brasileiros

1950

1960

1970

1980

Ano

10

1990

2000

2010

Fatos estilizados do Ciclo de Negcios

Quais so ento os fatos que devemos buscar entender quando queremos estudar as variveis macroeconmicas e, principalmente, os ciclos econmicos? As principais caractersticas que precisamos so a
questo

antecedente

volatilidade, correlao contempornea

e se a varivel em

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

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 variaes 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

11

dummies.

Repare que esse mtodo

somente remover a parte

determinstica

da sazonalidade .

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.


medidos por

Di

Isto tambm signica que todos os efeitos

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
senta sazonalidade. Logo, podemos usar

t como nossa srie dessazonalizada.

Yt

apre-

Veja porque,

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

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.
trimestral (srie

1232

do

SGS

Neste prximo exerccio usaremos o PIB

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)

80

100

120

Indice

140

160

PIB brasileiro

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:

## F-statistic: 0.3516 on 3 and 90 DF,

-0.02136

p-value: 0.7881

Como podemos ver, o resumo j nos d o p-valor do teste

que neste caso igual a

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


camente signicativos.

14

nenhum dos componentes sazonais so estatisti-

40

122
118

120

pib.hat

0
20

pib.des

20

124

40

plot(pib.hat)

2000

2040

2080

2000

Time

2040

2080

Time

Como podemos ver, a srie dessazonalizada comea em nveis negativos. Isto acontece
pois ao subtrair
por

Yt

da nossa srie original estamos tambm retirando a sua mdia, captada

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')

80

100

120

140

160

PIB
PIB dessazonalizado

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

for estatisticamente signicativo a srie

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

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

1.009e+10

20.12 1.17e-15 ***

2.030e+11

## --## 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:

## F-statistic: 404.8 on 1 and 22 DF,


Como podemos ver o

0.9461

p-value: 1.175e-15

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
representa nossa srie sem tendncia, enquanto que

P[
IBt

Em seguida temos as trs sries no mesmo grco.

17

ser a nossa tendncia linear.

0e+00

2e+12

4e+12

PIB
Tendncia
PIB sem tendncia linear

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
cimento,

Xtg ,

Xt

como a soma de um componente cclico,

e um choque aleatrio contemporneo,

t .

Xtc ,

um componente de cres-

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
2
1X
X g
g 2
g
=
(Xt Xt ) +
(Xt+1 Xtg ) (Xtg Xt1
)
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


aproximar de uma tendncia linear. Caso contrrio, ou seja, quando
zero, teremos que

mais

Xtg

se

se aproxima de

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

0e+00

2e+12

4e+12

PIB
Tendncia
PIBhp

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

podemos tomar a primeira de uma srie atravs do comando

funo podemos usar diferenas at maiores, ou seja, podemos tomar a

di.

Com esta

n -sima diferena.

Abaixo esto alguns exemplos de como usar este comando:

A primeira diferena da srie


no

{xt } calculada como xt xt1

t.

Para obter isso

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


calculada como
simplesmente

xt xt4

t.

No

diff(x,4).

20

{xt }

representa uma srie trimestral,

obtemos isso ao digitar

diff(x,1,4)

ou

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?
so

piblin, pibhp

dpib,

A sries

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)

4e+11

0e+00

4e+11

dpib
piblin
pibhp

1995

2000

2005

2010

Ano

Podemos examinar a correlao contempornea dessas nossas variveis atravs do comando

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

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

pibhp(t), pibhp(t-1)

pibhp(t+1).

cc <- ccf(pibhp, piblin, 1)

22

piblin(t)

com

0.4

0.0

ACF

0.4

pibhp & piblin

1.0

0.5

0.0

0.5

1.0

Lag

cc
##
## Autocorrelations of series 'X', by lag
##
##

-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


avanar uma srie
seja,

lag(x, k=n).

onde utilizamos

xt n

vezes utilizamos

lag(x, k=-n).

Da mesma forma, para

vezes utilizamos o mesmo comando porm com o positivo de

n, ou

De modo a ilustrar podemos fazer um grco com as diferentes sries

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

0e+00

2e+12

4e+12

pibt
pibt+5
pibt5

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 estivermos 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


da magnitude das utuaes em

x, ou seja

x, decorrente de seu prprio comportamento cclico.

24

Aqui

somente duas

absoluta

maneiras de representar esta volatilidade sero abordadas, a volatilidade

e a volatilidade

relativa.

como o desvio padro (d.p.)

A primeira mede a prpria volatilidade da varivel

da utuao percentual em torno da tendncia de longo

prazo. Esta volatilidade pode ser calculada como a seguir


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


volatilidade

Por outro lado, a volatilidade relativa de


Por exemplo, a volatilidade de

x sua volatilidade relativa a uma outra srie.

x relativa a uma outra varivel, y , pode ser calculada como

volatilidade

x/y =

d.p.(lnx)
.
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

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

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
onde

yt

(3)

0 < s < 1 uma taxa de poupana constante, it

a renda e

t N (0, 2 )

o investimento,

ct

o consumo,

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 = 0 + 1

1
ct =
ct
1s

ct
+ 2 ct1 + t
1s

1
1
1s


ct = 0 + 2 ct1 + t

ct = 0 + 1 ct1 + ut
onde

ut N (0, u2 ).

Desta forma reduzimos o modelo macroeconmico para um

processo univariado, ou seja, um processo

4.1

(6)

A(1)

para o consumo.

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.


exemplo, tome o PIB brasileiro de 1950 at 2013
Cada

Por

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

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 impossibilidade 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 puramente 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
25

Xt Estacionrio
Ct No Estacionrio
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

Yt1

dada por

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


29

= E{(t + t1 )(t1 + t2 )}
= E{(2t1 )}
= 2
Finalmente, a autocovarincia entre

Yt

Yt2

dada por

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


= E{(t + t2 )(t2 + t3 )}
=0
Note que para este processo

MA(1),

teremos que

isto, como ser a matriz varincia-covarincia,


No

cov{Yt , Ytk } = 0 k > 1.

, deste processo?

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='',

0
2
4

Yt

bty='l')

20

40

60

80

Time

Figura 1: Processo

MA(1)

30

com

= 0.8.

100

Dito

Veremos mais a diante que se

|| < 1,

este processo

transformado em um processo autoregressivo innito, ou


podemos denir um processo

MA(q)

MA(1)

AR().

pode ser invertido e

Em termos mais gerais

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:


converge para

a/(1 r)

Se

|r| < 1, a srie geomtrica a+ar+ar2 + +arn +. . .

n .

quando

Se

|r| 1,

a srie divergir caso

a 6= 0.

Caso

0.

contrrio, a srie convergir para

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 }


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

= 2 + 2 E{(yt2 + t2 )2 } = . . .
= 2 (1 + 2 + 4 + + )
=
Ainda tomando

y t = Y t ,

2
.
1 2

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

cov{yt , ytk } =
De modo a visualizar um processo

yt

ytk

ser dada pela expresso

k 2
|| < 1.
1 2

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
2

Yt

20

40

60

80

100

Time

Figura 2: Processo

AR(1)

A condio de estacionaridade para o processo


caso importante de
ordem

= 1

com

= 0.8.

AR(1)

ser abordado mais adiante.

ento dado por

|| < 1.

Um processo autoregressivo de

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


estacionrio tambm pode ser reescrito como um processo

MA().

maneira mais fcil quando utilizamos um operador de defasagem,

AR(1)

Isto pode ser feito de

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


pode ser reescrito como um processo

MA().

Primeiro, denimos o processo

AR(1)

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
xt =
O ltimo passo s ser possvel se

|| < 1,

t
1 L

(1 L)

for inversvel. Dado que assumimos que

sabemos que este processo estacionrio.

Agora, lembrando novamente das

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

xt =

k L k t

k=0
ou simplesmente

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 } = . . .


= E{Y0 +

T
X
1

34

t } = Y 0

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 } = . . .


= E{(Y0 +

T
X

t Y 0 ) } =

T
X

2 = T 2

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
se tornar estacionrio na
ordem

d, ou I(d).

I(1).

Da mesma maneira, se o processo somente

d -sima diferena dizemos que este um processo integrado de

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


dana, onde assumimos que

drift

6= 0.

A(1)

que antes com uma pequena mu-

O resultado um modelo de passeio aleatrio com

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

35

drift .

Este

drift

tambm chamado

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

= 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 } = . . .


= E{

T
X

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

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

36

drift

e sua primeira diferen.

5
0

Yt , Yt

10

Yt
Yt

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
que

6= 0, || < 1

AR(1) s que desta vez iremos assumir

e vamos adicionar uma tendncia temporal,

t.

Assim teremos que

Yt = + t + Yt1 + t
Este processo tambm ser no estacionrio com esperana dada por

E{Yt } =

+t
1

V {Yt } =

2
1 2

e varincia igual a

Podemos tornar esta srie estacionria ao remover, ou subtrair, a tendncia determinstica

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

pela remoo de uma tendncia determinstica so chamados de processos tendnciaestacionrios.

8 Note que tendncias

H-P,

quadrtica, cbica e etc.

serem lineares.

37

so tendncias determinsticas, apesar de no

Funo de autocorrelao

Assumindo estacionaridade fraca, podemos denir a

k ,

k -sima

ordem de autocovarincia,

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 =

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

A funo de autocorrelao, ou comumente chamade de


caracterizar o desenvolvimento de

Yt

ACF

do ingls, nos ajuda a

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 descrever os dados, a

ACF

tambm nos ajuda a achar razes unitrias, escolher modelos e

fazer diagnsticos sobre regresses.


A

ACF

AR(1)

de um processo

dado por
2

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

V {Yt }
2
1

Para o processo

MA(1) a ACF
1 =

cov{Yt , Yt1 }
2

=
=
V {Yt }
(1 + 2 )2
1 + 2

porm,

k = 0 , k > 1.
No

o comando

acf

calcula e nos d um grco da

um exemplo de como simular e calcular a

ACF

ACF

de uma srie.

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

Abaixo

0.0

Yt

0.4
0.2

0.5

0.0

0.2

Yt

0.6

0.5

0.8

1.0

AR(1) com =0.9

1.0

AR(1) com =0.9

10

15

20

10

15

Lag

Lag

MA(1) com =0.9

MA(1) com =0.9

20

0.0

Yt

0.4
0.2

0.5

0.0

0.2

Yt

0.6

0.5

0.8

1.0

1.0

10

15

20

Lag

10

15

20

Lag

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

39

Funo de autocorrelao parcial

A funo de autocorrelao parcial (ou comumente


entre a varivel no instante

PACF,

do ingls) nos d correlao

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
efeitos de

Yt1 .

nos d ento o coeciente de correlao entre

Assim,

Yt

Yt2

retirado os

pode ser descrito como a seguir

r13 r12 r23


p
.
2 = r13,2 = p
2
2
1 r12
1 r23
Assumindo estacionaridade fraca temos que

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


e

r13 = corr {Yt , Yt2 } = 2 .


Logo, conclumos que

2 = r13,2 =
Assim como para as autocorrelaes, o

2 21
.
1 2

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

0.6

0.0

0.8

0.2

10

15

20

10

15

Lag

MA(1) com =0.9

MA(1) com =0.9

20

0.2

Lag

0.3

0.4

0.1

0.2

Yt

0.0

0.1

0.1 0.2 0.3 0.4

Yt

0.4

Yt

0.2

Yt

0.4

0.2

0.6

0.0

0.8

0.2

AR(1) com =0.9

10

15

20

Lag

10

15

20

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


1. Uma

ACF

2. uma

PACF

J o processo
1. Uma

ACF

2. uma

PACF

AR(p)

descrito por

innita e com queda exponencial;

(aproximadamente) igual a zero para defasagens maiores que

MA(q)

p.

caracterizado por

(aproximadamente) igual a zero para defasagens maiores que

innita e com queda exponencial;

41

q;

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

PACF.

42

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,
(c) Achar valores apropriados para

peq

2. Estimao

9 Nesta apostila no abordaremos modelos com sazonalidade, denotados por

43

SARIMA.

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

10

tente

por

OLS, OLS

no linear e por mxima verossimilhana.

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

ARMA

OLS

no linear e por mxima verossimilhana.

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

Testes de estacionaridade

Como vimos anteriormente, o segundo passo da metodologia de


minar a ordem de integrao,

d, de uma srie11 .

Box-Jenkins

o de deter-

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
ento

=1

e, consequentemente,

teste dada por


teste unilateral

12

H0 : = 0

Yt

= 0.

Desta forma, se

=0

possui raz unitria. Note que a hiptese nula deste

enquanto que a alternativa

H1 : < 0,

logo trata-se de um

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

t -valor do coeciente

no segue uma distribuio . Isto signica que a tabela

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')

20

10

Yt

10

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

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.
Ou seja, rodamos a regresso da primeira diferena da srie contra sua defasagem.

13

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:

## F-statistic: 0.2253 on 1 and 198 DF,


Como podemos notar, a estatstica

-0.003908

p-value: 0.6355

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
Assim, conclumos que a srie

yt

2.58,

logo no podemos rejeitar a hiptese nula.

14

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
Para isso devemos carregar o pacote
seguida, rodamos um teste

15

urca.

Abaixo carregamos o pacote necessrio e, em

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


os pacotes necessrios para todos os meus comandos.

47

declarando e carregando

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:

## F-statistic: 0.2253 on 1 and 198 DF,


##
##
## Value of test-statistic is: 0.4747
##
## Critical values for test statistics:
##

1pct

5pct 10pct

## tau1 -2.58 -1.95 -1.62

48

-0.003908

p-value: 0.6355

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

H0 : = 0,

com o valor crtico

Se

t<

rejeitamos a hiptese nula,

ou seja, rejeitamos que nossa srie possui raz unitria.

Neste nosso caso especco, como


possui raz unitria.

t > ,

no rejeitamos a hiptese de que a srie

Logo, devemos prosseguir com os nossos testes.

testar para ver se nossa srie

Agora devemos

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
em sua primeira diferena.

0
3

Yt

DF

2000

2005

2010
Time

dyt <- diff(yt)


summary(ur.df(dyt, type='none', lags=0))
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression none
##
##
## Call:
49

2015

## 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:

## F-statistic: 182.6 on 1 and 197 DF,

0.4785

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,

temente, podemos concluir que segundo o teste de

i.e.

de raz unitria, e, consequen-

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
um passeio aleatrio.

50

yt

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

DF

Este caso do teste

, 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

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

probabilidade de cometermos um erro do tipo II bem pequena.

H0

= 1)

Do contrrio, se es-

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


signicativamente grande (por exemplo,

O Poder do Teste:

= 0.98

H0

de

= 1).

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
falsa

16

O poder dos testes

DF

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

tk

DF

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

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. Assim, 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

Yt = + t + Yt1 +

m
X

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 defasagens 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


defasagens atravs de testes

. Outros mtodos incluem: reduzir o nmero de

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
O teste de

Phillips-Perron, PP, lida com o problema de correlao dos resduos de uma

maneira diferente, sem a adio de defasagens


teste

DF

19

. O teste baseia-se na mesma equao do

com constante e tendncia, porm utiliza o estimador

20

a matriz de varincia robusta


nula de

ADF.

=1

. O teste

Newey-West

para estimar

PP, utilizando a funo PP.test usa a hiptese

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

53

6
4
2
0
4
8

Passeio aleatrio
Rudo branco
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

Yt = + t + Yt +

m
X

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

54

H0 : = 0.

Logo,

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
tendncia, ou seja, testar se

=0

dado que

Se no rejeitarmos esta hiptese (


de que

= 0

hiptese (

=0

21

= 0| = 0) podemos prosseguir e testar a hiptese

sob normalidade, ou seja, utilizando a estatstica

t.

No rejeitando esta

= 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

2 )22 ,

=0

(agora usando a estatstica de teste

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


dado que

= 023 .

Se rejeitarmos

= 0| = 0

drift.

podemos prosseguir e testar

=0

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


nalmente, testar se

=0

utilizando a estatstica de teste

Aceitando esta hiptese podemos concluir que a srie

= 0

Logo, testamos se

sob

drift

e,

1 .

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,

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
22 Ainda seguindo Pfa (2008).
23 Para isto utilizamos a estatstica de teste

1 .

55

3 .

Yt .

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


Para este exemplo iremos utilizar o arquivo

table17-2.txt,

ADF

sequencial

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='$')

18000
14000

22000

Renda disponvel

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
1 2 3
1
tao, pelo pacote

ur.df.
57

3 )

so dadas, com a mesma cono-

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')

0.5

0.0

ACF

0.5

1.0

ACF Resduos ADF com 3 defasagens

10

12

14

Defasagem

Como nenhuma autocorrelao estatsticamente signicativa talvez seja possvel aumentar 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

serem includas na regresso.

58

para determinar o nmero inicial de defasagens a

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')

0.5

0.0

ACF

0.5

1.0

ACF Resduos ADF com 2 defasagens

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

0.5

0.0

ACF

0.5

1.0

ACF Resduos ADF sem defasagem

10

12

14

Defasagem

Como pode ser visto no grco anterior, continuando com o procedimento iremos concluir que no necessrio incluir nenhuma defasagem no teste. Agora podemos nalmente
comear a testar nossas hipteses. A primeira que
o valor

t_

com estatstica de teste

=0

e para isso devemos comparar

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 *

-0.3549

0.1597

-2.222

0.0352 *

121.6977

53.8866

2.258

0.0325 *

## z.lag.1
## tt
## --## 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:

## F-statistic: 2.57 on 2 and 26 DF,

0.1008

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 estatisticamente signicativa com a hiptese

por

= 0| = 0.

A estatstica para esta hiptese dada

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


de teste estimada dada por
que

= 0| = 0,

F, que igual a 2.57.

Como

= 0| = 0, a estatstica

F < 3 ,

no podemos rejeitar

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

1.914e-02

0.184

0.856

3.516e-03

##
## Residual standard error: 291 on 27 degrees of freedom
## Multiple R-squared:

0.001248,Adjusted R-squared:

## 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

-0.03574

## 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

2 = 2.93.
0,

Para vericar se podemos aumentar o poder do teste testamos se

comparando a estatstica de teste

Portanto, podemos rejeitar que


termo de

t = 0.18 >

drift

27

com seu valor crtico,

= 0| = 0,

= 0| =

= 21.90 > 1 = 4.86.

e conclumos que no devemos retirar o

da regresso de teste.

Agora, podemos testar se


Student. Obviamente, como

=0

sob normalidade, isto , comparando

t = 0.18 > 0,

28

podemos concluir

com o

de

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
consequentemente, o processo ter uma raz unitria.

63

> 1

e,

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,
(c) Achar valores apropriados para

peq

2. Estimao

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

29

tente

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
IPCA dessazonalizado

0.0

0.2

0.4

0.6

0.8

IPCA retirado os efeitos de sazonalidade.

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

30

com constante e 36 defasagens

, 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')

0.2

0.2

ACF

0.6

1.0

Resduos de teste ADF 6 defasagens

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:

## 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

0.2903

##

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 caracterizar esta parte estacionria do processo. Faremos isso utilizando o
modo a identicar a ordem de termos

ARMA

ACF

PACF

de

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
quencial. Poderamos talvez tentar a srie trimestral do PIB?

68

ADF

se-

0.2
0.4

ACF

0.8

IPCA (variao mensal)

0.0

0.5

1.0

1.5

0.2
0.2

Partial ACF

0.6

Lag

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).


comear com algo mais geral, como por exemplo um

ARMA(2,2)

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

Podemos

e retirar termos no

## 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


modelo.

coeftest(arima(ipcad, order=c(1,0,1)))
##
## z test of coefficients:
##
##

Estimate Std. Error z value


70

Pr(>|z|)

ar2

e reestimamos o

## 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

## ar1

0.583238

## intercept 0.454794

0.082428

Pr(>|z|)

7.0757 1.487e-12 ***

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
resduos esto limpos. Devemos analisar as seguintes questes

32

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
opo de

type='Ljung-Box'.

Box.test,

com a

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


estatstica de teste igual a 6.6 com

AR. Como podemos ver a

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)

0.1

Partial ACF

0.2

0.3

0.2

ACF

0.6

0.1

0.2

1.0

Resduos ARMA(1,0)

0.0

0.5

1.0

1.5

0.5

Lag

1.0
Lag

Agora podemos ver as potenciais fraquezas do uso do teste


temos que o

Ljung-Box

1.5

Ljung-Box.

Primeiro,

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

0.6
0.4
0.2

IPCA (%)

0.8

IPCA por ms e IPCA mdio por ms

0.0

IPCA
Mdia
J

Extra: Criando uma funo


Dado essa fraqueza no teste, talvez deveramos fazer o teste
defasagem at a

n -sima

Ljung-Box

desde a primeira

defasagem, desta forma seramos capazes de saber exatamente

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


momentos que o

como rodar o teste

se mostra bastante eciente.

Ljung-Box

utilizando a opo

O problema que queremos resolver :

lag

indo de 1 at

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

So neste

n.

Que tal criarmos

# 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

75

Akaike

ou o

Bayesiano.

Estes

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)

calculamos os seus respectivos

ARMA(2,2) ?

Abaixo, estimamos estes modelos e

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
podemos concluir que nosso modelo
de acordo com o

ARMA(1,0) de fato o melhor

AIC.

34 Talvez aqui tambm seria til montar uma funo?

76

. Alm disso,

modelo, pelo menos

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

min E



YT +h YT +h|T

2


| 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
frente, quando

passos

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)

0.8
0.6
0.4
0.2
0.0

0.0

0.2

0.4

IPCA

0.6

0.8

Previso IPCA Modelo AR(1)

2013.0

2014.0

2015.0

2013.0

Time

2014.0

2015.0

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)

0.8
0.6
0.4
0.2
0.0

0.0

0.2

0.4

IPCA

0.6

0.8

Previso IPCA Modelo AR(1)

2013.0

2014.0

2013.0

Time

10.3

2014.0
Time

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

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

PT

2t
t=1

REQM =

enquanto que a segunda medida, EAM, dada por

PT
EAM =

t=1

|
t |

Note primeiro que as duas medidas esto na mesma unidade que a varivel de interesse,

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
Vimos anteriormente que segundo o
tamento do IPCA so o

AR(1)

e o

AIC

neste caso).

os dois melhores modelos para o compor-

ARMA(1,1).

Podemos agora comparar estes dois

modelos utilizando estas duas medidas de erro de previso. Para isso precisamos construir 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

escolhido

36

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
85

e a estatstica

de

Thiel.

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


defasagens

1.

Consequentemente, um modelo

ADL(1), dado que a maior ordem das

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
Yt+1
= 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

1i 0

i=0

1i 1 + 1 1

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(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 )

E(Yt ) =

0 + 1
+
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

prazo.

87

ter uma interpretao de longo

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

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 )

Yt1 Xt1
11.3

o parmetro de ajuste e

o erro de equilbrio.

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

Breusch-Godfrey,

Breusch-Pagan / LM e Ljung-Box

White,

por exemplo), heterocedasticidade (

nos resduos ao quadrado, por exemplo) e normalidade

Jarque-Bera e Shapiro-Wilk, por exemplo).

11.4

Causalidade de Granger

Se valores passados de
ou simplesmente

X Y.

nos ajudam a prever

Y,

ento diz-se que

X Granger

causa

Assuma a seguinte equao que descreve a relao entre

Y:
Yt =

n
X

i Xti +

n
X
1

88

i Yti + 1t .

Y,

Se
que

Pn
1

i 6= 0,

X Y.

ou seja, se todos

so conjuntamente diferentes de zero, ento temos

Porm, o contrrio tambm pode valer, isto

Y X.

Trocando a

causalidade temos ento a seguinte relao

Xt =

n
X

i Xti +

1
Onde, se valer que

11.5

Pn
1

i 6= 0,

n
X

i Yti + 2t .

poderemos concluir que

Y X.

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 hiptese 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

dado

deve ser o mesmo para todo

seja

V ar(t |X) = V ar(t ) = 2 , t = 1, . . . , n.


89

t,

ou

H5 Ausncia de autocorrelao A correlao dos erros entre dois perodos distintos


dado

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
i.i.d.
H6 Normalidade Os erros t so independentes de X e
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

seguem as distribuies

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

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

Yt

caracterizadas por um passeio aleatrio. Pode-

mos represent-las como

Xt = Xt1 + Xt
Yt = Yt1 + Y t
onde

i.i.d.

Xt , Y t (0, 1).

Se rodarmos a regresso a seguir

Yt = + Xt + t
iremos, em geral, ter como resultado um

39

signicante

R2 relativamente alto e um

estatisticamente

. 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

## x

0.7510

0.0959

23.073

< 2e-16 ***

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:

## F-statistic: 61.32 on 1 and 198 DF,


Apesar do

R2

0.2326

p-value: 2.883e-13

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
estaremos analisando as mesmas sries porm com

drift.
92

set.seed) e, portanto,

##
## 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.006627

<2e-16 ***

0.207911

31.37

## --## 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:

## F-statistic: 984.2 on 1 and 198 DF,


Como podemos ver, a existncia do

drift

0.8317

p-value: < 2.2e-16


no processo que gera os dados agrava o

problema da regresso espria.

11.8

Cointegrao

Vamos agora assumir que exista de fato uma relao entre

Xt

Yt ,

como a seguir

41

Xt = Xt1 + Xt
Yt = Xt + Y t .
A relao entre

Xt

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

Yt .

41 Assuma as mesmas propriedades anteriores de

Xt
93

Y t .

Denio

As variveis

Xt

binao linear entre elas,

Yt

so ditas cointegradas se existe pelo menos uma com-

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

Yt

ut = Yt Xt . ut

est de seu valor de equilbrio, dado

Xt .

Se

ut

ir nos dizer o quo longe

for estacionrio e utuando ao redor

de zero, ento o sistema estar, em mdia, em equilbrio, apesar de


estacionrios. Caso contrrio, se

ut

Yt

Xt

serem no

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

Xt

so

I(1) :

1. Rode a regresso

Yt = + Xt + t
2. Teste se
Se

for

I(1)

I(0)

ou

I(1).

ento

Xt

Yt

Xt

rejeitar a hiptese de que

11.9

no so cointegrados. Porm, se

Yt

so cointegrados

42

for

I(0)

no podemos

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
caso no so utilizados os mesmo valores crticos.

94

ADF,

porm neste

onde

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

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

0<

C
= < 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'),

Consumo final
Renda disponvel bruta

200000 600000

R$

1200000

col=c('darkblue', 1), bty='n', lty=1)

2000

Assumimos anteriormente que

2005

Yt

Xt

eram

2010

2015

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

97

Durbin-Watson, por exemplo.

## # 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

## -40789 -12108

-622

3Q

Max

11385

67986

##
## Coefficients:
##

Estimate Std. Error t value Pr(>|t|)

## (Intercept) 6.823e+03

4.818e+03

## renda

7.046e-03 118.170

8.326e-01

1.416

0.161
<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:

## F-statistic: 1.396e+04 on 1 and 73 DF,

0.9947

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

## -28684 -11416

-2883

3Q

Max

11382

60992

##
## Coefficients:
##

Estimate Std. Error t value Pr(>|t|)

## (Intercept) -23.03217 2134.84957


## dRenda

0.83767

## u

-0.39301

-0.011 0.991422

0.06075 13.788 < 2e-16 ***


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:
## F-statistic:

0.7855,Adjusted R-squared:

130 on 2 and 71 DF,

0.7795

p-value: < 2.2e-16

Primeiramente, devemos notar que o coeciente do termo de correo de erro,


estimado ter o valor de

0.39,

ou seja, ele negativo.

1 ,

foi

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

## -28785 -12032

-2679

3Q

Max

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:

## F-statistic: 85.86 on 3 and 70 DF,

0.7771

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

PMC de longo prazo

11.12

0.33
= 0.84
0.39

Um pouco mais sobre cointegrao

No exemplo anterior deveriamos ser capazes de reverter a ordem das variveis, ou seja, colocar 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

## -77741 -14730

761

3Q

Max

15201

49655

##
## Coefficients:
##

Estimate Std. Error t value Pr(>|t|)

## (Intercept) -5.058e+03

5.820e+03

-0.869

102

0.388

## 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:

## F-statistic: 1.396e+04 on 1 and 73 DF,

0.9947

p-value: < 2.2e-16

Notem que obtemos os mesmos valores para as estatsticas

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
deve

Granger

I(1) so cointegradas, ento pelo menos uma das variveis

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
sejam

I(1)

yt

seja

I(0)

enquanto que

xt

zt

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
nunca poder ser cointegrada com uma varivel

O problema da metodologia de

I(1), por exemplo,

I(2).

Engle-Granger

que ela nos d no mximo um vetor

de cointegrao, independente do nmero de variveis envolvidas. Porm, se


esto envolvidas no processo, ento podem existir at

variveis

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

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.

second edition, 2008.

105

Springer, New York,

You might also like