A arimax
função no TSA
pacote é, até onde sei, o único R
pacote que se encaixará em uma função de transferência para modelos de intervenção. Falta uma função de previsão, que às vezes é necessária.
A seguir, uma solução alternativa para esse problema, aproveitando o excelente forecast
pacote? Os intervalos preditivos estarão corretos? No meu exemplo, os erros std são "próximos" para os componentes.
- Use a função arima do pacote de previsão para determinar a série de ruído pré-intervenção e adicionar qualquer ajuste externo.
- Coloque o mesmo modelo,
arimax
mas adicione a função de transferência - Pegue os valores ajustados para a função de transferência (coeficientes de
arimax
) e adicione-os como xreg inarima
. - Previsão com
arima
library(TSA) library(forecast) data(airmiles) air.m1<-arimax(log(airmiles),order=c(0,0,1), xtransf=data.frame(I911=1*(seq(airmiles)==69)), transfer=list(c(1,0)) )
air.m1
Resultado:
Coefficients:
ma1 intercept I911-AR1 I911-MA0
0.5197 17.5172 0.5521 -0.4937
s.e. 0.0798 0.0165 0.2273 0.1103
sigma^2 estimated as 0.01223: log likelihood=88.33
AIC=-168.65 AICc=-168.09 BIC=-155.02
Esse é o filtro, estendeu mais 5 períodos que os dados
tf<-filter(1*(seq(1:(length(airmiles)+5))==69),filter=0.5521330,method='recursive',side=1)*(-0.4936508)
forecast.arima<-Arima(log(airmiles),order=c(0,0,1),xreg=tf[1:(length(tf)-5)])
forecast.arima
Resultado:
Coefficients:
ma1 intercept tf[1:(length(tf) - 5)]
0.5197 17.5173 1.0000
s.e. 0.0792 0.0159 0.2183
sigma^2 estimated as 0.01223: log likelihood=88.33
AIC=-168.65 AICc=-168.28 BIC=-157.74
Então para prever
predict(forecast.arima,n.ahead = 5, newxreg=tf[114:length(tf)])
tf <- filter(...)
... eu estou perdido. Você tem alguma dica para entender isso? O que aconteceria se eu tinha:I911-AR1: 0.55
,I911-AR2: 0.66
,I911-MA0: 0.49
,I911-MA1: 0.39
?Respostas:
Os intervalos de previsão são baseados na variação residual estimada pela otimização da máxima probabilidade.
Eu gosto da
forecast
função doforecast
pacote:o que me dá as seguintes previsões:
a maneira como o intervalo de previsão funciona é seguindo a fórmula:
z σyt± zσ onde é um multiplicador que leva valores como 1,96 para um intervalo de previsão de 95% e 1,28 para um intervalo de previsão de 80% é o desvio padrão da distribuição de previsão residual também que é também a raiz quadrada do sigma ^ 2 na estimativa de probabilidade máxima. Como você mostra sigma ^ 2 (0,01223) é idêntico nos dois modelos, os intervalos de previsão também serão os mesmos e corresponderão.z σ
Se você quiser conferir,
Limites superiores:
Limites inferiores:
que corresponde ao intervalo de previsão fornecido pela
forecast
função. Para responder sua pergunta, sim, oforecast
pacote de alavancagem funcionará nesse caso e os intervalos de previsão estarão corretos.fonte