2017-10-22 8 views
8

Hyndmanのforecastパッケージを使用して、週単位でいくらか正確なtbats予測を生成しますが、休日に重大なエラーが発生します。モデルに休日を含めるにはどうすればいいですか?また、有馬さんは毎週のデータをうまく収めることができませんでした。だから、休日はアーリマ以外の方法で追加する必要があります。祝日を含む週間予報

私は2つの解決策を見てきました。 1つのhttps://robjhyndman.com/hyndsight/dailydata/は、休日をフーリエ項のダミー変数として追加する方法を示しています。問題は、ダミー変数が1または0の形をとっていることです。異なる休日には、1または0が取り込まない異なる効果があることがわかります。たとえば、ブラックフライデーは、中国の新年とは非常に異なっています。

もう一つの解決策はここにあります。ここで、共変量nnetrの変更は、季節的ダミー変数を持つauto.arimaの代わりに使用されます。問題は私の休日を入力するためにRコードを書く方法がわかりません。例が役に立つでしょう。

答えて

2

以下は、私が必要とするすべてを行いました。

k=23 
#forecast holidays 
#bool list of future holidays 
holidayf <- c(0,0,0,0,0,1,0,0,0,1,1,1,1,1,0,0,0) 
h <- length(holidayf) 

#given holidays 
holiday <- df[,2] 
y <- ts(df[,1],start = 2011,frequency = 52) 
z <- fourier(y, K=k) 
zf <- fourier(y, K=k, h=h) 
fit <- auto.arima(y, xreg=cbind(z,holiday), seasonal=FALSE) 
fc <- forecast(fit, xreg=cbind(zf,holidayf), h=h) 
fc %>% autoplot() 
summary(fit) 

異なる休暇の問題を解決するには、別の休暇ダミー変数を追加するだけです。たとえば、良い休日のベクトルと悪い休日のベクトルを作成してcbindとし、xregに入れることができます。私は上記のコードでこれを示していませんでしたが、それはまっすぐです。

7

公式統計機関で使用するために、時系列モデリングのためのベンチマークは、米国国勢調査局によるx13-arima-seatsです。それは、季節の影響だけでなく、イースターと同様、中国の新年を含む "パラメトリックな"休日を扱う。

機能は、基礎となるx13-arima-seatsバイナリをインストールして使用するseasonalパッケージを通じてRで入手できます。

また、すべてではない機能のほとんどにアクセスできるフル機能interactive websiteがあります。

+0

これは興味深い情報です。それがRでどのように使用されたかのコード例はありますか? – DataTx

+0

はい、クリストフと私自身と、ドラフトペーパーと、パッケージの例の拡張ビネットがあります。そしてクリストフは他の場所ではもっと上手くいっています。これはおそらくあなたが望むものです。まだ難しいですが、これはAFAIKという最も完全な(そして複雑な)ツールです。 –

+0

週単位のデータはありますか?私はそうではないと思った。 –

6

Facebookのprophetパッケージについて読んだことがありますか?

は、それを使用していないが、ドキュメントを読んで、それはまた、休日を占め迅速な実装のように思える:

https://cran.r-project.org/web/packages/prophet/prophet.pdf

が に基づいて予測時系列データのための手順を実装します添加剤の非直線的な傾向は毎年、毎週 季節と適合しているモデルで、プラスの休日[...]

https://cran.r-project.org/web/packages/prophet/vignettes/quick_start.html

+0

私はこれを使っていませんが、誰かが予告パッケージを使用してから預言者に移り住み、もっとフレンドリーな方法で休暇をプログラムする方がはるかに簡単でした。 – DataJack

+0

それを使用しました。何かを素早くまとめる必要があるときに、また光沢と一体化するときに非常に便利です。 – amrrs