## Exemplo de ajustes de modelos ARIMA(p,d,q) require(TSA) ## Lendo a base de dados dados <- read.table("dados.csv",header=TRUE,sep=",",dec=".") ## Convertendo para a classe ts() dados.ts <- ts(dados$HOM1529,start=1980) plot(dados.ts) ## Selecionando alguns modelos candidatos par(mfrow=c(2,2)) acf(dados.ts) pacf(dados.ts) acf(diff(dados.ts)) pacf(diff(dados.ts)) ## Ajustando um AR(1) modelo.mm <- ar(dados.ts, aic = TRUE, order= 1, method="yule-walker") ## Métodos dos momentos modelo.mqo <- ar(dados.ts, aic = TRUE, order= 1, method="ols") ## Métodos MQO modelo.mle <- ar(dados.ts, aic = TRUE, order= 1, method="mle") ## Métodos MQO cbind(MM = modelo.mm$ar, MQO = modelo.mqo$ar, MLE = modelo.mle$ar) ## Modelos ARIMA modelo1 <- arima(dados.ts,order= c(1,0,0)) modelo2 <- arima(dados.ts,order= c(0,0,1)) modelo3 <- arima(dados.ts,order= c(1,0,1)) modelo4 <- arima(dados.ts,order= c(1,1,0)) modelo5 <- arima(dados.ts,order= c(1,1,1)) modelo6 <- arima(dados.ts,order= c(2,1,1)) modelo7 <- arima(dados.ts,order= c(2,1,2)) modelo8 <- arima(dados.ts,order= c(2,0,2)) modelo9 <- arima(dados.ts,order= c(0,1,0)) LL = cbind(logLik(modelo1),logLik(modelo2),logLik(modelo3),logLik(modelo4),logLik(modelo5),logLik(modelo6), logLik(modelo7),logLik(modelo8),logLik(modelo9)) AIC <- cbind(AIC(modelo1),AIC(modelo2),AIC(modelo3),AIC(modelo4),AIC(modelo5),AIC(modelo6),AIC(modelo7),AIC(modelo8),AIC(modelo9)) LL AIC ## Visualizando o ajuste par(mfrow=c(2,2)) plot(modelo4) plot(modelo7) plot(modelo5) plot(modelo9) ########################################################################################## ## Seleção automatica de modelos via AIC ################################################# ########################################################################################## require(forecast) best.model <- auto.arima(dados.ts, max.p = 3, max.q = 3) best.model logLik(best.model) best.model ########################################################################################## ## Analise de resíduos ################################################################### ########################################################################################## par(mfrow=c(2,3)) plot(rstandard(modelo4),ylab="Resíduos padronizados",type="o") abline(h=0) plot(residuals(modelo4),ylab="Resíduos original",type="o") abline(h=0) hist(rstandard(modelo4)) qqnorm(rstandard(modelo4)) qqline(rstandard(modelo4)) shapiro.test(residuals(modelo4)) acf(rstandard(modelo4)) pacf(rstandard(modelo4)) ########################################################################################## ## Modelo 7 ############################################################################## ########################################################################################## par(mfrow=c(2,3)) plot(rstandard(modelo7),ylab="Resíduos padronizados",type="o") abline(h=0) plot(residuals(modelo7),ylab="Resíduos original",type="o") abline(h=0) hist(rstandard(modelo7)) qqnorm(rstandard(modelo7)) qqline(rstandard(modelo7)) shapiro.test(residuals(modelo7)) acf(rstandard(modelo7)) pacf(rstandard(modelo7)) ## Outro modelo par(mfrow=c(2,3)) plot(rstandard(modelo2),ylab="Resíduos padronizados",type="o") abline(h=0) plot(residuals(modelo2),ylab="Resíduos original",type="o") abline(h=0) hist(rstandard(modelo2)) qqnorm(rstandard(modelo2)) qqline(rstandard(modelo2)) shapiro.test(residuals(modelo2)) acf(rstandard(modelo2)) pacf(rstandard(modelo2)) ########################################################################################## ## Teste de Ljung-Box #################################################################### ########################################################################################## ## Modelo adequado tsdiag(modelo7,gof=15,omit.initial=F) tsdiag(modelo9,gof=15,omit.initial=F) ## Modelo inadequado tsdiag(modelo2,gof=10,omit.initial=F) ########################################################################################## ## Diagnostico por superajustamento ###################################################### ########################################################################################## modelo9 ## Seria o modelo mais simples modelo5 ## Superajustado, note a não significância dos parâmetros