戴天凱
現(xiàn)代社會(huì),能源也已成為制約我國經(jīng)濟(jì)社會(huì)持續(xù)發(fā)展的重大問題。石油作為一種不可再生的戰(zhàn)略性能源,在國民經(jīng)濟(jì)的各個(gè)領(lǐng)域都發(fā)揮著重要作用。通過石油消耗預(yù)測,可以有效地為能源產(chǎn)業(yè)結(jié)構(gòu)的改進(jìn)提供參考,并且對(duì)即將到來的能源危機(jī)進(jìn)行一些預(yù)測及緩和,甚至可以推動(dòng)新能源的加速發(fā)展。因此,石油消耗預(yù)測是一項(xiàng)十分必要的研究工作。
關(guān)于應(yīng)用奇異譜分析(Singular Spectrum Analysis,SSA)進(jìn)行石油消耗時(shí)間序列數(shù)據(jù)預(yù)測的研究在目前的文獻(xiàn)調(diào)研中發(fā)現(xiàn)并不多見,但是已有其他不少相關(guān)研究。文獻(xiàn)[1]應(yīng)用格蘭杰因果關(guān)系檢驗(yàn)和協(xié)整分析,對(duì)中國石油消耗和經(jīng)濟(jì)增長之間的關(guān)系進(jìn)行了實(shí)證研究,結(jié)論表明,中國石油消耗與經(jīng)濟(jì)增長之間存在協(xié)整關(guān)系和單向因果關(guān)系。文獻(xiàn)[2]應(yīng)用灰色預(yù)測理論,以世界石油的年度消耗量為研究對(duì)象,利用2007年至2014年的石油年度消耗量數(shù)據(jù),建立灰色預(yù)測模型GM(1,1),結(jié)果顯示,未來40多年內(nèi)人類對(duì)石油需求量會(huì)逐年上升,石油枯竭時(shí)間為2060年。文獻(xiàn)[3]應(yīng)用系統(tǒng)動(dòng)力學(xué)和線性回歸方法得到石油預(yù)測的探明儲(chǔ)量、石油消耗量以及石油產(chǎn)量與相關(guān)因素的變化情況。文獻(xiàn)[4]應(yīng)用奇異譜分析方法,對(duì)故障時(shí)間序列進(jìn)行了建模和預(yù)測,進(jìn)一步以預(yù)測結(jié)果的均方根誤差(Root Mean Square Error,RMSE)最小為優(yōu)化目標(biāo)對(duì)SSA模型參數(shù)進(jìn)行了優(yōu)選,實(shí)驗(yàn)結(jié)果表明SSA及其參數(shù)優(yōu)選和模型組合方法在故障時(shí)間序列分析中具有更好的擬合和預(yù)測精度。文獻(xiàn)[5]介紹了SSA在不同時(shí)期尺度氣候研究中的應(yīng)用,結(jié)果表明SSA是氣候動(dòng)力重建、統(tǒng)計(jì)分析和信息壓縮的一種有效工具。文獻(xiàn)[6]提出了分解預(yù)測的思想,通過SSA將序列分解成低頻與高頻兩部分,分別采用最小均方(Least Mean Square,LMS)自適應(yīng)自回歸移動(dòng)平均(Autoregressive Integrated Moving Average Model,ARIMA)與LMS自適應(yīng)自回歸(Augmented Reality,AR)模型進(jìn)行預(yù)測,然后將兩者疊加便可得原始序列預(yù)測值。
奇異譜分析是建立時(shí)間序列模型的一種非參數(shù)方法,其建模過程分為兩個(gè)階段:分解與重構(gòu)。在分解階段,將原始時(shí)間序列嵌入到窗口長度為的Hankel矩陣中(又稱為軌跡矩陣,如公式(1)所示)。然后,可以通過奇異值分解(Singular Value Decomposition,SVD)得到一組非零特征值和相應(yīng)的子矩陣。分解結(jié)果如公式(2)所示,其中是對(duì)應(yīng)的特征向量,代表主成分。
在重構(gòu)階段,根據(jù)奇異值的貢獻(xiàn)和特征,將子矩陣劃分為若干個(gè)組。然后應(yīng)用對(duì)角線平均方法還原出時(shí)間序列。SSA的預(yù)測過程使用了線性遞歸公式(Linear Recurrent Formulae,LRF),將過去數(shù)據(jù)點(diǎn)的線性組合作為當(dāng)前的預(yù)測值。此外,SSA的預(yù)測方法可以分為遞歸和向量兩種類型,其中向量預(yù)測方法比遞歸預(yù)測方法具有更好的穩(wěn)定性,但需要更多的計(jì)算資源。
在SSA預(yù)測過程中,窗口長度L不應(yīng)大于時(shí)間序列長度n的一半,并且可以被時(shí)間序列的潛在周期整除。在分組過程中,用于建模的子矩陣數(shù)量可以通過奇異值的累計(jì)貢獻(xiàn)來決定。此外,SSA模型構(gòu)建過程中還可以參考一些統(tǒng)計(jì)學(xué)方法,比如觀測散點(diǎn)圖、重構(gòu)序列圖以及計(jì)算重構(gòu)序列之間的加權(quán)相關(guān)系數(shù)等。
本文的整體研究框架大致分為以下幾個(gè)步驟:首先上網(wǎng)搜集石油消耗總量數(shù)據(jù),并整理成“.csv”格式的數(shù)據(jù)文件,再將數(shù)據(jù)進(jìn)行預(yù)處理(時(shí)間序列化),然后將數(shù)據(jù)分為訓(xùn)練集與測試集,并建立SSA模型,用SSA模型進(jìn)行預(yù)測,并繪制預(yù)測的18個(gè)數(shù)據(jù)點(diǎn)的時(shí)間序列,最后計(jì)算預(yù)測精度。
整個(gè)預(yù)測過程的實(shí)現(xiàn)程序如算法1所示。首先導(dǎo)入“Rssa”和“rminer”程序包;然后將石油月消耗數(shù)據(jù)表通過“read.csv()”函數(shù)讀取進(jìn)來,并保存到“tab”這個(gè)變量中;之后將tab中的石油消耗總量時(shí)間序列數(shù)據(jù)通過程序“da=tab$Total”從“tab”中取出來并保存到“da”這個(gè)變量中,并用“plot()”函數(shù)繪制其序列圖;然后取數(shù)據(jù)值468個(gè)點(diǎn)作為訓(xùn)練集并劃分后18個(gè)點(diǎn)作為測試集分別保存在“train”和“test”變量中;用“ssa()”函數(shù)對(duì)訓(xùn)練集建立ssa模型并保存到s變量中,然后利用ssa模型應(yīng)用線性回歸和向量方法分別預(yù)測后18個(gè)數(shù)據(jù)點(diǎn)的取值;之后繪制后18個(gè)數(shù)據(jù)點(diǎn)的序列圖并進(jìn)一步繪制預(yù)測值的18個(gè)點(diǎn)的序列圖并進(jìn)行對(duì)比;最后分別利用“RMSE”與“MAE”兩個(gè)函數(shù)來計(jì)算預(yù)測精度。
通過上述的研究方法以及實(shí)驗(yàn)預(yù)測程序代碼的書寫,我們可以初步進(jìn)行實(shí)驗(yàn)準(zhǔn)備,實(shí)驗(yàn)設(shè)計(jì)以及進(jìn)行實(shí)驗(yàn),進(jìn)而可以得出實(shí)驗(yàn)結(jié)果。
(1)實(shí)驗(yàn)數(shù)據(jù)
美國石油月消耗總量。數(shù)據(jù)從datamarket網(wǎng)站上搜集。該數(shù)據(jù)包括美國1973年1月至2013年6月中每個(gè)月的石油消耗總量,一共包含486個(gè)數(shù)據(jù)點(diǎn),其中選取前468個(gè)做為訓(xùn)練集,后18個(gè)做為測試集。
(2)R語言/Rstudio介紹
R語言是S語言的一個(gè)分支,是S語言的一種實(shí)現(xiàn)。它適用于統(tǒng)計(jì)分析和繪圖等方面,是集統(tǒng)計(jì)分析與圖形顯示于一體的。相比之下,R語言具有不少優(yōu)點(diǎn),R是一種可編程語言,語法通俗易懂較為簡潔。它采用獨(dú)特的數(shù)據(jù)恢復(fù)新技術(shù),為恢復(fù)FAT12/16/32、NTFS、NTFS5(由 Windows 2000/XP/2003/Vista/Windows 8/Windows 10創(chuàng)建或更新)、Ext2FS/Ext3FS(OSX LINUX 文件系統(tǒng))以及 UFS1/UFS2(FreeBSD/OpenBSD/NetBSD文件系統(tǒng))分區(qū)的文件提供了最為廣泛的數(shù)據(jù)恢復(fù)解決方案。
(3)精度度量標(biāo)準(zhǔn)
本文應(yīng)用了兩種誤差度量指標(biāo),一是均方根誤差(root mean square error,RMSE),用于計(jì)算預(yù)測精度,均方根誤差是用來衡量觀測值同真值之間的偏差,公式為:
同時(shí)均方根誤差越小越好。二是平均絕對(duì)誤差(mean absolute error,MAE)介紹,也用于計(jì)算預(yù)測精度,數(shù)值越小越好,公式為:
(1)實(shí)驗(yàn)設(shè)計(jì)
本表格以window的窗口長度L和組數(shù)group為基礎(chǔ)變量,并以石油月總消耗量以及部分領(lǐng)域的消耗量為數(shù)據(jù),同時(shí)應(yīng)用R語言與Rstudio進(jìn)行編程計(jì)算,然后運(yùn)用“RMSE”以及“MAE”兩個(gè)函數(shù)計(jì)算預(yù)測精度,并將所得數(shù)據(jù)填入表中,得到如下表格,并進(jìn)行比較。
表1 SSA模型對(duì)XXX預(yù)測的實(shí)驗(yàn)結(jié)果
(2)實(shí)驗(yàn)結(jié)果分析
1)若以瀝青和道路油耗為數(shù)據(jù),在大致范圍內(nèi),則窗口長度L越接近24,組數(shù)group越接近6,由函數(shù)得到的預(yù)測精度數(shù)值較小,預(yù)測結(jié)果較準(zhǔn)確。
2)若以餾分燃燒油為數(shù)據(jù),在大致范圍內(nèi),則窗口長度L越接近24,組數(shù)group越接近6,由函數(shù)得到的預(yù)測精度較小,預(yù)測結(jié)果較準(zhǔn)確。
3)若以煤油為數(shù)據(jù),在大致范圍內(nèi),則窗口長度L越接近48,組數(shù)group越接近12,由函數(shù)得到的預(yù)測精度較小,預(yù)測結(jié)果較準(zhǔn)確。
4)若以液化石油氣為數(shù)據(jù),在大致范圍內(nèi),則窗口長度L越接近48,組數(shù)group越接近12,由函數(shù)得到的預(yù)測精度較小,預(yù)測結(jié)果較準(zhǔn)確。
5)若以總油耗為數(shù)據(jù),在大致范圍內(nèi),則窗口長度L越接近36,組數(shù)group越接近6,由函數(shù)得到的預(yù)測精度較小,預(yù)測結(jié)果較準(zhǔn)確。
6)由總體可以得知當(dāng)窗口長度與組數(shù)不同時(shí),會(huì)有一個(gè)最適值,預(yù)測精度最小,與真實(shí)值較為接近。
7)由總體數(shù)據(jù)預(yù)測結(jié)果可知,當(dāng)輸入的數(shù)據(jù)不相同時(shí),最適值不全相同,且不同數(shù)據(jù)的最適值會(huì)有不同的波動(dòng),預(yù)測精度數(shù)值也不相同。
8)由此實(shí)驗(yàn)可以得出,SSA模型對(duì)于預(yù)測分析石油消耗量具有優(yōu)秀的作用,預(yù)測結(jié)果較為準(zhǔn)確,方便快捷。
本文應(yīng)用SSA模型建立石油消耗的預(yù)測模型,以5組1973年1月至2011年12月的石油消耗數(shù)據(jù)為基礎(chǔ),應(yīng)用SSA模型對(duì)這5組數(shù)據(jù)進(jìn)行后18個(gè)數(shù)據(jù)點(diǎn)的預(yù)測。實(shí)驗(yàn)結(jié)果表明SSA模型對(duì)于石油消耗的預(yù)測效果較好,預(yù)測精度RMSE和MAE值較小?;谀壳肮ぷ鳎罄m(xù)還可以做一些研究,比如進(jìn)一步調(diào)整窗口長度以及組數(shù),使預(yù)測結(jié)果更加準(zhǔn)確,并分析和推測其中規(guī)律;還可以應(yīng)用自回歸移動(dòng)平均(autoregressive integrated moving average,ARIMA)、支持向量機(jī)(support vector machine,SVM)等模型進(jìn)行預(yù)測處理,比較各統(tǒng)計(jì)學(xué)和人工智能等模型對(duì)于5組數(shù)據(jù)預(yù)測效果的優(yōu)劣。