Escolar Documentos
Profissional Documentos
Cultura Documentos
Ricardo Lima
Este arquivo ainda encontra-se em fase de construo. Logo, no deve ser citado e nem usado como
Sumrio
1 Introduo
5
R?
1.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
1.3
. . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
2 Comeando os trabalhos
2.1
7
7
11
. . . . . . . . . . . . . . . . .
11
3.1.1
Removendo sazonalidade . . . . . . . . . . . . . . . . . . . . . . . .
11
3.1.2
. . . . . . . . . . . . . . . . . . . . . . .
16
3.2
22
3.3
Defasagens no
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.4
24
4 Modelos univariados
26
4.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
. . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.3
Processos autoregressivos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.3.1
O operador de defasagem, L . . . . . . . . . . . . . . . . . . . . . .
33
4.3.2
Passeio aleatrio
34
4.3.3
4.3.4
Processos tendncia-estacionrios
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
drift
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
27
35
37
5 Funo de autocorrelao
38
40
6.1
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
69
9.2.4
71
peq
77
. . . . . . . . . . . . . .
77
77
78
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
81
11 Modelos multivariados
86
86
. . . . . . . . . . . . . . . . . . . . . . . . . .
88
88
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
88
89
. . . . . . . . . . . . . . . . . . . . . . .
89
. . . . . . . . . . . . . . . . . . . . . . . . .
89
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
. . . . . . . . . . . . .
90
. . . . . . . . . . . . .
91
91
11.8 Cointegrao
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
94
Engle-Granger
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
. . . . . . . . . . . . . . . . . . . . . . 102
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.
e, em seguida, o
RStudio.
AT Xutilizando o
produzir documentos L
E
seguida
Sweave.
AT X.
prprio L
E
.Rnw
knitr.
e em
Desta
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.
RStudio,
ou seja,
setwd("C:/Desktop/Nome/R/")
1.1
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 ).
\.
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.
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;
Automatizar/repetir procedimentos;
AT X,
(L
E
Mercado de trabalho (grandes empresas esto cada vez mais interessados em prossionais que saibam usar
R);
No usar R
AT X.
com o L
E
1.2
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
cross-section,
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
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
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
.txt e .csv.
de se trabalhar so
usando o
RStudio
R,
Import Dataset
no canto superior
direito.
Como primeiro exemplo vamos comear com um banco de dados disponvel no prprio
R no pacote pwt8.
PIB real
dividido pela
proxy,
.txt
e visua-
plot.
write.table(br, file='dados.txt')
Agora temos o arquivo
dados.txt
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
ts
est avisando ao
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
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
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
e se a varivel em
ou no ao desenvolvimento do PIB.
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
3.1
11
dummies.
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
Di
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
3 Sazonalidade
estocstica
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
dummies
sazonais.
Q <- ordered(cycle(pib))
pib.reg <- lm(pib~Q)
Utilizando o comando
summary
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:
##
## (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
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 26.27 on 90 degrees of freedom
## Multiple R-squared:
0.01159,Adjusted R-squared:
-0.02136
p-value: 0.7881
0.79 . Logo, no rejeitamos a hiptese nula de que no existe sazonalidade. Porm, para
ns didticos vamos assumir que rejeitamos a
H0
de dessazonalizar os dados.
Agora, olhemos para os resduos da regresso, ou seja, nossa srie dessazonalizada, e
o componente sazonal.
14
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
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
P IBt = + Anot + t
Aqui, assim como no caso da sazonalidade, se
for
podemos concluir que a srie em questo no possui uma tendncia linear. Desta forma,
se o valor de
representar
P IBt
removido de
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
2.344e+11
7.142e+11
##
## Coefficients:
##
## (Intercept) -4.046e+14
2.020e+13
## ano
1.009e+10
2.030e+11
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.422e+11 on 22 degrees of freedom
## Multiple R-squared:
0.9485,Adjusted R-squared:
0.9461
p-value: 1.175e-15
rejeitar a hiptese de que a srie no apresenta uma tendncia linear. Isto signica que
representa nossa srie sem tendncia, enquanto que
P[
IBt
17
0e+00
2e+12
4e+12
PIB
Tendncia
PIB sem tendncia linear
1990
1995
2000
2005
2010
yt = + 1 anot + 2 ano2t + t
Neste caso ser ento necessrio remover a parte quadrtica da tendncia.
Filtro Hodrick-Prescott
O ltro
Este permite
a existncia de uma tendncia mais exvel dado que ele no assume uma tendncia
perfeitamente linear.
Considere
cimento,
Xtg ,
Xt
t .
Xtc ,
um componente de cres-
Xt
como:
Xt = Xtc + Xtg + t
Seja
T
T
2
1X
X g
g 2
g
=
(Xt Xt ) +
(Xt+1 Xtg ) (Xtg Xt1
)
T t=1
T t=1
18
mais
Xtg
se
se aproxima de
Xtg = Xt .
Abaixo criamos uma funo que calcula o ltro HP para uma srie.
de
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.
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
di.
Com esta
n -sima diferena.
t.
A segunda diferena de
t.
No
xt xt4
t.
No
diff(x,4).
20
{xt }
diff(x,1,4)
ou
piblin, pibhp
dpib,
A sries
4e+11
0e+00
4e+11
dpib
piblin
pibhp
1995
2000
2005
2010
Ano
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
Como foi mostrado anteriormente, para calcular a correlao contempornea entre duas
sries
xt
yt
cor(x,y).
interessados na correlao entre duas variveis com uma defasagem maior entre elas.
Neste caso podemos utilizar a funo de correlao cruzada do
pibhp(t), pibhp(t-1)
pibhp(t+1).
22
piblin(t)
com
0.4
0.0
ACF
0.4
1.0
0.5
0.0
0.5
1.0
Lag
cc
##
## Autocorrelations of series 'X', by lag
##
##
-1
3.3
Defasagens no R
lag(x, k=n).
onde utilizamos
xt n
vezes utilizamos
lag(x, k=-n).
n, ou
n = 5.
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:
3.4
x, ou seja
24
Aqui
somente duas
absoluta
e a volatilidade
relativa.
xt tendencia(x)t
100 .
x = d.p.
tendencia(x)t
volatilidade
volatilidade
x/y =
d.p.(lnx)
.
d.p.(lny)
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
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;
ut .
A base lgica para a anlise univariada pode ser resumida, de certa forma, nos seguintes
pontos
3. Modelos tericos com defasagens da varivel dependente podem muitas vezes serem
reduzidos a modelos univariados relevantes.
Exemplo:
ct = 0 + 1 yt + 2 ct1 + t
(1)
y t = ct + i t
(2)
26
it = syt
onde
yt
(3)
a renda e
t N (0, 2 )
o investimento,
ct
o consumo,
que
ct = 0 + 1 yt + 2 ct1 + t
(4)
yt = ct + syt .
(5)
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 ).
4.1
(6)
A(1)
para o consumo.
Comeamos agora a denir alguns conceitos bsicos que iremos usar extensivamente ao
longo do curso.
Por
{Yt }2013
1950 = {Y1950 , Y1951 , . . . , Y2013 }.
{Yt }2013
1950
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).
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
Um processo
MA(1)
Yt = + t + t1
onde
t N (0, 2 ).
A mdia da srie
Yt
E{Yt } = E{ + t + t1 } = .
Calculando a varincia temos
Yt
Yt1
dada por
= E{(t + t1 )(t1 + t2 )}
= E{(2t1 )}
= 2
Finalmente, a autocovarincia entre
Yt
Yt2
dada por
MA(1),
teremos que
, deste processo?
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
|| < 1,
este processo
MA(q)
MA(1)
AR().
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)
4.3
Processos autoregressivos
Yt = + Yt1 + t
onde, mais uma vez, assumimos que
t N (0, 2 ).
Calculando a esperana deste processo temos
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.
a/(1 r)
Se
n .
quando
Se
|r| 1,
a 6= 0.
Caso
0.
AR(1),
redena
y t = Y t ,
logo
= 2 + 2 E{(yt2 + t2 )2 } = . . .
= 2 (1 + 2 + 4 + + )
=
Ainda tomando
y t = Y t ,
2
.
1 2
2
|| < 1.
1 2
cov{yt , ytk } =
De modo a visualizar um processo
yt
ytk
k 2
|| < 1.
1 2
AR(1)
32
3
2
1
2
Yt
20
40
60
80
100
Time
Figura 2: Processo
AR(1)
= 1
com
= 0.8.
AR(1)
|| < 1.
Um processo autoregressivo de
t N (0, 2 ).
A condio de estacionaridade para o processo generalizado
AR(p)
que o inverso
MA().
AR(1)
L.
Propriedades bsicas:
1.
L =
2.
Lxt = xt1
33
3.
4.
5.
MA().
AR(1)
AR(1) como
xt = xt1 + t
onde
|| < 1.
xt = Lxt + t = (1 L)xt = t
xt =
O ltimo passo s ser possvel se
|| < 1,
t
1 L
(1 L)
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.
Yt = Yt1 + t
Que tal vermos se este processo estacionrio ou no?
T
X
1
34
t } = Y 0
T
X
t Y 0 ) } =
T
X
2 = T 2
Raz unitria:
=1
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.
d, ou I(d).
I(1).
I(0).
drift
drift
6= 0.
A(1)
dado por
Yt = + Yt1 + t
Tendncia estocstica:
A srie
Yt
35
drift .
Este
drift
tambm chamado
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.
calculada como
T
X
2t } = T 2
1
Assim como com o passeio aleatrio anterior, podemos tornar o passeio aleatrio com
drift
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
5
0
Yt , Yt
10
Yt
Yt
20
40
60
80
100
Time
6= 0, || < 1
t.
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
da srie original. Processos como este, que podem ser tornados estacionrios
H-P,
serem lineares.
37
Funo de autocorrelao
k ,
k -sima
ordem de autocovarincia,
como
k =
k
k
cov{Yt , Ytk }
=
V {Yt }
0
Yt
ACF
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
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
ACF
ACF
de uma srie.
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
1.0
10
15
20
10
15
Lag
Lag
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
39
PACF,
AR(2)
Yt = + 1 Yt1 + 2 Yt2 + t .
O parmetro
efeitos de
Yt1 .
Assim,
Yt
Yt2
retirado os
2 = r13,2 =
Assim como para as autocorrelaes, o
2 21
.
1 2
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
0.6
0.0
0.8
0.2
10
15
20
10
15
Lag
20
0.2
Lag
0.3
0.4
0.1
0.2
Yt
0.0
0.1
Yt
0.4
Yt
0.2
Yt
0.4
0.2
0.6
0.0
0.8
0.2
10
15
20
Lag
10
15
20
Lag
6.1
ACF
2. uma
PACF
J o processo
1. Uma
ACF
2. uma
PACF
AR(p)
descrito por
MA(q)
p.
caracterizado por
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.
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
7.1
O objetivo da anlise
AR e MA.
Box-Jenkins
A metodologia
1. Identicao
peq
2. Estimao
43
SARIMA.
10
tente
por
OLS, OLS
(b) Modelos puramente caracterizados por mdias mveis podem ser estimados de
maneira consistente por
(c) Modelos
ARMA
OLS
OLS
no
3. Diagnstico
44
Testes de estacionaridade
d, de uma srie11 .
Box-Jenkins
o de deter-
8.1
O teste de Dickey-Fuller
Yt = Yt1 + t
onde
iid
t N (0, 2 ).
Se
|| < 1
|| = 1
o processo apresentar
uma raz unitria e, portanto, ser no estcionrio. Logo, o teste de raz unitria testa se
=1
=1
e, consequentemente,
12
H0 : = 0
Yt
= 0.
Desta forma, se
=0
H1 : < 0,
logo trata-se de um
DF
11 Aqui abordamos somente mtodos simples para remover sazonalidade dos dados e, para o nosso
objetivo, assumiremos que estes sero sucientes.
H0
t -valor do coeciente
45
yt ,
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
13
summary(lm(diff(yt)~lag(yt,-1)[-length(yt)] - 1))
##
1,
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
0.008372
0.475
0.636
##
## Residual standard error: 0.9889 on 198 degrees of freedom
## Multiple R-squared:
0.001137,Adjusted R-squared:
-0.003908
p-value: 0.6355
t.
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,
14
no estacionria
15
urca.
DF.
a hiptese nula. Isto pode ser vericado se lembrarmos que a estatstica de teste s ser positiva se valer
que
> 1,
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
## 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:
1pct
5pct 10pct
48
-0.003908
p-value: 0.6355
ur.df
para o nosso teste, logo no precisamos ter a tabela por perto. Agora a nica que resta
fazer comparar o valor de
H0 : = 0,
Se
t<
t > ,
Agora devemos
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
2015
Min
1Q
Median
3Q
Max
## z.lag.1 -0.95564
0.07071
-13.52
<2e-16 ***
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9844 on 197 degrees of freedom
## Multiple R-squared:
0.4811,Adjusted R-squared:
0.4785
##
##
## Value of test-statistic is: -13.5146
##
## Critical values for test statistics:
##
1pct
5pct 10pct
= 0,
i.e.
Dickey-Fuller
a srie
yt
I(1).
Ou
seja,
Se
t<
Rejeita-se
H0 : = 0
yt
ns que criamos ele. Como pode ser visto abaixo no cdigo que utilizamos, a srie
um passeio aleatrio.
50
yt
DF
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
tambm
8.2
Quando o valor verdadeiro do nosso parmetro varia muito em relao a nossa hiptese
nula (por exemplo, no caso de um processo
AR(1), = 0.01
e nossa
H0
= 1)
Do contrrio, se es-
O Poder do Teste:
= 0.98
H0
de
= 1).
do tipo II, isto , a probabilidade de se rejeitar a hiptese nula quando ela efetivamente
falsa
16
DF
ADF
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.
17
8.3
O teste
tk
DF
para todo
Em se tratando de dados
cross-section a existncia de
DF
DF
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
exemplo).
52
8.4
O teste de Phillips-Perron
DF
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
DF
19
20
ADF.
=1
. O teste
Newey-West
para estimar
< 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.
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
8.5
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
=0
dado que
= 0
hiptese (
=0
21
t.
No rejeitando esta
= 0| = 0)
= 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
se rejeitarmos podemos concluir que a srie possui raz unitria, caso contrrio,
= 023 .
Se rejeitarmos
= 0| = 0
drift.
=0
=0
= 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,
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 .
drift
drift
56
24
25
. Vejamos a seguir um
table17-2.txt,
ADF
sequencial
os dados so anuais e
Como o
nosso interesse a renda disponvel (PPDI) iremos extrair somente esta varivel do arquivo.
18000
14000
22000
Renda disponvel
1970
1975
1980
1985
1990
1995
2000
Ano
ur.df.
57
3 )
Como podemos ver, a srie tem uma clara tendncia positiva. Logo, devemos testar
pela presena de um processo de raz unitria.
26
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.
0.5
0.0
ACF
0.5
1.0
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
3 f requencia
58
0.5
0.0
ACF
0.5
1.0
10
12
14
Defasagem
59
0.5
0.0
ACF
0.5
1.0
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_
=0
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:
##
## (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:
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
5.13
4.31
## phi3 9.31
6.73
5.61
Dado que
t > 3 ,
= 0,
portanto devemos
procurar aumentar o poder do teste. Para isso podemos testar se a tendncia estatisticamente signicativa com a hiptese
por
= 0| = 0.
que, utilizando um nvel de signicncia de 5%, igual a 6.73. Como estamos que-
= 0| = 0,
Como
= 0| = 0, a estatstica
F < 3 ,
no podemos rejeitar
logo podemos concluir que o termo da tendncia pode ser retirado para
Agora que a tendncia determinstica foi retirada devemos refazer estes procedimentos
utilizando uma constante, ou o
61
Min
1Q
Median
3Q
Max
## -574.47 -140.23
-7.91
132.03
771.88
##
## Coefficients:
##
## (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:
p-value: 0.8557
##
##
## Value of test-statistic is: 0.1836 21.9026
##
## Critical values for test statistics:
##
1pct
5pct 10pct
62
-0.03574
4.86
3.94
2 = 2.93.
0,
t = 0.18 >
drift
27
= 0| = 0,
= 0| =
da regresso de teste.
=0
t = 0.18 > 0,
28
podemos concluir
com o
de
Completar com:
63
> 1
e,
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
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
Box-Jenkins
1. Identicao
peq
2. Estimao
29
tente
por
OLS, OLS
(b) Modelos puramente caracterizados por mdias mveis podem ser estimados de
maneira consistente por
OLS
64
(c) Modelos
ARMA
OLS
no
3. Diagnstico
9.2
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
IPCA
IPCA dessazonalizado
0.0
0.2
0.4
0.6
0.8
2008
2010
2012
2014
Ano
Como pode ser visto, a retirada da sazonalidade determinstica teve basicamente zero
efeito sobre nossa srie. Logo, as
dummies
65
ADF
30
, vericando o
ACF
0.2
0.2
ACF
0.6
1.0
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 #
## ###############################################
66
##
## Test regression drift
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
##
## Residuals:
##
Min
1Q
Median
3Q
Max
## (Intercept) 0.47659
0.08553
## z.lag.1
-1.02606
0.18080
## z.diff.lag1 0.57071
0.15813
## z.diff.lag2 0.42860
0.14605
2.935 0.004370 **
## z.diff.lag3 0.47473
0.13354
## 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 *
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:
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
4.71
3.86
H0 :
= 0.
Como
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
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
0.0
0.5
1.0
1.5
0.2
0.2
Partial ACF
0.6
Lag
0.5
1.0
1.5
Lag
ACF
bastante
signicante. Apesar de ser bem difcil identicar a partir dos correlogramas um modelo
ARMA(2,2)
signicantes.
ARMA(2,2).
coeftest(arima(ipcad, order=c(2,0,2)))
##
## z test of coefficients:
##
##
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 ***
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ordem e maior
coeftest(arima(ipcad, order=c(2,0,1)))
##
## z test of coefficients:
##
##
## 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 ***
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
coeftest(arima(ipcad, order=c(1,0,1)))
##
## z test of coefficients:
##
##
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 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
coeftest(arima(ipcad, order=c(1,0,0)))
##
## z test of coefficients:
##
##
## ar1
0.583238
## intercept 0.454794
0.082428
Pr(>|z|)
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
32
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
Ljung-Box.
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
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
Ljung-Box
1.5
Ljung-Box.
Primeiro,
Ljung-Box
a stima defasagem.
0.6
0.4
0.2
IPCA (%)
0.8
0.0
IPCA
Mdia
J
n -sima
Ljung-Box
desde a primeira
Ljung-Box
utilizando a opo
lag
indo de 1 at
uma funo?
74
So neste
n.
shapiro.test(resid(reg.ipca))
##
##
##
## data: resid(reg.ipca)
## W = 0.9911, p-value = 0.7874
Como o
p -valor
normalmente distribudos.
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)
ARMA(2,2) ?
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
34
era resultado de uma funo, algo que facilita bastante nossas operaes
podemos concluir que nosso modelo
de acordo com o
AIC.
76
. Alm disso,
10
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
IT = {Y , . . . , YT },
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
AR
simples
Yt = Yt1 + t
Assumindo este processo, temos que
YT +1 = YT +T +1 e, consequentemente, o preditor
= 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.
= 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
YT +h|T = h YT .
Caso o processo
AR(1)
Yt = + Yt1 + t ,
teremos
YT +h|T = + h (YT )
Yt = t + t1 .
Logo, temos que
YT +1 = T +1 + T
= E {T +1 + T |YT , . . . , YT }
= E {T |YT , . . . , YT }
YT +1|T = T .
Para o caso de dois passos frente teremos
= 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
predict
respectivos desvios-padro. Podemos utilizar estas sries para fazer um grco mostrando
nossas previses.
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
2013.0
2014.0
2015.0
2013.0
Time
2014.0
2015.0
Time
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
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
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 =
PT
EAM =
t=1
|
t |
Note primeiro que as duas medidas esto na mesma unidade que a varivel de interesse,
Yt ,
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).
ARMA(1,1).
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.
35 No caso do EAM todos os erros recebem o mesmo peso, enquanto que no caso do REQM erros
menores receberem pesos menores.
82
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
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.
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
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,
1.
Consequentemente, um modelo
ADL(p)
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
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
E(Yt ) = E(Yt1 )
E(Yt ) = E(Yt1 ).
Desta
(1 1 )E(Yt ) = + (0 + 1 )E(Xt )
E(Yt ) =
0 + 1
+
E(Xt )38
(1 1 )
1 1
Yt
0 + 1
=
.
Xt
1 1
Yt = + Xt , onde
prazo.
87
11.2
Yt1
0 Xt1
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.
Box-Pierce, Ljung-Box
Breusch-Godfrey,
Breusch-Pagan / LM e Ljung-Box
White,
11.4
Causalidade de Granger
Se valores passados de
ou simplesmente
X Y.
Y,
X Granger
causa
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
Y X.
Trocando a
Xt =
n
X
i Xti +
1
Onde, se valer que
11.5
Pn
1
i 6= 0,
n
X
i Yti + 2t .
Y X.
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.
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
hiptese.
= .
E()
A varincia de
dado
seja
t,
ou
zero,
Corr(t , s |X) = 0 t 6= s.
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.
seguem as distribuies
F,
11.6
H5 Ausncia de autocorrelao
Corr(t , s |xt , xs ) = 0.
Sob as hipteses
H1-H5
os
t, F
LM
so assintticamente vlidos.
90
11.7
Xt
Yt
Xt = Xt1 + Xt
Yt = Yt1 + Y t
onde
i.i.d.
Xt , Y t (0, 1).
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
91
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
##
Min
1Q
Median
3Q
Max
## -11.2269 -2.8512
-0.1129
2.9624
12.4666
##
## Coefficients:
##
## (Intercept)
8.3356
0.3613
## x
0.7510
0.0959
23.073
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:
R2
0.2326
p-value: 2.883e-13
Xt
altamente signicativo.
drift
nas sries
40
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:
##
## (Intercept) -5.650790
0.431231 -13.10
<2e-16 ***
## xd
0.006627
<2e-16 ***
0.207911
31.37
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:
drift
0.8317
11.8
Cointegrao
Xt
Yt ,
como a seguir
41
Xt = Xt1 + Xt
Yt = Xt + Y t .
A relao entre
Xt
Yt
[1, ].
Este
vetor comumente chamado de vetor cointegrante, isto porque ele o vetor que gera uma
combinao estacionria de
Xt
Yt .
Xt
93
Y t .
Denio
As variveis
Xt
Yt
Y t = Yt Xt ,
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
Xt .
Se
ut
ut
Yt
Xt
serem no
Logo,
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
11.9
no so cointegrados. Porm, se
Yt
so cointegrados
42
for
I(0)
no podemos
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
Yt = + Xt + ut .
Se
Xt
Yt
so
I(1)
os erros de equilbrio de volta para zero. Este algo justamente o erro de equilbrio do
modelo de correo de erro.
11.10
C = f (Y ) = Y.
Assumimos comumente que quando a renda aumenta o consumo aumenta, porm em
proporo menor, ou seja
0<
C
= < 1.
Y
95
Consumo final
Renda disponvel bruta
200000 600000
R$
1200000
2000
2005
Yt
Xt
eram
2010
2015
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
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))
##
## ###############################################################
97
I(1).
Min
1Q Median
## -40789 -12108
-622
3Q
Max
11385
67986
##
## Coefficients:
##
## (Intercept) 6.823e+03
4.818e+03
## renda
7.046e-03 118.170
8.326e-01
1.416
0.161
<2e-16 ***
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 20590 on 73 degrees of freedom
## Multiple R-squared:
0.9948,Adjusted R-squared:
0.9947
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
dfdistab7b.pdf.
Como podemos
de valor 0.83, pode ser interpretado como a PMC de longo prazo. Agora,
ut
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:
##
0.83767
## u
-0.39301
-0.011 0.991422
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:
0.7795
0.39,
1 ,
foi
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.
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
seguinte equao
100
summary(ecm2)
##
## Call:
## lm(formula = dCons ~ dRenda + cCons + cRenda)
##
## Residuals:
##
Min
1Q Median
## -28785 -12032
-2679
3Q
Max
10180
59321
##
## Coefficients:
##
0.234 0.815294
## dRenda
0.83410
## cCons
-0.39302
## cRenda
0.33023
0.08416
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 16760 on 70 degrees of freedom
## Multiple R-squared:
0.7863,Adjusted R-squared:
0.7771
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
11.12
0.33
= 0.84
0.39
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.
summary(reg2)
##
## Call:
## lm(formula = renda ~ cons)
##
## Residuals:
##
Min
1Q Median
## -77741 -14730
761
3Q
Max
15201
49655
##
## Coefficients:
##
## (Intercept) -5.058e+03
5.820e+03
-0.869
102
0.388
## cons
1.195e+00
1.011e-02 118.170
<2e-16 ***
0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 24660 on 73 degrees of freedom
## Multiple R-squared:
0.9948,Adjusted R-squared:
0.9947
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.
Granger
I(1)
yt
seja
I(0)
enquanto que
xt
zt
yt = + xt + zt + t .
Dada esta relao temos que
t I(0)
se, somente se
(xt + zt ) I(0).
O problema da metodologia de
I(2).
Engle-Granger
variveis
n 1 vetores cointegrantes.
O vetor
103
A metodologia de
Johansen
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.
431, 1979.
Enders, W.
Wiley, 2009.
Pfa, B.
105