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()