文家璇, 王 苗, 劉 濟(jì)
(華東理工大學(xué)信息科學(xué)與工程學(xué)院, 上海 200237)
由于事物發(fā)展的影響因素不明確或者數(shù)據(jù)采集困難,許多預(yù)測問題演變?yōu)閱巫兞繒r間序列預(yù)測問題,即從過去的時序數(shù)據(jù)中挖掘其自身內(nèi)在的規(guī)律,從而對其未來發(fā)展趨勢進(jìn)行預(yù)測[1]。本文考慮此類單變量時間序列的多步預(yù)測問題,例如國際原油價格預(yù)測、維修備件需求預(yù)測、政府負(fù)債率預(yù)測、氣象風(fēng)速預(yù)測等。
時間序列預(yù)測模型有統(tǒng)計(jì)學(xué)預(yù)測模型、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)預(yù)測模型、混合預(yù)測模型三大類。經(jīng)典的統(tǒng)計(jì)學(xué)時間序列預(yù)測模型常見的有指數(shù)平滑法[2]、移動平均自回歸[3](Auto Regressive Integrated Moving Average,ARIMA)等,適用于線性和平穩(wěn)的時間序列預(yù)測。機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法是最近幾年被廣泛使用的時間序列預(yù)測方法,如支持向量機(jī)[4](Support Vector Machine,SVM)、長短期記憶神經(jīng)網(wǎng)絡(luò)[5](Long Short-Term Memory,LSTM)、隨機(jī)森林[6](Random Forests,RF)等,具有模型構(gòu)造靈活、適應(yīng)性好、精度較高的優(yōu)點(diǎn)。其中,RF 具有參數(shù)較少、泛化性能良好、實(shí)現(xiàn)較為簡單等更為良好的特性,被許多學(xué)者青睞。Fiona 等[7]利用衛(wèi)星收集的氣象、植被等變量作為影響因子,建立了預(yù)測花粉濃度的RF 模型。Abul 等[8]利用RF 模型預(yù)測比特幣和黃金價格的方向,結(jié)果表明RF 模型的精度高于常用的logit 模型。RF 是一種集成學(xué)習(xí)算法,它構(gòu)造若干性能不同的基學(xué)習(xí)器,再通過一定的策略進(jìn)行集成,本文采用RF 算法建立時序分解后的各子序列預(yù)測模型。
基于模態(tài)分解的時間序列預(yù)測方法利用將復(fù)雜模態(tài)分解為較簡單模態(tài)進(jìn)行預(yù)測更為容易的思想,它屬于混合預(yù)測模型的一種,目前有大量學(xué)者對此進(jìn)行研究[5,9-13]。常見的時序分解方法有小波分解(Wavelet Transform,WT)、經(jīng)驗(yàn)?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)和變分模態(tài)分解(Variational Modal Decomposition,VMD)等。VMD 方法由Dragomiretskiy 等[12]提出,可有效避免EMD 方法存在的模態(tài)混疊現(xiàn)象,并具有良好的噪聲魯棒性,被廣泛應(yīng)用于時間序列預(yù)測研究中。Zhang 等[9]將VMD 和粒子群算法優(yōu)化的支持向量機(jī)回歸結(jié)合,建立了短期電力負(fù)荷預(yù)測模型,并得到了精度較高的結(jié)果。Li 等[10]則是利用VMD 將原始負(fù)荷數(shù)據(jù)分解為不同的子模態(tài),然后使用基于蚱蜢算法的最小二乘支持向量機(jī)模型預(yù)測每個子模態(tài)的結(jié)果,求和得到最后的預(yù)測結(jié)果,與其他方案相比,該算法取得了最優(yōu)結(jié)果。本文提出采用VMD 方法對復(fù)雜時間序列進(jìn)行分解,從而建立預(yù)測模型。
目前,時序分解預(yù)測算法存在3 個方面的問題:(1)VMD 算法中分解子序列個數(shù)K和懲罰因子α的取值對結(jié)果影響很大,大多數(shù)研究使用人工經(jīng)驗(yàn)取值,存在很大隨機(jī)性[14];(2)各子序列的模態(tài)特征各不相同,但現(xiàn)有研究仍然采用單一模型對不同子序列進(jìn)行建模,沒有利用各模態(tài)的相異性進(jìn)行針對性的處理,導(dǎo)致部分子序列預(yù)測精度高、部分子序列的特征卻沒有充分挖掘[4-5,13-14];(3)絕大多數(shù)文獻(xiàn)的時序分解是對所有歷史數(shù)據(jù)進(jìn)行一次分解,再在各子序列劃分訓(xùn)練集和測試集進(jìn)行建模[14-16],這種思路在建模階段使用了測試集數(shù)據(jù),實(shí)際應(yīng)用時顯然是不可行的。
針對上述問題,本文提出一種新的基于VMD 分解的時間序列預(yù)測方法,首先采用遺傳算法對VMD 分解過程進(jìn)行參數(shù)尋優(yōu),VMD 分解參數(shù)K和α隨時間序列不同而自適應(yīng)變化。其次,針對各子序列模態(tài)特征的不同,使用RF 構(gòu)造若干差異顯著的基學(xué)習(xí)器,對不同特征的子序列進(jìn)行充分學(xué)習(xí)并建立較為準(zhǔn)確的預(yù)測子模型。上述建模過程僅僅在原始數(shù)據(jù)的訓(xùn)練集上完成,實(shí)際測試(或應(yīng)用)時,每產(chǎn)生一個新的已知數(shù)據(jù),將其添加到歷史數(shù)據(jù)末尾,重新進(jìn)行VMD 分解和預(yù)測及重構(gòu),本文的這種實(shí)時分解預(yù)測思路能滿足實(shí)際應(yīng)用需要。
VMD 是一種自適應(yīng)非遞歸信號分解方法。它通過將輸入信號x(t) 分解為一組離散的準(zhǔn)正交帶限模態(tài)子序列uk,將維納濾波器推廣到多個自適應(yīng)頻帶,通過VMD 分解獲得的模態(tài)主要分布在中心頻率wk附近[17]。VMD 分解本質(zhì)是一個變分優(yōu)化問題,旨在最小化每種模態(tài)的帶寬,可表示為:
其中:uk(t) 表示第k個子模態(tài),k=1,···,K;wk表示其中心頻率;x(t) 表示輸入信號; δ (t) 表示狄拉克δ函數(shù);?t表示求時間梯度;j表示虛數(shù)單位; ? 表示卷積運(yùn)算符。
為了求解式(1)的優(yōu)化問題,通常引入二次懲罰因子和拉格朗日乘子來處理約束,可以得到增廣拉格朗日修正方程,
RF 算法是一種基于決策樹和隨機(jī)子空間理論的集成學(xué)習(xí)算法。其基本思想是構(gòu)造若干性能不同的基學(xué)習(xí)器,并通過一定的策略組合基學(xué)習(xí)器的預(yù)測結(jié)果[18]。
其中:I(條件) 表示滿足條件,返回值為1;不滿足條件,返回值為0。
RF 這種隨機(jī)子空間的集成學(xué)習(xí)策略,對于本文研究的問題有較大優(yōu)勢,由于使用VMD 分解得到的各個子序列具有顯著差異性,單一結(jié)構(gòu)的預(yù)測模型難以適用于每個子序列,導(dǎo)致部分子序列預(yù)測精度高、部分子序列的特征卻沒有充分挖掘。而RF 框架下,每個序列模型都是由基于自身樣本和屬性擾動獲得的基學(xué)習(xí)器構(gòu)成,有助于對不同特征的子序列進(jìn)行充分學(xué)習(xí)并建立較為準(zhǔn)確的預(yù)測模型。
由于VMD 的參數(shù)K和 α 對分解結(jié)果有較大的影響,本文引入排列熵(Permutation Entropy,PE)概念進(jìn)行VMD 參數(shù)的優(yōu)化,以獲得最優(yōu)分解參數(shù)K和 α 。Bandt 等[19]于2002 年提出排列熵作為衡量時間序列復(fù)雜度的一種指標(biāo),因?yàn)殪乇旧矸从车木褪且环N有序的程度,熵越小說明越有序,因此可以將序列的排列熵值作為對分解后子序列容易預(yù)測程度的一種度量。
其中: P E(uk(n)) 為第k個子序列uk(n) 的排列熵值。將適應(yīng)度函數(shù)的最小值作為尋優(yōu)目標(biāo),以期望獲得熵值最小、模態(tài)復(fù)雜度最低的子序列。
基于遺傳算法的變分模態(tài)分解算法(GA-VMD)流程如圖1 所示,對于每個參數(shù)K和 α 的個體,首先對原始時間序列進(jìn)行VMD 分解,計(jì)算所得到的K個子序列的排列熵均值(PE 的計(jì)算可參考文獻(xiàn)[18])作為個體適應(yīng)度,再進(jìn)行遺傳操作獲得子代。該過程循環(huán)迭代,直到滿足終止條件(大于最大代數(shù)Gmax)。
圖1 基于遺傳算法的變分模態(tài)分解算法(GA-VMD)流程Fig.1 Flow of variational modal decomposition based on Genetic Algorithm (GA-VMD)
從已有文獻(xiàn)仿真研究可以發(fā)現(xiàn),基于時間序列分解的預(yù)測建模往往是將全部時間序列數(shù)據(jù)進(jìn)行一次分解,然后在每個子序列上劃分訓(xùn)練集和測試集,用子序列訓(xùn)練集數(shù)據(jù)建立預(yù)測子模型,再用子序列測試集數(shù)據(jù)逐個輸入預(yù)測子模型,檢驗(yàn)?zāi)P偷念A(yù)測精度[14-16]。這種分解和建模策略存在不合理性,實(shí)際應(yīng)用時測試數(shù)據(jù)是未知的待預(yù)測值,而一次分解策略將測試數(shù)據(jù)加入分解序列,分解過程已經(jīng)預(yù)先學(xué)習(xí)了未來數(shù)據(jù)的特征,因此其最終預(yù)測精度很高,但實(shí)際上這樣的模型是沒有使用價值的。
本文針對一次分解策略存在的不合理和不實(shí)用問題,提出實(shí)時分解框架下的預(yù)測方法:對原始時間序列先行劃分訓(xùn)練集和測試集,建模階段只對訓(xùn)練集進(jìn)行GA-VMD 分解,在每個子序列上訓(xùn)練預(yù)測子模型;預(yù)測階段,每增加一個測試數(shù)據(jù),將其添加到原始序列末尾,對新的序列進(jìn)行GA-VMD 分解,再在每個子序列上用已建立的預(yù)測子模型進(jìn)行實(shí)時預(yù)測。為了更清楚地對比一次分解和本文提出的實(shí)時分解策略,列出兩種策略的偽代碼如圖2 所示。
圖2 兩種分解策略偽代碼Fig.2 Pseudo code of two decomposition strategies
時間序列多步預(yù)測常用的建模方法有迭代多步、多輸出多步和多模型多步預(yù)測[20]等。圖3 為3 種多步預(yù)測策略的對比圖。其中,m表示輸入序列長度,h表示預(yù)測步數(shù),xn表示真實(shí)序列值, ︿xn+h表示預(yù)測值。
圖3 多步預(yù)測策略對比Fig.3 Comparison of multi-step prediction strategies
迭代多步預(yù)測方法使用上一時刻的預(yù)測值來預(yù)測下一時刻的值,因此預(yù)測誤差會累積,導(dǎo)致誤差隨預(yù)測步數(shù)增加急劇增大。多輸出多步預(yù)測方法一次性預(yù)測多個時間步的值,預(yù)測模型的輸出是多維的,模型結(jié)構(gòu)簡單,但訓(xùn)練出一個較為精確的模型存在較大困難。多模型多步預(yù)測方法對每個預(yù)測步分別建立預(yù)測模型,這樣既可以避免迭代多步的誤差累積,精度較高,又可以避免建立多輸出精確模型的困難,但是建模代價較高,耗時較長。
本文將對比討論3 種多步預(yù)測方法在基于時序分解的時間序列預(yù)測中的應(yīng)用效果,以期得到一些一般性結(jié)論。
綜合前幾節(jié)所述,基于實(shí)時分解、遺傳算法優(yōu)化的變分模態(tài)分解和多模型多步預(yù)測等策略,本文提出的GA-VMD- RF 預(yù)測算法流程如圖4 所示。
圖4 VMD-GA-RF 預(yù)測算法流程圖Fig.4 Flow chart of VMD-GA-RF algorithm
歷史時間序列首先被劃分為訓(xùn)練集 T A(n) 和測試集 T E(n) 。
(1)建模階段。僅在訓(xùn)練集上(序列長度為NTA)進(jìn)行GA-VMD 分解,得到K個最優(yōu)子模態(tài)序列uk(n),k=1,···,K。利用RF 算法在每個子序列上進(jìn)行預(yù)測模型訓(xùn)練,建立各RF 子模型k,所建立的RF 子模型將在預(yù)測階段被使用。
(2)預(yù)測階段。首先設(shè)置測試樣本索引 count ,每獲得測試集 TE(n) 的一個樣本時,索引自動加1,分解時間序列長度也增加1。對已獲得的所有時序數(shù)據(jù)(序列長度為NTA+count )進(jìn)行GA-VMD 分解,得到K個子序列uk(n),k=1,···,K。運(yùn)用已建立的RF 子模型進(jìn)行多步預(yù)測,然后重構(gòu)求和各子模型的多步預(yù)測值,獲得最終的多步預(yù)測結(jié)果。預(yù)測隨時間遞進(jìn),每次預(yù)測當(dāng)前時刻下的多步預(yù)測值,當(dāng)下一個時刻到來時,前一時刻的真實(shí)值將被添加到原始序列末尾,參與到下一個時刻的多步預(yù)測。
本文的實(shí)驗(yàn)數(shù)據(jù)來自于科羅拉多山脈的美國國家風(fēng)速觀測站[14]、UCI 數(shù)據(jù)網(wǎng)站和datahub 網(wǎng)站,數(shù)據(jù) 集1 為 美 聯(lián) 儲10 年 期(1953 年4 月 至2020 年1 月)美國政府債券的名義收益率的數(shù)據(jù),數(shù)據(jù)集2 為歐洲布倫特原油價格自2017 年1 月1 日至2022 年6 月13 日的數(shù)據(jù),數(shù)據(jù)集3 為科羅拉多山脈2022 年5 月10 日的風(fēng)速數(shù)據(jù),如圖5 所示。
圖5 數(shù)據(jù)集1~3Fig.5 Dataset 1—3
采用平均絕對誤差(MAE),平均百分比絕對誤差(MAPE) 和均方根誤差(RMSE) 對模型的預(yù)測結(jié)果進(jìn)行評價,計(jì)算公式見式(7):
將本文提出的算法與單一預(yù)測模型SVM、LSTM及時序分解預(yù)測模型VMD-RF、GA-VMD-LSTM 預(yù)測模型進(jìn)行對比,并且,每種算法都同時測試了多模型多步預(yù)測(記為“MM”)、迭代多步預(yù)測(記為“IT”)、多輸出多步預(yù)測(記為“MO”)。圖6~8 所示為多模型多步預(yù)測策略下的預(yù)測曲線,圖中灰色區(qū)域?yàn)檎鎸?shí)值??梢钥闯?,所提出的GA-VMD-RF 算法在一步、二步及三步預(yù)測點(diǎn)上預(yù)測精度較高,且相比于各對比算法總體表現(xiàn)更穩(wěn)定。雖然GA-VMDLSTM 算法也具有相當(dāng)?shù)念A(yù)測精度,但是它的性能不夠穩(wěn)定,在個別數(shù)據(jù)集如數(shù)據(jù)集2 上的預(yù)測精度不如GA-VMD-RF 算法。
圖6 數(shù)據(jù)集1 預(yù)測結(jié)果Fig.6 Prediction result of dataset 1
圖7 數(shù)據(jù)集2 預(yù)測結(jié)果Fig.7 Prediction result of dataset 2
圖8 數(shù)據(jù)集3 預(yù)測結(jié)果Fig.8 Predication result of dataset 3
為了更加清楚地定量對比各算法,將所有實(shí)驗(yàn)結(jié)果的MAE、MAPE、RMSE 指標(biāo)作圖,如圖9 所示。其中每種算法同顏色的三柱從左至右依次表示MM、IT、MO 的結(jié)果。
圖9 數(shù)據(jù)集1~3 預(yù)測誤差指標(biāo)Fig.9 Predication error indicators of dataset 1~dataset 3
觀察圖9 可以發(fā)現(xiàn):(1)對比單一預(yù)測模型算法SVM 和LSTM,所提出GA-VMD-RF 算法的MAE、MAPE 和RMSE 在數(shù)據(jù)集1~3 的預(yù)測步1~3 上均有顯著的下降,如數(shù)據(jù)集1~3 的預(yù)測步1~3 的MAPE平均降低了51.9%、47.5%、18.3%;31.1%、28.6%、18.7%和47.1%、37.3%、23.4%;(2)對比不經(jīng)參數(shù)優(yōu)化的VMD 分解預(yù)測算法VMD-RF,所提出GAVMD-RF 算法的MAE、MAPE、RMSE 3 個指標(biāo)在數(shù)據(jù)集1~3 上平均降低了7.7%、8.1%、7.8%,說明GA優(yōu)化的VMD 對于預(yù)測性能確有提升;(3)對比于基于LSTM 模型的混合算法GA-VMD-LSTM,所提出算法GA-VMD-RF 的MAE、MAPE、RMSE 3 個指標(biāo)在數(shù)據(jù)集1 上平均降低了9.1%、11.1%、8.6%,在數(shù)據(jù)集2 上平均降低了21.0%、21.0%、17.2%,在數(shù)據(jù)集3 上平均降低了8.0%、7.5%、7.5%,在數(shù)據(jù)集2 上表現(xiàn)更優(yōu),體現(xiàn)了RF 在不同模態(tài)建模方面的優(yōu)勢;(4)對比MM、IT、MO 這3 種多步預(yù)測策略,多模型多步預(yù)測(MM)總體上具有更高的預(yù)測精度,因此被作為GA-VMD-RF 算法最終所采用的策略。此外,雖然本文所提出的GA-VMD-RF 算法的MAPE 在3 個數(shù)據(jù)集上接近或超過10,看似比一些文獻(xiàn)結(jié)果更大[14-16],但仔細(xì)對比可以發(fā)現(xiàn),這是因?yàn)椴捎昧藢?shí)時分解策略導(dǎo)致的,盡管精度有所下降,但卻具有實(shí)際可應(yīng)用性。
本文針對具有強(qiáng)非線性、波動性和不平穩(wěn)性的復(fù)雜模態(tài)時間序列預(yù)測問題,提出一種基于遺傳算法優(yōu)化變分模態(tài)實(shí)時分解和隨機(jī)森林的多步預(yù)測算法:引入排列熵來度量分解子序列的復(fù)雜度,采用遺傳算法優(yōu)化時序分解過程;充分利用隨機(jī)森林算法通過樣本擾動獲得的數(shù)據(jù)挖掘優(yōu)勢,對不同模態(tài)的子序列分別建立差異顯著的預(yù)測模型;將所有的分解和建模過程建立在實(shí)時分解框架下,使算法具有可用性。通過多個公開數(shù)據(jù)集的實(shí)驗(yàn),得到采用多模型多步預(yù)測策略較優(yōu)的一般性結(jié)論。最終所提出的GA-VMD-RF 算法的1~3 步預(yù)測結(jié)果相比于其他4 種對比算法預(yù)測精度更高、性能更穩(wěn)定,誤差指標(biāo)MAE、MAPE 和RMSE 分別平均降低22.6%、21.7%、21.5%。