1. 学ぶ
  2. /
  3. コース
  4. /
  5. Rで学ぶ予測入門

Connected

演習

季節性データに対する auto.arima() と ets() の比較

年次よりも高頻度のデータで学習用とテスト用のデータセットを作りたい場合はどうすればよいでしょうか。必要に応じて、window() 関数の start および/または end キーワードに c(year, period) 形式のベクトルを使えます。また、予測関数で適切な h の値を使っていることを確認する必要があります。h はテストセットのデータ長と等しくするのが原則でしたね。

たとえば、データが 15 年分あり、学習データが最初の 10 年、最後の 5 年を予測したい場合、テストセットには月次で 60 観測が含まれるため、h = 5 ではなく h = 12 * 5 を使います。もし学習データが最初の 9.5 年で、最後の 5.5 年を予測したいなら、余分な 6 か月を考慮して h = 66 を使います。

この章の最後の演習では、四半期ごとのセメント生産データ qcement に適用した季節 ARIMA と ETS モデルを比較します。系列が非常に長いため、時系列のクロスバリデーションではなく、学習用とテスト用に分割しても十分です。このほうがはるかに高速です。

qcement データはワークスペースで利用できます。

指示

100 XP
  • train という学習データを作成します。1988 年から始まり 2007 年第4四半期で終わる、qcement の 20 年分のデータで構成します。end にはベクトルを使用してください。残りがテストデータになります。
  • 学習データに ARIMA モデルと ETS モデルを当てはめ、順に fit1 と fit2 に保存します。
  • これまでの演習と同様に、両モデルの残差がホワイトノイズか確認します。
  • テストデータ期間に対応する予測を、それぞれ fc1 と fc2 として生成します。h にはテストセットに含まれる四半期の総数を設定します。注意: qcement の最後の観測値は年の最終四半期ではありません!
  • accuracy() 関数を使い、RMSE に基づいて優れているモデルを特定し、bettermodel として保存します。