1. 학습
  2. /
  3. 강의
  4. /
  5. Rで学ぶ予測入門

Connected

연습 문제

非季節データにおける auto.arima() と ets() の比較

AICc 統計量は、同じクラス内のモデルを選択するのに役立ちます。たとえば、ETS モデルの中から選ぶ、あるいは ARIMA モデルの中から選ぶといった使い方です。ただし、ETS と ARIMA はモデルクラスが異なるため、AICc で両者を比較することはできません。

その代わりに、austa データに対して時系列クロスバリデーションを用いることで、ARIMA モデルと ETS モデルを比較できます。tsCV() は予測オブジェクトを返す関数を必要とするため、モデルを当てはめて予測を返す簡単な関数を用意します。tsCV() の引数は、時系列、予測関数、予測ホライズン h です。第2章の次のコード断片を確認してください。

e <- matrix(NA_real_, nrow = 1000, ncol = 8)
for (h in 1:8)
  e[, h] <- tsCV(goog, naive, h = h)
  ...

さらに、R のパイプ演算子は、左側の値を右側の関数に順に引数として渡すことを思い出してください。以前の章で見たコードを基にした例を示します。

# ets() でモデル化した lynx 系列の20年予測をプロット
lynx %>% ets() %>% forecast(h = 20) %>% autoplot()

この演習では、austa に適用した2つの予測関数の MSE を比較し、最も良い予測を行う関数の予測をプロットします。今回も、austa はワークスペースに読み込まれています。

지침

100 XP
  • auto.arima() の予測を行うように farima() 関数を完成させてください。ets() に対して同様の処理を行っている fets() の既存コードの構造に従いましょう。
  • austa に対して、tsCV() を使って ETS モデルの一歩先予測誤差を計算し、e1 に保存してください。
  • austa に対して、tsCV() を使って ARIMA モデルの一歩先予測誤差を計算し、e2 に保存してください。
  • それぞれのモデルクラスについて、クロスバリデーションの MSE を計算し、欠損値を除外してください。MSE の計算方法を忘れた場合は前の章を参照しましょう。
  • 最良のモデルクラスを用いて、austa の将来値を10年先まで予測し、プロットしてください。