[譯] 層次時間序列預測法

HarryZhu發表於2021-11-01

大多數關於時間序列預測的文章都側重於特定的聚合程度。但是,當我們能夠深入分析聚合的資料,以便在更細粒度的層次上觀察同一個序列時,挑戰就出現了。在這種情況下,我們往往會發現,對較低水平的預測與總體預測並不一致。為了確保不會出現這種情況,我們可以採用一種稱為分層時間序列(HTS)預測的方法。

理論介紹

我們從資料開始介紹,在討論聚合和分解的時間序列時,我們可以區分兩種情況。通過分析一個例子可以很容易地理解它們:假設我們是一個線上零售商,在許多市場上銷售不同種類的產品(比如亞馬遜)。

第一種情況涉及資料的清晰的層次結構,其中較低的級別惟一地巢狀在較高階別的組中。最簡單的例子就是地理上的分裂。作為零售商,我們可以檢視所有市場的總銷售額,然後按國家分類。如果有必要,我們可以更深入地研究每個地區的銷售情況(比如美國各州等等)。當我們的資料遵循這樣的結構時,我們就是在處理分層的時間序列。

image.png

第二種情況涉及時間序列,其中各級是交叉的,而不是巢狀的。作為一個零售商,我們可以有多層次的細節: 產品類別,價格範圍,我們自己的產品相對於第三方銷售的產品,等等。有了這樣的分裂,就沒有單一的“正確”的聚合方式。在這種情況下,我們使用分組的時間序列。

image.png

當然,當我們聯合分析地理位置和產品類別時,分層和分組的時間序列可以混合成一個更加複雜的結構。

分級時間序列預測的全部挑戰(這個名稱還包括分組和混合案例,只是為了更清楚)是生成整個聚合結構的一致預測。所謂連貫性,我指的是以與基本聚合結構相一致的方式累加的預測。例如,所有區域的預測應該增加到國家水平,所有國家水平增加到更高的水平,等等。或者,可以調和不連貫的預測,使它們連貫一致。

還有一點需要澄清的是,層次化的時間序列預測本身並不是一種時間序列預測方法(如 ARIMA、 ETS 或 Prophet)。相反,它是不同技術的集合,使預測在給定的個人時間序列層次中一致。

下面,我們將介紹時間序列分層預測的主要方法。

自下而上的方法

在自下而上的方法中,我們預測層次結構的最細粒度級別,然後聚合預測以建立更高階別的估計。回到線上零售商的最初例子,我們將預測每個地區的銷售額,然後將這些總和來建立對各自國家的預測。我們可以再次求和得到大陸/地區的水平,然後最終得到總和。

優點:

  • 由於預報是在最低水平上獲得的,因此不會因為彙總而失去資訊。

缺點:

  • 序列之間的關係(例如,不同地區之間的關係)沒有被考慮
  • 往往在高度聚合的資料上表現不佳
  • 計算密集型(取決於任務和較低層級的級數)
  • 資料中的噪音越大,預報的整體準確性就越差

自上而下的方法

自頂向下的方法包括預測層次結構的頂層,然後將預測分解為更細粒度的序列。最常見的是,歷史比例是用來確定分裂。舉個例子,我們可以預測總體水平。然後,看看過去的資料,我們可以推斷美國佔了銷售額的50% ,歐洲佔了40%。然後,我們可以迭代並將該系列分解為更細粒度的級別。

優點:

  • 最簡單的方法
  • 對較高層次的預測是可靠的
  • 只需要一個預報

缺點:

  • 由於資訊丟失(通過歷史比例) ,較低水平的預測不太準確。

從中擴散的方法

從中擴散是上述兩種方法的結合,只能用於嚴格分層的時間序列。在這種方法中,我們選擇中間層並直接進行預測。然後,對於所選級別以上的所有級別,我們使用自下而上的方法ーー將級別向上加總。對於中間層以下的級別,我們使用自頂向下的方法。

由於這是兩種不同方法之間的折衷,因此得出的預測不會丟失太多資訊,而且計算時間也不會像自下而上的方法那樣爆炸。

最優協調方法

上面描述的三種方法側重於在單一水平上預測時間序列,然後使用這些來推斷其餘的水平。與之相反,在最優協調方法中,我們使用給定層次結構可以提供的所有資訊和關係來預測每個級別。

在這種方法中,我們假設基礎預測(對於所有級別的序列中的每個級別)近似滿足層次結構。這意味著預測應該相對準確,而不是扭曲平衡。然後,我們使用線性迴歸模型來調和個別的預測。實際上,連貫的預測是所有各級基礎預測的加權和。為了找到權重,我們需要解決一個方程組,以確保不同層次之間的層次關係被保留。

優點:

  • 更準確的預測
  • 以最少的資訊損失在各級進行無偏預測
  • 考慮到時間序列之間的關係
  • 由於每個預測都是獨立建立的,該方法允許在每個級別使用不同的預測方法(ARIMA、 ETS、 Prophet 等)。此外,不同的級別可以使用不同的特性集,因為某些變數在給定的粒度級別上可能不可用。

缺點:

  • 最複雜的方法
  • 可以是計算密集型的ー不能很好地適用於大量的級數

結論

在本文中,我簡要介紹了層次時間序列預測,並描述了用於應對這一挑戰的最流行的方法。一個顯而易見的問題是使用哪種方法。你可能已經猜到了,答案是: 這要看情況。

前三種方法往往偏向於它們所預測的水平,這在直觀上是有道理的。因此,當獲得一個特定水平的準確預測是最重要的,我們希望獲得其餘作為副產品,我們可能希望從一個更簡單的方法開始,看看我們是否滿意。

否則,我們可能會研究在層次結構的所有級別上傾向於相當準確的最佳協調方法。理想情況下,我們可以嘗試所有不同的方法,同時採用某種時間序列/交叉驗證方案來評估每個方法的效能,並選擇一個最適合我們的問題。

參考資料

原文作者:Eryk Lewinson 譯者: Harry Zhu 英文原文地址:
https://towardsdatascience.com/introduction-to-hierarchical-time-series-forecasting-part-i-88a116f2e2

作為分享主義者(sharism),本人所有網際網路釋出的圖文均遵從CC版權,轉載請保留作者資訊並註明作者 Harry Zhu 的 FinanceR專欄:https://segmentfault.com/blog...,如果涉及原始碼請註明GitHub地址:https://github.com/harryprince。微訊號: harryzhustudio
商業使用請聯絡作者。

相關文章