王晶郭劍
(1.江蘇省郵電規(guī)劃設計院有限責任公司,江蘇 南京 210006;2.南京郵電大學 計算機學院, 江蘇 南京 210003)
灰色預測法是一種對含有不確定因素的系統進行預測的方法,它屬于時間序列分析方法的一種。灰色預測法的基本思想是:系統的時間序列數據中蘊含著系統演化的信息,所以對已有的數據進行研究,可以找出其蘊含的規(guī)律,并進而推知系統未來的發(fā)展動態(tài)。由于計算簡單,所需先驗知識不多,因此自誕生以來,灰色預測法在網絡流量規(guī)劃、電信話務量預測、災害預警等領域均得到了廣泛的應用,并發(fā)揮出越來越大的影響力。
灰色預測法的研究對象是灰色系統,所謂灰色系統是指同時包含已知信息和未知信息的系統?;疑A測法通過對灰色系統進行建模工作,能夠有效地挖掘出系統輸出數據的內在規(guī)律,從而為理解和預測系統的狀態(tài)提供幫助。在灰色預測法中,GM(1,1)模型是目前應用最多的灰色模型[1]。
但是,隨著GM(1,1)模型的應用推廣,其缺陷也逐漸顯露出來?;疑A測算法的精度不高,結果相對粗糙。很多學者對其進行了研究,并提出了不少改進的方案。劉樹等人[2]對灰色預測GM(1,1)模型和GM(1,1)殘差模型問題進行了較多的分析。徐華鋒等人[3]對灰色作用量進行了研究和優(yōu)化。Li等人[4]提出了GM(1,1)模型的參數估計方法,以提高預測的精度。Tsaur等人[5]針對有限時間序列提出了模糊灰色回歸模型。Xie等人[6]針對離散系統提出了一種離散灰色優(yōu)化預測模型。Xie[7]等學者則提出了將神經網絡與灰色預測方法相結合的方法,并取得了一定的效果。
本文也對此進行了研究。我們認為,GM(1,1)模型中發(fā)展系數與灰色作用量的值較為關鍵,對預測的結果會有較大的影響。傳統方法一般使用最小二乘法來求解,誤差較大,不夠精確。本文對其進行了改進,使用粒子群優(yōu)化[8,9](Particle Swarm Optimization,PSO)算法來求解GM(1,1)的參數,并在此基礎之上提出了基于PSO的灰色預測算法(a PSO based Grey Prediction algorithm,PSOGP)。仿真試驗表明,PSOGP的預測精度比GM(1,1)模型要高。
GM(1,1)是使用最為廣泛的一種灰色模型。其主要過程是,首先對原始數據進行累加,得到具有一定規(guī)律性的新序列,對該序列使用一些曲線來逼近,得到了逼近曲線之后,將其作為預測模型,對系統進行預測。
假定系統的原始時間序列為X(0)={x(0)(1),x(0)(2),...,x(0)(n)},對其進行一次累加生成操作后,得到序列X(1)={x(1)(1),x(1)(2),...,x(1)(n)}。累加生成操作的過程如式(1)所示。
一般認為,經過累加操作之后,數據的隨機性會弱化很多,規(guī)律性更加明顯,此時可以用指數曲線來逼近。
對 X(1)建立微分方程,得到式(2)。
其滿足的臨界條件是:x(1)(1)=x(0)(1)。
在式(2)中,a稱為發(fā)展系數,u稱為灰色作用量,均是未知變量,可記成一個列向量d,如式(3)所示。
通常用最小二乘法來求解d,可求得
其中,
將a、u代入(2),可求得方程式的解為
PSO屬于群智能算法,它是Russell與James受鳥群覓食啟發(fā)所提出的一種演化算法。PSO算法的主要思路是將待求解問題轉化為一個在多維空間中尋找最優(yōu)位置的問題,其求解過程就是使用一群微粒在這個空間中尋找代表最優(yōu)解的最佳位置。在求解過程中,粒子之間可以相互交流信息,從而調整自己的搜索方向與前進速度。
假設算法一共使用了N個微粒。對于一個微粒i,1≤i≤N,假設其位置為xi,運行速度為vi。PSO算法規(guī)定,粒子i的運動由(8)決定。
在式(8)中,Pi是粒子i的歷史最優(yōu)位置;Pg是整個群體的歷史最優(yōu)位置;ωvi表示粒子當前飛行速度的慣性作用,其中ω為慣性因子;c1、c2為加速度因子;r1、r2是兩個隨機數,取值范圍[0-1]。
在GM(1,1)模型中,求解參數a與u通常使用的是最小二乘法,不僅計算量大,結果的精度也不夠高。因此,本文使用了PSO算法來求解這兩個參數,取得了較好的效果。
(1)粒子位置編碼
在PSOGP算法中,每個粒子的位置是一個二維向量,分別代表帶求解的參數a和u。其編碼方式如圖1所示。
圖1 PSOGP算法的粒子位置編碼
(2)適應度函數
適應度函數是評價粒子位置好壞的依據。在PSOGP算法中,使用了式(9)所示的評價函數。
(3)PSOGP算法的流程
PSOGP算法主要包括如下三個步驟:
①讀取初始數據序列;
②使用PSO算法來求解發(fā)展系數a和灰色作用量u;
③根據參數a和u,分別計算出擬合數據與預測數據。
我們用C++語言實現了一個PSOGP算法。為了驗證PSOGP的性能,我們另外實現了一個傳統的GM(1,1)算法(使用最小二乘法來求解參數),并進行了對比試驗。
仿真時,我們以文獻[10]中1992-2008年中國的城市化水平數據作為試驗對象。城市化水平是指一定地域內城市人口占總人口數的比例,又稱為城市化率,它是衡量城市化發(fā)展程度的重要指標。我們以1992-2002年的數據作為原始數據,分別使用兩種算法預測2003-2008年的數據,并與真實數據進行比較。
兩種方法的輸出結果如表1所示,其中灰色部分是預測年份的數據。
表1 兩種算法算出的擬合值與預測值(單位:%)
圖2 兩種算法的預測誤差比較
表2 兩種算法的平均預測誤差
兩種算法的預測誤差如圖2所示,其平均誤差如表2所示??梢钥闯觯琍SOGP算法的準確度比GM(1,1)要高。另外還可以看出,隨著年數的增加,兩種預測算法的誤差都逐漸上升,超過五年的數據誤差就比較大了。這說明,灰色預測算法短期預測的效果較好,長期預測還需要結合其它技術手段進行。
針對傳統GM(1,1)模型的缺陷,本文使用了PSO算法來求解灰色模型的發(fā)展系數和灰色作用量,提高了GM(1,1)的性能,提升了預測的精度。此外,從試驗中可以發(fā)現,灰色模型對數據的長期預測存在較大的誤差,我們將繼續(xù)對此進行研究,以進一步提高灰色模型的預測效果。
[1]Liu SF.The current developing status on grey system theory[J].The Journal of Grey System,2007,2:111-123.
[2]劉樹,王燕,胡鳳閣.對灰色預測模型殘差問題的探討[J].統計與決策,2008,1:9-11.
[3]徐華鋒,劉思峰,方志耕.GM(1,1)模型灰色作用量的優(yōu)化[J].數學的實踐與認識,2010,40(2):26-32.
[4]Li XM,Dang YG,Zhao JJ.An optimization method of estimating parameters in GM(1,1)Model[A].Proceedings of IEEE International Conference on Grey Systems and Intelligent Services[C],2010,341-347.
[5]Tsaur,Ruey C.Forecasting analysis by using fuzzy grey regression model for solving limited timeseriesdata[J].Soft Computing,2008,12(11):1105-1113.
[6]Xie NM,Liu SF.Discretegrey forecasting model and itsoptimization[J].Applied Mathematical Modeling,,2009,33(2):1173-1186.
[7]Xie J,Han HL.The Water Productivity Forecasting Based on BP Neural Network and Gray Prediction Model[A].Proceedings of International Conferenceon Civil Engineering[C],2010,939-943.
[8]Rana S,Jasola S,Kumar R.A review on particle swarm optimization algorithms and their applications to data clustering [J].Artificial Intelligence Review,2011,35(3):211-222.
[9]Kameyama K.Particle Swarm Optimization-A Survey[J].IEICE Transactionson Information and Systems,2009,E92D(7):1354-1361.
[10]國家統計局.2009中國統計摘要 [M].北京:中國統計出版社,2009.