時間序列筆記-三指數模型

筆記說明

在datacamp網站上學習“Time Series with R ”track
“Forecasting Using R”課程 做的對應筆記。
學識有限,錯誤難免,還請不吝賜教。
學習的課程為“Forecasting Using R”,主要用forecast包。
課程參考教材Forecasting: Principles and Practice
課程中數據可在fpp2包得到

本次筆記也參考了其他人的簡書文章:指數平滑方法簡介

在Holt's linear trend method的基礎上添加季節性成分便得到三指數模型——Holt-Winters'模型,他有加法模型和乘法模型兩種形式。

Holt-Winters' additive method

預測值:\hat y_{t+h|t}=l_t+hb_t+s_{t-m+h^+_m}
平滑值:l_t=α(y_t-s_{t-m})+(1-α)(l_{t-1}+b_{t-1})
趨勢:b_t=β^*(l_t-l_{t-1})+(1-β^*)b_{t-1}
季節項:s_t=γ(y_t-l_{t-1}-b_{t-1})+(1-γ)s_{t-m}

  • s_{t-m+h^+_m}為季節項
  • 平滑參數:0≤α≤1,0≤β^*≤1, 0≤γ≤1-α
  • m為季節周期值,例如以季度為周期則m=4
  • 季節項的均值為0

Holt-Winters' multiplicative method

預測值:\hat y_{t+h|t}=(l_t+hb_t)s_{t-m+h^+_m}
平滑值:l_t=α\frac {y_t}{s_{t-m}}+(1-α)(l_{t-1}+b_{t-1})
趨勢:b_t=β^*(l_t-l_{t-1})+(1-β^*)b_{t-1}
季節項:s_t=γ\frac {y_t}{(l_{t-1}+b_{t-1})}+(1-γ)s_{t-m}

  • s_{t-m+h^+_m}為季節項
  • 平滑參數:0≤α≤1,0≤β^*≤1, 0≤γ≤1-α
  • m為季節周期值,例如以季度為周期則m=4
  • 季節項的均值為1
    一般來說,如果時間序列數據的方差有隨時間增大的趨勢,那么更推薦使用乘法模型。

R實現

可以用forecast包的hw(data, seasonal = "additive",h=)進行三指數模型的擬合。seasonal=選項可選擇“additive”或“multiplicative”
實例數據a10記錄了澳大利亞1991-2008年間每月抗糖尿病藥物的銷售量。

# Plot the data
autoplot(a10)

# Produce 3 year forecasts
fc <- hw(a10, seasonal = "multiplicative", h = 36)

# Check if residuals look like white noise
checkresiduals(fc)

# Plot forecasts
autoplot(fc)

autoplot(a10)的輸出省略,看一下殘差分析結果和預測結果:




雖然對殘差的Ljung-Box檢驗顯示殘差不符合白噪聲(檢驗結果省略),但該模型計算的預測值還是能提供一些有用的信息。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容