Você está na página 1de 14

Modelos de Sries Temporais no Stata

Henrique Dantas Neder - Professor Associado Universidade Federal de Uberlndia

Introduo a Modelos Arima

O comando arima do Stata estima modelos ARIMA padres que so autoregressivos na varivel dependente e modelos estruturais com perturbaes (erros)
ARMA. Considere um processo autoregressivo de mdias mveis de primeira
ordem. O comando arima estima todos os parmetros no modelo:
yt = xt + t equao estrutural
t = t1 + t1 + t perturbao aleatria (erro), ARMA(1,1)
onde:
o parmetro de autocorrelao de primeira ordem
o parmetro de mdias mveis de primeira ordem
t ~i.i.d. N(0, 2 ), signicando que t um ruido branco
Podemos combinar as duas equaes e escrever um modelo na forma geral
ARMA(p,q) no processo de perturbaes como:

yt = xt +1 (yt1 xt1 )+2 (yt2 xt2 ) + ... + p (ytp xtp ) (1)


+1 t1 + 2 t2 + ... + q tq + t
tambm comum escrever a forma geral do modelo ARMA de uma forma
sucinta usando a notao do operador de lag:
(Lp )(yt xt ) = (Lq )t
onde:
Lp = 1 1 L 2 L2 ... p Lp
Lq = 1 + 1 L + 2 L2 + ... + q Lp
e Lj yt = ytj

Modelos ARIMA

Modelos ARIMA puros sem a componente estrutural no tem regressores e so


frequentemente escritos como autoregresses na varivel dependente ao invs de
Este texto baseado em uma traduo livre de diversas partes do Manual de Sries
Temporais do Stata (que acompanha o software e pode ser visualizado atravs do menu Help
- Documentation)

autoregresses na perturbao (erro) aleatrio de uma equao estrutural. Por


exemplo, um modelo ARMA(1,1) pode ser escrito como:
yt = + yt1 + t1 + t
Exemplo 1: Modelo ARIMA
Enders (2004, 8793) considera um modelo ARMA para a srie de preos
ao atacado dos Estados Unidos (WPI) usando dados trimestrais para o perodo
1960q1 at 1990q4, O modelo ARIMA mais simples que inclui uma diferenciao
prvia da srie original e tanto componentes autoregressivas como de mdias
mveis a especicao ARIMA(1,1,1), Ns podemos ajustar este modelo com
o comando arima atravs de:
[]
arima wpi, arima(1,1,1)

Podemos ver atravs dos resultados acima que o coeciente AR(1) 0,874,
o coeciente MA(1) -0,412 (sendo que estes dois parmetros so altamente
signicativos) e o desvio padro do termo de ruido branco t estimado 0,725.
2

Indice de Preos ao Atacado - EUA diferena dos logs


.08

Indice de Preos ao Atacado - EUA

20

-.02

40

.02

D.ln_wpi

.04

U.S. Wholesale Price Index


60
80

.06

100

120

Este modelo tambm pode ser estimado usando o comando:


arima D.wpi, ar(1) ma(1)
Neste ltimo caso estamos previamente aplicando o operador diferena D. a
srie para depois modelar a srie diferenciada como um processo ARMA(1,1).
Modelar a srie original como um processo ARIMA(1,1,1) equivalente a modelar a srie original diferenciada como um processo ARMA(1,1).
Se yt a srie de preos ao atacado dos EUA ento estimamos um modelo
ARIMA com a seguinte equao:
D.yt = 0, 749 + 0, 874D.yt1 0, 412t1 + t
com t = 0, 725
Exemplo 2: Aps examinar as primeiras diferenas da srie WPI, Enders
escolhe um modelo de diferenas aplicado ao logaritimo natural da srie original
para estabilizar a varincia da srie diferenciada. Os dados brutos e a primeira
diferena do logaritimo da sries pode ser representado gracamente atravs do
comando:
tsset t, quarterly
twoway (tsline wpi), title(Indice de Preos ao Atacado - EUA) name(graco1)
twoway (tsline D.ln_wpi), title(Indice de Preos ao Atacado - EUA diferena
dos logs) name(graco2) yline(0)
graph combine graco1 graco2, commonscheme xsize(10) ysize(5)

