1

私の質問はsimulate.Arima()、予測の機能に関するものです。季節性、ゼロでない差分、および外部リグレッサー (休日のダミー変数) を備えた ARIMA 関数があります。再現可能な例を次に示します。

y <- ts(c(3,5,10,13,4,15,13,17,20,24,26,27))
dummy <- data.frame(dummy=c(0,0,0,0,1,0,0,0,0,0,0,0))
arima.1 <- arima(y, order=c(1,1,0), xreg=dummy)

future.dummy <- data.frame(dummy=c(0,0,1,0,0,0,0,0,0,0,0,0))
n <- nrow(future.dummy)

sim.1 <- simulate(arima.1, nsim=n, xreg=future.dummy)

これを実行すると、エラー メッセージが表示されます。future=FALSEパラメータを設定すると、完全に正常に機能することに気付きました。

私の質問:simulate.Arima では、新しい外部リグレッサーを使用して将来のシミュレーションを実行することはできませんか? つまり、どちらかを選択する必要がありますか

  1. 外部リグレッサーなしで未来を予測するか、
  2. 異なる外部リグレッサーを使用して非未来データをシミュレートしますか?

この場合、オブジェクトに対して実行する回避策を開発することは可能simulate()ですpredict.Arimaか? 私は差異の度合いがゼロではないので、将来を見通すことができることが重要です。提供できる洞察に感謝します。

4

1 に答える 1

1

問題を突き止めたと思うので、先に進んで自分の質問に答えると思います。(予測パッケージから)arimaによって正確に出力されるものにはわずかな違いがあります。各タイプのオブジェクトを呼び出すだけで、違いがわかりますauto.arimanames

names(arima.1)
[1] "coef"      "sigma2"    "var.coef"  "mask"      "loglik"    "aic"      
[7] "arma"      "residuals" "call"      "series"    "code"      "n.cond"   
[13] "model"

names(auto.arima.1)
[1] "coef"      "sigma2"    "var.coef"  "mask"      "loglik"    "aic"      
[7] "arma"      "residuals" "call"      "series"    "code"      "n.cond"   
[13] "model"     "bic"       "aicc"      "xreg"      "x"

auto.arimaにいくつかの追加の名前があり、特に元のデータ($x)と外部リグレッサ( )があることに注意してください$xreg。したがって、に組み込まれているArimaオブジェクトをフィードすると、問題が発生しarimaますsimulate.Arima。背後にあるコードsimulate.Arimaは不一致を適切に処理しているようです$xが、で失敗し$xregます。したがって、によって作成されたArimaオブジェクトを入力するarimaと、関数コードはを参照しようとしますobject$xregが、そのオブジェクトにはそのような名前が付けられていないため、を返しますNULL。したがって、関数がで何かを行おうとするとobject$xreg、外部リグレッサで構成されるデータフレームではなく、NULLを処理します。そして、関数は次の行で機能します。

object$xreg <- cbind(intercept = rep(1, n), object$xreg)

auto.arimaまた、のヘルプページの[値]セクションに、「arimaと同じ」と単純に表示されていることにも気付きました。有馬オブジェクトを出力するのは事実ですがauto.arima、そのオブジェクトに付けられた名前は少し異なります。

つまり、外部リグレッサを使用して構築されたArimaオブジェクトは、コンポーネントを備えているため、auto.arima完全に正常に機能します。によって作成されたArimaオブジェクトについてのみ分類されます。simulate$xregarima

名前が付いていないxregオブジェクトからパラメータ情報を取得する方法を知っている人はいますか?arimaxreg

于 2012-11-07T20:18:51.827 に答える