郭賀宏,武靈耀,趙慶生,梁定康,王旭平,程昱舒
(1.國網(wǎng)山西省電力公司,山西太原 030021;2.國網(wǎng)晉中供電公司,山西晉中 030600;3.太原理工大學電力系統(tǒng)運行與控制山西省重點實驗室,山西太原 030024)
隨著大規(guī)模新能源并入電網(wǎng)[1-3],新能源的隨機性[4]以及電能無法大量儲存的特點[5]將造成日前出清價格強烈波動。而在電力市場中,日前出清價格直接影響市場收益[6-8],精準預測日前電價對把握市場規(guī)律、推動市場主體制定方案、合理配置資源等有重要意義[9]。因此,建立準確度較高的日前電價預測模型尤為重要。隨著大數(shù)據(jù)技術(shù)的逐漸成熟,目前國內(nèi)外關(guān)于日前電力市場出清價格預測的研究主要集中在數(shù)據(jù)挖掘方法上,具體分為機器學習和深度學習兩方面。機器學習包括:隨機森林回歸(Random Forest Regression,RFR)[10]、極限學習機(Extreme Learning Machine,ELM)[11]、支持向量機回歸(Support Vector Regression,SVR)[12]等模型。深度學習包括:反向傳播神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Networks,BPNN)[13]、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)[14]、長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)[15]、門控循環(huán)單元網(wǎng)絡(luò)(Gate Recurrent Unit,GRU)[16]及卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[17]等模型。以上模型均通過引入電價及相關(guān)信息來訓練大量歷史數(shù)據(jù),在電價預測中取得了較好的效果。
國內(nèi)外研究人員通常在改進原有模型和分解輸入歷史數(shù)據(jù)這兩方面進行改進,以獲得更好的預測效果。在改進原有模型方面,文獻[18]提出一種CNN 結(jié)合RNN 的模型,解決了實際應用中時間數(shù)據(jù)長短期模式混合的問題。文獻[19]將CNN 與GRU 模型結(jié)合,使之能夠提取時域特征,以提高預測不同季節(jié)電價的能力。文獻[20]改進門控結(jié)構(gòu)形成多層級門控長短時記憶模型(Multi-hierachy Gated Long Short-term Memory,MHG-LSTM),通過在不同數(shù)據(jù)集上進行預測,驗證了該模型有很高的普適性。文獻[21]提出一種基于圖卷積神經(jīng)網(wǎng)絡(luò)與長短時記憶網(wǎng)絡(luò)(Graph Convolution Networks Long Short-term Memory,GCN-LSTM)的時空預測模型,通過建立圖模型并使用圖卷積神經(jīng)網(wǎng)絡(luò)可有效融入統(tǒng)一電力市場的地域信息,從而提升模型的預測性能。在分解輸入歷史數(shù)據(jù)方面,文獻[22]提出一種基于奇異譜分析(Singular Spectrum Analysis,SSA)優(yōu)化LSTM 的日前電價預測模型,使用SSA 將原始序列分解成一系列的平穩(wěn)序列,以提高預測精度。文獻[23]提出一種小波包分解(Wavelet Packet Decomposition,WPD)與LSTM 結(jié)合的短期電價預測模型,使用WPD 剔除電價序列中波動性高、無效信息多的高頻細節(jié)部分,提高了電價預測精度。文獻[24]在LSTM 網(wǎng)絡(luò)的基礎(chǔ)上結(jié)合自適應矩估計算法,使深度學習模型在處理非線性問題上表現(xiàn)更為出色。文獻[25]使用變分模態(tài)分解算法(Variational Mode Decomposition,VMD)處理電價序列,避免了遞歸計算和結(jié)束效應過程中產(chǎn)生的誤差。文獻[18-25]的研究提升了模型預測性能,但仍存在一定不足:(1)神經(jīng)網(wǎng)絡(luò)模型均通過建立輸入與輸出數(shù)據(jù)之間的非線性關(guān)系來進行電價預測,然而將多種神經(jīng)網(wǎng)絡(luò)模型改進或者結(jié)合改變不了其基于時域的時間序列分析實質(zhì),依然存在難以深入挖掘時序內(nèi)部規(guī)律的問題;(2)由于電力市場具有復雜性、隨機性和時變性等特點,導致電價序列具有強烈波動性,即使經(jīng)過數(shù)據(jù)分解也難以趨于穩(wěn)定,依然會造成電價預測效果不理想。
綜上所述,本文創(chuàng)新性的引入趨勢指標作為日前電價預測模型的輸入數(shù)據(jù),首次提出了一種趨勢指標結(jié)合LSTM 的日前電價預測模型。所建模型首先通過引入隨機指標(一般簡稱KDJ 指標)與異同移動平均線(Moving Average Convergence Divergence,MACD)2 種趨勢指標提取時間序列數(shù)據(jù)內(nèi)在規(guī)律,然后將趨勢指標與電價數(shù)據(jù)輸入LSTM 神經(jīng)網(wǎng)絡(luò)對日前電價進行預測,最后利用某省的日前電價數(shù)據(jù)進行算例分析。結(jié)果表明,本文所提模型的預測精度高于目前研究的BP,LSTM,GRU 等模型。
1.1.1 KDJ指標
KDJ 指標是股票與期貨市場上比較常用的趨勢指標[26],計算KDJ 指標值首先要計算未成熟隨機值(Raw Stochastic Value,RSV)。RSV 的表達式為:
K 值為RSV 值的指數(shù)移動平均值(Exponential Moving Average,EMA),D 值為K 值的指數(shù)移動平均值,J 值為K 值與D 值的大小關(guān)系。分別計算K,D和J 的值為:
式中:Ki,Di,Ji分別為第i個單位時間的K,D,J值;Ki-1,Di-1分別為第i-1 個單位時間的K,D值,當不存在第i-1 個單位時間的K 值時,令Ki-1=50;α為平滑指數(shù),一般令α=1/3。
1.1.2 MACD指標
MACD 是Geral Appel 于1979 年提出的一種對數(shù)據(jù)上升、下降時刻作出判斷的趨勢指標[27]。MACD 通過計算數(shù)據(jù)的EMA 得到,EMA 表達式為:
MACD 計算過程中,一般使用指數(shù)為12 和26的指數(shù)移動平均值,此時β取2/13 和2/27,則的12 和26 指數(shù)移動平均值為:
式中:Fi,Ai,Bi分別為第i個單位時間的離差值、差指數(shù)平均值、柱狀圖值;Ai-1為第i-1 個單位時間的差指數(shù)平均值。
LSTM 是在RNN 上進行改良的網(wǎng)絡(luò)[28],LSTM相比RNN 可以解決梯度消失問題[29]。LSTM 模塊內(nèi)部結(jié)構(gòu)圖如圖1 所示。
圖1 LSTM模塊內(nèi)部結(jié)構(gòu)圖Fig.1 Internal structure of LSTM block
圖1 中,xt為t時刻輸入向量,ht為t時刻的隱藏層向量,ht-1為t-1 時刻的隱藏層向量,yt為t時刻輸出向量,ct為t時刻記憶單元信息,ct-1為t-1 時刻記憶單元信息,為t時刻尚未處理的輸入信息,c′t為遺忘門選擇性剔除t-1 時刻神經(jīng)元中的信息后保留下的信息,c″t為將進行處理后的輸入信息,ft為遺忘門,int為輸入門,ot為輸出門,⊙為邏輯運算符,σ為Sigmoid 激活函數(shù),tanh 為雙曲正切函數(shù)。
由圖1 可知,遺忘門ft部分剔除t-1 時刻神經(jīng)元中ct-1的信息,得到遺忘部分信息后的記憶單元信息c′t;輸入門int控制t時刻輸入到神經(jīng)元的信息,從而獲得經(jīng)過處理后的信息c″t;輸出門ot控制輸出更新后的神經(jīng)元信息ct,從而獲得輸出值yt。t時刻的ct和ht更新過程為:
式中:Wf,Win,Wo分別為遺忘門、輸入門、輸出門的網(wǎng)絡(luò)層權(quán)重;bf,bin,bo分別為遺忘門、輸入門、輸出門的網(wǎng)絡(luò)層偏置;[ht-1,xt]為當xt輸入LSTM 時與t-1時刻的隱藏層向量ht-1拼接。
本文采用趨勢指標與LSTM 相結(jié)合的模型來進行電價預測,電價預測流程圖如圖2 所示。
圖2 電價預測流程圖Fig.2 Flow chart of electricity price forecast
圖2 中,首先通過對歷史數(shù)據(jù)缺失及異常等情況進行處理,然后計算日前電價每小時的KDJ 指標與MACD 指標并劃分測試集和訓練集,最后使用LSTM 網(wǎng)絡(luò)進行訓練與預測,得到最終的預測電價。
由圖2 可知,為增強數(shù)據(jù)的有效性,在電價預測中需對歷史數(shù)據(jù)進行預處理,以避免因原始數(shù)據(jù)缺失或異常的問題導致預測精度下降。本文對歷史數(shù)據(jù)的預處理分為2 步:(1)使用拉依達準則[30]發(fā)現(xiàn)數(shù)據(jù)異常值;(2)使用拉格朗日插值法[31]補全缺失值。
由于不同指標數(shù)據(jù)的計量單位不同,為避免不同計量單位的影響將所有數(shù)據(jù)歸一化處理。歸一化公式為:
式中:k′為樣本歸一化后的值;k為原始值;kmin,kmax分別表示不同指標樣本中數(shù)值的最小值和最大值。
本文構(gòu)建趨勢指標與LSTM 相結(jié)合的電價預測模型,對未來1 h 的電價進行預測。日前電價LSTM預測模型如圖3 所示。
圖3 日前電價LSTM預測模型Fig.3 LSTM prediction model of day ahead price
由圖3 可知,輸入預測時刻前多個小時的信息到LSTM,可得到預測時刻電價。預測過程中,模型的每個樣本輸出為未來1 h 的電價,模型的每個樣本輸入為預測時刻之前的多個小時數(shù)據(jù),包括電價、新能源發(fā)電量、KDJ 指標與MACD 指標。
實驗數(shù)據(jù)來源于某省公司提供的2021 年4 月1 日至2021 年7 月9 日連續(xù)100 d 共計2 400 h 的日前電價數(shù)據(jù)。每小時數(shù)據(jù)包含電價最大值、最小值、平均值以及新能源發(fā)電量,再加上通過計算得到的趨勢指標數(shù)據(jù)K 值、D 值、J 值、離差值、差指數(shù)平均值、柱狀圖值共計10 維數(shù)據(jù),輸入數(shù)據(jù)如表1所示。由表1 可知,將2 400 h 中前80%的電價數(shù)據(jù)與趨勢指標數(shù)據(jù)作為訓練集,其余20%作為測試集。訓練時,輸入數(shù)據(jù)為表1 中的10 維數(shù)據(jù),輸出結(jié)果為預測時刻的日前電價。
表1 輸入數(shù)據(jù)Table 1 Input data
本文選取平均絕對誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Squared Error,RMSE)2 個評價指標,描述預測值與實際值的差異程度,表達式為:
式中:EMAE為電價預測值與電價實際值的平均絕對誤差;ERMS為電價預測值與電價實際值的均方根誤差;m為數(shù)據(jù)總量;li為電價真實值;為電價預測值。
將多次實驗后得到的EMAE與ERMS曲線進行比較分析,設(shè)置訓練次數(shù)為200 次、學習率為0.001、批訓練大小為16、網(wǎng)絡(luò)的隱藏層大小為256、堆疊層數(shù)為2 層、隨機種子數(shù)設(shè)為42 個、網(wǎng)絡(luò)層的遺忘率設(shè)為0.2。
采用LSTM,BP,GRU 3 種模型進行實驗。為研究趨勢指標對預測精度的影響,采用輸入不同數(shù)據(jù)對LSTM,BP,GRU 進行2 組對比實驗:第1 組未加入趨勢指標,輸入數(shù)據(jù)僅為電價每小時最大值、最小值、平均值與每小時新能源發(fā)電量;第2 組加入趨勢指標,輸入數(shù)據(jù)為表1 所示的10 種數(shù)據(jù)。
本文實驗基于深度學習平臺TensorFlow 和Keras 實現(xiàn),分別使用LSTM,BP,GRU,趨勢指標-LSTM、趨勢指標-BP 與趨勢指標-GRU 共6 種模型對某省日前電價進行訓練與預測。預測結(jié)果取10次預測實驗的平均值,不同模型電價預測結(jié)果誤差如表2 所示。
表2 不同模型電價預測結(jié)果誤差Table 2 Electricity price prediction error of different models 元/MWh
由表2 可知,趨勢指標-LSTM 模型的EMAE與ERMS分別為11.480 元/MWh 與18.532 元/MWh,均優(yōu)于LSTM、BP、GRU 模型。對比LSTM 模型,趨勢指標-LSTM 模型的EMAE與ERMS分別下降4.859 元/MWh 與5.692 元/MWh;對比BP 模型,趨勢指標-LSTM 的EMAE與ERMS分別下降9.071 元/MWh 與11.191 元/MWh;對比GRU 模型,趨勢指標-LSTM模型的EMAE與ERMS分別下降3.976 元/MWh 與6.224 元/MWh。在與趨勢指標結(jié)合的3 種模型的對比中,趨勢指標-LSTM 模型要優(yōu)于其它2 種模型,EMAE較趨勢指標-BP 與趨勢指標-GRU 模型分別降低了1.674 元/MWh 與2.011 元/MWh,ERMS則分別降低了0.663 元/MWh 與1.297 元/MWh。
有無趨勢指標的電價預測誤差如圖4 所示。
圖4 有無趨勢指標的電價預測誤差Fig.4 Electricity price forecasting error with or without trend index
由圖4 可知,相比無趨勢指標輸入的對照組,LSTM,BP,GRU 在輸入趨勢指標數(shù)據(jù)后電價預測結(jié)果的EMAE與ERMS均有不同程度的減少。LSTM 在增加趨勢指標后EMAE和ERMS分別降低了4.859 元/MWh 與5.692 元/MWh;BP 在增加趨勢指標后EMAE和ERMS則分別降低了7.397 元/MWh 與9.180 元/MWh;GRU 在增加趨勢指標后EMAE和ERMS分別降低了3.313 元/MWh 與4.927 元/MWh。
為了更深入研究趨勢指標在日前電價預測中的作用,取6 種預測模型預測結(jié)果中的1 d 進行對比,電價實際值與預測值對比如圖5 所示。
圖5 電價實際值與預測值對比Fig.5 Comparison between actual value and predicted value of electricity price
由圖5 可知,未結(jié)合趨勢指標的3 種模型預測值較實際值都偏小,在6:00—10:00 與18:00—20:00這2 個電價尖峰時段更為明顯,而結(jié)合趨勢指標后的模型預測效果都有較大提升且更接近實際值。趨勢指標-LSTM 模型預測效果最好,預測值曲線與實際值曲線變化趨勢基本一致;趨勢指標-BP 模型在電價尖峰時段預測值較實際值偏??;趨勢指標-GRU 模型在電價尖峰時段預測值較實際值偏大。尖峰時段模型預測結(jié)果誤差對比如表3 所示。
表3 尖峰時段模型預測結(jié)果誤差對比Table 3 Error comparison of peak period model prediction results %
由表3 可知,趨勢指標-LSTM 模型在電價尖峰時段的相對預測誤差平均值僅為1.03%,相比于未結(jié)合趨勢指標的LSTM 模型降低了3.5%;BP 與GRU 在結(jié)合趨勢指標后,電價尖峰時段的相對預測誤差則分別降低了4.81%與1.99%。說明趨勢指標的加入對預測模型在電價尖峰時段的預測效果有較大提升,解決了因電價強烈波動帶來的預測不準確問題。
綜上所述,增加趨勢指標有效提高了模型預測精度,尤其是尖峰階段電價的預測效果。趨勢指標-LSTM 模型相比其它模型有2 個優(yōu)點:(1)增加趨勢指標數(shù)據(jù),使輸入神經(jīng)網(wǎng)絡(luò)的信息密度更高,便于神經(jīng)網(wǎng)絡(luò)的特征提取和預測;(2)趨勢指標不是采用傳統(tǒng)方式通過數(shù)據(jù)分解提升數(shù)據(jù)有效性,而是通過計算提取原始數(shù)據(jù)所包含的內(nèi)在規(guī)律信息,更全面地展現(xiàn)電價數(shù)據(jù)的特性,更有利于神經(jīng)網(wǎng)絡(luò)對電價尖峰階段的預測。
本文提出了一種趨勢指標-LSTM 的電價預測模型。利用某省電力市場日前電價數(shù)據(jù)進行算例分析,通過與其它模型對比得到如下結(jié)論:
1)趨勢指標-LSTM 模型性能優(yōu)于對照模型,突破了以往模型只利用時間序列數(shù)據(jù)的不足:一方面通過計算趨勢指標挖掘電價數(shù)據(jù)的內(nèi)在規(guī)律;另一方面增加了輸入數(shù)據(jù)的信息密度,有效提升了預測精度。
2)通過算例驗證了在同種神經(jīng)網(wǎng)絡(luò)模型下,增加趨勢指標作為輸入數(shù)據(jù)可有效提高模型的預測性能。尤其在電價尖峰階段具有較好的擬合效果,說明趨勢指標的引入與利用可使尖峰階段電價預測有較大提升。