Lista dos Cápitulos 6,7,8.
a) Calcule as autocorrelações teóricas no lag1 para este modelo.
# ρ1 = (−θ)\(1 + θ²) = (−0.5)\(1 + 0.5²) = -0.4
a) Calcular e plotar a função de autocorrelação teórica para este modelo. Registre defasagens sucientes até que as correlações sejam insignicantes.
ACF=ARMAacf(ar=c(.7,-.4),lag.max=10)
acf(ACF,lag.max = 10,main="ACF AR(2) (Teórico)")

Não houve autocorrelações significativas no ACF teórico.
b) Calcule e plote a amostra ACF para sua série simulada. Quão bem os valores e padrões correspondem ao ACF teórico do item (a)?
acf(simula_6,lag.max = 10,main="ACF AR(2) (série simulada)")

Não há diferença significativa entre os valores das séries. Porém, o padrão dos ACF’s são diferentes, sendo o ACF teórico a série com menos autocorrelações significativas e convergindo com menos passos que o ACF simulado.
c) Quais são as autocorrelações parciais teóricas para este modelo?
pacf(ACF,lag.max = 10,main="PACF AR(2) (Série Teórica)")

d) Calcule e plot a amostra PACF para sua série simulada. Quão bem os valores e padrões correspondem ao ACF teórico do item c)?
pacf(simula_6,lag.max=10,main="PACF AR(2) (Série Simulada)")

O padrão tem um comportamento de um modelo AR(2)
a) Calcule e plote a função de autocorrelação teórica para este modelo. Registre defasagens suficientes até que as correlações sejam insignificantes.
arma_teorico=ARMAacf(ar=.8,ma=-.4,lag.max=20)
acf(arma_teorico,lag.max = 20,main="ACF ARMA(1,1) (Teórico)")

b) Calcule e plote a amostra ACF para sua série simulada. Quão bem o valores e padrões correspondem ao ACF teórico da parte (a)?
acf(arma_simula_1,lag.max = 20,main="ACF ARMA(1,1) (Simulado)")

Não há diferença significativa entre os valores das séries. Porém, o padrão dos ACF’s são diferentes, sendo o ACF teórico a série com menos autocorrelações significativas e convergindo com menos passos que o ACF simulado.
c) Calcule e interprete a EACF para esta série. O EACF ajuda você a especificar as ordens corretas para o modelo?
eacf(arma_simula_1)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x o o o o o o o o o o o
## 1 x o x o o o o o o o o o o o
## 2 x x x o o o o o o o o o o o
## 3 x o o o o o o o o o o o o o
## 4 o o o o o o o o o o o o o o
## 5 o o o o o o o o o o o o o o
## 6 o o o o o o o o o o o o o o
## 7 x x o o o o o o o o o o o o
Não ajudou, pois não indica claramente um modelo.
Questão 4: O arquivo de dados denominado robot contém uma série temporal obtida de um robô industrial. O robôfoi submetido a uma sequência de manobras e a distância de um ponto final desejado foi registrada em polegadas. O processo foi repetido 324 vezes para formar a série temporal.
c) Calcule e interprete a amostra EACF.
eacf(robot)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x x x x x x x o x x x x
## 1 x o o o o o o o o o o o o o
## 2 x x o o o o o o o o o o o o
## 3 x x o o o o o o o o o o o o
## 4 x x x x o o o o o o o o x o
## 5 x x x o o o o o o o o o x o
## 6 x o o o o x o o o o o o o o
## 7 x o o x o x x o o o o o o o
Pelo EACF, teríamos um modelo ARMA(1,1), que seria estacionário.
a) Encontre a estimativa do método dos momentos de θ.
estima_MM_MA_1=function(x){r=acf(x,plot=F)$acf[1]; if (abs(r)<0.5)
return((-1+sqrt(1-4*r^2))/(2*r)) else return(NA)}
estima_MM_MA_1(MA_simula_1)
## [1] -0.4519557
a) Encontre as estimativas do método de momentos de φ1 e φ2.
ar(AR2_simula_1,method='yw')
##
## Call:
## ar(x = AR2_simula_1, method = "yw")
##
## Coefficients:
## 1
## 0.7567
##
## Order selected 1 sigma^2 estimated as 1.128
d) Repita os itens a), b) e c) com uma nova série simulada usando o mesmos parâmetros e o mesmo tamanho de amostra. Compare estes resultados com os resultados da a primeira simulação.
set.seed(19966)
AR2_simula_2=arima.sim(n=60, list(ar=c(.6,.3)))
ar(AR2_simula_2,method='yw')
##
## Call:
## ar(x = AR2_simula_2, method = "yw")
##
## Coefficients:
## 1 2
## 0.6265 0.1979
##
## Order selected 2 sigma^2 estimated as 1.284
arima(AR2_simula_2,order=c(2,0,0),method='CSS')
##
## Call:
## arima(x = AR2_simula_2, order = c(2, 0, 0), method = "CSS")
##
## Coefficients:
## ar1 ar2 intercept
## 0.5845 0.2336 -2.3808
## s.e. 0.1255 0.1222 0.7573
##
## sigma^2 estimated as 1.057: part log likelihood = -86.8
arima(AR2_simula_2,order=c(2,0,0),method='ML')
##
## Call:
## arima(x = AR2_simula_2, order = c(2, 0, 0), method = "ML")
##
## Coefficients:
## ar1 ar2 intercept
## 0.6272 0.2336 -1.6662
## s.e. 0.1244 0.1266 0.8697
##
## sigma^2 estimated as 1.087: log likelihood = -88.24, aic = 182.48
O método de mínimos quadrados condicionais ofereceu boas estiamtivas com uma variância muito baixa também.
a) Estime os parâmetros de um modelo AR (1) para esses dados.
arima(robot,order=c(1,0,0),method='ML')
##
## Call:
## arima(x = robot, order = c(1, 0, 0), method = "ML")
##
## Coefficients:
## ar1 intercept
## 0.3076 0.0015
## s.e. 0.0528 0.0002
##
## sigma^2 estimated as 6.482e-06: log likelihood = 1475.54, aic = -2947.08
b) Estime os parâmetros de um modelo IMA (1,1) para esses dados.
arima(robot,order=c(0,1,1),method='ML')
##
## Call:
## arima(x = robot, order = c(0, 1, 1), method = "ML")
##
## Coefficients:
## ma1
## -0.8713
## s.e. 0.0389
##
## sigma^2 estimated as 6.069e-06: log likelihood = 1480.95, aic = -2959.9
c) Compare os resultados das partes (a) e (b) em termos de AIC.
Arima(1,0,0) |
-2947.08 |
Arima(0,1,1) |
-2959.9 |
De acordo com o AIC, o modelo que melhor se ajusta aos dados seria o ARIMA(0,1,1), ou seja, um IMA(1,1).
a) Construa o modelo AR (2) corretamente especificado e observe o gráfico de série temporal dos resíduos. O gráfico suporta a especificação AR (2)?
modelo_AR2=arima(AR2_simula_3,order = c(2,0,0),method = "ML")
y=modelo_AR2$residuals
plot(y,type="o")

