ETS 與季節性天真法比較
在這裡,你要比較 cement 的 20 年資料中,ETS 預測與季節性天真法在 4 期前視(ahead)下、使用時間序列交叉驗證的表現。由於執行時間較長,你的工作空間已提供縮短版的 cement 序列。
tsCV() 的第二個引數必須回傳一個 forecast 物件,所以你需要一個能配適模型並回傳預測的函式。回顧:
> args(tsCV)
function (y, forecastfunction, h = 1, ...)
在本練習中,你會同時使用一個現有的預測函式,以及一個替你建立好的函式。記得,有時簡單的方法會比複雜的方法更好!
本練習屬於課程
R 的時間序列預測
練習說明
- 已替你寫好一個回傳 ETS 預測的函式
fets()。 - 對
cement資料,在預測範圍為 4 的情況下,對 ETS 與季節性天真法都套用tsCV()。分別使用新建立的fets與現有的snaive作為e1與e2的預測函式引數。 - 計算得到的 4 步誤差的 MSE,並移除遺漏值。計算 MSE 的表達式已提供,但第二個選用引數尚未填入(你先前用過它)。
- 將最佳的 MSE 存為
bestmse。你可以直接複製上一個步驟中產生最佳 MSE 的整行程式碼。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Function to return ETS forecasts
fets <- function(y, h) {
forecast(ets(y), h = h)
}
# Apply tsCV() for both methods
e1 <- tsCV(___, ___, h = ___)
e2 <- tsCV(___, ___, h = ___)
# Compute MSE of resulting errors (watch out for missing values)
mean(e1^2, ___)
mean(e2^2, ___)
# Copy the best forecast MSE
bestmse <- ___