開始使用免費開始

SES 對比 naive

在這個練習中,你會運用在第 2 章學到的訓練集與測試集、subset() 函式,以及 accuracy() 函式,來比較 marathon 資料的 SES 與 naive 預測。

你先前在「Evaluating forecast accuracy of non-seasonal methods」的練習裡,做過非常類似的比較(naive 與 mean 預測)。

我們來複習流程:

  1. 先匯入並載入資料。決定要分配多少資料做訓練、多少做測試;兩者「不應」重疊。
  2. 篩選資料建立訓練集,之後會把它當作預測函式的引數。你也可以另外建立測試集以便之後使用(可選)。
  3. 使用你選擇的預測函式對訓練集進行預測,並將 h 設為你要預測的筆數,同時也是測試集的長度。
  4. 若要查看結果,使用 accuracy() 函式,將預測物件作為第一個引數,原始資料(或測試集)作為第二個引數。
  5. 從輸出中選擇一個評估指標,例如 RMSE 或 MAE,來評估預測;誤差越小代表準確度越高。

marathon 資料已載入到你的工作環境。

本練習屬於課程

R 的時間序列預測

檢視課程

練習說明

  • 使用 subset(),為 marathon 建立訓練集,包含除最後 20 年之外的所有資料,並將最後 20 年保留作為測試。
  • 分別計算此訓練集的 SES 與 naive 預測,並將結果儲存為 fcsesfcnaive
  • 在主控台使用 accuracy() 函式計算這兩組預測的準確度指標。
  • 依據 RMSE 選出較佳的預測(fcsesfcnaive),並指定給 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 <- ___
編輯並執行程式碼