Pode-se observar que não há pontos fora do limite, parece suportar o modelo AR(2).
b) Mostrar um gráfico quantil-quantil normal dos resíduos padronizados. O gráfico suporta a especificação AR(2)?
qqnorm(y)

shapiro.test(y)
##
## Shapiro-Wilk normality test
##
## data: y
## W = 0.97568, p-value = 0.4141
De acordo com o qq-plot e o teste de Shapiro, não rejeitamos normalidade dos resíduos, ou seja, os dados suportam a especificação AR(2).
c) Mostre a ACF e PACF dos resíduos. Os gráficos suportam a especificação AR (2)?
plot.1=acf(y,lag.max = 20,main="ACF Resíduos")

plot.2=pacf(y,lag.max = 20,main="PACF Resíduos")

Há um comportamento do modelo AR(2), tanto no ACF e no PACF.
d) Calcule teste estatístico de Ljung-Box para K = 12. Esta estatística suporta a especificação AR (2)?
Box.test (y, lag = 12, type = "Ljung")
##
## Box-Ljung test
##
## data: y
## X-squared = 10.774, df = 12, p-value = 0.5484
Pelo teste de Ljung-Box, não rejeitamos a independência dos resíduos, confirmando que a especificação AR(2) está adequada.
Questão 9: O arquivo de dados chamado deere3 contém 57 valores consecutivos de uma máquina-ferramenta complexa na Deere & Co. Os valores fornecidos são desvios de um valor alvo em unidades de dez milionésimos de uma polegada.O processo emprega um mecanismo de controle que redefine alguns dos parâmetros da máquina operatriz, dependendoda magnitude de desvio do alvo do último item produzido. Diagnostique o ajuste de um modelo AR (1) para esses dados em termos dos testes discutidos neste capítulo.
data("deere3")
Modelo_AR1=arima(deere3,order = c(1,0,0),method = "ML")
plot(deere3,ylab="",xlab="Tempo",type="o")

plot(rstandard(Modelo_AR1),xlab="Time",ylab="Resíduos Padronizados",type='o')
abline(h=0)

hist(rstandard(Modelo_AR1),xlab="Resíduos Padronizados",main="",prob=T)

qqnorm(rstandard(Modelo_AR1),main="")

