Machine-Learning
用機器學習預測幾個時期
我最近回顧了我的時間序列知識,並意識到機器學習大多只提供領先一步的預測。
對於提前一步的預測,我的意思是預測,例如,如果我們有每小時數據,則使用上午 10 點的數據預測上午 11 點和上午 11 點的 12 點等。
**機器學習方法能否產生提前 h 步的預測?**使用 h 超前預測,我的意思是,例如,假設每小時數據,我們使用上午 10 點的數據進行超前 7 步預測,以獲得 11、12、13、14、15、16、17 的估計值時鐘。
與我的主要問題有關,我想知道:
- 我沒有看到有人使用機器學習進行超前預測的原因是什麼?
- 如果有使用機器學習的方法,它比 ARIMA 更精確還是更不精確?
(部分摘自我之前的一篇文章) 首先你需要區分執行多步時間序列預測的兩種不同方式:遞歸預測和直接預測:
- 在遞歸預測(也稱為迭代預測)中,您只訓練模型進行一步預測。訓練完成後,您遞歸地應用最終模型來預測提前 1 步、提前 2 步等……直到達到所需 $ n $ 步驟預測範圍。為此,您將每個連續步驟的預測反饋到模型中以生成下一步。這種方法被 ARIMA 和指數平滑算法等傳統預測算法使用,也可用於基於機器學習的預測(參見這篇文章的例子,這篇文章的一些討論)。
- 直接預測是當你為每個步驟訓練一個單獨的模型時(所以你試圖“直接”預測 $ n^{th} $ 領先而不是達到 $ n $ 遞歸步驟。見Ben Taied等人。討論直接預測和更複雜的組合方法。
現在回答你的主要問題:
機器學習方法能否產生提前 h 步的預測?
是的,ML 方法可以,而且它們可以使用遞歸和直接多步預測生成提前 h 步預測。不僅如此,對於直接多步預測,它們實際上比 ARIMA 或指數平滑等傳統模型更適合該任務。但是請注意,對於直接多步預測,您需要事先指定要預測的 h 步並相應地訓練您的模型,而對於遞歸預測,您可以將模型用於您想要的任意數量的未來步驟.
此外, Chevillon & Hendry認為,在某些情況下,直接多步預測比遞歸預測更準確——這意味著 ML 將比傳統方法更準確。
對於您的其他問題:
- 我沒有看到有人使用機器學習進行超前預測的原因是什麼?
許多人使用 ML 進行多步預測,尤其是使用神經網絡:R Forecast 包中提供的 Hyndman 的 nnetar 方法、Kourentzes 的 nnfor R 包、亞馬遜的 DeepAR 模型等等。
XGBoost 也已成功用於一些 Kaggle 時間序列比賽。
參見Bontempi等人。進行一般性討論。
- 如果有使用機器學習的方法,它比 ARIMA 更精確還是更不精確?
這是一個懸而未決的問題,顯然取決於預測的數據和應用程序。