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