Estimando modelo ARIMA no Software R - FACE

Transcrição

Estimando modelo ARIMA no Software R - FACE
SÉRIE DE NOTAS TÉCNICAS EM ECONOMIA DA UFG
NT N. 02
NOTA TÉCNICA EM ECONOMIA
n. 02
Publicação cujo objetivo é auxiliar na elaboração de
aulas e de pesquisas do Curso de Ciências
Econômicas da UFG, divulgando demonstrações
técnicas e metodológicas ou rotinas computacionais
voltadas para a economia.
As opiniões contidas nesta publicação não
representam o ponto de vista do NEPEC ou da
FACE/UFG, sendo de inteira responsabilidade de
seu(s) autor(es).
Reprodução permitida, desde que citada a fonte.
FACE – Faculdade de Administração, Ciências
Contábeis e Ciências Econômicas
Curso de Ciências Econômicas
Direção FACE
Maria do Amparo Albuquerque Aguiar
Vice-Direção FACE
Flávia Regina Cazerneschy
Coordenação do Curso de Ciências Econômicas
Cleyzer Adrian da Cunha
NEPEC – Núcleo de Estudos e Pesquisas
Econômicas
Coordenação
Dnilson Carlos Dias
Endereço
Campus Samambaia, Prédio da FACE – Rodovia
Goiânia/Nova Veneza, km. 0 – Caixa Postal 131,
CEP 74001-970, Goiânia – GO.
Tel. (62) 3521 – 1390
URL
http://www.face.ufg.br/eco
Estimando modelo ARIMA no
Software R
Cleyzer Adrian da Cunha
FACE/UFG
NEPEC/FACE/UFG
Goiânia – Setembro de 2010
Versão 1.0
2
Estimando modelo ARIMA no Software R
Cleyzer Adrian da Cunha 1
Universidade Federal de Goiás
Resumo:
Esta nota apresenta as rotinas para a estimação do modelo ARIMA no software livre R. Os
dados utilizados na estimação foram extraídos do livro do Pyndick & Rubinfeld (2004). Antes
de iniciar as rotinas deve-se instalar escolhendo um espelho CRAN, os pacotes tseries,
forecasting.
Palavras chave: ARIMA, séries temporais, Software R
Abstract:
This note presents the estimation of model ARIMA in free software R. After, it installs the
packages tseries and forecasting of mirror CRAN. The data had been collected of the book of
the Pyndick & Rubinfeld (2004).
Key words: ARIMA, times series, and Software R
1. Introdução
Esta nota técnica buscou elucidar e facilitar o acesso por parte da comunidade geral, as
rotinas básicas de séries temporais, no tocante ao modelo ARIMA, para o software livre R.
Primeiramente, o interessado deve instalar o software livre R e seguidamente os pacotes
econométricos escolhendo um espelho (CRAN) na lista que está disponível no console do R.
Geralmente, o espelho é composto uma lista de sites de universidades espalhadas pelo mundo.
Como a presente nota trabalha com o modelo ARIMA, por isso, instale os seguintes pacotes:
tseries, forecasting.
O passo seguinte é escolher a série temporal, para facilitar o acesso aos dados, esta
nota utiliza a série de dados SALES, cujo arquivo é a Tabela 15.1, pagina 545 do livro do
Pyndick & Rubinfeld (2004). O arquivo SALES corresponde as vendas de uma loja de
departamentos no período de janeiro de 1986 a dezembro de 1995. Lembre-se que esse
arquivo deve ficar dentro da pasta “meu documento”. O exercício pode ser executado para
qualquer série temporal.
1
[email protected]
3
2. Rotina no Software R
Para rodar o software deve-se digitar ou colar os comandos no console do R. Assim,
deve-se iniciar com os procedimentos descritos abaixo:
> sales <- read.csv("sales.csv",header=T,dec=",",sep=";")
> attach(sales)
> names (sales)
> diff(vendas) = Primeira diferença da série vendas
> log(vendas) = logaritmo da série vendas
2.1 Gráfico da série vendas
> plot.ts(vendas)
> plot.ts(diff(vendas))
> vendas<-ts(sales[,2],start=1986,freq=12) : gráfico com eixo tempo e vendas
2.2. Para fazer a análise da Função de Autocorrelação (FAC) e Autocorrelação parcial
(FACp) com defasagem 36:
> acf(vendas, lag.max=36)
> pacf(vendas, lag.max=36)
> acf(diff(vendas), lag.max=36)
> pacf(diff(vendas), lag.max=36
2.3. Sazonalidade pode ser detectada pelo comando (stl):
> plot(stl(log(vendas), "periodic")): Decomposição da série temporal em
tendência, sazonalidade e resto (componente irregular)
Agora usando o comando decompose(), se decompõe a série em seus componentes
tendência, aleatório, e sazonal.
> x < - decompose(vendas)
> plot(x) para visualizar o gráfico
2.4. Estimando o modelo ARIMA com comando:
Comando geral: arima(data,order=c(p,d,q))
> arima(vendas,order=c(2,1,1))
> x.fit <- arima(vendas,order=c(2,1,1))
4
2.5. Estimando o modelo ARIMA sazonal
> arima(vendas,order=c(2,1,1),seasonal=list(order=c(2,1,1),period=12))
> y.fit< - arima(vendas,order=c(2,1,1),seasonal=list(order=c(2,1,1),period=12))
2.6. Checagem e diagnóstico
Com o comando tsdiag é possível analisar os gráficos dos resíduos ( O modelo deve
apresentar os resíduos estacionários, com média zero e variância constante)
> tsdiag(x) : lembre-se que o modelo ARIMA(2,1,1) foi chamado de x
> Box.test(x$residuals,lag=1) : Análise da estatística de Box–Pierce (e Ljung–Box)
2.7. Previsão usando o modelo ( Forecasting)
Use o comando predict()
forecast<-predict(x,n.ahead=4)
O termo n.ahead= 4, mostra quatro passos a frente e lembre-se que x é o nosso
modelo ARIMA(2,1,1). Se você digitar forecast no R e der enter, irá aparecer os 4 dados
previstos.
2.8. Gráfico dos resultados
Para fazer um gráfico com os valores mínimos e máximos das escalas das
coordenadas e das abscissas, primeiramente deve-se encontrar esses valores com o comando
summary.
> summary (sales)
Lembre-se para fazer o gráfico deve-se aumentar o valor máximo e também o tempo
deve ser alterado, já considerando a previsão dos passos a frente.
> plot(vendas,xlim=c(1986,1999),ylim=c(11181, 1999))
> previsao <- predict(x.fit,n.ahead=4)
> lines(previsao$pred,col=”blue”)
Para considerar um intervalo de conficanca de 95% , usamos dois desvio-padrao (+/- 2)
> lines(previsao$pred+2*previsao$se,col="blue”,lty=5)
> lines(previsao$pred-2*previsao$se,col="blue”,lty=5)
2.9. Gráfico usando o comando:
> library(forecast)
> previsao <- forecast (x.fit)
> plot.forecast(x.fit)
5
Referências Bibliográficas
R tseries . Package tseries: Time series analysis and computational finance <http://cran.rproject.org/web/packages/tseries/index.html> (Acesso março de 2010)
R forecasting Package forecasting: Bundle of forecast, fma, Mcomp, expsmooth
<http://cran.r-project.org/web/packages/forecasting/index.html> (Acesso, Março de 2010)
6