羅燦坤,劉 昊,黃 鑫,邵 壯
(國網湖南綜合能源服務有限公司,湖南 長沙 410001)
河川徑流作為重要的水文要素之一,由于受到降水、氣溫和人類活動等諸多各種因素的影響,顯示出復雜、隨機、多維等特征[1]。人類活動以及全球氣候變暖等各種因素導致了水資源時空分布失衡態勢,從而增加了非線性、非平穩性徑流預測難度[2]。同時,徑流預報不準確也會為梯級水電站優化調度帶來困難[2-3]。準確的徑流預測對于解決旱澇災害,梯級水電站優化調度,保證水利設施正常運行及提升其經濟效益都具有重要意義[4]。因此,國內外水文工作者致力于研究徑流特點,找尋預測結果更加精確的方法。目前,比較常見的徑流預測方法有很多,例如數理統計法、物理成因法等[5-6]。隨著計算科學技術的迅速發展以及關于徑流預報方法的深入研究,許多基于現代智能方法和數值天氣預報的綜合預報模型逐漸被提出,主要包括模糊分析[7]、灰色系統理論[8]、混沌理論[9]、小波分析理論[10]、人工神經網絡[11]等,這些方法的應用可以有效地提高徑流預測結果的可靠性和精度。
目前,國內外的徑流預測大都偏向于通過建立新的預測模型來提高精度。但是,基于徑流時間序列的復雜性分析,單一的模型難以充分反映徑流形成的復雜性和影響因素的多樣性,導致對于整個徑流序列的擬合性較差,預測可靠性不高。由此,綜合采用多種預測方法的徑流預報方式近年來受到水文研究者的廣泛關注。綜合近年來水文工作者的研究成果分析,一般的混合模型多是采用各種分解方法對徑流數據進行處理,而后代入預測模型進行徑流預測。從數據結果分析,預測精度和穩定性得到了較好的提升。近年來,對于徑流數據的時頻分析因其良好的效果而被研究者逐漸運用于水文分析之中[12-13]。基于時頻分析,將原始徑流序列分解,處理結果為多個不同頻率的子序列,通過這樣的方式可以使得徑流序列趨于平穩化,而后將各子序列分別代入模型,這樣的方式對提高預測的精度效果顯著[14]。張敬平等[15]提出了經驗模態分解與徑向基函數神經網絡混合徑流預測模型,模型預測結果具有較高的精度;Giulia等[16]建立EMD-ANN(Empirical Mode Decomposition-Artificial Neural Network)分解-集成模型,較好地減少了徑流預測誤差;劉艷等[17]通過瑪納斯河的局部信息運用集合經驗模態分解(EEMD,Ensemble Empirical Mode Decomposition)預處理,而后代入整合移動平均自回歸(ARIMA,Auto Regressive Integrated Moving Average Model)模型,驗證了模型預測的準確性;趙力學等[18]運用變分模態分解(VMD,Variational Mode Decomposition)和BP神經網絡(Back Propagation Neural Network)組合模型來水位流量的非線性預測,取得較好的結果。上述研究表明,基于時頻分析的分解技術對于提升徑流預測精度效果明顯。但是,現有的處理方法大多是對徑流序列進行處理后,采用相同預測模型對子序列進行預測,沒能很好地考慮子序列的差別性和獨特性。
因此,提出了一種新的組合預測方法,基于不同時序分析方法,采用VMD方法對徑流數據進行分解,利用LSTM方法對于長時間序列具有較好的泛化性和ARMA模型對于平穩序列具有良好的預測效果等特點對不同頻率的模態進行預測,通過VMD對徑流數據的處理結果分析,所得低頻的模態很好地繼承原始數據的時間特性,選用LSTM神經網絡進行處理,而高頻的模態通過了平穩性檢驗,采用ARMA模型進行預測,最后將不同模態的預測結果疊加,得到徑流預測數據。
VMD算法作為一種新的信號處理方法,是在經驗模態分解(EMD,Empirical Mode Decomposition)的基礎上改進所得。作為一種新的非遞歸、自適應、準正交信號分解方法,VMD算法通過參數預設,將時間序列數據分解為指定個數的固有模態分量(IMF,Intrinsic Mode Function)。VMD算法將數據從時域轉化到頻域進行分解,不僅可以很好地捕捉時間序列數據的非線性特征,還能避免變量信息重疊,其分解過程具有很強的魯棒性。
VMD算法將徑流數據的分解問題轉化為變分問題,見式(1):
(1)
式中f(t)——徑流數據;δ(t)——沖激函數;{u}={u1(t),u2(t),…,uk(t)}——分解后得到的K個模態分量;{ω}={ω1,ω2,…,ωK}——各模態分量所對應的中心頻率;*——卷積運算符。
然后,引入二次懲罰因子ɑ和拉格朗日算子λ(t),用于求解上述變分問題,得到擴展的拉格朗日表達式,見式(2);并采用交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)迭代搜索,迭代后的uk、ωk以及λ見式(3):
L=({uk},{ωk},λ)=
(2)
(3)
式中ω——頻率;γ——噪聲容忍度。
(4)
此時,徑流數據被分解為K個不同頻率的時間子序列。
作為特殊的循環神經網絡(Recurrent Neural Network,RNN),LSTM(圖1)與傳統的時間序列算法相比,可以避免長依賴問題,可以解決時間序列中較長時間間隔和延遲的時間序列問題。
圖1 LSTM神經元內部結構
其具體計算方法見式(5):
ft=σ(Wf·[ht-1,xt]+bf)
(5)
式中ft——t時刻的遺忘門;σ——sigmoid 函數;bf——遺忘門的偏置項;Wf——權重矩陣;[ht-1,xt]+bf——2個向量拼接為1個新的向量。
當前的輸入xt保存到單元狀態Ct的量由輸入門決定,見式(6)、(7):
it=σ(Wi·[ht-1,xt]+bi)
(6)
(7)
當前時刻的單元狀態Ct的計算見式(8):
(8)
輸出門的計算見式(9)、(10):
σt=σ(W0·[ht-1,xt]+bo)
(9)
ht=Ot·tanh(Ct)
(10)
式中Ot——輸出;tanh——激活函數。
本文所搭建的網絡中,時間窗口步長設置為1 d,不僅調用了LSTM神經網絡用來處理低頻子序列,還設置了多個用全連接層搭建的隱藏層和relu激活函數,用來提取特征解決非線性問題,因此更加適合處理時間序列數據。
ARMA模型是基于線性自回歸模型(Autoregressive Model,AR)和滑動平均模型(Moving Average Model,MA)建立起的平穩時間序列處理模型。ARMA模型可以描述為:
yn=φ1yn-1+φ2yn-2+…+φpyn-p+εn-θ1εn-1-…-θqεn-q
(11)
式中yn——徑流數據的預測值;{yn-1+yn-2+…+yn-p}——前p個時刻的徑流數;{εn,n=0,1,2,…}——白噪聲序列;{φ1,…,φp}——AR模型的系數;{θ1,…,θp}——MA模型的系數,要確定p和q的取值,需要進行多次嘗試與檢驗。
利用VMD對徑流進行分解,可以得到若干個復雜度低的子模態。對所得模態進行ADF單位根檢驗,用以區別平穩與非平穩模態。以往基于時序分解的組合模型未考慮分解子序列的差異性,因此,本文考量了分解模態的特征,選取LSTM與ARMA模型,將非平穩及平穩子模態分別代入進行預測,最后將所得結果疊加即得到原始序列預測結果。組合模型建模流程見圖2。
圖2 模型流程
為衡量預測模型的精準度和可靠性,本文選取了較為常用的2種評價指標:平均絕對誤差(Mean Absolute Error ,MAE )和均方根誤差(Root Mean Square Error ,RMSE)。
(12)
(13)
耒水屬于長江流域的湘江水系,干流全長439 km,流域面積11 905 km2。東江水文站設立在資興市東江鎮耒水左岸,是國家重要基本水文站,控制集水面積4 659 km2,站類為一類精度站。
采用東江水文站2020年實測徑流數據,樣本的采樣周期為1 h,選取日期為2020年1月1日至2020年12月31日。原始徑流數據見圖3(為了更好地展示數據趨勢,只取前240個點)。
圖3 前10 d數據展示
從圖中分析,該徑流數據具有比較強的非平穩性和非線性,采用一種時間序列預測模型(如LSTM、ARMA模型)難以保證預測結果的精度及可靠性。綜合考慮原始數據特點,本文利用VMD算法對于信號在頻域剖分的優勢進行原始徑流序列的處理。需要注意的是,模態數(K)的取值會影響VMD分解的效果:當K的取值較小,徑流數據中的一些重要信息會丟失,從而影響后續的預測精度;當K的取值較大時,鄰近的模態分量的中心頻率距離變小,會導致模態重疊或產生噪聲。因此,K的取值可以通過觀察來確定,即對相鄰模態分量進行相關性分析或者觀察不同模態下的中心頻率的分布情況。
此外,為了確定分解后的模態是否是平穩序列,可以對模態分量進行單位根(ADF)檢驗,即確定時間序列中的單位根是否存在。若不存在單位根,則數據為平穩的時間序列;若存在單位根,則數據為非平穩的。VMD參數設置見表1。參數α、τ和ε的設置參考了文獻[19],K的選擇主要依據分解后各模態的頻率分布情況以及預測結果(例如若K=4,可以發現模態3、4的頻率分布幾乎沒有差別,而且預測效果比K=3時的預測結果差)。
表1 VMD算法參數設置
利用VMD算法將徑流數據分解出3個IMF,分別命名為IMF1、IMF2、IMF3。然后分別對3個模態進行平穩性檢驗。原假設:檢驗的時間序列具有單位根,函數的返回值為檢驗統計量、p值和臨界值在1%、5%、10%置信區間。IMF1的p值為0.09,大于顯著性水平(α=0.05),因此可以認為IMF1中的時間序列沒有通過ADF檢驗,是非平穩的時間序列;然后對于IMF2、IMF3進行平穩性檢驗,p值同為0.001,小于顯著性水平(α=0.05),時間序列沒有單位根(特征根在單位圓之內),因此可以認為IMF2和IMF3中的時間序列通過了ADF檢驗,是平穩的時間序列。
此外,分解后的3個模態中,IMF1頻率較低,繼承了原始徑流數據的變化趨勢,基本上剔除了隨機干擾噪聲的影響,具有明顯的時間序列特征,因此可以采用LSTM神經網絡預測;而IMF2和IMF3數據幅值較小,頻率較大,呈現出一種類似于高斯白噪聲的數據類型,屬于平穩的時間序列,可以利用ARMA模型預測,見圖4—6。因此,需要采用不同的預測算法對數據進行處理,然后再對每個分量預測結果進行重構,則可以得到更加準確的預測效果。
圖4 VMD分解出的第一個分量
圖5 VMD分解出的第二個分量
圖6 VMD分解出的第三個分量
為了更好體現徑流受歷史徑流的影響,本文采用預測日前5天的數據作為訓練樣本。其次,為了滿足水電站制定調度計劃的需求,對預測日當的數據進行預測,即將前5天的數據作為特征,后1天的數據作為標簽。將IMF1劃分訓練集和標簽,生成的訓練樣本為8 784×120 的矩陣,生成的標簽樣本為8 784×24 的矩陣。按照7∶3的比例劃分訓練集和測試集,即訓練集的特征樣本為6 149×120的矩陣,標簽樣本6 149×24的矩陣;測試集的特征樣本為2 635×120的矩陣,標簽樣本為2 635×24的矩陣。系統環境為Windows10-64位系統,Python版本3.8.5,IDE為PyCharm,利用 TensorFlow的前端 Keras搭建 LSTM 神經網絡進行時間序列分析。LSTM模型參數:隱藏節點24,激活函數為relu,迭代次數為50。在建立LSTM神經網絡結構后,為了防止過擬合,在全連接層后面加入Dropout層,從而提高泛化能力。優化器選用Adam,損失函數選用mae。當訓練集和測試集的訓練誤差逐漸減少且趨于穩定時,可以認為LSTM神經網絡擬合完畢。
利用LSTM算法對IMF1進行預測,損失函數隨迭代次數的變化情況見圖7。可以看出,隨著迭代次數的增加,準確率逐漸升高,損失函數逐漸減小。
圖7 LSTM損失函數隨迭代次數變化曲線
ARMA模型的輸入數據為IMF2和IMF3的前3×24個點的值預測接下來24個點的值。經過多次嘗試和檢驗,本案例的ARMA模型的參數為:p=1,q=0。
為了得到徑流數據的預測結果,將IMF1、IMF2與IMF3各自的預測結果進行疊加。為了驗證本模型對徑流數據預測的可靠性和精準度,本文引入另外幾種常見的徑流預測模型進行比對,包括LSTM神經網絡、ARMA模型、隨機森林(Random Forest,RF)和支持向量機(Support Vector Machine,SVM),采用MAE和RMSE進行定量分析,見表2、圖8。
表2 預測評價指標對比 單位:m3/s
a)實際-組合模型
由表2可知,與其他4種算法的預測結果相比,本文提出的VMD-LSTM-ARMA組合模型的MAE與RMSE最小,徑流預測結果更為精準。此外,為了直觀體現模型預測效果及差異,本文將原始徑流數據(取其中400個點)與VMD-LSTM-ARMA組合模型及其他4種對比模型預測值可視化,結果見圖8,4種對比模型的預測值與原始數據的擬合度較低,與本文提出的組合模型相差較大,說明VMD-LSTM-ARMA模型具有較高的預測精度,是一個有效的模型。
從徑流時間序列的非線性、復雜性特征角度考慮,采用時頻分析方法,基于VMD分解,充分考慮徑流數據分解所得模態的特點,考量LSTM對非平穩低頻模態和ARMA模型對平穩高頻模態的優勢,建立起了VMD-LSTM-ARMA模型,以東江水文站逐小時流量數據為例進行預測,并與LSTM、BP、隨機森林和SVM等常見單一模型進行結果比對,性能分析,得出如下結論:①采用VMD分解方法可以有效提取徑流時間序列中不同頻率的固有信息,通過分解,較好地降低了原始數據的非平穩性,降低了預測難度;②針對分解所得模態的差異性,分別選取LSTM與ARMA模型進行預測,對于提升預測精度效果明顯,通過與比對模型比較,與直接將原始徑流序列代入模型預測相比,基于分解的組合模型預測效果更理想;③本文提出的組合模型將VMD、LSTM與ARMA模型的優點有機結合起來,在預測時間序列的表現要優于單一模型,具有較高的精度和可靠性。