1960q1

1970q1

1980q1

1990q1

quarterly date

1960q1

1970q1

1980q1

1990q1

quarterly date

Com base nas autocorrelaes, autocorrelaes parciais (ver grcos abaixo)


e os resultados de estimaes preliminares, Enders identicou um modelo ARMA
sob a sries log-diferenciada.
ac D.ln_wpi, ylabels(-.4(.2).6) name(graco3)
pac D.ln_wpi, ylabels(-.4(.2).6) name(graco4)
graph combine graco3 graco4, commonscheme xsize(10) ysize(5)

0.60

0.60

Partial autocorrelations of D.ln_wpi


-0.20
0.00
0.20
0.40

0.40
Autocorrelations of D.ln_wpi
0.00
0.20

-0.40

-0.20
-0.40
0

10

20
Lag

30

40

Bartlett's formula for MA(q) 95% confidence bands

10

20
Lag

30

40

95% Confidence bands [se = 1/sqrt(n)]

Em adio ao termo autoregressivo e ao ao termo MA(1), um termo MA(4)


incluido para levar em conta o efeito trimestral remanescente. Portanto, o
modelo a ser ajustado :
ln(wpit ) = 0 + 1 {ln(wpit1 0 ) + 1 t1 + 4 t4 + t
Podemos estimar este modelo com o comando arima:
arima D.ln_wpi, ar(1) ma(1 4)

Modelos ARIMA com sazonalidade multiplicativa

Muitas sries temporais exibem um componente peridico sazonal e o modelo


ARIMA sazonal comumente chamado de SARIMA pode ser usado. Por exemplo, dados de vendas mensais de aparelhos de ar condicionado tem uma forte
componente sazonal, com vendas altas nos meses de vero e baixas nos meses
de inverno. No exemplo anterior levamos em conta efeitos trimestrais ao ajustar
um modelo:

(1 1 L){ln(wpit ) 0 } = (1 + 1 L + 4 L4 )t

(2)

Este um modelo ARIMA com sazonalidade aditiva, no sentido de que


os termos MA de primeira e de quarta ordem so especicados aditivamente
5

na equao (1 + 1 L + 4 L4 ). Outra forma de considerar o efeito trimestral


ajustar um modelo ARIMA com sazonalidade multiplicativa. Um modelo
SARIMA multiplicativo de ordem (1, 1, 1)(0, 0, 1)4 para a srie ln(wpit ) :

(1 1 L){ln(wpit ) 0 } = (1 + 1 L)(1 + 4,1 L4 )t

(3)

ou aps expandir os termos:

ln(wpit ) = 0 + 1 {ln(wpit1 ) 0 } + 1 t1 + 4,1 t4 + 1 4 t5 + t (4)


Na notao (1, 1, 1) (0, 0, 1)4 , o termo (1, 1, 1) signica que h um termo
autoregressivo no sazonal (1 1 L) e um termo de mdias mveis no sazonal
(1 + 1 L) e que a srie temporal diferenciada uma vez no tempo. O termo
(0, 0, 1)4 indica que no h um termo autoregressivo sazonal, indica que h um
termo de mdias mveis sazonal (1 + 4,1 L4 ) e que a srie no diferenciada
sazonalmente. Este conhecido como modelo SARIMA multiplicativo porque
os fatores sazonais e no sazonais trabalham de forma multiplicativa: (1 +
1 L)(1 + 4,1 L4 ). Multiplicando-se os termos impomos restries no lineares
aos parmetros dos termos de defasagem de quinta ordem dos valores da srie
temporal; o comando arima impe estas restries automaticamente.
Para melhor esclarecer esta notao, considere um modelo multiplicativo
SARIMA (2, 1, 1) (1, 1, 2)4 :

(1 1 L 2 L2 )(1 4,1 L4 )4 zt = (1 + 1 L)(1 + 4,1 L4 + 4,2 L8 )t

(5)

onde denota o operador diferena yt = yt yt1 e s denota o operador


de diferena sazonal de lag s s yt = yt yts
Expandindo a ltima expresso temos:

zt = 1 zt1 +2 zt2 +4,1 zt4 1 4,1 zt5 2 4,2 zt6 +1 t1 +4,1 t4 +1 4,1 t5 +4,2 t8 +1 4,2 t9 +t
(6)
onde zt = 4 zt = (zt zt4 ) = (zt zt1 ) (zt4 zt5 )
e zt = yt xt se regressores so incluidos no modelo.
Mais geralmente um modelo multiplicativo SARIMA (p, d, q) (P, D, Q)s :
p
(L )s (LP )d D
t = (Lq )s (LQ )t
s z
onde:
s (LP ) = (1 s,1 Ls s,2 L2s ... s,P LP s
(LQ ) = (1 + s,1 Ls + s,2 L2s ... s,Q s,P LQs
Se o grco dos dados sugerem que o efeito sazonal proporcional a mdia
da srie, ento o efeito sazonal provavelmente multiplicativo e um modelo
SARIMA multiplicativo pode ser apropriado. Box, Jenkins, and Reinsel (2008,
sec. 9.3.1) sugerem comear com um modelo SARIMA com quaisquer dados
que exibirem um padro sazonal e depois explorar modelos no multiplicativos
SARIMA se os modelos multiplicativos no se ajustarem bem aos dados. Por
6

outro lado, Chateld (2004, 14) sugere que tomar logaritimo da srie tornar o
efeito sazonal aditivo e neste caso um modelo SARIMA aditivo como o ajustado
no exemplo anterior seria apropriado. Em resumo, o analista deve tentar tanto
o SARIMA aditivo como o SARIMA multiplicativo e vericar qual dos dois
fornece melhor ajuste aos dados e melhores previses.
Exemplo 3: Modelo SARIMA multiplicativo
Uma das mais comuns especicaes SARIMA o (0, 1, 1) (0, 1, 1)12 aplicado aos dados de linhas areas de Box, Jenkins, and Reinsel (2008, sec. 9.2).
O conjunto de dados airline.dta contem dados mensais de passageiros de linhas areas internacionais de janeiro de 1949 a dezembro de 1960. Aps uma
primeira diferenciao e uma diferenciao sazonal no podemos suspeitar de
uma componente de tendncia nos dados e ento usamos a opo nocontant com
o comando arima:
use http://www.stata-press.com/data/r13/air2
generate lnair = ln(air)
arima lnair, arima(0,1,1) sarima(0,1,1,12) noconstant

[]Portanto, o nosso modelo estimado de nmero mensal de passgeiros de


linhas internacionais :
12 lnairt = 0, 402t1 0, 557t12 + 0, 224t13 + t

 = 0, 037
O coeciente de t13 (0,224) aproximadamente igual ao produto dos coecientes det1 (0, 402) e t12 (0, 557) . O comando arima designou o termo
DS12.lnair para indicar que foi aplicado o operador diferena e o operador
de diferena sazonal de 12 lags 12 a srie lnair. Podemos tambm ajustar o
mesmo modelo atravs do comando:
arima DS12.lnair, ma(1) mma(1, 12) noconstant
Para modelos multiplicativos SARIMA mais simples mais fcil usar a opo
sarima(), embora esta segunda sintaxe permita incorporar termos sazonais mais
complicados.

Previses dinmicas aps o arima

Outra caracterstica do comando arima sua habilidade para utilizar o comando


predict logo aps a estimao do modelo para fazer previses dinmicas para a
srie temporal. Suponha que desejamos ajustar o modelo de regresso:
yt = 0 + 1 xt + yt1 + t
usando uma amostra de dados det = 1, .., T e fazer previses comeando no
tempo f . Se usamos o comando regress para ajustar o modelo, ento podemos
usar o comando predict para fazer previses um passo a frente. Ou seja, o
comando predict calcular:
yf = 0 + 1 xf + yf 1
O que importante destacar aqui que o comando predict usar o valor
efetivo de y no perodof 1para calcular a previso no perodo f . Portanto, se
usarmos o comando regress no podemos fazer previses para perodos adiante
de f = T + 1 a menos que tenhamos valores observados para y para estes
perodos.
Se ao invs disso ajustrarmos nosso modelo atravs do comando arima, ento
o comando predict pode preduzir previses dinmicas atravs do uso do ltro
de Kalman. Se usamos a opo dynamic(f ) , ento para o perodo f o comando
predict calcular:
yf = 0 + 1 xf + yf 1
atravs do uso do valor observado de yf 1 justamente como quando usamos
o comando predict aps o comando regress. Entretando, para o perodo f + 1 o
comando predict < newvar >, dynamic(f ) calcular:
yf +1 = 0 + 1 xf +1 + yf
usando o valor predito de yf ao invs do valor observado. De forma similar,
para o perodo f + 2, a previso ser:
yf +2 = 0 + 1 xf +2 + yf +1
Naturalmente, como o nosso modelo inclui o regressor xt , podemos fazer
previses apenas para perodos para os quais temos observaes para xt . Entretanto, para modelos ARIMA puros, podemos calcular previses dinmicas
muito alm do perodo nal de nosso conjunto de dados se assim desejarmos.
No exemplo 2 ajustamos o seguinte modelo:
ln(wpit ) = 0 + 1 {ln(wpit1 ) 0 } + 1 t1 + 4 t4 + t
atravs dos comandos:
use http://www.stata-press.com/data/r13/wpi1
arima D.ln_wpi, ar(1) ma(1 4)
(resultados omitidos)
predict xb,xb
E o Stata calcula xbt como:
xbt = 0 + 1 {ln(wpit1 ) 0 } + 1 t1 + 4 t4 + t
onde (
ln(wpitj ) xbtj
tj >0
tj =
0
em caso contr
ario

signicando que o comando predict newvar,xb calcula predies usando a


mtrica da varivel dependente. Neste exemplo, a varivel dependente representada pelas mudanas em ln(wpit ) e portanto, as predies so, da mesma
forma, mudanas nesta varivel.
Se, ao invs, usamos:
predict y, y
Stata calcula yt como yt = xbt +ln(wpit ) de forma que yt representa os nveis
preditos de ln(wpit ). Em geral predict newvar, y reverter qualquer operador
de srie temporal aplicado a varivel dependente durante a estimao.
Se ns queremos ignorar os componentes de erro ARMA quando fazemos as
predies, usamos a opo structural:
predict xbs, xb structural
que gera xbst = 0 porque no h regressores no modelo e
predict ys, y structural
gera yst = 0 + ln(wpit1 )
Exemplo 4: Previses dinmicas
Uma caracterstica atrativa do comando arima sua habilidade para fazer
previses dinmicas. Suponhamos que queiramos estimar uma funo consumo
como:
consumpt = 0 + 1 m2t + t
t = t1 + t1 + t
Primeiro, ns estimaremos o modelo usando os dados at o primeiro trimestes
de 1978 e ento calcularemos as previses um passo adiante e as previses
dinmicas.
use http://www.stata-press.com/data/r13/friedman2
keep if time<=tq(1981q4)
arima consump m2 if tin(, 1978q1), ar(1) ma(1)
(resultados omitidos)
Para fazer as previses um passo adiante:
predict chat, y
Porque nossa varivel dependente no contem operadores de sries temporais
poderamos ter usado predict chat, xb e teriamos obtido os mesmos resultados.
Faremos tambm previses dinmicas, mudando dos valores observados de consump para os valores previstos no primeiro trimestre de 1978:
predict chatdy y, dynamic(tq(1978q1)) y
twoway (line consump time, lwidth(medthick) lpattern(dot)) (line chat time,
lpattern(dash)) (line chatdy time) if time>=tq(1977q1), ytitle(Bilhes de dlares)
xtitle(trimestre)

10

2000
Bilhes de dlares
1400
1600
1800
1200
1977q1

1978q1

1979q1
1980q1
trimestre

srie observada
previso dinmica

1981q1

1982q1

previso um passo a frente

Aplicao de modelos ARIMA para sries de


preos

use indices de preos.dta, clear


gen time = _n
tsset time
twoway (line Vestuario time), xlabel(#44, labsize(vsmall) grid)
gen dvestuario = Vestuario - L12.Vestuario
twoway (line dvestuario time), xlabel(#44, labsize(vsmall) grid)

11

200
150
Vestuario
100
50
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88

time

A srie apresenta um padro cclico com padro nitidamente sazonal.


importante observar que os picos de preo ocorrem sempre no mes de dezembro,
sugerindo um processo de formao de preos nitidamente inuenciado pela
demanda. Os pontos mais baixos da srie costumam ocorrer no ms de fevereiro.
A srie (deacionada) parece tambm ser estacionria. Podemos vericar isto
atravs do comando <dfuller Vestuario>. Vamos tentar modelar a srie usando
inicialmente um modelo SARIMA (0, 0, 1) (1, 1, 10)12 e depois tentando outras
especicaes:
ac dvestuario
pac dvestuario
arima Vestuario, arima(0,0,1) sarima(1,1,0,12) noconstant
estimates store modelo1
arima Vestuario, arima(1,0,0) sarima(1,1,0,12) noconstant
estimates store modelo2
arima Vestuario, arima(0,0,0) sarima(1,1,0,12) noconstant
estimates store modelo3
arima Vestuario, arima(1,0,1) sarima(1,1,0,12) noconstant
estimates store modelo4
estimates stats modelo1 modelo2 modelo3 modelo4
estimates restore modelo4
ac dvestuario
pac dvestuario
arima Vestuario, arima(0,0,1) sarima(1,1,0,12) noconstant
estimates store modelo1
arima Vestuario, arima(1,0,0) sarima(1,1,0,12) noconstant

12

estimates store modelo2


arima Vestuario, arima(0,0,0) sarima(1,1,0,12) noconstant
estimates store modelo3
arima Vestuario, arima(1,0,1) sarima(1,1,0,12) noconstant
estimates store modelo4
estimates stats modelo1 modelo2 modelo3 modelo4
Model

Obs

ll(null)

ll(model)

df

AIC

BIC

modelo1
modelo2
modelo3
modelo4

76
76
76
76

.
.
.
.

-260.9831
-258.7182
-264.7449
-254.9083

3
3
2
4

527.9662
523.4363
533.4899
517.8166

534.9584
530.4285
538.1513
527.1395

Note:

N=Obs used in calculating BIC; see [R] BIC note

-0.40

Autocorrelations of ruido
-0.20
0.00
0.20

0.40

O ltimo modelo (modelo4) parece ser o que pelos critrios (mxima verossimilhana, AIC e BIC) o que melhor se ajusta aos dados.
estimates restore modelo4
predict ruido, residuals
twoway (line ruido time)
ac ruido

10

20
Lag

Bartlett's formula for MA(q) 95% confidence bands

predict chat, y
predict chatdy, dynamic(70) y
label var Vestuario "srie observada"
label var chat "previso um passo a frente"
label var chatdy "previso dinmica"
13

30

40

200
ndice de preos vesturio
100
150
50
60

70

80
ms

srie observada
previso dinmica

previso um passo a frente

14

90

Você também pode gostar