王安東,王東濤,葉劍華
(1.天津職業(yè)技術(shù)師范大學(xué)天津市信息傳感與智能控制重點(diǎn)實(shí)驗(yàn)室,天津 300222;2.天津職業(yè)技術(shù)師范大學(xué)自動(dòng)化及電氣工程學(xué)院,天津 300222)
月售電量是電力公司業(yè)績(jī)考核和行業(yè)對(duì)標(biāo)的一項(xiàng)重要經(jīng)濟(jì)指標(biāo)。月售電量反映了電力企業(yè)的售電能力和綜合管理水平,因此受到了各級(jí)電力企業(yè)的普遍關(guān)注。準(zhǔn)確的月售電量預(yù)測(cè)可為企業(yè)制定電力規(guī)劃、售電計(jì)劃和設(shè)備檢修計(jì)劃等提供依據(jù),保障電力企業(yè)正常運(yùn)行,降低企業(yè)運(yùn)行成本,從而提高電力企業(yè)的經(jīng)濟(jì)效益和社會(huì)效益。因此,提高月售電量預(yù)測(cè)的精度具有十分重要的現(xiàn)實(shí)意義。國(guó)內(nèi)外一些學(xué)者針對(duì)月售電量預(yù)測(cè)方法進(jìn)行了研究,提出了多種預(yù)測(cè)方法,如石秀倩等[1]使用BP 神經(jīng)網(wǎng)絡(luò)分析預(yù)測(cè)法并引入溫度因素和時(shí)間負(fù)荷因素對(duì)用戶用電負(fù)荷進(jìn)行預(yù)測(cè);蘇振宇等[2]使用Holt-Winters 方法對(duì)完成季節(jié)調(diào)整的數(shù)據(jù)進(jìn)行預(yù)測(cè)并采用回歸法預(yù)測(cè)月度負(fù)荷;馬婉貞等[3]使用改進(jìn)型灰色理論方法在經(jīng)典灰色理論基礎(chǔ)上采用三點(diǎn)平滑法對(duì)數(shù)據(jù)進(jìn)行前期處理并構(gòu)建等維度新信息矩陣的GM(1,1)模型,最終完成負(fù)荷的預(yù)測(cè)。采用最小二乘回歸法建立的月售電量與其主要影響因素(經(jīng)濟(jì)因素)之間的回歸模型,雖然能提高預(yù)測(cè)精度,但增加了數(shù)據(jù)收集的難度。灰色理論法對(duì)數(shù)據(jù)質(zhì)量要求較低,但僅對(duì)指數(shù)變化的數(shù)據(jù)預(yù)測(cè)結(jié)果較為準(zhǔn)確,且受外界干擾較大。用神經(jīng)網(wǎng)絡(luò)分析預(yù)測(cè)法預(yù)測(cè)精度很高,但該方法需要龐大的數(shù)據(jù)量作為樣本[4]。張強(qiáng)等[5-7]采用時(shí)間序列差分自回歸移動(dòng)平均模型(autoregressive integrated moving average model,ARIMA)預(yù)測(cè)月售電量,該模型根據(jù)歷史數(shù)據(jù)變化規(guī)律建模,預(yù)測(cè)變化趨勢(shì)明顯的年度電量有較高的精度,而直接用于預(yù)測(cè)波動(dòng)較大的月售電量則會(huì)有較大的誤差。
月售電量受到外界影響較大,如季節(jié)變更、突發(fā)事件及經(jīng)濟(jì)變化等。從現(xiàn)有的預(yù)測(cè)結(jié)果來(lái)看,一季度3個(gè)月的預(yù)測(cè)誤差顯著偏大。原因是春節(jié)期間各行各業(yè)放假,工廠普遍停工停產(chǎn),春節(jié)期間的電力負(fù)荷與平日有很大的不同,由此對(duì)一季度的月售電量預(yù)測(cè)產(chǎn)生了很大的影響。而傳統(tǒng)的月售電量預(yù)測(cè)方法沒(méi)有考慮到該因素對(duì)售電量預(yù)測(cè)精度的影響,導(dǎo)致了預(yù)測(cè)結(jié)果誤差較大。程超[8]將歷史的月售電量序列轉(zhuǎn)換為春節(jié)全分布在2 月時(shí)的新序列,并將新序列參與建模與預(yù)測(cè),最后將該預(yù)測(cè)值按預(yù)測(cè)當(dāng)期的實(shí)際春節(jié)分布逆轉(zhuǎn)換為實(shí)際的月售電量預(yù)測(cè)值。這種方法雖能夠減少春節(jié)的不同分布對(duì)月售電量的影響,但預(yù)測(cè)誤差還有進(jìn)一步減小的空間。劉建等[9]提出分行業(yè)售電量占比預(yù)測(cè)值以及待預(yù)測(cè)年份及歷年的春節(jié)日期,對(duì)月度售電量進(jìn)行調(diào)整,從而考慮春節(jié)對(duì)售電量的影響。為提高月售電量的預(yù)測(cè)精度,本文將X12 季節(jié)調(diào)整模型的原始數(shù)據(jù)進(jìn)行分解,采用ARIMA 模型和歷史同期平均法分別預(yù)測(cè)分量,通過(guò)計(jì)算得到初步預(yù)測(cè)結(jié)果,利用擬合模型對(duì)初步預(yù)測(cè)結(jié)果進(jìn)行修正,從而得到精度較高的預(yù)測(cè)結(jié)果。
月度售電量一般包含3 個(gè)變量因素,分別為趨勢(shì)分量(seasonal trend-cycle,TC)、季節(jié)分量(seasonal factors,SF)以及隨機(jī)分量(irregular component,IR),三者的變化軌跡不同,所以在售電量預(yù)測(cè)中,如果對(duì)此3 個(gè)分量不加以分離而直接預(yù)測(cè),會(huì)造成分量間相互影響,導(dǎo)致月度售電量預(yù)測(cè)精度降低。
本文采用X12 季節(jié)調(diào)整乘法模型對(duì)月度售電量進(jìn)行分解,其基本原理為:在移動(dòng)平均法的基礎(chǔ)上,增加加權(quán)系數(shù),通過(guò)移動(dòng)加權(quán)系數(shù)平均法,對(duì)月度售電量的時(shí)間序列數(shù)據(jù)進(jìn)行逐項(xiàng)分解,從而達(dá)到分解月度售電量原始時(shí)間序列的目的。X12 乘法模型已經(jīng)嵌入到Eviews 軟件的“季節(jié)調(diào)整”功能中,可以通過(guò)軟件實(shí)現(xiàn)對(duì)月度售電量的分解,將其分解為3 個(gè)變量,其分解公式為
式中:E 為月度售電量的時(shí)間序列;ETC為月度售電量的趨勢(shì)分量序列;ESF為月度售電量的季節(jié)分量序列;EIR為月度售電量的隨機(jī)分量序列。
ARIMA 模型是一種時(shí)間序列預(yù)測(cè)方法。其主要原理為:將非平穩(wěn)的時(shí)間序列數(shù)據(jù)轉(zhuǎn)換為平穩(wěn)的時(shí)間序列過(guò)程,將因變量?jī)H對(duì)其滯后值以及隨機(jī)誤差項(xiàng)的現(xiàn)值和滯后值進(jìn)行回歸,建立預(yù)測(cè)模型。ARIMA 模型由自回歸模型AR 和移動(dòng)平均模型MA 組成。自回歸模型AR 用來(lái)確定當(dāng)前值和歷史值之間的關(guān)系,通過(guò)變量自身的時(shí)間數(shù)據(jù)來(lái)對(duì)自身進(jìn)行預(yù)測(cè),且自回歸模型AR 必須滿足平穩(wěn)性要求;自回歸模型AR 需要確定1個(gè)p 值,即表示使用p 期歷史數(shù)據(jù)來(lái)預(yù)測(cè)當(dāng)前值,自回歸模型AR 當(dāng)前值為
式中:μ 為常數(shù)項(xiàng);p 為AR 模型階數(shù);γi為自相關(guān)系數(shù);?t為誤差值。
移動(dòng)平均模型MA 主要用來(lái)進(jìn)行自回歸模型中的誤差項(xiàng)的累積,可有效消除模型預(yù)測(cè)中的隨機(jī)波動(dòng),MA 模型當(dāng)前值為
式中:θi為移動(dòng)平均系數(shù);q 為MA 模型階數(shù)。
將自回歸模型AR 與移動(dòng)平均模型MA 組合可以得到ARMA 模型,即自回歸移動(dòng)平均模型
采用ARIMA 模型進(jìn)行趨勢(shì)分量TC 預(yù)測(cè)的步驟:①進(jìn)行原始序列平穩(wěn)化,使用ADF(augmented dickey-fuller test)檢驗(yàn)法對(duì)原始序列進(jìn)行d 階差分并判定其穩(wěn)定性,確定差分次數(shù)d;②通過(guò)自相關(guān)系數(shù)和偏自相關(guān)系數(shù)的截尾及拖尾特性來(lái)確定模型階數(shù)p、q;③使用最小二乘法算法計(jì)算模型中除p、d、q 外的其他參數(shù);④編寫程序,輸入p、d、q 參數(shù),進(jìn)行趨勢(shì)分量TC 預(yù)測(cè)。
調(diào)整后觀察季節(jié)分量SF 發(fā)現(xiàn),季節(jié)分量SF 序列具有較好的周期性,且歷史年份的同期月季節(jié)分量波動(dòng)很低,具有一定的平衡性,因此采用歷史同期數(shù)據(jù)平均值法預(yù)測(cè)季節(jié)分量SF,計(jì)算公式為
式中:SFi,j為第i 年第j 月的月度售電量的季節(jié)分量。
月度售電量的隨機(jī)分量沒(méi)有明顯的規(guī)律,本文取歷史同期隨機(jī)分量的平均值作為當(dāng)期月度售電量的隨機(jī)分量。
隨機(jī)分量IR 的預(yù)測(cè)計(jì)算公式為
式中:IRi,j為第i 年第j 月的月度售電量的隨機(jī)分量。
季節(jié)的變更會(huì)對(duì)售電量預(yù)測(cè)結(jié)果造成較大的影響。由于春節(jié)是中國(guó)的新年,且每年春節(jié)的陽(yáng)歷時(shí)間并不相同,春節(jié)期間又會(huì)出現(xiàn)商家停業(yè)、工廠停工及春運(yùn)等情況,所以春節(jié)期間售電量預(yù)測(cè)準(zhǔn)確度的提高,能對(duì)月度售電量預(yù)測(cè)的整體準(zhǔn)確度提高有很大的幫助。
本文選擇占季比(歷年1—3 月份每月歷史售電量分別占?xì)v年第一季度比重)作為月度售電量預(yù)測(cè)的春節(jié)修正方式。某地市2013—2018 年第一季度售電量占季比如圖1 所示。2013—2018 年春節(jié)日期分別為2 月10 日,1 月31 日,2 月19 日,2 月8 日,1 月28 日和2 月16 日。從圖1 可以看出,春節(jié)日期越早,1 月份占季比越小,3 月份占季比越大,可見(jiàn)春節(jié)日期對(duì)于第一季度單月售電量占比有很大影響。
圖1 某地市2013—2018 年第一季度售電量占季比
因子分解機(jī)(factorization machine,F(xiàn)M)[10]是一種基于矩陣分解的機(jī)器學(xué)習(xí)算法,相較于傳統(tǒng)的線性模型,F(xiàn)M 算法在線性模型中增加了新的交叉特征及其對(duì)應(yīng)的權(quán)值[11]。
在春節(jié)因素與占季比的原數(shù)據(jù)集中,輸入為當(dāng)月首日距春節(jié)時(shí)長(zhǎng)和月份,輸出為占季比,針對(duì)這2 個(gè)特征間的關(guān)系給出因子分解機(jī)模型[12]
式中:ω0為最初權(quán)值/偏置項(xiàng);ωi為每個(gè)特征xi對(duì)應(yīng)的權(quán)值;f(x)為當(dāng)特征為xi時(shí)模型的輸出;vi為系數(shù)矩陣V 的第i 維向量;<vi,vj>為向量vi,vj的點(diǎn)積。
上述系數(shù)矩陣V 為
由式(7)可以看出,交叉特征項(xiàng)的計(jì)算較為復(fù)雜。為降低其計(jì)算復(fù)雜度,對(duì)交叉特征項(xiàng)進(jìn)行化簡(jiǎn)[13]
式(9)將交叉特征項(xiàng)進(jìn)行化簡(jiǎn)后,對(duì)本文這一回歸問(wèn)題的損失函數(shù)[14]為
式中:f(x)可以作為回歸中的預(yù)測(cè)結(jié)果;y 為真實(shí)輸出結(jié)果;p 為樣本個(gè)數(shù)。
可以通過(guò)對(duì)損失函數(shù)LossFuncR的輸入量θ(分別為常數(shù)項(xiàng)、一次項(xiàng)、交叉特征項(xiàng))求導(dǎo)計(jì)算出梯度,然后根據(jù)梯度對(duì)權(quán)值更新。梯度計(jì)算式如下
由式(7)—式(11)可知,本文所述的因子分解機(jī)(FM)算法程序流程如圖2 所示。
圖2 因子分解機(jī)(FM)算法程序流程
因子分解機(jī)(FM)算法計(jì)算步驟:①運(yùn)行min-max歸一化將訓(xùn)練數(shù)據(jù)特征歸一化并將模型參數(shù)ω0、ωi、vi初始化;②運(yùn)行如式(7)、(9)所示FM 算法模型,優(yōu)化模型參數(shù)并計(jì)算預(yù)測(cè)值f(x);③判斷真實(shí)值y 與預(yù)測(cè)值f(x)的誤差是否小于1%,若小于1%,保存模型并結(jié)束算法,若大于1%,通過(guò)式(10)、(11)對(duì)損失函數(shù)LossFuncR的輸入量θ 求導(dǎo),計(jì)算梯度,并更新權(quán)重直至誤差小于1%。
本文使用2013 年1 月—2018 年12 月的月度售電量數(shù)據(jù)預(yù)測(cè)2019 年全年月度售電量。某地級(jí)市月度售電量如表1 所示。
2013 年1 月—2018 年12 月售電量數(shù)據(jù)曲線如圖3 所示。
(1)總售電量及各分量變化趨勢(shì)
將售電量數(shù)據(jù)分解為趨勢(shì)分量TC、季節(jié)分量SF及隨機(jī)分量IR,售電量分解圖如圖4 所示。
由圖4 可知,趨勢(shì)分量Y_TC 呈現(xiàn)明顯上升趨勢(shì),季節(jié)分量Y_SF 周期性變化,隨機(jī)分量Y_IR 變化無(wú)規(guī)律。
(2)考慮季節(jié)調(diào)整的預(yù)測(cè)結(jié)果
采用第2 節(jié)的方法對(duì)3 種分量進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)果如表2 所示。
從表2 的售電量預(yù)測(cè)情況看,售電量預(yù)測(cè)值在2019 年的2、3 月份誤差較大,其中3 月份超過(guò)6%,原因是預(yù)測(cè)時(shí)僅考慮季節(jié)調(diào)整因素,未考慮春節(jié)對(duì)1—3月份月度售電量的影響。
表1 某地級(jí)市月度售電量 ×104 kW·h
圖3 2013 年1 月—2018 年12 月售電量數(shù)據(jù)曲線
圖4 售電量分解圖
表2 考慮季節(jié)因素的預(yù)測(cè)結(jié)果
(3)考慮春節(jié)因素的預(yù)測(cè)結(jié)果
根據(jù)2019 年春節(jié)日期及1—3 月首日到春節(jié)的時(shí)間、月份得到2019 年占季比,2019 年1—3 月預(yù)測(cè)占季比如表3 所示。
表3 2019 年1—3 月預(yù)測(cè)占季比
在初步預(yù)測(cè)完成后,由預(yù)測(cè)的1—3 月售電量總量和表3 給出的占季比,對(duì)2019 年1—3 月份預(yù)測(cè)結(jié)果進(jìn)行調(diào)整,以提高預(yù)測(cè)精度。
考慮春節(jié)影響因素,重新進(jìn)行月度售電量預(yù)測(cè),結(jié)果如表4 所示。
表4 結(jié)果表明,在考慮了春節(jié)調(diào)整因素的影響后,1—3 月預(yù)測(cè)誤差明顯減小,平均誤差降低。
(4)多種方法預(yù)測(cè)結(jié)果對(duì)比
將本文方法計(jì)算出的結(jié)果與傳統(tǒng)的ARIMA 方法以及基于季節(jié)調(diào)整和H-P 濾波[15-16]的月度售電量預(yù)測(cè)方法進(jìn)行了對(duì)比,對(duì)比結(jié)果如圖5 所示。
從圖5 可以看出,本文所使用的方法誤差最小,7個(gè)月的平均誤差達(dá)到了0.834 1%,且每月的誤差均遠(yuǎn)低于同行業(yè)對(duì)標(biāo)指標(biāo)的5%,說(shuō)明在月度售電量預(yù)測(cè)中,基于季節(jié)調(diào)整和春節(jié)調(diào)整的ARIMA 模型優(yōu)于傳統(tǒng)ARIMA 模型和基于季節(jié)調(diào)整與H-P 濾波的預(yù)測(cè)模型。
表4 考慮春節(jié)調(diào)整因素的預(yù)測(cè)結(jié)果
圖5 3 種預(yù)測(cè)方法誤差對(duì)比
本文針對(duì)春節(jié)前后月度售電量預(yù)測(cè)精度較差的實(shí)際問(wèn)題,提出了一種計(jì)及春節(jié)調(diào)整影響的基于因子分解機(jī)(FM)算法的月售電量預(yù)測(cè)模型。使用X12 季節(jié)調(diào)整模型將原始數(shù)據(jù)分解為趨勢(shì)分量、季節(jié)分量和隨機(jī)分量,采用ARIMA(p,d,q)模型和歷史同期平均法分別預(yù)測(cè)趨勢(shì)分量、季節(jié)分量和隨機(jī)分量,對(duì)3 種分量進(jìn)行乘積計(jì)算得到初步預(yù)測(cè)結(jié)果;計(jì)及春節(jié)調(diào)整影響因素,采用因子分解機(jī)算法對(duì)1—3 月首日距春節(jié)時(shí)長(zhǎng)和占季比進(jìn)行擬合,利用擬合模型對(duì)初步預(yù)測(cè)結(jié)果進(jìn)行修正,提高了1 季度月售電量的預(yù)測(cè)精度。通過(guò)算例,驗(yàn)證了所提算法的有效性。