1 Parte 1

load("zt.Rdata")
source("ajudp.R")
source("ajud.R")

N = length(z5)
zz = z5[-N]
z <- z5[1:(N-10)]
n = length(z)
length(z)

Nessa primeira parte é de interesse fazer a estimação do modelo arima (sem MA) utilizando a base z5.

2 Treinando o modelo

Série z5

plot(ts(z[1:1000]), xlab="", ylab="")

Vendo o ACF e PACF da série:

par(mfrow = c(1,2))
acf(z, 30)
pacf(z, 30)

Treinando o modelo AR(9)

fit = arima(z, c(9,0,0))
signi(fit)
##                    Coef      DesPad            T         P
## ar1        0.6988599975 0.002190423  319.0524649 0.0000000
## ar2        0.0018944540 0.002691629    0.7038317 0.4815376
## ar3       -0.5005677588 0.002681695 -186.6609624 0.0000000
## ar4        0.3997638460 0.002905266  137.5997616 0.0000000
## ar5        0.0008125894 0.003040157    0.2672854 0.7892495
## ar6        0.0021414469 0.002905700    0.7369814 0.4611336
## ar7        0.1017012094 0.002681347   37.9291459 0.0000000
## ar8       -0.0033738121 0.002691050   -1.2537160 0.2099452
## ar9        0.1993763467 0.002190826   91.0051088 0.0000000
## intercept  0.4915992040 0.006747043   72.8614296 0.0000000

Zerando os coeficientes AR cujo \(p-valor > 0.05\), temos:

fit2 = arima(z, c(9,0,0), fixed = c(NA,0,NA,NA,0,0,NA,0,NA,NA))
## Warning in arima(z, c(9, 0, 0), fixed = c(NA, 0, NA, NA, 0, 0, NA, 0, NA, :
## Alguns parâmetros AR foram fixados: definindo transform.pars = FALSE
signi(fit2)
##                 Coef      DesPad          T  P
## ar1        0.7003310 0.001671741  418.92314  0
## ar2        0.0000000          NA         NA NA
## ar3       -0.5007958 0.002076866 -241.13057  0
## ar4        0.4017549 0.001911491  210.17875  0
## ar5        0.0000000          NA         NA NA
## ar6        0.0000000          NA         NA NA
## ar7        0.1018661 0.001568993   64.92449  0
## ar8        0.0000000          NA         NA NA
## ar9        0.1971762 0.001653981  119.21310  0
## intercept  0.4915992 0.006728426   73.06303  0

Fazendo verificações adicionais:

plotap30(fit2)

LB10(fit2, 6)
##      Lag    Q GdL P-valor
## [1,]  10  5.0   4   0.289
## [2,]  20 11.4  14   0.652
## [3,]  30 17.9  24   0.806

Não havendo indicações gráficas de dependência nos resíduos e o teste igualmente não identificando correlações, o modelo final foi ajustado.

2.1 Modelo ajustado:

O modelo ajustado é tal que,

fit2
## 
## Call:
## arima(x = z, order = c(9, 0, 0), fixed = c(NA, 0, NA, NA, 0, 0, NA, 0, NA, NA))
## 
## Coefficients:
##          ar1  ar2      ar3     ar4  ar5  ar6     ar7  ar8     ar9  intercept
##       0.7003    0  -0.5008  0.4018    0    0  0.1019    0  0.1972     0.4916
## s.e.  0.0017    0   0.0021  0.0019    0    0  0.0016    0  0.0017     0.0067
## 
## sigma^2 estimated as 0.08997:  log likelihood = -42956.3,  aic = 85926.6

\[\begin{align} (1 - 0,7B + 0,5B^3-0,4B^4-0,1B^7-0,198B^9)(Z_t - 0,49) = a_t \end{align}\] com \(\hat\sigma^2_a = 0,09\).

A versão sem B é \[\begin{align} \tilde{Z}_t = 0,7\tilde{Z}_{t-1} - 0,5\tilde{Z}_{t-3} + 0,4\tilde{Z}_{t-4} + 0,1\tilde{Z}_{t-7} + 0,198\tilde{Z}_{t-9} + a_t, \end{align}\] tal que \(\tilde{Z_t} = Z_t - 0,49\).

Podemos também expressar o modelo utilizando \(\theta_0\),

\[\begin{align} \theta_0 &= \mu*(1-\phi_1 - \phi_3- \phi_4 - \phi_7 - \phi_9) \\ &= 0,49*(1 - 0,7 + 0,5 - 0,4 -0,1 -0,198 ) \approx 0,049 \end{align}\]

Sendo assim,

\[\begin{align} (1 - 0,7B + 0,5B^3-0,4B^4-0,1B^7-0,198B^9)Z_t = 0,049 + a_t \end{align}\] com \(\hat\sigma^2_a = 0,09\).

A versão sem B é \[\begin{align} Z_t = 0,7Z_{t-1} - 0,5Z_{t-3} + 0,4Z_{t-4} + 0,1Z_{t-7} + 0,198Z_{t-9} + 0,049 + a_t, \end{align}\].

3 Previsão

Para fazer a previsão em t com h passos a frente, temos:

\[\begin{align} \hat{Z}_t(h) = 0,7\hat{Z}_t(h-1) - 0,5\hat{Z}_t(h-3) + 0,4\hat{Z}_t(h-4) + 0,1\hat{Z}_t(h-7) + 0,198\hat{Z}_t(h-9) + 0,049, h \geq 1, \end{align}\] tal que \(\hat{Z}(l)_t = Z_{t-l}\), para \(l < 0\).

coe <- fit2$coef[1:9]
int <- fit2$coef["intercept"]
theta0 <- int*(1-sum(coe))
s2 <- fit2$sigma2 

coef <- -coe

3.1 Previsão um passo a frente

Temos então \(t = 200000 - 10 = 199990\) e \(h = 1\). Daí,

zz[n+1]
## [1] 0.7753385
(u <- prevm_ar_1(z, theta0, coef, s2))
##      prev       inf       sup 
## 0.7969379 0.2090436 1.3848322

Valor verdadeiro \(= 0.775\) Valor estimado \(= 0.797\) Precisão intervalar com 95% de confiança: \((0.21, 1.38)\)

3.2 Previsão dez passos a frente sem atualização

Temos então \(t = 200000 - 10 = 199990\) e \(h = 10\). Daí,

z5[N]
## [1] 0.5500843
(u <- prevm_ar_10(z, theta0, coef,s2))
##       prev        inf        sup      var10 
##  0.5887093 -0.2483163  1.4257349  0.1823750

Valor verdadeiro \(= 0.55\) Valor estimado \(= 0.58\) Precisão intervalar com 95% de confiança: \((-0.24, 1.43)\)

3.3 Previsão dez passos a frente com atualização

Temos então \(t = 200000 - 10 = 199990\) e \(h = 1\). Entretando, utilizamos os últimos dados disponíveis, isto é, como se tivessemos fazendo para \(Z_{t^\*}\) com \(t^\*\) = 199999 ( e \(h = 1\)), mas não recalculamos os coeficientes \(\phi_k\) encontrados anteriormente. Assim sendo,

z5[N]
## [1] 0.5500843
(u <- prevm_ar_1(z5[1:(N-1)], theta0, coef,s2))
##       prev        inf        sup 
##  0.4313332 -0.1565611  1.0192275

Valor verdadeiro \(= 0.55\) Valor estimado \(= 0.43\) Precisão intervalar com 95% de confiança: \((-0,16, 1,02)\)