梁浩彬
(廣州大學(xué)經(jīng)濟與統(tǒng)計學(xué)院, 廣東 廣州 510006)
電力負荷預(yù)測是現(xiàn)代電力系統(tǒng)發(fā)展中不可或缺的一部分,它可以利用過去的負荷信息去預(yù)測未來的負荷值。然而,電力負荷的預(yù)測存在很多挑戰(zhàn)和困難,比如受到天氣、經(jīng)濟等因素的影響,呈現(xiàn)出非線性和周期性的特點,這給預(yù)測帶來了極大的影響。
近年來,電力負荷預(yù)測是學(xué)者們研究的熱點話題。查閱了相關(guān)領(lǐng)域的研究文獻,目前電力負荷預(yù)測方法主要可以被劃分為兩類:單一預(yù)測模型和混合預(yù)測模型。單一預(yù)測模型既包括傳統(tǒng)的時間序列模型,也包括了近年流行的機器學(xué)習(xí)模型和神經(jīng)網(wǎng)絡(luò)模型。在單一預(yù)測模型中,隨機森林(Random forest,RF)[1]、時域卷積網(wǎng)絡(luò)(Temporal convolutional network,TCN)[2]、長短期記憶網(wǎng)絡(luò)(Long short-term memory neural network,LSTM)[3]以及差分整合移動平均自回歸模型(Autoregressive integrated moving average,ARIMA)[4]等模型都曾被用于電力負荷預(yù)測。但是,電力負荷易受到多種因素的影響,因此,采用單一預(yù)測模型進行預(yù)測可能會存在一定的誤差。
為了提高預(yù)測模型的準確性,混合預(yù)測模型被研究人員廣泛使用。這類模型綜合了多種單一預(yù)測模型的優(yōu)點,克服了單一模型存在的缺陷,可以更好地適應(yīng)電力負荷的復(fù)雜特性。張子陽等人[5]提出了一種通過麻雀搜索算法(Sparrow search algorithm,SSA)和灰色關(guān)聯(lián)算法(Grey relation analysis,GRA)改進最小二乘支持向量機(Least squares support vector machine,LSSVM)參數(shù)的電力負荷預(yù)測模型。龍干等人[6]提出了一種將改進多元宇宙算法(Multi-verse optimizer,MVO)與極限學(xué)習(xí)機(Extreme learning machine,ELM)相結(jié)合的新電力負荷預(yù)測模型。龔鋼軍等人[7]提出了一種將最大信息系數(shù)和融入了多頭注意力機制(Attention mechanism)的LSTM網(wǎng)絡(luò)相結(jié)合的預(yù)測模型。韓雅萱等人[8]提出了一種通過差分進化算法的自適應(yīng)變異因子和自適應(yīng)交叉因子優(yōu)化LSTM 網(wǎng)絡(luò)的電力負荷預(yù)測模型。但是在現(xiàn)實中,電力負荷序列往往呈現(xiàn)出非線性和非平穩(wěn)的特點,給預(yù)測帶來了重重困難,使得預(yù)測結(jié)果不理想。Xian 等人[9]發(fā)現(xiàn)分解算法對于處理非線性時間序列是有效的,它可以將復(fù)雜的時間序列分解為平滑的時間序列,使得預(yù)測模型更加容易識別。
馬玉軒等人[10]提出了一種將變分模態(tài)分解算法(Variational mode decomposition,VMD)、TCN 模型以及注意力機制相結(jié)合的電力負荷預(yù)測算法。楊海柱等[11]提出了一種利用互補式集合經(jīng)驗?zāi)B(tài)分解算法(Complementary ensemble empirical mode decomposition,CEEMD)對電力負荷預(yù)測進行分解,并利用SSA優(yōu)化LSSVM預(yù)測分量序列,最后將其相加得到最終預(yù)測結(jié)果的混合預(yù)測算法。徐巖等[12]提出了一種將VMD 算法與門控循環(huán)單元(Gated recurrent unit,GRU)相結(jié)合的預(yù)測算法,并通過粒子群優(yōu)化算法(Particle swarm optimization,PSO)優(yōu)化GRU 模型的參數(shù)。
為了進一步提高預(yù)測效果,研究者對分解算法得到的分量序列進行了更加深入地研究與分析。李飛宏等人[13]利用經(jīng)驗?zāi)B(tài)分解算法(Empirical mode decomposition,EMD)對原始序列進行分解,并將所得到的分量劃分為低頻分量和高頻分量,在高頻分量中利用TCN 模型構(gòu)建預(yù)測模型,而在低頻分量中利用ELM構(gòu)建預(yù)測模型,最后將它們的預(yù)測結(jié)果相加得到最終的預(yù)測模型。方娜等人[14]也提出了類似的算法,其利用VMD 算法對原始序列進行分解,將分量劃分為低頻和高頻分量,在高頻分量中利用ARIMA 模型構(gòu)建預(yù)測模型,而在低頻分量中利用深度信念網(wǎng)絡(luò)(Deep belief network,DBN)構(gòu)建預(yù)測模型,并通過PSO 算法優(yōu)化模型參數(shù),最后將它們的預(yù)測結(jié)果相加得到最終的預(yù)測模型。
在時間序列預(yù)測任務(wù)中,使用滑動窗口方法是一種常見的預(yù)處理手段。當滑動窗口方法設(shè)置了窗口大小之后,原始時間序列將被分割為多個固定大小的窗口數(shù)據(jù)。這些窗口數(shù)據(jù)包含了原始時間序列的局部信息特征,其如圖1 所示。
圖1 窗口數(shù)據(jù)
但是現(xiàn)有的研究并沒有對窗口數(shù)據(jù)進行了更深入的研究, 因此本文提出了一種新型的EMD-LSTM-ARIMA 混合預(yù)測算法。所提算法可以充分利用窗口數(shù)據(jù)的信息,并結(jié)合了EMD 算法、LSTM網(wǎng)絡(luò)和ARIMA 模型的優(yōu)點。
經(jīng)驗?zāi)B(tài)分解(EMD)算法由Huang 等人[15]在1998 年所提出,它主要被用于非平穩(wěn)以及非線性序列的處理與分析。EMD 算法的主要步驟如下:
1)求出原始序列x(t)的局部極大值和局部極小值,利用樣條插值法擬合原始數(shù)據(jù)的上包絡(luò)線u(t)和下包絡(luò)線l(t),最后由公式(1)計算出上、下包絡(luò)線的平均值:
2)令h(t)=x(t)-m(t),檢查h(t)是否滿足IMF 的要求。如果h(t)滿足IMF 的要求,則認為h(t)是x(t)的第一個IMF。
3)如果h(t)不滿足IMF 條件,則令x(t)=h(t)為原始數(shù)據(jù),重復(fù)步驟(1),直到h(t)滿足IMF 條件,則h(t)為x(t)的IMF1。
4)將IMF1 與x(t)分離,令r1(t)=x(t)-(IMF)1,然后將r1(t)視為新的原始信號,并重復(fù)上述步驟直到獲得(IMF)n分量。當rn(t)變成單調(diào)函數(shù)時,EMD 算法分解結(jié)束。所有IMF 分量和殘差分量的總和是原始信號,即:
循環(huán)神經(jīng)網(wǎng)絡(luò)(recursive neural network,RNN)是一種由傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)發(fā)展而來的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它能夠處理時間序列數(shù)據(jù)。然而,在實踐中,Bengio[16]和Le[17]等人發(fā)現(xiàn)它在處理長期序列的時候存在一些問題。例如,它存在著梯度消失和梯度爆炸的問題。
LSTM網(wǎng)絡(luò)被認為是一種改進的RNN 網(wǎng)絡(luò),它由Hochreiter 等人[18]于1997 年提出,經(jīng)過后來學(xué)者的不斷改善,最終形成了現(xiàn)在的網(wǎng)絡(luò)框架。LSTM網(wǎng)絡(luò)改善了RNN 網(wǎng)絡(luò)在長序列訓(xùn)練過程中“梯度消失”的問題。
LSTM網(wǎng)絡(luò)框架如圖2 所示。它通過門(遺忘門、輸入門和輸出門;Graves 等人)[19]機制有效地緩解了RNN 神經(jīng)網(wǎng)絡(luò)中的“梯度消失”問題。
圖2 LSTM 網(wǎng)絡(luò)單元結(jié)構(gòu)
本文提出了一種從滑動窗口方法的角度出發(fā),將EMD 分解算法、LSTM 網(wǎng)絡(luò)以及ARIMA 模型相結(jié)合的超短期電力負荷預(yù)測算法(見圖3)。所提出算法的步驟如下:
圖3 所提算法框架
1)利用EMD 分解算法將原始序列分解成多個分量序列;
2)采用滑動窗口方法對分量序列進行處理,并設(shè)定窗口大小將其劃分成多個窗口數(shù)據(jù),并對窗口數(shù)據(jù)利用線性回歸計算其決定系數(shù),取其決定系數(shù)平均值作為衡量該分量序列的線性系數(shù);
3)設(shè)置閾值,當分量序列的線性系數(shù)大于該閾值時,使用ARIMA 模型對其進行預(yù)測,否則使用LSTM網(wǎng)絡(luò)進行預(yù)測,最后將它們的預(yù)測結(jié)果相加得到所提算法的最終預(yù)測結(jié)果。
實驗通常會采用真實值與預(yù)測值之間的差值來評估模型的預(yù)測性能。本文使用均方根誤差(RMSE)和平均絕對誤差(MAE)作為評價指標。它們定義如下:
為了驗證所提算法的有效性與可行性,本文選取了第九屆“中國電機工程學(xué)會杯”全國大學(xué)生電工數(shù)學(xué)建模競賽提供的電力負荷數(shù)據(jù)集進行分析。選取了時間跨度從2009 年4 月1 日至2009 年4 月30 日的電力負荷數(shù)據(jù)(見圖4),采樣周期為15 min,即總共選取了2880 個數(shù)據(jù)。將原始電力負荷數(shù)據(jù)集前80%的數(shù)據(jù)作為訓(xùn)練集,剩余的20%數(shù)據(jù)作為測試集,并從訓(xùn)練集中隨機抽取20%數(shù)據(jù)作為驗證集。為了神經(jīng)網(wǎng)絡(luò)快速收斂,本文使用min-max 公式對原始電力負荷數(shù)據(jù)進行歸一化,即將原始電力負荷數(shù)據(jù)的大小映射到[0,1]:
圖4 原始電力負荷
式中:x*為數(shù)據(jù)歸一化后的值,xmin和xmax分別為原始電力負荷序列中的最小值和最大值。
對原始電力負荷序列應(yīng)用EMD 算法,得到了7個不同頻率的IMFs 和1 個殘差分量。圖5 展示了通過EDM分解算法獲得的分量序列,可以看出,先得到的分量序列其頻率越高。
圖5 EMD 算法分解效果
分量序列的線性趨勢與所設(shè)置的滑動窗口大小密切相關(guān)。不同大小的窗口會得到不同的線性系數(shù),因此可以根據(jù)實際任務(wù)需求來選擇合適的窗口大小。本研究采用一天的樣本長度進行滑動窗口處理,即滑動窗口大小設(shè)置為96。通過計算可得從IMF1到殘差分量序列的線性系數(shù)分別是0.014、0.035、0.079、0.305、0.740、0.887、0.959 以及0.999。本實驗將閾值設(shè)置為0.8,即IMF6、IMF7 以及殘差分量序列使用ARIMA 模型構(gòu)建預(yù)測模型,其余分量序列使用LSTM網(wǎng)絡(luò)構(gòu)建預(yù)測模型。
根據(jù)表1 可知,直接使用原始電力負荷進行預(yù)測時,TCN 模型的預(yù)測精度最高,其MAE 和RMSE 值分別為27.53 和35.36。與表現(xiàn)第二好的LSTM模型相比,TCN 模型在MAE 和RMSE 指標上分別降低了1.54(5.30%)和1.46(3.97%)。而使用了EMD 算法的TCN 和LSTM模型,其預(yù)測精度與未使用分解算法的模型預(yù)測精度相比,均有所提高。EMD-TCN 模型表現(xiàn)最優(yōu)異,其在MAE 和RMSE 指標上分別降低了2.63(9.55%)和1.66(4.69%)。同時,EMD-LSTM模型的表現(xiàn)也非常出色,在MAE 和RMSE 指標上分別降低了3.86(13.28%)和1.71(4.64%)。以上結(jié)果表明,通過使用EMD 分解算法將原始時間序列分解成多個分量序列,并利用這些分量序列構(gòu)建預(yù)測模型,對于提高模型預(yù)測效果是有效的。根據(jù)表格1 的結(jié)果,可以看到本文提出的EMD-ARIMA-LSTM 模型表現(xiàn)最好。相較于EMD-TCN 模型,EMD-ARIMA-LSTM 模型在MAE 和RMSE 指標上分別降低了1.64(6.59%)和1.56 (7.60%)。此外,相較于EMD-LSTM 和EMD-TCN 模型,EMD-ARIMA-TCN 和EMD-ARIMA-LSTM模型的預(yù)測精度也有所提高??偟膩碚f,本文提出的算法在預(yù)測精度方面相比于其他算法表現(xiàn)更優(yōu)異。例如,與LSTM 和EMD-LSTM 模型相比,EMD-ARIMA-LSTM模型在MAE 和RMSE 指標上的值均更小,即EMD-ARIMA-LSTM 算法的預(yù)測效果更佳。
表1 各個算法的預(yù)測精度
另外,根據(jù)表1 的結(jié)果可以看出,TCN 和EMDTCN 模型的預(yù)測效果優(yōu)于LSTM 和EMD-LSTM 模型。然而,EMD-ARIMA-TCN 模型的預(yù)測效果卻不如EMD-ARIMA-LSTM模型。這可能說明,ARIMA 模型與LSTM 網(wǎng)絡(luò)的協(xié)同效應(yīng)比ARIMA 模型和TCN 的協(xié)同效應(yīng)更好。
為了更清晰地展示不同算法的預(yù)測效果,本文進行了可視化處理,如圖6 所示。
圖6 不同算法的預(yù)測效果
從圖6 中可以看出,在大多數(shù)時間序列的時間點,各種算法的預(yù)測效果都比較接近真實值。然而,當序列在峰值點時,算法之間的預(yù)測精度差異變得更加明顯。預(yù)測效果較好的算法可以更接近真實值,而預(yù)測效果一般的算法則可能會產(chǎn)生更大的誤差。
針對電力負荷預(yù)測的重要性以及挑戰(zhàn)性,本文從滑動窗口方法的角度出發(fā),提出了一種將EMD 分解算法、LSTM 網(wǎng)絡(luò)以及ARIMA 模型相結(jié)合的混合電力負荷預(yù)測算法。為了檢驗所提算法的可行性與有效性,本文利用第九屆“中國電機工程學(xué)會杯”全國大學(xué)生電工數(shù)學(xué)建模競賽提供的電力負荷數(shù)據(jù)集進行實證分析。實證結(jié)果表明所提算法是有效與可行的,它可以提高模型的預(yù)測精度。不足之處在于,本文只針對EMD 算法進行了研究,后續(xù)的工作可以進一步研究其他分解算法對電力負荷預(yù)測的影響。