30
Previsão com modelos ARIMA Dra. Andréia Adami

Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Embed Size (px)

Citation preview

Page 1: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Previsão com modelos ARIMA

Dra. Andréia Adami

Page 2: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Page 3: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Introdução ao R

• Software livre

• Disponível em: www.r-project.org

• Site inclui programa, manuais, instruções, etc – atualizado diariamente

Page 4: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Instalando o R

• Acessar o site: www.r-project.org

• Clicar em CRAN – escolha o endereço

• Escolha o sistema operacional – Windows por exemplo

• Clique no subdiretório base e faça o download da última versão do R para seu computador.

Page 5: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Usando o R

• Depois de instalado o icone fica no Desktop

• Acione o R clicando 2 vezes no icone

• Digite no “Prompt”dados1<-c(85,85,87,90,91,82,81,82)

• enter

Page 6: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Usando o R

• Digite dados1 e dê <enter

• Outra opção: dados1=c(85,85,87,90,91,82,81,82)

• Digite dados1[3]dados1[3:5]dados1[dados1>85]dados1[(dados1>85)&(dados1<90)]

Page 7: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Usando o R

• y=dados1*10+100y

Criamos um novo conjunto de dados (vetor) que é composto dos dados originais multiplicados por 10 e somado de 100

Page 8: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Obtendo estatísticas básicas

• max(dados1) # mostra o valor máximo da série

• min(dados1) # mostra o valor mínimo da série

• mean(dados1) # mostra a média da série

• sum(dados1) # mostra a soma dos valores da série

• length(dados1) # mostra o tamanho do vetor (número de elementos)

Page 9: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Algumas operações básicas

• 2+2 - soma

• 2-2 - subtração

• 2*2 - multiplicação

• 2/2 – divisão

• 2^2 – exponenciação

Page 10: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Algumas funções básicas

• sqrt(9) – função que calcula a raiz quadrada

• sqrt(3*3^2) – calcula a raiz quadrada de 27

• sqrt((3*3)^2) - calcula a raiz quadrada de 27

• prod (2,2) – função multiplicação de 2x2

• prod (2,2,3,4) – multiplicação de 2x2x3x4

Page 11: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Algumas funções básicas

• Log – é a função para calcular o logaritmo

• log(3) – logaritmo natural de 3

• log(3,10) – log de 3 na base 10

• log10(3) – log de 3 na base 10

Page 12: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Acessando o menu ajuda

• help (função) – abre o help sobre a função

help(log)

Ou, ?log

Page 13: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Análise inicial de dados

• Usando o Script do R para digitar os comandos

• Script – arquivo.txt, fácil de fazer alterações e correções

• Criando um script – File -> New scriptO arquivo será salvo com a extensão .R.

3+3 Ctrl+R

Page 14: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Análise inicial de dados

• Salvando o arquivo no windows – .csv

• Importando os dados pro R

dados=read.csv(endereço, header=TRUE)dados=read.csv(file.choose())

Page 15: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Análise inicial de dados

Gráficos – função plot()

• plot(x) – faz o gráfico com a série x• plot(x,y,type=“l”) – outras opções (“b”;”c”;”h”;”o”;”s”)

Page 16: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Análise inicial de dados

Opções de gráficos

• plot(x,y)• plot(x,y,col=“red”) - cor• plot(x,y,pch=2) - símbolo• plot(x,y,type=‘l’, lty=2) – tipo de linha• plot(x,y,type=‘l’, lwd=2) – tamanho da linha

Page 17: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Análise inicial de dados

Construindo vários gráficos em uma mesma janela

