La arimax
fonction dans le TSA
package est, à ma connaissance, le seul R
package qui s'adaptera à une fonction de transfert pour les modèles d'intervention. Il manque cependant une fonction de prédiction qui est parfois nécessaire.
La solution suivante est-elle une solution à ce problème, tirant parti de l'excellent forecast
package? Les intervalles prédictifs seront-ils corrects? Dans mon exemple, les erreurs std sont "proches" des composants.
- Utilisez la fonction arima du package de prévision pour déterminer la série de bruit avant l'intervention et ajouter tout ajustement aberrant.
- Adapter le même modèle
arimax
mais ajouter la fonction de transfert - Prenez les valeurs ajustées pour la fonction de transfert (coefficients de
arimax
) et ajoutez-les en tant que xregarima
. - Prévision avec
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
Production:
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
Ceci est le filtre, étendu sur 5 périodes supplémentaires que les données
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
Production:
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
Puis prédire
predict(forecast.arima,n.ahead = 5, newxreg=tf[114:length(tf)])
tf <- filter(...)
... je suis perdu. Avez-vous des conseils pour le comprendre? Que se passerait - il si je devais: I911-AR1: 0.55
, I911-AR2: 0.66
, I911-MA0: 0.49
, I911-MA1: 0.39
?