shapiro.test(rstandard(Modelo_AR1))
##
## Shapiro-Wilk normality test
##
## data: rstandard(Modelo_AR1)
## W = 0.98261, p-value = 0.5827
runs(rstandard(Modelo_AR1))
## $pvalue
## [1] 0.771
##
## $observed.runs
## [1] 31
##
## $expected.runs
## [1] 29.42105
##
## $n1
## [1] 27
##
## $n2
## [1] 30
##
## $k
## [1] 0
Box.test (rstandard(Modelo_AR1), lag = 12, type = "Ljung")
##
## Box-Ljung test
##
## data: rstandard(Modelo_AR1)
## X-squared = 6.9579, df = 12, p-value = 0.8604
O modelo AR(1) parece estar bem especificado, tendo em vista a normalidade, a aleatoriedade e independência dos erros.
Questão 10: O quadro 6.31 na página 139 sugere a especificação de um modelo AR (1) ou possivelmente um modelo AR (4) para a diferença dos logaritmos da série de preços do petróleo(oil.price).
data("oil.price")
arima(oil.price)
##
## Call:
## arima(x = oil.price)
##
## Coefficients:
## intercept
## 24.0864
## s.e. 0.6795
##
## sigma^2 estimated as 111.3: log likelihood = -909.75, aic = 1821.51
a) Estime ambos os modelos usando a máxima verossimilhança e compare os resultados usando os testes diagnósticos considerados no capítulo 8.
Modelo_oil_AR1=arima(diff(log(oil.price)),order = c(1,0,0),method = "ML")
Modelo_oil.AR4=arima(diff(log(oil.price)),order = c(4,0,0),method = "ML")
Para o AR(1)
plot(rstandard(Modelo_oil_AR1),xlab="Tempo",ylab="Resíduos Padronizados",type='o')
abline(h=0)

hist(rstandard(Modelo_oil_AR1),xlab="Resíduos Padronizados",main="")

qqnorm(rstandard(Modelo_oil_AR1),main="")

shapiro.test(rstandard(Modelo_oil_AR1))
##
## Shapiro-Wilk normality test
##
## data: rstandard(Modelo_oil_AR1)
## W = 0.96683, p-value = 2.221e-05
runs(rstandard(Modelo_oil_AR1))
## $pvalue
## [1] 0.542
##
## $observed.runs
## [1] 126
##
## $expected.runs
## [1] 120.7917
##
## $n1
## [1] 115
##
## $n2
## [1] 125
##
## $k
## [1] 0
tsdiag(Modelo_oil_AR1,gof=15,omit.initial=F)

Para o AR(4)
plot(rstandard(Modelo_oil.AR4),xlab="Tempo",ylab="Resíduos Padronizados",type='o')
abline(h=0)

hist(rstandard(Modelo_oil.AR4),xlab="Resíduos Padronizados",main="")

qqnorm(rstandard(Modelo_oil.AR4),main="")

shapiro.test(rstandard(Modelo_oil.AR4))
##
## Shapiro-Wilk normality test
##
## data: rstandard(Modelo_oil.AR4)
## W = 0.96983, p-value = 5.597e-05
runs(rstandard(Modelo_oil.AR4))
## $pvalue
## [1] 0.746
##
## $observed.runs
## [1] 124
##
## $expected.runs
## [1] 120.9917
##
## $n1
## [1] 119
##
## $n2
## [1] 121
##
## $k
## [1] 0
tsdiag(Modelo_oil.AR4,gof=15,omit.initial=F)

b) O quadro 6.32 na página 140 especificou um modelo MA (1) para a diferença dos logs. Estime este modelo por máxima verossimilhança e execute os testes de diagnósticos considerados no capítulo 8.
Modelo_oil.ma1=arima(diff(log(oil.price)),order = c(0,0,1),method = "ML")
plot(rstandard(Modelo_oil.ma1),xlab="Tempo",ylab="Resíduos Padronizados",type='o')
abline(h=0)

hist(rstandard(Modelo_oil.ma1),xlab="Resíduos Padronizados",main="")

qqnorm(rstandard(Modelo_oil.ma1),main="")

shapiro.test(rstandard(Modelo_oil.ma1))
##
## Shapiro-Wilk normality test
##
## data: rstandard(Modelo_oil.ma1)
## W = 0.96883, p-value = 4.095e-05
runs(rstandard(Modelo_oil.ma1))
## $pvalue
## [1] 0.267
##
## $observed.runs
## [1] 130
##
## $expected.runs
## [1] 120.925
##
## $n1
## [1] 117
##
## $n2
## [1] 123
##
## $k
## [1] 0
tsdiag(Modelo_oil.ma1,gof=15,omit.initial=F)

c) Qual dos três modelos AR (1), AR (4) ou MA (1) você preferiria, dados os resultados dos itens a) e b)?
O AR(4), parece ser melhor que os outros, porém também não está adequado pois viola o pressuposto da normalidade.