La arimax
función en el TSA
paquete es, que yo sepa, el único R
paquete que se ajustará a una función de transferencia para los modelos de intervención. Sin embargo, carece de una función de predicción que a veces es necesaria.
¿Es lo siguiente una solución alternativa para este problema, aprovechando el excelente forecast
paquete? ¿Los intervalos predictivos serán correctos? En mi ejemplo, los errores estándar son "cercanos" para los componentes.
- Use la función arima del paquete de pronóstico para determinar la serie de ruido previa a la intervención y agregar cualquier ajuste atípico.
- Encaja en el mismo modelo
arimax
pero agrega la función de transferencia - Tome los valores ajustados para la función de transferencia (coeficientes de
arimax
) y agréguelos como xreg inarima
. - Pronóstico con
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
Salida:
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
Este es el filtro, extendido 5 períodos más que los datos
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
Salida:
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
Entonces para predecir
predict(forecast.arima,n.ahead = 5, newxreg=tf[114:length(tf)])
tf <- filter(...)
... Estoy perdido. ¿Tienes algún consejo para entenderlo? ¿Qué pasaría si tuviera: I911-AR1: 0.55
, I911-AR2: 0.66
, I911-MA0: 0.49
, I911-MA1: 0.39
?