開始使用免費開始

使用 tsCV() 進行時間序列交叉驗證

tsCV() 函式會計算時間序列的交叉驗證誤差。你需要指定時間序列、預測方法,以及前視步數(forecast horizon)。以下是影片中的範例:

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

在這裡,你會使用 tsCV() 來計算並繪製最多前視 8 步的 MSE 值,同時將 naive() 方法套用到 goog 資料。此練習使用 ggplot2 繪圖,你可能還不熟悉,但我們已提供足夠的程式碼,讓你可以完成剩下的部分。

請務必回顧投影片中關於 tsCV() 的內容。goog 資料已經載入到你的工作空間中。

本練習屬於課程

R 的時間序列預測

檢視課程

練習說明

  • 使用 goog 資料並以 naive() 函式進行預測,計算最多前視 8 步的交叉驗證誤差。將結果指定給 e
  • 計算各個前視步數的 MSE 值,並透過指定第二個參數來移除 e 中的遺漏值。計算 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()
編輯並執行程式碼