始める無料で始める

季節性手法の予測精度を評価する

第1章で学んだとおり、window() 関数はインデックスではなく、該当する時点を使って時系列の startend を指定します。これら2つの引数は、以前に ts() の引数としても使ったように、c(year, period) のようなベクトルで指定できます。ここでも periodquarter(四半期)を指します。

ここでは、メルボルンの四半期ごとの来訪者数(visnights[, "VICMetro"])を使って、直近の 1 年、2 年、3 年をそれぞれ除いた3つのトレーニングデータを作成します。演習を始める前に、コンソールで事前読み込み済みの visnights データを確認してください。これにより、予測手法で使用するキーワード h(予測したい値の数を指定)の正しい値を判断しやすくなります。

その後、各トレーニングデータに対して翌年分のデータを予測し、最後に accuracy() を使って予測の 平均絶対百分率誤差(MAPE) を比較します。なぜ MAPE に大きな差が出ると思いますか?

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

Rで学ぶ予測入門

コースを見る

演習の手順

  • visnights[,"VICMetro"] から、直近の 1 年、2 年、3 年をそれぞれ省いた3つのトレーニングデータを window() で作成し、それぞれ train1train2train3 と名付けてください。end キーワードを適切に設定します。
  • 各トレーニングデータに対して、snaive() 手法で 1 年分の予測を計算します。結果をそれぞれ fc1fc2fc3 と名付けてください。
  • サンプルコードの構成に従って、accuracy() 関数を用い、テストセットとして3つの予測の MAPE を比較してください。

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

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

# Create three training series omitting the last 1, 2, and 3 years
train1 <- window(visnights[, "VICMetro"], end = c(2015, 4))
train2 <- ___
train3 <- ___

# Produce forecasts using snaive()
fc1 <- snaive(___, h = ___)
fc2 <- ___
fc3 <- ___

# Use accuracy() to compare the MAPE of each series
accuracy(fc1, visnights[, "VICMetro"])["Test set", "MAPE"]
___
___
コードを編集して実行