時間序列預測策略
- (1)單步預測與多步預測
- (2)直接多步預測
- (3)遞歸多步預測
- (4)直接+遞歸的混合預測
- (5)多輸入多輸出預測
(1)單步預測與多步預測
-
單步預測:每次預測時,輸入窗口僅預測未來一個值。
-
多步預測:每次預測時,輸入窗口預測未來n個值(也叫n步)。
單步預測和多步預測都是時間序列預測中常見的算法,根據其原理演化出了很多種優秀的算法,本節我們介紹四種非常實用的算法。
在做時間序列預測的時候,我們往往會預測未來多個時間步。但是,我們又沒有未來的數據做訓練,這時候就會引入一個概念:
- N階滯后特征:訓練和預測數據用到了N天之前的數據特征
舉個例子:假設我們有10天的數據,現在要預測未來3天的數據。我們可以通過構造N階滯后特征來實現這個目標。
已知序列:[1,2,3,4,5,6,7,8,9,10],目標序列:[11,12,13]
單步預測:構造1階滯后特征lag(t-1)作為訓練數據,當前已知序列作為訓練目標。下表中,綠色區域為訓練過程,黃色區域為預測過程。當模型訓練完成后,用第10天的數據可以預測第11天的數據,第11天預測第12天,第12天預測第13天。
多步預測:構造多輸出模型,一次預測3個未來值。下圖示例中input長度選取為3,實際應用中input長度通常遠大于output長度。
參考文檔:時間序列:多步預測的方法以及序列問題的分類
(2)直接多步預測
定義:直接多步預測(Direct Multi-Step Forecasting),構建n個模型預測未來n個值,每個模型預測1個值。這種方法本質是一種單步預測法。
我們繼續用之前的示例模型:已知序列:[1,2,3,4,5,6,7,8,9,10],目標序列:[11,12,13]。
為了預測3個時間點的數值,我們需要構建3個模型,分別預測3個數值。
model1:[1,2,3,4,5,6,7,8,9,10],[11],構建1階滯后序列訓練模型
model2:[1,2,3,4,5,6,7,8,9,10],[12],構建2階滯后序列訓練模型
model3:[1,2,3,4,5,6,7,8,9,10],[13],構建3階滯后序列訓練模型
3個模型的訓練過程如下所示:
算法優點:
- 直接多步預測能夠直接預測未來的多個步驟,無需依賴單步預測的結果。這意味著它可以快速給出多步的預測值,無需進行多次迭代或疊加訓練。
- 直接多步預測不依賴單步預測的結果,因此可以避免由于單步預測誤差累積而導致的長期預測精度下降的問題。
算法缺點:
- 直接多步預測法需要為每個預測步長訓練一個模型,這意味著如果預測步長很長,那么需要訓練的模型數量會非常多,這增加了計算成本和模型管理的復雜性。
參考文檔:時間序列多步預測的五種策略
(3)遞歸多步預測
定義:遞歸多步預測(Recursive Multi-Step Forecasting),用單個模型進行訓練,通過使用模型已預測出的時間步的值作為輸入,來預測下一個時間步的值,這個過程是遞歸進行的。
我們繼續用之前的示例模型:已知序列:[1,2,3,4,5,6,7,8,9,10],目標序列:[11,12,13]。
預測3個時間點的數值,我們只需構建1個模型,來遞歸預測3個未來數值。
當序列數據[8,9,10]預測出第11個數據值時,我們需要將這個預測值當做特征[9,10,11]去預測第12個數據。以此類推,遞歸迭代,直到預測過程全部完成。
模型的訓練過程如下所示:
算法優點:
- 遞歸多步預測只需要建立單步預測模型,不需要考慮復雜的多步預測關系式。這種方法使得預測的實現過程相對簡單。
- 遞歸多步預測通過利用時間序列數據之間的相關性,使用前一個時間步的預測結果來對下一個時間步進行預測,這有助于捕捉時間序列數據中的動態變化。
算法缺點:
- 遞歸多步預測的主要缺點是誤差累積。由于它是基于之前步驟的預測結果來進行下一步的預測,因此任何一步的預測誤差都會被帶入到后續的預測中,導致誤差的累積。隨著預測步數的增加,誤差累積效應會變得更加嚴重,從而影響預測結果的準確性。
(4)直接+遞歸的混合預測
定義:直接+遞歸的混合預測(Direct-Recursive Hybrid Forecasting),結合直接策略和遞歸策略,構建n個模型預測未來n個值,但是每個模型都可以使用上一個模型預測出的結果繼續預測。n個模型可以是同構的(相同的lag),也可以是異構的(不同的lag)。
我們繼續用之前的示例模型:已知序列:[1,2,3,4,5,6,7,8,9,10],目標序列:[11,12,13]。
我們構建了3個模型(異構模型)。
model1(用1階滯后特征訓練),預測出的第11個點數值,作為model2(用2階滯后特征訓練)的訓練數據,預測出的第12個點數值,作為model3(用3階滯后特征訓練)的訓練數據,繼續預測第13個點的數值。
算法優點:
- 直接多步預測方法雖然避免了遞歸方法中因使用預測值作為輸入而導致的誤差累積問題,但遞歸方法能夠利用時間序列的相關性。混合預測方法通過結合兩者的特性,可以在一定程度上減少誤差累積,特別是在需要預測多個時間步長時。
- 遞歸方法通過利用前一個時間步的預測結果來預測下一個時間步,從而能夠充分利用時間序列的相關性。混合預測方法保留了這一特性,使得預測結果更加準確。
算法缺點:
- 混合預測方法需要同時訓練直接預測模型和遞歸預測模型,這增加了模型的復雜度。在實際應用中,可能需要更多的計算資源和時間來訓練和優化模型。
(5)多輸入多輸出預測
定義:多輸入多輸出預測MIMO(Multiple Input Multiple Output),在一個模型里輸出多個預測值,其本質是一種多輸出模型。
我們繼續用之前的示例模型:已知序列:[1,2,3,4,5,6,7,8,9,10],目標序列:[11,12,13]。
我們構建了1個模型,3個輸入特征,3個輸出預測值。
算法優點:
- 由于模型能夠同時預測多個未來的數值,因此可以顯著提高預測的效率。這對于需要快速響應或處理大量數據的場景非常有用。
- 在多步預測中,傳統的遞歸預測方法可能會因為每一步的預測誤差累積而導致預測結果逐漸偏離真實值。而多輸出序列預測算法可以一次性預測多個時間點的值,從而減少了誤差累積的可能性。
算法缺點:
- 與單步預測相比,多輸出序列預測算法需要同時處理多個時間點的預測任務,因此計算復雜度通常較高。這可能導致預測速度變慢,尤其是在處理大規模數據集時。
- 為了訓練一個準確的多輸出序列預測模型,通常需要大量的歷史數據來捕捉時間序列的復雜性和動態性。如果數據量不足或質量不高,可能會導致預測結果不準確。