始める無料で始める

tsCV() を使った時系列のクロスバリデーション

tsCV() 関数は、時系列のクロスバリデーション誤差を計算します。時系列データ、予測メソッド、予測ホライゾンを指定する必要があります。動画で使った例は次のとおりです。

> e = tsCV(oil, forecastfunction = naive, h = 1)

ここでは、tsCV() を使って goog データに naive() メソッドを適用し、最大 8 ステップ先までの MSE を計算してプロットします。演習では ggplot2 のグラフィックスを使いますが、必要なコードは十分に用意してあるので、残りを補っていただければ大丈夫です。

講義の tsCV() に関するスライドを必ず参照してください。goog データはワークスペースに読み込まれています。

この演習はコースの一部です

Rで学ぶ予測入門

コースを見る

演習の手順

  • goog データを使い、naive() 関数で予測して、最大 8 ステップ先までのクロスバリデーション誤差を計算し、e に代入します。
  • 各予測ホライゾンの MSE を計算し、e の欠損値は第 2 引数で除去します。MSE を計算する式は用意してあります。
  • 得られた MSE 値(y)を予測ホライゾン(x)に対してプロットします。関数に関する知識を思い出してください。もし関数の引数リストに MSE = mse があるなら、mse は関数の「外」にあるワークスペース内のオブジェクトを指し、MSE は関数「内」でそのオブジェクトを参照するための変数名です。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Compute cross-validated errors for up to 8 steps ahead
e <- tsCV(___, forecastfunction = ___, h = ___)

# Compute the MSE values and remove missing values
mse <- colMeans(e^2, na.rm = ___)

# Plot the MSE values against the forecast horizon
data.frame(h = 1:8, MSE = mse) %>%
  ggplot(aes(x = h, y = ___)) + geom_point()
コードを編集して実行