SES 對比 naive
在這個練習中,你會運用在第 2 章學到的訓練集與測試集、subset() 函式,以及 accuracy() 函式,來比較 marathon 資料的 SES 與 naive 預測。
你先前在「Evaluating forecast accuracy of non-seasonal methods」的練習裡,做過非常類似的比較(naive 與 mean 預測)。
我們來複習流程:
- 先匯入並載入資料。決定要分配多少資料做訓練、多少做測試;兩者「不應」重疊。
- 篩選資料建立訓練集,之後會把它當作預測函式的引數。你也可以另外建立測試集以便之後使用(可選)。
- 使用你選擇的預測函式對訓練集進行預測,並將
h設為你要預測的筆數,同時也是測試集的長度。 - 若要查看結果,使用
accuracy()函式,將預測物件作為第一個引數,原始資料(或測試集)作為第二個引數。 - 從輸出中選擇一個評估指標,例如 RMSE 或 MAE,來評估預測;誤差越小代表準確度越高。
marathon 資料已載入到你的工作環境。
本練習屬於課程
R 的時間序列預測
練習說明
- 使用
subset(),為marathon建立訓練集,包含除最後 20 年之外的所有資料,並將最後 20 年保留作為測試。 - 分別計算此訓練集的 SES 與 naive 預測,並將結果儲存為
fcses與fcnaive。 - 在主控台使用
accuracy()函式計算這兩組預測的準確度指標。 - 依據 RMSE 選出較佳的預測(
fcses或fcnaive),並指定給fcbest。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create a training set using subset()
train <- ___(___, end = length(marathon) - ___)
# Compute SES and naive forecasts, save to fcses and fcnaive
fcses <- ses(___, h = ___)
fcnaive <- naive(___, h = ___)
# Calculate forecast accuracy measures
accuracy(___, ___)
accuracy(___, ___)
# Save the best forecasts as fcbest
fcbest <- ___