• par(mfrow=c(2,2)• plot(x,log(x),type=‘l’) • plot(x,log(x),type=‘l’) • plot(x,sin(x),type=‘l’) • plot(x,sqrt(1/x),type=‘l’)

Page 18: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Análise Inicial dos Dados

• x = AirPassengers• x

• y = log(x)• y• length(y)

• plot(x,main='serie original',xlab='Anos',ylab='No de passageiros')• plot(y,main='serie original',xlab='Anos',ylab='No de passageiros')

Page 19: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Identificação do modelo

• Propriedades teóricas das FAC e FACP• Processo FAC FACP• aleatório 0 0• AR(1)-coeficiente>0 decaimento exponencial0,k>=2• AR(1)-coeficiente<0 decaimento oscilatório idem• AR(p) decaimento pra zero 0, k>p• MA(1) 0, k>1 Decaimento oscilatório• ARMA(p,q) decaimento a partir de q Decaimento a partir de p

Page 20: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Identificação do modelo

Função ACF

• Eixo x – lag k e no eixo y rk ;• A auto-correlação no lag 0 é sempre 1;• Ajuda a identificar modelos sazonais – correlações

periódicas significantes;• Usada para identificar tendência – decresce devagar;

No R - acf(x)

Page 21: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Identificação do modelo

Função PACF

• se a série segue um processo AR(p) então os coeficientes serão zero para todos os lags k>=p. Assim, um processo AR(p) tem um correlograma da função de auto-correlação parcial que é zero depois do lag p.

No R – pacf(x)

Page 22: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Identificação do modelo

• FAC amostral da diff simples e sazonal

• x = AirPassengers• y = log(x)• par(mfrow=c(4,2))

• plot(y,main='serie original',xlab='Anos',ylab='No de passageiros')m = acf(y,lag.max=36, plot=F)m$lag = m$lag*12plot(m,main='serie original')

Page 23: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Identificação do modelo

• plot(diff(y),main='serie diferenciada',xlab='Anos',ylab='No de passageiros')m = acf(diff(y),lag.max=36, plot=F)m$lag = m$lag*12plot(m, main = '1a diferenca') 

• plot(diff(y,lag=12),main='serie sazonalmente diferenciada',xlab='Anos',ylab='No de passageiros')m = acf(diff(y,lag=12),lag.max=36, plot=F)m$lag = m$lag*12plot(m, main='1a diferença sazonal')

Page 24: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Identificação do modelo

• z = diff(diff(y),lag=12)plot(z,main='serie com 1 diferenca simples e 1 sazonal',xlab='Anos',ylab='No de passageiros')m = acf(z, lag.max=36, plot=F)m$lag = m$lag*12plot(m, main='1 diferença simples e 1 sazonal')

Note que ha valores grandes nas defasagens 1, 3, 12 e 23 do ultimo grafico. Isto pode ser uma indicação de que termos MA sazonais e não sazonais devem ser incluidos no modelo. Um modelo candidato para o logaritmo da serie é SARIMA(0,1,1)x(0,1,1).

Page 25: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Estimação

• No R: Função ARIMA

• m = arima(y,order=c(0,1,1),seasonal=list(order=c(0,1,1))) m

Page 26: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Diagnóstico• Análise de correlação resíduo• Teste LjungBox – H0: Dados não são correlacionados

• Box.test(m$residuals,lag=1,type='Ljung-Box') Box-Ljung test data: m$residuals X-squared = 0.0307, df = 1, p-value = 0.861.

Page 27: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Diagnóstico• Teste de Normalidade do Shapiro Wilk• H0: Dados são normais

• Shapiro.test(m$residuals)

Page 28: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Previsão• data(AirPassengers)• y = AirPassengers• x = log(y)• m = arima(x, order=c(0,1,1), seasonal=

list(order=c(0,1,1))• mp = predict(m, n.ahead=12, se.fit=T)• z=ts(x[100:144],fre=12,end=c(1960,12))• ts.plot(z,mp$pred, lty=c(1:2), ylim=c(5.6,6.8))

 

Page 29: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

Previsão• abline(v=c(1961,1))•  • li = mp$pred-2*mp$se• ls = mp$pred+2*mp$se• lines(ls,col=2)• lines(li,col=2)

Page 30: Previsão com modelos ARIMA Dra. Andréia Adami. Metodologia Box&Jenkis – Ajuste de modelos ARIMA

PrevisãoPrevisoes na escala original• z1 = ts(y[100:144],fre=12,end=c(1960,12))• mp1 = exp(mp$pred)• ts.plot(z1, mp1, lty=c(1:2), ylim=c(300,800))• abline(v=c(1961,1)) • li1 = exp(li)• ls1 = exp(ls)• lines(ls1,col=2)• lines(li1,col=2)

• Arquivo com as previsões e intervalo de confiança• cbind(mp1,li1,ls1)