鄭俊褒 張旭 馬騰洲
摘? 要: 針對時間序列預測方法訓練復雜、遷移預測能力差等問題,提出一種自適應預測方法。先根據預測誤差和當前值確定下一時刻預測值的范圍,再結合短期歷史趨勢確定最終預測值。得到的當前預測值代入下一輪循環中繼續預測,通過不斷“預測-校正-預測”循環實現對數據預測。最后利用金融、風力等時序數據,LSTM、SVM、ARIMA、MA等經典時間序列預測算法在預測精度、遷移預測能力、運算速度等方面做了對比。
關鍵詞: 時序序列; 盲信號; 數據預測; 泛化能力
中圖分類號:TP13? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2023)09-10-04
Research on time series forecasting method based on historical trend and forecast error
Zheng Junbao1, Zhang Xu1, Ma Tengzhou2
(1. School of Computer Science and Technology, Zhejiang Sci-Tech University, Hangzhou, Zhejiang 310018, China; 2. Shanghai Customs)
Abstract: Aiming at the problems of complex training and poor transfer forecasting ability of time series forecasting method, an adaptive forecasting method is proposed. The range of the next forecast value is first determined according to the forecast error and the current value, and then the final forecast value is determined by combining the short-term historical trend. The obtained forecast value is then substituted into the next cycle to continue forecasting, and the data forecasting is achieved through a continuous "forecast-correction-forecast" cycle. Using the time series data such as financial and wind power, the proposed algorithm is compared with LSTM, SVM, ARIMA, MA and other classical time series forecasting algorithms in terms of forecasting accuracy, transfer forecasting ability and computing speed.
Key words: time series; blind signal; data forecasting; generalization ability
0 引言
時序序列預測,是指根據過去的時間序列數據,預測未來一段時間內的數據變化趨勢,在金融股票[1]、天氣預報[2]、傳感預警[3]等很多領域有著重要的應用。目前,時序序列預測的研究主要采取兩種技術路線:一種是直接利用數據統計規律的統計學預測方法,另一種是由數據驅動的機器學習方法。前者主要有移動平均法[4]、指數平滑法[5]、差分自回歸移動平均模型法[6],后者機器學習方法主要有支持向量機SVM、循環神經網絡RNN[7]、長短期記憶網絡LSTM等。
由于統計學預測方法只是對歷史數據做統一化處理,對于非線性時間序列預測結果較差。如移動平均方法,雖然能夠有效消除預測中的隨機波動,但預測結果總是停留在過去的平均水平而無法預測下一時刻的變化;機器學習方法一般通過數據訓練所得的模型進行預測,在數據訓練量小的情況下,機器學習方法無法達到理想效果,并且如果是對不同類型的時間序列預測就需要重新訓練模型。此外,神經網絡預測算法雖然能實現多步預測,但在像自動化控制領域這種對實時性要求較高,且需要結合當前時刻真實值對下一時刻做出修正預測的場景就不適合。一些預測算法比較適合自動化控制領域,如卡爾曼濾波算法,但其需要對系統模型已知的情況下構建狀態方程和測量方程,對不同的場景無法直接遷移預測。
基于以上問題,本文提出一種基于歷史趨勢和預測誤差的時序序列自適應預測方法Historical Trends Forecast Errors(HTFE):一方面判定近期時間序列的趨勢類型(增長型、衰減型或無規則型),另一方面根據預測誤差和當前真實值得到當前預測值的范圍,最終通過結合序列趨勢和預測范圍確定最終預測值。之后通過不斷重復“預測-校正-預測”,實現對連續狀態的持續預測。相較于機器學習模型,HTFE方法實現了自適應預測,對于不同類型的一維時間序列可以直接遷移預測;相較于統計學預測方法,HTFE方法通過預測誤差不斷地修正下一次預測的范圍,從而實現對數據更精準的預測。
1 HTFE模型
1.1 算法原理及流程
HTFE算法通過“預測-校正-預測”循環方式對數據進行預測,對于每一輪預測,HTFE算法首先根據最近數據的趨勢將預測分為增長型、衰減型、無規律型。然后通過上一時刻預測值和時間序列當前真實值,得到預測誤差,根據預測誤差和當前值得到初步預測值,再根據上一時刻最大、最小預測值以及當前時刻初步預測值,更新當前時刻的最大、最小預測值,形成下一時刻的預測區間。最后根據歷史趨勢和預測區間得到最終的預測值,得到預測值后本輪預測結束,將當前預測值和預測區間代入到下一輪,完成下一時刻的預測。通過不斷循環單步預測,從而實現對數據整體預測。
HTFE算法單輪預測結構如圖1所示,對于每一輪預測,都會根據上一時刻的預測值[X'n]、預測最大值MAX、預測最小值MIN、當前真實值[Xn]這四個值以及最新的時間序列趨勢,來確定下一時刻的預測值和預測范圍。
HTFE算法流程如下:
(a) 判斷歷史趨勢:取時間序列最近h個數據,若序列單調遞增則其歷史趨勢為增長型,若序列單調遞減則為衰減型,否則為無規律型。
(b) 計算當前預測誤差:計算上一時刻預測值[x'n]和真實值[xn]的誤差乘以誤差因子[ω]記為預測誤差[δn]:
[δn=ω×(x'n-xn)] ⑴
(c) 計算初步預測值:將預測誤差加上當前真實值可以得到對下一時刻的初步預測值。
根據歷史誤差[δn]和上一時刻預測值[x'n]更新初步預測值[xpren+1]。
[xpren+1=xn+δn] ⑵
(d) 更新預測區間:根據當前計算得到的初步預測值[xpren+1]和上一時刻估計的預測范圍([xminn],[xmaxn])更新下一時刻的預測范圍([xminn+1,xmaxn+1]),其中[μ]為預測區間誤差因子。
[xmaxn+1=xpren+1+μ×(xmaxn-xpren+1)]? ⑶
[xminn+1=xpren+1+μ×(xminn-xpren+1)]? ⑷
(e) 調整預測范圍的最大最小值:為了保證下一時刻的預測范圍能夠覆蓋當前值,當最大預測值小于當前真實值時,令最大預測值等于當前真實值。如果最小預測值大于當前真實值,則令最小預測值等于當前真實值。
[xmaxn+1=xn (xmaxn+1<xn)] ⑸
[xminn+1=xn (xminn+1>xn)] ⑹
(f) 計算最終預測值:根據預測最大值和最小值結合歷史趨勢得到下一時刻預測最終值[x'n+1]:
[x'n+1=α×xmaxn+1+β×xminn+1+γ×(xmaxn+1+xminn+1)] ⑺
其中,[α, β, γ]由歷史趨勢得出,如果趨勢為增長型[α=1,]
[β=0, γ=0]如果為衰減型[α=0, β=1, γ=0],如果趨勢無特征那么[α=0, β=0, γ=0.5]。
(g) 重復以上步驟,以滑動窗口方式直至預測結束。
2 實驗與結果
2.1 實驗數據
由于不同時序數據具有不同的特點,為了評估模型在不同時序數據的表現,本文選用了國內外股票數據、風力發電數據等不同行業背景的時序數據。
(a) 在金融數據方面,本文采用自1993年4月30日至2020年8月11日的上證指數(000001.SH)、A股指數(000002.SH),工業指數(000004.SH)、商業指數(000005.SH)、地產指數(000006.SH)等四個股市指數數據,各6640個數據點,同時選擇了自2019年11月14日至2020年12年23日的271個數據點的印尼人民銀行(BBRI)股票數據以評估模型在國外股市上的表現。
(b) 在風力發電數據方面,本文采用比利時風電場2022年8月一個月內每天測量的風力值數據進行預測。采樣間隔為15分鐘,共2975個數據點。
2.2 對比方法及參數設置
本文選取了長短期記憶網絡LSTM、支持向量機SVM、差分整合移動平均自回歸模型ARIMA、移動平均MA這幾種常用的時序數據預測方法作對比來評估本文方法的性能。本文將前80%的數據集作為訓練集,后20%作為測試集。所有模型以滑動窗口方式對歸一化后的測試集進行預測。
(a) LSTM采用一個輸入層,四個LSTM塊,以及一個單值預測的輸出層。優化器為adam,損失函數為均方誤差MSE,訓練次數為1000次。
(b) SVM模型采用懲罰系數為1000,核函數半徑g為0.01,核函數為高斯核函數RBF。
(c) 為了保證ARIMA批量預測的準確性和效率,本文選用pmdarima(python環境中基于ARIMA模型進行時間序列分析的包)中的auto_arima方法可以自動計算出信息準則的最小階數組合,從而減少由于主觀判斷引起的誤差。
(d) 移動平均法設定MA滑動周期為2。
(e) HTFE算法參數選取歷史趨勢觀測步數h為3,預測誤差因子[ω]為0.1,預測區間誤差因子[μ]為0.5。
2.3 實驗結果與分析
2.3.1 預測精度對比
本文通過不同的模型對上述不同數據集分別做了預測,以均方根誤差(RMSE)衡量ANN、LSTM、SVM、HTFE方法模型對股票收盤價的預測效果,各模型在各數據集預測結果如表1所示。
從表2數據對比發現,HTFE模型相比其他模型誤差更小,精度更高。在股票數據和風電場數據中HTFE比LSTM預測精度分別提升49.8%、50.47%,比MA預測精度分別提升10%、24%。
為了讓預測效果更直觀,本文將四種模型對印度人民銀行股票數據RRBI預測結果和原數據進行對比,如圖2所示,可以看出五種預測模型存在不同程度上的滯后性,但HTFE方法在預測結果上更加接近真實數據的軌跡。
2.3.2 預測速度對比
在運算速度方面,五種預測模型在印尼人民銀行股票數據的訓練時間和預測耗費時間如表2所示。LSTM由于需要訓練1000輪導致花費時間較長,ARIMA由于每次預測都需要計算合適的參數導致花費時間最長,由于RRBI股票數據只有271個數據點,SVM在本次訓練和預測時間耗費時間較短,HTFE與MA、SVM在運算速度方面屬于同一個量級,能夠保持較好的運算速度。
2.3.3 遷移預測對比
在模型遷移預測方面,為了對比五種模型的遷移預測精度,本文將各模型在上證指數股票集上進行訓練,在印尼人民銀行股票上做出預測,得到的結果如表3所示,可以看出,在上證指數股票數據訓練的其他模型遷移至印尼人民銀行股票上再進行預測,得到的結果比在原始數據集上得到的結果差,而MA、HTFE算法由于自適應特點,遷移預測和非遷移預測結果保持一致。
綜上,與其他經典預測模型在不同時間序列數據上的預測結果比較,HTFE模型在預測精度和遷移預測上具有穩定表現,同時,預測速度也具有優勢。
3 結論
本文提出了基于歷史趨勢和預測誤差的自適應時間序列預測方法,一方面判定近期序列的歷史趨勢,另一方面根據預測誤差和上一次預測值得到當前預測值的范圍,最終通過結合歷史趨勢和預測范圍確定最終預測值。通過對多類時間序列數據與多種經典時間序列預測模型進行逐步預測和對比分析,本文提出的方法在不進行訓練的狀態下,在股票和風力時間序列數據預測精度方面要優于LSTM、SVM、ARIMA、MA等模型,并且擁有較快的預測速度和具備遷移預測能力。目前HTFE算法主要結合歷史趨勢和預測誤差對單變量時序序列進行單步預測,如何將當前算法擴展到多變量時序序列預測,以及如何提升在多步預測中的效果還是未來要考慮的方向。
參考文獻(References):
[1] 宋剛,張云峰,包芳勛,等.基于粒子群優化LSTM的股票預測模型[J].北京航空航天大學學報,2019,45(12):2533-2542.
[2] J. W. Taylor and R. Buizza, "Neural network load
forecasting with weather ensemble predictions," in IEEE Transactions on Power Systems,2002,17(3):626-632.
[3] Ruan Yi,Yuan Lifen,He Yigang,et al. Prognostics andhealth management for piezoresistive pressure sensor based on improved gated recurrent unit networks[J]. Measurement Science and Technology,2022,33(11).
[4] Liu Guangze,Yuan Mingkang,Chen Xudong, et al. Waterdemand in watershed forecasting using a hybrid model based on autoregressive moving average and deep neural networks[J]. Environmental science and pollution research international,2022.
[5] 楊國華,鄭豪豐,張鴻皓,等.基于Holt-Winters指數平滑和時間卷積網絡的短期負荷預測[J].電力系統自動化,2022,46(6):73-82.
[6] 孟海寧,童新宇,石月開,等.基于ARIMA-RNN組合模型的云服務器老化預測方法[J].通信學報,2021,42(1):163-171.
[7] 趙程棟,莊繼暉,程曉鳴,等.基于特征注意力機制的RNN-Bi-LSTM船舶軌跡預測[J].廣東海洋大學學報,2022,42(5):102-109.