史永勝,王文琪
(中國民航大學(xué) 航空工程學(xué)院,天津 300300)
需求預(yù)測的方法有很多,目前針對于航材需求預(yù)測使用較多的預(yù)測算法有灰色預(yù)測算法GM(1,1)、神經(jīng)網(wǎng)絡(luò)算法(BP)、支持向量機(jī)算法(SVM)。這些方法對提高航材需求預(yù)測的精度具有很大的幫助,但也存在一定的弊端[4]。其中GM(1,1)模型要求時間序列必須呈現(xiàn)單調(diào)上升或單調(diào)下降的趨勢,而且該方法對于那些隨機(jī)波動性較大的數(shù)據(jù)序列擬合效果不理想;SVM算法對較大規(guī)模的數(shù)據(jù)計算不可行[5];神經(jīng)網(wǎng)絡(luò)算法需要的數(shù)據(jù)量較大,且容易陷入局部最小值從而使得訓(xùn)練沒完成就已經(jīng)結(jié)束[6]??紤]到航材需求具有較強(qiáng)的季節(jié)性和趨勢性要求,本文采用時間序列預(yù)測算法中的三次指數(shù)平滑法對航材進(jìn)行需求預(yù)測,并且采用粒子群算法對平滑系數(shù)進(jìn)行優(yōu)化選取。針對于粒子群算法局部搜索效率較低的缺點(diǎn),采用動態(tài)領(lǐng)域搜索策略對其進(jìn)行改進(jìn),以此設(shè)計出可自動調(diào)整平滑系數(shù)的三次指數(shù)平滑模型,為民航業(yè)提供了一種可提高航材需求預(yù)測精度的方法。
指數(shù)平滑法ES[7,8](exponential smoothing)是布朗所提出的,它是一種時間序列分析預(yù)測方法,通過計算指數(shù)平滑值,配合一定的時間序列預(yù)測模型對未來時間的數(shù)值進(jìn)行預(yù)測。其本質(zhì)是每一期的指數(shù)平滑值都是該期實際觀察值與前一期指數(shù)平滑值的加權(quán)。其數(shù)學(xué)表達(dá)式定義為
yt=αxt-1+(1-α)yt-1
(1)
其中,xt-1是時間t-1時的實際觀察值,yt-1是時間t-1時的預(yù)測值,yt是時間t時的預(yù)測值,α和1-α為權(quán)數(shù) (0<α<1)。α也叫作平滑系數(shù),α值主要反映原始值以及近期值對預(yù)測數(shù)據(jù)的影響程度。α值越大,近期值對本次預(yù)測值的影響程度越大;反之越小。根據(jù)所要預(yù)測的數(shù)據(jù)序列的類型,指數(shù)平滑法可分為3種類型,如圖1所示。
圖1 指數(shù)平滑法類型
一次指數(shù)平滑法適用于無明顯的數(shù)值波動的序列;對于線性趨勢的數(shù)值序列但無季節(jié)性要求時,可用二次指數(shù)平滑法;而對于具有明顯的趨勢性變化以及季節(jié)性要求的數(shù)據(jù)序列,則用三次指數(shù)平滑法。本文是針對于航材為對象而進(jìn)行的研究,因其具有明顯的趨勢變化以及季節(jié)性要求,所以采用三次指數(shù)平滑法來對航材建立需求預(yù)測模型。
三次指數(shù)平滑法[9-11](Holt-Winters)實質(zhì)是在二次指數(shù)平滑值的基礎(chǔ)上進(jìn)行的第三次指數(shù)平滑。它主要目的是為了求解出最合適的平滑系數(shù),建立出更好的預(yù)測模型,它適用于所有的關(guān)于時間序列的求解問題。三次指數(shù)平滑法的公式如下
St(1)=αyt+(1-α)St-1(1)
St(2)=αSt(1)+(1-α)St-1(2)
St(3)=αSt(2)+(1-α)St-1(3)
(2)
其中,St(1)、St(2)、St(3)表示t時刻的一、二、三次平滑值,yt是所取得的時序數(shù)據(jù)。其預(yù)測未來m期數(shù)值的模型公式為
該研究結(jié)果顯示:感染產(chǎn)超廣譜β-內(nèi)酰胺酶大腸埃希菌患者有26例,所占比30.23%感染大腸埃希菌的患者有60例,所占比69.77%。感染大腸埃希菌的患者多于感染產(chǎn)超廣譜β-內(nèi)酰胺酶大腸埃希菌患者。糖尿病患者的免疫力低下,腸道內(nèi)的菌群環(huán)境會失去平衡,且菌群堆積沒時間一長就會導(dǎo)致尿路感染。
Ft+m=at+btm+ctm2(m=1,2,3,…)
(3)
其中,at、bt、ct為第t期的預(yù)測參數(shù)
(4)
粒子群算法PSO[12](particle swarm optimization)是一種對集群尋優(yōu)的智能計算技術(shù),通過群體中個體之間的協(xié)作和信息共享來尋找最優(yōu)解。算法實現(xiàn)起來比較簡單,而且不需要對太多的參數(shù)進(jìn)行設(shè)置。它的基本思想是算法中的單個粒子找到離自己最近的解,共享給整個群體逐漸改變自己的方向從而使它們向某個確定的解進(jìn)行聚集[13]。其中位置p和速度v是每個粒子特有的兩個屬性。使用pbest記錄單個粒子搜索到的最優(yōu)值,使用gbest記錄粒子群到目前為止搜尋到的最優(yōu)值。根據(jù)找到的最優(yōu)值,按照下面公式來更新粒子的速度和位置
vk+1=wvk+c1rand()(pbestk-pk)+
c2rand()(gbestk-pk)
pk+1=pk+vk+1
(5)
其中,c1、c2指學(xué)習(xí)因子,w表示加權(quán)系數(shù),rand() 為 [0,1] 范圍內(nèi)的隨機(jī)數(shù)。
PSO算法在初步搜索時,要在一個較大的空間范圍內(nèi)進(jìn)行搜索,但是隨著迭代次數(shù)的增加,全局最優(yōu)的位置可能接近于或者存在于當(dāng)前最優(yōu)解的領(lǐng)域內(nèi)。如果此時仍在大范圍內(nèi)進(jìn)行搜索,可能會降低搜索的效率。因此針對于PSO算法的不足,提出一種可動態(tài)調(diào)整的領(lǐng)域搜索策略,其含義可以解釋為跳出當(dāng)前最優(yōu)解對原解進(jìn)行該位置的領(lǐng)域搜索。使用pd表示當(dāng)前最優(yōu)的搜索位置,使用pl表示領(lǐng)域位置,則
pd=pl±op
(6)
op代表誤差絕對值,op的大小與迭代次數(shù)有一定的關(guān)系,隨著迭代次數(shù)的增加,局部最優(yōu)逐漸向全局最優(yōu)進(jìn)行靠攏,使得op變得越來越小,最后逐漸接近于0
(7)
式中:nNum′代表到目前為止的迭代次數(shù),S表示目前搜索的最優(yōu)值,S′代表當(dāng)前所有粒子的平均最優(yōu)值,a為取定常數(shù)。
下面將改進(jìn)PSO的算法流程描述如圖2所示。
圖2 改進(jìn)PSO算法流程
對于平滑初始值的確定一般采用以下兩種方式:
(1)如果數(shù)據(jù)項較多時 (t>15),就會忽略初始值對預(yù)測值的影響,此時平滑值的初始取值采用下式表述
S1(1)=S1(2)=S1(3)=y1
(8)
(2)如果數(shù)據(jù)項較少時 (t≤15),初始值的確定對預(yù)測的結(jié)果產(chǎn)生較大的影響,為了使影響的效果降到最小,就采用下面另種形式表述
(9)
α的取值范圍是0~1,一般情況下,為了不造成對前后數(shù)據(jù)的偏向態(tài)勢,使其取值一般不超過0.8。將不同取值范圍的α適用的序列列舉見表1。
表1 不同取值范圍的α適用的序列
對于α的選取,按照以往的傳統(tǒng)模型來說,通常是根據(jù)近幾年的走勢,依據(jù)專家經(jīng)驗判斷確定,沒有本質(zhì)的參考依據(jù),這樣就會很難找到最符合要求的參數(shù)。α一旦確定,它就是一個定值,當(dāng)數(shù)據(jù)發(fā)生較大變化的時候,傳統(tǒng)的選取方法就無法順應(yīng)環(huán)境的變化,導(dǎo)致預(yù)測結(jié)果的誤差太大,以此滿足不了實際的需求。因而,為了彌補(bǔ)此不足,本文借助于PSO算法動態(tài)調(diào)整α來改進(jìn)Holt-Winters方法進(jìn)而對航材進(jìn)行預(yù)測。
根據(jù)航材需求的趨勢變化,α取值范圍,即粒子的空間搜索范圍設(shè)定為0.2~0.8。通過設(shè)置一定的迭代次數(shù)間斷地引用領(lǐng)域搜索策略對搜索位置進(jìn)行更新,計算每次迭代出的預(yù)測值與實際值之間的最小的誤差平方和對應(yīng)的動態(tài)系數(shù)作為本次運(yùn)算的最好值。重復(fù)進(jìn)行,迭代調(diào)整,直到達(dá)到最大的迭代次數(shù)nNum或者終止條件,輸出此時的最優(yōu)平滑系數(shù)以及對應(yīng)的預(yù)測值。
將其整個預(yù)測模型的流程描述如下:
步驟1 從已有的數(shù)據(jù)中選取k個數(shù)據(jù),并根據(jù)式(8)、式(9)進(jìn)行S1(1)、S1(2)、S1(3)初始化;
步驟2 初始化粒子的相關(guān)參數(shù),根據(jù)式(2)、式(3)、式(4)進(jìn)行需求更新,確定當(dāng)前粒子的個體最優(yōu)值pbest以及群體最優(yōu)值gbest;
步驟3 更新個體粒子的p與v,評估最優(yōu)的適應(yīng)度函數(shù)值,即最小的誤差平方和。接著按照以上改進(jìn)的PSO流程算法求解出搜索范圍內(nèi)最小的適應(yīng)度函數(shù)值對應(yīng)的最優(yōu)的平滑系數(shù)α;
步驟4 根據(jù)求出的最優(yōu)平滑系數(shù)α進(jìn)行下一期航材需求量的預(yù)測;
步驟5 接著去掉所取數(shù)據(jù)的第一個數(shù)據(jù),加入第k+1 個實測數(shù)據(jù)及步驟4中所取得的預(yù)測值,重復(fù)執(zhí)步驟2~步驟5,直到獲取所有預(yù)測結(jié)果。
為了驗證本文所建立的基于改進(jìn)PSO優(yōu)化Holt-Winters預(yù)測模型方法的可靠性以及優(yōu)勢,取某單位某航材2005~2014年的需求數(shù)據(jù)進(jìn)行分析。將航材需求數(shù)據(jù)列舉見表2。
表2 2005~2014年航材需求實際值
根據(jù)建立好的數(shù)學(xué)模型,將2005~2014年度消耗的航材數(shù)據(jù)代入模型進(jìn)行計算驗證,并將此方法與采用靜態(tài)系數(shù)的傳統(tǒng)算法以及GM(1,1)方法進(jìn)行對比。為了提高靜態(tài)系數(shù)取值的合理性,進(jìn)行了多次實驗推理,發(fā)現(xiàn)當(dāng)α取值范圍在0.33~0.48時預(yù)測精度較高。因此取靜態(tài)系數(shù)為0.35、0.4、0.45進(jìn)行對比驗證,如圖3所示。
圖3 靜態(tài)系數(shù)求值與實際值的對比
由圖3可以看出,對于α,當(dāng)它取0.45時,預(yù)測精度較取0.35與0.40時較高。因此取定值α=0.45與改進(jìn)方法及GM(1,1)方法進(jìn)行比較,其擬合曲線如圖4所示。
圖4 改進(jìn)方法與其它方法對比結(jié)果
通過以上擬合曲線可以很好地看出動態(tài)平滑系數(shù)在進(jìn)行航材預(yù)測時的擬合程度要好于其它兩個模型。為了進(jìn)一步展現(xiàn)本文建立的預(yù)測模型的優(yōu)勢,對它做進(jìn)一步的驗證。下面再根據(jù)以上得到的最優(yōu)動態(tài)系數(shù)對2015~2017年的航材進(jìn)行需求預(yù)測,將預(yù)測對比結(jié)果顯示到表3,然后計算出這幾種算法產(chǎn)生的相對誤差以及平均相對誤差,對比結(jié)果見表4。
表3 3種模型方法預(yù)測結(jié)果對比
表4 相對誤差及其平均相對誤差
通過以上實例數(shù)據(jù)驗證能夠得出,本文所提出的動態(tài)平滑系數(shù)模型:通過改進(jìn)粒子群算法反復(fù)迭代尋找最小誤差對應(yīng)的最優(yōu)系數(shù)來對航材進(jìn)行預(yù)測,其預(yù)測的準(zhǔn)確度較取定的靜態(tài)平滑系數(shù)以及GM(1,1)模型要高,更貼近真實值。通過計算得出的平均相對誤差較其它兩種形式得到的誤差結(jié)果要小。以此可以看出本文所構(gòu)建的模型方法在對航材需求量進(jìn)行預(yù)測時具有一定的優(yōu)勢。
根據(jù)本文建立的需求預(yù)測模型,編寫算法進(jìn)行程序設(shè)計,并對航材數(shù)據(jù)進(jìn)行整理。結(jié)合航材具有季節(jié)性以及趨勢性變化的性質(zhì),將Holt-Winters方法運(yùn)用到航材需求預(yù)測中,并打破傳統(tǒng)的采用定值系數(shù)來建立Holt-Winters模型的方法,借助于改進(jìn)PSO方法對平滑系數(shù)進(jìn)行動態(tài)調(diào)整,以此來優(yōu)化所建模型。該優(yōu)化模型在一定程度上提高了航材需求預(yù)測的精度,得出更符合實際情況的航材需求預(yù)測量,對于航材部門的管理具有更好的實用性。