張德亮,楊國(guó)利,郭 嘉,牟永強(qiáng)
(71496 部隊(duì),山東 煙臺(tái)265800)
目前大量新式武器不斷投入使用,使部隊(duì)對(duì)油料的需求日益增長(zhǎng),對(duì)油料供給的方式、方法提出了更高的要求。對(duì)油料消耗進(jìn)行合理準(zhǔn)確地預(yù)測(cè),直接影響著油料保障能力的提升,是油料精確保障、優(yōu)化調(diào)度的基礎(chǔ)[1]。油料消耗需求預(yù)測(cè),是通過(guò)對(duì)各部隊(duì)歷史油料消耗統(tǒng)計(jì)的歸納分析,推算其在下一時(shí)間節(jié)點(diǎn)前所需的油料品種、數(shù)量的決策活動(dòng)??茖W(xué)預(yù)測(cè)部隊(duì)油料消耗量對(duì)用油單位編報(bào)申請(qǐng)計(jì)劃、油料管理部門(mén)分配油料指標(biāo),以及上級(jí)調(diào)撥決策人員制定訂購(gòu)、調(diào)撥計(jì)劃都具有重要的輔助決策作用[2]。
油料消耗的歷史統(tǒng)計(jì),可以看作油料消耗量的時(shí)間序列;對(duì)油料消耗歷史數(shù)據(jù)的分析處理,也就是對(duì)油料消耗量的時(shí)間序列的分析處理。油料消耗量隨時(shí)間的變化是無(wú)規(guī)則的,顯然油料消耗量的時(shí)間序列是典型的非線性時(shí)間序列。在非線性時(shí)間序列預(yù)測(cè)方面,大量非線性預(yù)測(cè)模型被相繼提出,如神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型[3]、馬爾科夫預(yù)測(cè)模型與支持向量預(yù)測(cè)模型[4],但它們都存在一定的局限性,不能全面地反映出油料消耗的規(guī)律特點(diǎn)。
小波分析具有時(shí)頻局域性、小波系數(shù)稀疏性和不同尺度自相似性的特點(diǎn),為非線性時(shí)間序列預(yù)測(cè)提供了一種新的工具。在此基礎(chǔ)上,通過(guò)小波多尺度分解將非線性時(shí)間序列分解到不同頻率通道上。由于低頻趨勢(shì)序列具有較好的平穩(wěn)性,高頻細(xì)節(jié)序列具有明顯的波動(dòng)特征,所以對(duì)分解出的低頻小波系數(shù)采用指數(shù)平滑法進(jìn)行預(yù)測(cè),而對(duì)分解出的高頻小波系數(shù)采用馬爾科夫預(yù)測(cè)模型進(jìn)行預(yù)測(cè),最后將低頻和高頻的預(yù)測(cè)結(jié)果進(jìn)行小波重構(gòu)得到原始時(shí)間序列的預(yù)測(cè)值。
根據(jù)Mallat 提出的小波多尺度分析原理,任何函數(shù)f(x)∈L2(R)都可以分解為分辨率為2-N的f(x)的低頻部分(近似部分)和分辨率為2-j(1≤j≤N)下f(x)的高頻部分(細(xì)節(jié)部分)。對(duì)于任意函數(shù)f(x)∈L2(R)的連續(xù)小波變換為
式中:φ(t)為Haar 小波函數(shù);a為伸縮因子;b為平移因子。
具體分解過(guò)程采用的是Mallat 算法[5]。Mallat算法可以看作通過(guò)高頻和低頻2 個(gè)濾波器來(lái)進(jìn)行頻帶劃分,即
式中:H為低通濾波器系數(shù);G為高通濾波器系數(shù)。
分解出的各部分可由Mallat 重構(gòu)算法進(jìn)行如下重構(gòu):
對(duì)油料消耗量的時(shí)間序列進(jìn)行小波分析,首先要進(jìn)行小波分解,小波分解的基本函數(shù)選Haar函數(shù)。小波分解的層數(shù)與其平穩(wěn)性和預(yù)測(cè)誤差的關(guān)系:分解的層數(shù)越多,各層的平穩(wěn)性就越好,更利于擬合;分解的層數(shù)越多,整體的預(yù)測(cè)誤差越大,預(yù)測(cè)精度下降。在選擇小波分解的分解層數(shù)時(shí),要根據(jù)小波分解的具體情況,確定合適的分解層數(shù),保證整體的預(yù)測(cè)誤差最小。
指數(shù)平滑就是通過(guò)某種平均方式,消除歷史統(tǒng)計(jì)序列中的隨機(jī)波動(dòng),找出其主要發(fā)展趨勢(shì)[6]。指數(shù)平滑法最適用于簡(jiǎn)單的時(shí)間分析和中、短期預(yù)測(cè),實(shí)際上是一種以時(shí)間定權(quán)的加權(quán)平均,越近的數(shù)據(jù)加權(quán)系數(shù)越大,越遠(yuǎn)的數(shù)據(jù)加權(quán)系數(shù)越小。指數(shù)平滑法是一個(gè)迭代過(guò)程,進(jìn)行計(jì)算時(shí)須首先確定初始值。初始值選取不當(dāng)造成的誤差,經(jīng)過(guò)幾次平滑之后將很小。為使模型迅速地調(diào)整到當(dāng)前水平,最簡(jiǎn)單的方法是取前幾個(gè)數(shù)的平均值作為初始值,一般取前3 ~5 個(gè)數(shù)的算術(shù)平均值。運(yùn)用指數(shù)平滑法對(duì)小波分解的低頻部分進(jìn)行預(yù)測(cè)時(shí),要觀察低頻部分的趨勢(shì)變化,選擇合適的指數(shù)平滑預(yù)測(cè)模型進(jìn)行預(yù)測(cè)。如果低頻系數(shù)序列在一個(gè)水平附近上下波動(dòng),采用一次指數(shù)平滑模型進(jìn)行預(yù)測(cè);如果低頻系數(shù)序列存在線性趨勢(shì)時(shí),則采用二次指數(shù)平滑模型進(jìn)行預(yù)測(cè)。對(duì)于時(shí)間序列x1,x2,…,xt,其一次指數(shù)平滑公式為
加權(quán)系數(shù)α 的取值體現(xiàn)了新觀察值與原平滑值之間的比例關(guān)系:α 越大,xt在式中的比例越大,當(dāng)α=1 時(shí),平滑值等于當(dāng)前觀察值;α 越小的比重就越大,當(dāng)α =0 時(shí),則本期平滑值等于上期的平滑值。α 的大小控制了時(shí)間序列在預(yù)測(cè)中的有效數(shù)據(jù)的個(gè)數(shù),α 越大有效數(shù)據(jù)個(gè)數(shù)越少,α越小有效數(shù)據(jù)個(gè)數(shù)越多。本文取α=0.3。
二次指數(shù)平滑的公式為
當(dāng)時(shí)間序列從某時(shí)期開(kāi)始具有線性趨勢(shì)時(shí),用線性趨勢(shì)模型預(yù)測(cè):
式中:T為模型時(shí)期為當(dāng)前時(shí)期T時(shí)的指數(shù)平滑值。
進(jìn)行預(yù)測(cè)
(1)馬爾科夫狀態(tài)區(qū)間的劃分。采用馬爾科夫預(yù)測(cè)模型,必須先將要預(yù)測(cè)的數(shù)據(jù)區(qū)間劃分成有限個(gè)明確的狀態(tài)。由于油料消耗量的狀態(tài)往往不是明確的子集合,而是一種模糊狀態(tài),可采用模糊聚類(lèi)理論構(gòu)建模糊子集來(lái)表示油料消耗量的分級(jí)狀態(tài)。設(shè)通過(guò)模糊聚類(lèi)法將油料消耗量劃分為m個(gè)狀態(tài)(s1,s2,…,sm)。
(2)狀態(tài)轉(zhuǎn)移概率的確定。馬爾科夫預(yù)測(cè)中,用狀態(tài)相互轉(zhuǎn)移的頻率來(lái)描述轉(zhuǎn)移概率。可近似估計(jì)概率公式為
式中:pij為由t時(shí)期的狀態(tài)si轉(zhuǎn)移到t+1 時(shí)期的狀態(tài)sj的概率;aij為由t時(shí)期的狀態(tài)si轉(zhuǎn)移到t+1時(shí)期的狀態(tài)sj的次數(shù)。
(3)確定狀態(tài)區(qū)間。通過(guò)預(yù)測(cè)的初始狀態(tài)以及狀態(tài)轉(zhuǎn)移概率確定狀態(tài)區(qū)間,相應(yīng)的預(yù)測(cè)值取該狀態(tài)區(qū)間的中間值。
將指數(shù)平滑法預(yù)測(cè)得到的低頻小波系數(shù)與馬爾科夫模型預(yù)測(cè)得到的高頻小波系數(shù)進(jìn)行小波重構(gòu),從而得到時(shí)間序列的預(yù)測(cè)值。
從油料信息管理系統(tǒng)中選取并整理得到某部隊(duì)2001—2010 年的油料消耗量(見(jiàn)表1)[7],利用小波分析的方法預(yù)測(cè)該油庫(kù)2010 年的油料消耗量,與2010 年的實(shí)際油料消耗量進(jìn)行比對(duì),檢驗(yàn)其正確性,并對(duì)該油庫(kù)2011 年的油料消耗量進(jìn)行預(yù)測(cè)分析。
表1 某部隊(duì)2001—2010 年油料消耗用量 t
采用Mallat 算法,選取Haar 小波函數(shù)對(duì)2001—2009年的油料消耗量這一時(shí)間序列進(jìn)行一維離散小波分解,得到相應(yīng)油料消耗量序列的低頻系數(shù)和高頻系數(shù)(見(jiàn)表2)。
表2 油料消耗量序列的低頻系數(shù)和高頻系數(shù)
實(shí)際油料消耗量時(shí)間序列及油料消耗量序列低頻系數(shù)和高頻系數(shù)變化趨勢(shì)如圖1—3 所示。
圖1 實(shí)際油料消耗量時(shí)間序列
圖2 油料消耗量序列低頻系數(shù)
從圖2 可以看出,油料消耗量序列存在線性趨勢(shì),因此需采用二次指數(shù)平滑模型對(duì)其進(jìn)行預(yù)測(cè)。將已知數(shù)據(jù)分成2 部分,用第1 部分估計(jì)初始值,用第2 部分進(jìn)行平滑,求各平滑參數(shù)。第1 部分取1—4 周期低頻系數(shù)數(shù)據(jù);第2 部分取5—9 周期低頻系數(shù)數(shù)據(jù)。
圖3 油料消耗量序列高頻系數(shù)
2.2.1 初始值的確定
首先用最小二乘法對(duì)第1 部分?jǐn)?shù)據(jù)進(jìn)行擬合,估計(jì)出a0和b0的值;再根據(jù)a0和b0的關(guān)系式計(jì)算初始值。
設(shè)t=0 時(shí),此時(shí)
根據(jù)第1 部分?jǐn)?shù)據(jù)對(duì)a0和b0進(jìn)行最小二乘擬合,經(jīng)過(guò)Matlab 計(jì)算可得a0= 18. 204 5,b0=0.159 1。因此
2.2.2 指數(shù)平滑預(yù)測(cè)
表3 指數(shù)平滑預(yù)測(cè)計(jì)算結(jié)果
將得到的高頻系數(shù)序列用模糊聚類(lèi)的方法進(jìn)行狀態(tài)劃分(見(jiàn)表4)。
表4 狀態(tài)劃分
狀態(tài)轉(zhuǎn)移 情 況 為:s2→s1→s2→s2→s3→s2→s2→s2→s3。高頻系數(shù)序列預(yù)測(cè)的初始狀態(tài)為s2,經(jīng)計(jì)算預(yù)測(cè)值為-0.025。
對(duì)油料消耗的低頻系數(shù)序列和高頻系數(shù)序列進(jìn)行預(yù)測(cè),并根據(jù)預(yù)測(cè)的時(shí)間序列低頻系數(shù)部分和高頻系數(shù)部分進(jìn)行小波重構(gòu),得到預(yù)測(cè)時(shí)間序列,即預(yù)測(cè)的油料消耗量(見(jiàn)表5)。
表5 小波重構(gòu)預(yù)測(cè)數(shù)據(jù)
從表5 可以看出,根據(jù)某部隊(duì)2001—2009 年的油料消耗量對(duì)其2010 年的油料消耗量進(jìn)行預(yù)測(cè),所得結(jié)果為13.639 1 t,與實(shí)際消耗量13.45 t相比較為符合。
假如已知某部隊(duì)2001—2009 年的油料消耗量信息不完整,僅有其中5 a 的油料消耗量數(shù)據(jù),以此預(yù)測(cè)該部隊(duì)2010 年的油料消耗量。
(1)進(jìn)行時(shí)間序列的小波分解,分解后得到油料消耗量序列的低頻系數(shù)和高頻系數(shù)。
(2)對(duì)低頻部分進(jìn)行指數(shù)平滑預(yù)測(cè),對(duì)高頻部分進(jìn)行馬爾科夫預(yù)測(cè),預(yù)測(cè)得到油料消耗的低頻系數(shù)序列和高頻系數(shù)序列。
(3)由低頻系數(shù)和高頻系數(shù)重構(gòu)得到時(shí)間序列。
以上預(yù)測(cè)計(jì)算結(jié)果見(jiàn)表6。
表6 5 a 數(shù)據(jù)小波分解預(yù)測(cè)結(jié)果
從表6 看出,根據(jù)該部隊(duì)2001—2009 年間5 a的油料消耗用量對(duì)2010 年的油料消耗量進(jìn)行預(yù)測(cè),所得結(jié)果為13.709 7 t,與信息完整狀態(tài)下預(yù)測(cè)的結(jié)果13.639 1 t 相比,信息完整狀態(tài)下預(yù)測(cè)的結(jié)果與實(shí)際情況更為相符。
根據(jù)某部隊(duì)2001—2010 年的油料消耗量,對(duì)該部隊(duì)2011 年的油料消耗量進(jìn)行預(yù)測(cè)分析。經(jīng)過(guò)時(shí)間序列的小波分解,得到油料消耗量的低頻系數(shù)序列和高頻系數(shù)序列。分別對(duì)低頻部分進(jìn)行指數(shù)平滑預(yù)測(cè),預(yù)測(cè)得到新的油料消耗的低頻系數(shù)序列;對(duì)高頻部分進(jìn)行馬爾科夫預(yù)測(cè),預(yù)測(cè)得到新的油料消耗的高頻系數(shù)序列;再將新得到的低頻系數(shù)序列和高頻系數(shù)序列重構(gòu)即可得到預(yù)測(cè)結(jié)果。經(jīng)計(jì)算,該部隊(duì)2011 年的油料消耗量為
本文采用小波分析的方法,將油料消耗量的時(shí)間序列分解為低頻趨勢(shì)序列和高頻細(xì)節(jié)序列2部分,對(duì)分解出的低頻小波系數(shù)采用指數(shù)平滑法進(jìn)行預(yù)測(cè),對(duì)分解出的高頻小波系數(shù)采用馬爾科夫預(yù)測(cè)模型進(jìn)行預(yù)測(cè),最后將低頻和高頻的預(yù)測(cè)結(jié)果進(jìn)行小波重構(gòu)得到原始時(shí)間序列的預(yù)測(cè)值。這種小波分析的方法在提高預(yù)測(cè)的精度的同時(shí)使預(yù)測(cè)結(jié)果更具有規(guī)律性,對(duì)部隊(duì)油料保障具有重要的參考意義。
[1] 樊榮,王占俊.信息戰(zhàn)條件下油料保障的發(fā)展趨勢(shì)[J].教學(xué)與科研,2003(2):13-15.
[2] 常昱,何宏,鐵慶彬.灰色RBF 神經(jīng)網(wǎng)絡(luò)模型在軍用油料消耗預(yù)測(cè)中的應(yīng)用[J].中國(guó)儲(chǔ)運(yùn),2008(5):120-122.
[3] Song A,Lu J. Evolving gaussian RBF network for nonlinear time series modelling and prediction[J]. Electronics Letters,1998,34(12):1241-1243.
[4] Xie W,Yu L,Xu S Y,et al. A new method for crude oil price forecasting based on support vector machines[J].Lecture Notes in Computer Science,2006,3994:444-451.
[5] Mallat S. A Wavelet Tour of Signal Processing[M]. 2nd Edition.Academic Press,1999.
[6] Han J W,Micheline. Data Mining:Concepts and Techniques[M]. California:Morgan Kaufmann Publishers,2000.
[7] 李偉,王紅旗,嚴(yán)喬喬. BP 神經(jīng)網(wǎng)絡(luò):馬爾科夫模型在軍用油料消耗預(yù)測(cè)中的應(yīng)用研究[J]. 中國(guó)儲(chǔ)運(yùn),2012(1):125-126.