UNIVERSIDADE FEDERAL DE MINAS GERAIS

Curso de Especialização em Estatística

Disciplina: Analise de Séries Temporais

Prof. Luis Alberto Toscano e Ela Mercedes

Escolha uma série simulada na planilha dados_trabalho.xls

A série selecionada foi a x2.

library("forecast", lib.loc="~/R/win-library/3.2")
library("lmtest", lib.loc="~/R/win-library/3.2")
library("nortest", lib.loc="~/R/win-library/3.2")
dados <- read.csv2("D:/Guto/pessoal/especializacao/Series temporais/dados_trabalho.csv")
dados <- ts(dados[,2])

a) Faça uma breve descrição dos processos simulados

plot.ts(dados,main="SÉRIE x2")    

Como se trata de dados simulados e observando o comportamento dados primeiros lags, parece conveniente descartar as primeiras observaçoes, até que o processo se estabilize. Foram descartadas 30 observações.

dados1 <- dados[-c(1:30)]
plot.ts(dados1,main="SÉRIE x2")

hist(dados1,prob=T,main="SÉRIE x2")

summary(dados1)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   28.23   56.89   67.68   67.86   78.97  101.40
var(dados1)
## [1] 254.4089
sd(dados1)
## [1] 15.9502
skewness(dados1)
## [1] -0.005346628
## attr(,"method")
## [1] "moment"
kurtosis(dados1)
## [1] -0.5503245
## attr(,"method")
## [1] "excess"
shapiro.test(dados1)
## 
##  Shapiro-Wilk normality test
## 
## data:  dados1
## W = 0.99017, p-value = 0.003123

Aparentemente, a série é estacionária e apresenta distribuição próxima a normal, menos apontada e com ligeira assimetria à direita. Pelo teste de Shapiro-Wilk, a hipótese de normalidade deve ser rejeitada (alfa=0,05).

b) Construa os correlogramas da FAC e FACP

Acf(dados1,lag=48,main="FAC")

Pacf(dados1,lag=48,main="FACP")

c) Identifique o processo simulado

O FAC apresenta decaimento progresivo e o FACP um pico no primeiro lag, indicativos de um processo autorregressivo de ordem 1. O decaimento no FAC, no entanto, é lento, o que sugere não estacionariedade. O aparecimento de autocorrelações significativas por volta dos lags 12, 24 e 36 sugerem sazonalidade.

dif1 <- diff(dados1,lag=12,dif=1)
Acf(dif1,lag=48,main="FAC série X2 diferenciada S=12")

Pacf(dif1,lag=48,main="FACP série X2 diferenciada S=12")

Após a dferenciação para a sazonalidade, os correlogramas parecem indicar um processo autorregressivo de ordem 2.
Vamos propor e testar os seguintes modelos:
* modelo1: dados1 ~ SARIMA (2,0,0)(1,1,0)12
* modelo2: dados1 ~ SARIMA (2,0,0)(0,1,1)12

d) Estime e verifique o modelo identificado em (c).

modelo1 <- Arima(dados1,order=c(2,0,0),seasonal=list(order=c(1,1,0),period=12),include.constant=F)
modelo1
## Series: dados1 
## ARIMA(2,0,0)(1,1,0)[12]                    
## 
## Coefficients:
##          ar1      ar2     sar1
##       1.8085  -0.8292  -0.4546
## s.e.  0.0262   0.0263   0.0421
## 
## sigma^2 estimated as 1.396:  log likelihood=-729.16
## AIC=1466.32   AICc=1466.41   BIC=1482.82
coeftest(modelo1)
## 
## z test of coefficients:
## 
##       Estimate Std. Error z value  Pr(>|z|)    
## ar1   1.808546   0.026230  68.949 < 2.2e-16 ***
## ar2  -0.829203   0.026318 -31.507 < 2.2e-16 ***
## sar1 -0.454645   0.042105 -10.798 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
tsdiag(modelo1)

tsdisplay(residuals(modelo1))

Os coeficientes atendem as condições de estacionariedade e são estatisticamente significantes. Os correlogramas dos resíduos, no entanto, indicam fortes autocorrelações por volta dos lags 6, 12, 18 e 24. O AIC foi de 1466.32

Vamos ao segundo modelo:

modelo2 <- Arima(dados1,order=c(2,0,0),seasonal=list(order=c(0,1,1),period=12),include.constant=F)
modelo2
## Series: dados1 
## ARIMA(2,0,0)(0,1,1)[12]                    
## 
## Coefficients:
##          ar1      ar2     sma1
##       1.7956  -0.8020  -0.9646
## s.e.  0.0281   0.0284   0.0444
## 
## sigma^2 estimated as 1.008:  log likelihood=-668.28
## AIC=1344.56   AICc=1344.64   BIC=1361.06
coeftest(modelo2)
## 
## z test of coefficients:
## 
##       Estimate Std. Error z value  Pr(>|z|)    
## ar1   1.795575   0.028124  63.845 < 2.2e-16 ***
## ar2  -0.802001   0.028419 -28.221 < 2.2e-16 ***
## sma1 -0.964631   0.044363 -21.744 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
tsdiag(modelo2)

tsdisplay(residuals(modelo2))

Box.test (modelo2$residuals, lag = 48, fitdf=4, type = "Ljung")
## 
##  Box-Ljung test
## 
## data:  modelo2$residuals
## X-squared = 50.41, df = 44, p-value = 0.2348

Também no modelo 2 os coeficientes atendem os critérios de estacionariedade e são estatisticamente significantes. Os correlogramas dos resíduos e a estatística de Ljung-Box até o lag 48 indicam que as correlações dos resíduos não são estatisticamente significantes. o AIC para esse modelo é de 1344.56. Vamos prosseguir com a análise dos resíduos para verificar se se trata de ruído branco gaussiano.

plot(fitted(modelo2),scale(modelo2$residuals),main= "Resíduos versus valores ajustados",xlab="Valores Ajustados",ylab="Residuos Padronizados")

plot(1:length(scale(modelo2$residuals)),scale(modelo2$residuals),main="Resíduos versus ordem dos dados",xlab="Ordem da observação",ylab="Resíduos padronizados")

hist(scale(modelo2$residuals),main="Histograma dos resíduos",xlab="Resíduos padronizados")

qqnorm(modelo2$residuals)

shapiro.test(modelo2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo2$residuals
## W = 0.99571, p-value = 0.2272

Os gráficos e o teste de normalidade corroboram o entendimento de que os resíduos do modelo2 são de fato ruído branco gaussiano.

Optamos, assim, pelo modelo2 x2 ~ SARIMA (2,0,0)(0,1,1)12 que parece traduzir satisfatoriamente o processo, possui vetor de resíduos do tipo ruído branco gaussiano e AIC menor.