王江榮 李向兵
(甘肅蘭州石化職業(yè)技術(shù)學(xué)院信息處理與控制工程系,蘭州 730060)
全國糧食產(chǎn)量與有效灌溉面積、農(nóng)業(yè)基本建設(shè)投資和勞動力投入等諸多因素有著很強(qiáng)的關(guān)聯(lián)性[1]。受氣象條件的多樣性、變異性、復(fù)雜性以及土地流失等因素的影響,糧食產(chǎn)量存在著大量的不確定性、不穩(wěn)定性,以及較強(qiáng)的隨機(jī)性、相依性和非線性,從而降低了產(chǎn)量預(yù)測的精確性。因此,有必要研究在存在大量不確定因素的情況下,如何較為準(zhǔn)確地預(yù)測全國糧食產(chǎn)量,為有關(guān)部門提供決策依據(jù)。
該文提出了一種基于BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)與加權(quán)模糊馬爾可夫鏈的組合預(yù)測方法。首先采用BP神經(jīng)網(wǎng)絡(luò),使用較少的樣本數(shù)據(jù)完成糧食產(chǎn)量曲線的粗略擬合,在此基礎(chǔ)上應(yīng)用模糊聚類方法計算出糧食產(chǎn)量數(shù)據(jù)序列的分級模糊區(qū)間[2],然后以產(chǎn)量序列規(guī)范化后的各階自相關(guān)系數(shù)為權(quán),用加權(quán)的馬爾可夫鏈縮小預(yù)測區(qū)間以提高預(yù)測精確度,從而為定量評估多重因素對糧食產(chǎn)量影響提供了一種新的思路。
神經(jīng)網(wǎng)絡(luò)作為一種并行的運算模型,能夠在被建對象結(jié)構(gòu)及參數(shù)未知的情況下,通過樣本訓(xùn)練,自適應(yīng)地獲取輸入與輸出的非線性映射關(guān)系[3]。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡單,具有較強(qiáng)的非線性映射能力,是應(yīng)用最為廣泛的一類多層前向神經(jīng)網(wǎng)絡(luò)。BP學(xué)習(xí)算法是一種梯度快速下降法,其訓(xùn)練過程可歸納如下:
(1)
該網(wǎng)絡(luò)參數(shù)確定:
1)輸入層、隱層和輸出層的節(jié)點數(shù);
2)學(xué)習(xí)率和動量;
3)成本函數(shù)或訓(xùn)練樣本數(shù)量的最大允許平方誤差。
隨后對人工神經(jīng)網(wǎng)絡(luò)ANN(Artificial Neural Networks,)進(jìn)行訓(xùn)練,當(dāng)誤差平方值小于最大允許誤差平方值時停止訓(xùn)練。
神經(jīng)網(wǎng)絡(luò)模型的應(yīng)用前提是獲取較大量的樣本訓(xùn)練數(shù)據(jù),如果訓(xùn)練樣本數(shù)據(jù)不夠充分,訓(xùn)練后的網(wǎng)絡(luò)結(jié)構(gòu)往往不完全穩(wěn)定,尤其完成的后續(xù)數(shù)據(jù)組的預(yù)測通常會在一定范圍內(nèi)隨機(jī)波動,降低了預(yù)測的精度。馬爾可夫鏈恰能有效地預(yù)見并消除由系統(tǒng)隨機(jī)性而產(chǎn)生的預(yù)測誤差。因此,通過建立神經(jīng)網(wǎng)絡(luò)與馬爾可夫鏈的組合預(yù)測模型,將二者進(jìn)行優(yōu)勢互補(bǔ),能夠得到更為準(zhǔn)確的預(yù)測結(jié)論。
馬爾可夫鏈預(yù)測是基于馬爾可夫過程的理論基礎(chǔ)之上,用來研究系統(tǒng)狀態(tài)轉(zhuǎn)移規(guī)律,分析隨機(jī)事件未來發(fā)展趨勢及可能結(jié)果的一種預(yù)測方法[4]。馬爾可夫鏈預(yù)測模型可表示為
X(n)=X(0)Pn
(2)
式中,X(n)為n時刻的狀態(tài)概率向量;X(0)為初始時刻的狀態(tài)概率向量;P為狀態(tài)轉(zhuǎn)移概率矩陣。
式(2)具有根據(jù)P及X(0)預(yù)測第n步的意義,預(yù)測的關(guān)鍵在于狀態(tài)轉(zhuǎn)移概率矩陣P的確定。
1.2.1 馬爾可夫鏈狀態(tài)區(qū)間的劃分
根據(jù)糧食產(chǎn)量樣本資料,得到BP神經(jīng)網(wǎng)絡(luò)的擬合值,求出誤差幅度(絕對誤差占實際產(chǎn)量百分比),將誤差幅值數(shù)據(jù)列由小到大排列,應(yīng)用模糊C均值聚類方法計算獲得糧食產(chǎn)量數(shù)據(jù)序列的分級模糊區(qū)間,確定出馬爾可夫鏈的狀態(tài)空間,并給出歷史資料數(shù)據(jù)序列中各時段糧食產(chǎn)量所處的模糊分級區(qū)間狀態(tài)i(i=1,2,…,n)。
1.2.2 馬爾可夫鏈轉(zhuǎn)移矩陣
根據(jù)1.2.1獲得的模糊分級區(qū)間數(shù)據(jù)及狀態(tài)表,計算出不同步數(shù)的馬爾可夫鏈轉(zhuǎn)移概率矩陣[5-6]:
若狀態(tài)i在狀態(tài)表中出現(xiàn)的次數(shù)為Mi,由狀態(tài)i經(jīng)過m步轉(zhuǎn)移到狀態(tài)j的次數(shù)為Mij,則狀態(tài)i經(jīng)過m步到狀態(tài)j的轉(zhuǎn)移概率為
(3)
狀態(tài)轉(zhuǎn)移概率矩陣的構(gòu)造如下:
1.2.3 馬爾可夫鏈權(quán)值計算
由于糧食產(chǎn)量是一組相依的隨機(jī)變量,因而可考慮先分別依其前面若干時段的數(shù)據(jù)對所求時段的糧食產(chǎn)量進(jìn)行預(yù)測,然后按前面各時段與該時段相依關(guān)系的強(qiáng)弱加權(quán)求和,即在預(yù)測過程中加入權(quán)重的影響,以期能充分、合理地利用信息進(jìn)行預(yù)測。
1)計算糧食產(chǎn)量序列的各階自相關(guān)系數(shù)
(4)
2)對各階自相關(guān)系數(shù)進(jìn)行歸一化,即
(5)
將式(5)作為各種滯時(步長)的馬爾可夫鏈的權(quán)重(m為按預(yù)測需要計算到的最大階數(shù))。
(6)
(7)
根據(jù)能夠計量、具有農(nóng)學(xué)意義兩個原則,結(jié)合已有的研究成果[7],本文選取1988年~2008年的糧食總量為輸出因子,初步選取糧食作物播種面積、化肥施用量、糧食作物有效灌溉面積、受災(zāi)面積、農(nóng)村用電量、農(nóng)村機(jī)械總動力、勞動力投入、基本建設(shè)支出、農(nóng)業(yè)科技三項費用、單產(chǎn)、農(nóng)村居民家庭平均收入等11個因子構(gòu)筑模型。變量及原始數(shù)據(jù)來源于中國統(tǒng)計局《中國統(tǒng)計年鑒2009》(由于占篇幅較多,在此略去)。采用灰關(guān)聯(lián)分析法[8]計算出各影響因素的綜合關(guān)聯(lián)度,按從大到小順序排列(取前8個)如下:
有效灌溉面積(0.97285:關(guān)聯(lián)度,后同);勞動力投入(0.76553);糧食單產(chǎn)量(0.75591); 成災(zāi)面積(0.66551); 農(nóng)業(yè)機(jī)械總動力(0.64965);化肥施用量(0.62239);農(nóng)村用電量(0.58151);糧食作物播種面積(0.52808)。以此8要素進(jìn)行模型的構(gòu)建。利用Eviews軟件對所選8要素進(jìn)行歷史數(shù)據(jù)分析,此8要素對糧食產(chǎn)量有顯著影響,且具有明顯的多元相關(guān)性,其相關(guān)系數(shù)(決定系數(shù))R2=0.984。所以,用本文所選8因素進(jìn)行糧食產(chǎn)量擬合和預(yù)測完全可行,并且有較高的可信度。
設(shè)定BP網(wǎng)絡(luò)的輸入層節(jié)點數(shù)為8,分別表示農(nóng)業(yè)機(jī)械總動力、有效灌溉面積、化肥施用量、農(nóng)村用電量、農(nóng)作物播種面積、成災(zāi)面積;糧食單產(chǎn)量;勞動力投入。輸出層節(jié)點數(shù)為1,即糧食產(chǎn)量;由于單隱層前饋網(wǎng)絡(luò)具有較好的非線性映射能力,隱層數(shù)取1。按如下公式選擇隱層節(jié)點數(shù)[9]。
l l=log2n 式中,n為輸入層節(jié)點數(shù),上述三式為經(jīng)驗公式,只需滿足一式即可;l為隱含層節(jié)點數(shù);m為輸出層節(jié)點數(shù);a為0~10間的常數(shù)。選代次數(shù)M0=5000,誤差門限ε=0.0001,網(wǎng)絡(luò)學(xué)習(xí)系數(shù)η取0.5,動量項系數(shù)a=0.1。訓(xùn)練樣本為1988年~2007年的20個樣本,檢測樣本為2008年~2011年4個獨立樣本。采用MATLAB軟件及文獻(xiàn)[7]中的BP神經(jīng)網(wǎng)絡(luò)程序經(jīng)過算法學(xué)習(xí)和篩選,得到最優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)8-5-1(輸入層節(jié)點—隱含層節(jié)點—輸出層節(jié)點)。 使用訓(xùn)練樣本數(shù)據(jù)建立預(yù)測模型,并對1988年~2007年的糧食產(chǎn)量進(jìn)行內(nèi)預(yù)測,內(nèi)預(yù)測結(jié)果見表1,可以看出擬合得非常好,有較高的精確度。 對由BP網(wǎng)絡(luò)算法得到的表1中誤差幅值(絕對誤差)采用模糊C均值聚類[10],求出糧食產(chǎn)量數(shù)據(jù)序列的分級模糊區(qū)間。經(jīng)檢驗,誤差幅值劃分為5個模糊分級區(qū)間比較合適(相對分3類、分4類誤差最小,且誤差收斂于0.0215),即馬爾可夫鏈有5個狀態(tài)。具體劃分見表2。 表11991年—2010年糧食產(chǎn)量的實際值及BP網(wǎng)絡(luò)計算擬合值 表2糧食產(chǎn)量數(shù)據(jù)列模糊分級區(qū)間(x為絕對誤差) 由表1和表2知: 1)出現(xiàn)在狀態(tài)1的編號為:1995和2006; 2)出現(xiàn)在狀態(tài)2的編號為:1994、1996、1997、1998、1999、2000、2001、2002和2005; 3)出現(xiàn)在狀態(tài)3的編號為:1990、1992、1993、2003和2004; 4)出現(xiàn)在狀態(tài)4的編號為:1989和2007; 5)出現(xiàn)在狀態(tài)5的編號為:1988和1991。 根據(jù)2.2的分析結(jié)果可得1988年~2007年糧食產(chǎn)量預(yù)測結(jié)果的馬爾可夫狀態(tài)轉(zhuǎn)移表,如表3所示。 表31989年~2008年糧食產(chǎn)量預(yù)測結(jié)果的馬爾可夫狀態(tài)轉(zhuǎn)移表 由表3可確定馬爾可夫鏈狀態(tài)轉(zhuǎn)移概率矩陣P: (8) 式(2)可看成齊次馬氏鏈,所以由C—K方程[11]得到一步到五步的轉(zhuǎn)移概率: P1=P,P2=P2,P3=P3,P4=P4,P5=P5 (9) 用1988年~2007年20個樣本作訓(xùn)練樣本建模,預(yù)報2008年;再用1988年~2008年21個樣本作訓(xùn)練樣本建模,預(yù)報2009年;依此類推,直到用1988年~2010年23個樣本作訓(xùn)練樣本建模,對2011年進(jìn)行預(yù)報。 根據(jù)表1(1988年~2007年)和式(4)并利用軟件SPSS.13求出糧食產(chǎn)量數(shù)據(jù)序列的各階自相關(guān)系數(shù)分別為 r1=0.631,r2=0.306,r3=0.138,r4=-0.171,r5=-0.194。 將各階自相關(guān)系數(shù)規(guī)范化后得到各步數(shù)的馬爾可夫鏈的權(quán)重(見式(5)): ω1=0.43814,ω2=0.21268,ω3=0.09561,ω4=0.11875,ω5=0.13482 由1.3及式(6)得表4。 表42008年糧食產(chǎn)量預(yù)測表 由表4可知,max{pi}=0.6504,i=3,即2008年糧食產(chǎn)量的預(yù)測值狀態(tài)為X3(正常狀態(tài))。根據(jù)模糊區(qū)間求得2008年的產(chǎn)量預(yù)測區(qū)間為[52842,52857],取中間值,即為52849(萬噸),實際產(chǎn)量為52870.9(萬噸),相對誤差0.04%。 同理,得到2009年~2011年的糧食產(chǎn)量的預(yù)測值區(qū)間分別為[51919,54532],[53280,55902],[54687,57320],其中間值分別為:53226(萬噸),54591(萬噸),56004(萬噸)。 為了檢驗新模型方法的預(yù)測性能,我們分別采用差分自回歸移動平均模型[1]、灰色GM(1,N)模型對2008年~2011年糧食產(chǎn)量進(jìn)行了預(yù)測,并與本文預(yù)測結(jié)果比較,有關(guān)數(shù)據(jù)見表5。 表5三種模型對2008~2011年檢測樣本逐年預(yù)測結(jié)果誤差比較 (單位:萬噸) 表5數(shù)據(jù)表明,本文預(yù)測方法的預(yù)測精度遠(yuǎn)好于其它兩種方法。本文方法的優(yōu)點在于充分發(fā)揮了BP網(wǎng)絡(luò)的多變量處理能力及網(wǎng)絡(luò)適應(yīng)能力。另外,隨著預(yù)報對象序列的逐年增加,資料數(shù)據(jù)的代表性也日益增強(qiáng),自相關(guān)系數(shù)、狀態(tài)轉(zhuǎn)移概率矩陣、權(quán)重值也隨之發(fā)生變化,將每年預(yù)報對象的新的實測值加入到資料分析系列中,實現(xiàn)了在線調(diào)整預(yù)報對象的自相關(guān)系數(shù)、狀態(tài)轉(zhuǎn)移概率矩陣和權(quán)重,從而提高了預(yù)報的精度。 基于BP神經(jīng)網(wǎng)絡(luò)與加權(quán)模糊馬爾可夫鏈的組合預(yù)測模型,綜合利用了神經(jīng)網(wǎng)絡(luò)與馬爾可夫鏈預(yù)測的優(yōu)勢,此預(yù)測模型充分體現(xiàn)的數(shù)據(jù)序列固有的宏觀變化與微觀波動,以及數(shù)據(jù)之間的模糊性和相依性。模型的建立具有較嚴(yán)密的理論基礎(chǔ)。與其它預(yù)測方法相比,該文預(yù)測模型具有較高的精確度和可靠性。該方法具有廣闊的應(yīng)用前景。 [1] 陳生,李夫明.差分自回歸移動平均模型在中國糧食產(chǎn)量預(yù)測中的應(yīng)用[J].糧食科技與經(jīng)濟(jì),2011,36(3):14-17 [2] 胡國定,張潤楚.多元數(shù)據(jù)分析方法—純代數(shù)處理[M].天津:南開大學(xué)出版社,1990 [3] 張德豐.MATLAB神經(jīng)網(wǎng)絡(luò)仿真與應(yīng)用[M].北京:電子工業(yè)出版社,2009 [4] 劉克.實用馬爾可夫決策過程[M].北京:清華大學(xué)出版社,2004 [5] 馬春雷,張文娟, 梁 駒.基于灰色馬爾柯夫模型的儀器檢定校準(zhǔn)時間間隔的確定[J].計量技術(shù),2011(8):3-6 [6] 趙瑞賢,孟曉風(fēng),王國華.基于灰色馬爾柯夫預(yù)測的測量儀器校準(zhǔn)間隔動態(tài)優(yōu)化[J].計量學(xué)報,2007,28(2):184-187 [7] 孫萍,陳銳.影響糧食產(chǎn)量的因素分析及對策建議[J].天 津 理 工 大 學(xué) 學(xué) 報,2008,24 (5):51-53 [8] 許國根,賈瑛.模式識別與智能計算[M].北京:北京航空航天大學(xué)出版社,2012:246-247 [9] 史峰,王小川,等.MATLAB神經(jīng)網(wǎng)絡(luò)30個案例分析[M].北京:北京航空航天大學(xué)出版社,2011:9-10 [10]謝中華.MATLAB統(tǒng)計分析與應(yīng)用40個案例分析[M].北京:北京航空航天大學(xué)出版社,2010:297-299 [11]李裕奇.隨機(jī)過程[M].北京:國防工業(yè)出版社,20032.2 基于模糊C均值聚類法的模糊分級區(qū)間
2.3 基于BP預(yù)測結(jié)果的馬爾可夫狀態(tài)轉(zhuǎn)移矩陣
2.4 2008年~2011年糧食產(chǎn)量預(yù)測
3 三種方法結(jié)果比較分析
4 結(jié)束語