鄭 薇,王燦強,李維德
(蘭州大學(xué) 數(shù)學(xué)與統(tǒng)計學(xué)院,蘭州 730000)
近年來,已有不少學(xué)者針對農(nóng)產(chǎn)品價格預(yù)測展開了探索性研究和實例驗證。由于農(nóng)產(chǎn)品價格波動具有明顯的時間序列特征,因此對農(nóng)產(chǎn)品價格預(yù)測主要分為線性時序預(yù)測和非線性時序預(yù)測兩類。針對線性時序預(yù)測方法的研究有:苗開超(2009)[1]基于指數(shù)平滑模型的農(nóng)產(chǎn)品價格預(yù)測,姚霞(2007)[2]、韓雯(2011)[3]等構(gòu)建的ARIMA模型用于預(yù)測農(nóng)產(chǎn)品價格。然而現(xiàn)實中,許多時序數(shù)據(jù)呈現(xiàn)出很強的非線性特征,為此,大量的非線性預(yù)測模型被廣泛應(yīng)用于農(nóng)產(chǎn)品價格時序預(yù)測中:如BP神經(jīng)網(wǎng)絡(luò)[4]、SVM模型[5]、KNN模型[6]等。雖然上述預(yù)測方法各有特點,但單項預(yù)測方法只能從某個角度提供相應(yīng)的有效信息,無法反應(yīng)信息源的廣泛性[7]。因此,越來越多的組合模型被用于時序預(yù)測中以提高預(yù)測精度。如農(nóng)產(chǎn)品價格預(yù)測的BFGS-NARX[8]、SVM-ARIMA[5]、FIG-SVM[9]等組合模型,結(jié)果表明這些組合模型的預(yù)測精度高于單項時序預(yù)測模型。
由于農(nóng)產(chǎn)品價格呈現(xiàn)季節(jié)性波動趨勢,具有季節(jié)性變化規(guī)律[2]。鑒于此,本文引入季節(jié)指數(shù)調(diào)整的HGWO-SVR混合模型來對我國農(nóng)產(chǎn)品價格進行預(yù)測。選取2005年1月到2016年12月的農(nóng)產(chǎn)品批發(fā)價格指數(shù)月度數(shù)據(jù)作為研究對象,將本文模型與SARIMA等模型的預(yù)測效果進行對比,驗證了所用方法的可行性及精確性。
農(nóng)產(chǎn)品價格的時間序列數(shù)據(jù)呈現(xiàn)線性、非線性及季節(jié)性波動的特征,而季節(jié)性波動往往會給經(jīng)濟時間序列的分析造成困擾和麻煩,因此在時序分析中,往往需要進行季節(jié)指數(shù)調(diào)整。所以本文中首先需要將原始時序數(shù)據(jù)分解成趨勢分量和季節(jié)分量,常用的季節(jié)指數(shù)分解模型有加法模型及乘法模型[10,11]。
1.2.1 灰狼優(yōu)化算法(GWO)
灰狼優(yōu)化算法是Mirjalili(2014)等[12]提出的一種新型群體智能優(yōu)化算法,它源于模擬自然界中灰狼種群的等級層次機制和捕食行為,通過狼群跟蹤、包圍、追捕、攻擊獵物等過程實現(xiàn)優(yōu)化搜索的目的。
(1)社會等級。灰狼種群被分為四個社會等級:α、β、δ和ω,其中α為頭狼,擔(dān)任領(lǐng)導(dǎo)角色;β狼是下屬狼,協(xié)助α狼做決策;δ狼為普通狼,聽命于α狼和β狼;ω狼為底層狼,服從于α、β和δ狼。
(2)包圍獵物。通常,灰狼的狩獵行為都開始于包圍獵物,Mirjalili等[12]提出了下列數(shù)學(xué)公式用以描述這種行為:
r1,r2是[0,1]中的隨機向量,另外算法假設(shè) 的值在迭代過程中從2到0線性下降。
Maxiter表示最大的迭代次數(shù),在每次迭代過程中,t取0到Maxiter之間的整數(shù)。
(3)狩獵。在頭狼α的帶領(lǐng)下,灰狼有能力識別獵物的位置并包圍它們。然而,在抽象的搜索空間中,我們并不知道狩獵的最佳位置。為了以數(shù)學(xué)模型模擬狩獵行為,因此本文假設(shè)α狼、β狼和δ狼知道關(guān)于潛在獵物位置的更多信息。在此基礎(chǔ)上,保存目前為止獲得的前三個最優(yōu)解(即α,β,δ狼目前的位置),并迫使其他灰狼(包括ω狼)根據(jù)這些狼的位置來更新他們的位置。這個過程可以有下面的數(shù)學(xué)公式模擬:
(4)攻擊獵物(開發(fā))。狼群會通過攻擊停止移動的獵物來完成狩獵活動,這個過程可以通過數(shù)學(xué)公式中的將的值從2減少到0來實現(xiàn),相應(yīng)的的值也會減少。當(dāng)?shù)闹堤幱趨^(qū)間[-1,1]時,灰狼的下一個位置可以是它現(xiàn)在的位置和獵物的位置之間的任何位置。而當(dāng)群狼開始攻擊獵物。這種攻擊行為使得灰狼優(yōu)化算法在開發(fā)階段或者局部搜索中具有出色的性能。
(5)搜索獵物(勘探)。灰狼通常是分散的去尋找獵物,然后基于α、β和δ狼的位置來一起攻擊獵物。用模擬灰狼與獵物的分開狀態(tài),這樣可以加強算法的勘探能力,使GWO算法實現(xiàn)全局搜索。GWO算法的另一個搜索系數(shù)是。從公式(4)可知,是在區(qū)間[0,2]上的隨機值,此系數(shù)提供了獵物的隨機權(quán)值,以便隨機增加獵物在定義的距離方程中的影響。這可以幫助GWO在優(yōu)化中顯示更隨機的行為,避免陷入局部最優(yōu)。
1.2.2 差分進化算法(DE)
差分進化算法由Storn(1997)等[13]于1995年首次提出,算法通過對物種種群的變異、交叉、選擇等操作,使得種群個體一代代得以優(yōu)化,逐漸逼近最優(yōu)解,從而產(chǎn)生新的種群。DE算法是一種簡單高效的用于全局優(yōu)化的算法。
1.2.3 混合灰狼算法(HGWO)
混合灰狼算法[14]是DE算法與GWO算法的組合算法。需要有三個相同規(guī)模的種群,即父代種群、突變種群和子代種群。
第一步,采用公式(11)在一個合適的可行域內(nèi)隨機產(chǎn)生三個種群,用POP代表種群,有下列定義:
psize代表種群規(guī)模,k表示種群中第k個個體,k=1,2,…,psize,每個個體表示如下:其中 p=1,2,…,d,k=1,2,…,psize 。
第二步,對父代種群目標函數(shù)值進行非降序排列,確定父代種群中的α狼、β狼和δ狼。
在整個迭代過程中,采用公式(8)來不斷更新父代灰狼每個個體的位置。分別用DE算法中的變異操作和交叉操作來得到變異(中間體)種群和子代種群,用選擇操作來更新父代種群,用公式(3)至公式(5)來更新系數(shù) 、 以及 的值。因此,對父代種群目標函數(shù)值進行非降序排列,更新父代種群中的α、β和δ。一旦迭代過程結(jié)束,返回父代α狼的目標函數(shù)值確定父代α狼。
一旦父代種群灰狼個體更新位置超越邊界值,則用下列公式進行修正:
其中 p=1,2,…,d,i=1,2,…,psize 。
支持向量回歸(SVR)于1995年由Vapnik等[15]首先提出,是一種有監(jiān)督的學(xué)習(xí)算法,其理論基礎(chǔ)是結(jié)構(gòu)風(fēng)險最小原理(SRM)和統(tǒng)計學(xué)VC維理論[16]。SVM可用于模型分類和非線性回歸,它的主要思想是:通過用內(nèi)積函數(shù)定義的非線性變換將輸入空間變換到一個高維空間,在這個高維空間中尋找輸入變量和輸出變量之間的一種非線性關(guān)系[17]。SVR是SVM在解決回歸問題時的算法,它已廣泛應(yīng)用于各種領(lǐng)域,SVR算法的關(guān)鍵是要找到適當(dāng)?shù)暮瘮?shù)f(x)=w×φ(x)+b來擬合訓(xùn)練集。
上文詳細介紹了基于季節(jié)指數(shù)調(diào)整的HGWO-SVR混合模型,該模型的基本流程為:首先,對農(nóng)產(chǎn)品價格指數(shù)采用季節(jié)指數(shù)調(diào)整方法將其分解為季節(jié)分量和趨勢分量;其次對剔除季節(jié)分量的趨勢分量采用試錯法,選擇最小誤差,確定最優(yōu)的輸入結(jié)構(gòu),用HGWO-SVR模型對趨勢項進行訓(xùn)練與預(yù)測;最后,將季節(jié)分量還原到預(yù)測的趨勢分量中,得到最終的預(yù)測值。
本文選取2005年1月至2016年12月我國農(nóng)產(chǎn)品批發(fā)價格指數(shù)月度數(shù)據(jù)作為研究對象,數(shù)據(jù)來源于全國農(nóng)產(chǎn)品批發(fā)市場價格信息網(wǎng)(http://pfscnew.agri.gov.cn),共144個樣本數(shù)據(jù)。此批發(fā)價格指數(shù)月度數(shù)據(jù)是以2000年作為基準年的定基指數(shù)。
將樣本數(shù)據(jù)分為訓(xùn)練集和測試集兩部分。用前132個樣本數(shù)據(jù)做訓(xùn)練,后12個樣本數(shù)據(jù)做測試,為防止出現(xiàn)過擬合現(xiàn)象,隨機選取訓(xùn)練樣本的20%作為測試集,進行逐月預(yù)測。
本文同時采用RMSE(均方根誤差)、MAPE(平均絕對百分比誤差)、MAE(平均絕對誤差)三個指標來評價模型預(yù)測的精度,這三個指標的定義如下:
2.3.1 原始數(shù)據(jù)的季節(jié)調(diào)整
本文基于季節(jié)指數(shù)調(diào)整的HGWO-SVR混合模型對農(nóng)產(chǎn)品價格進行預(yù)測。第一步,需要將用來研究的樣本數(shù)據(jù)進行季節(jié)分解,分解為季節(jié)分量和趨勢分量。常用的季節(jié)指數(shù)調(diào)整模型有加法模型及乘法模型,本文采用基于季節(jié)指數(shù)加法分解模型的HGWO-SVR混合模型(AHGWO-SVR)。表1為通過加法模型分解計算得到的一個周期內(nèi)的季節(jié)指數(shù)值IS(S=1,2,…,12)。
表1 AHGWO-SVR模型中的季節(jié)指數(shù)調(diào)整值
2.3.2 SVR預(yù)測
第二步,對分解出來的趨勢分量做訓(xùn)練與測試。這里模型的輸入形式、核函數(shù)、模型參數(shù)的選擇以及預(yù)測范圍會對模型預(yù)測效果有著重要的影響。
在模型的輸入形式上,本文采用試錯法來確定最佳輸入結(jié)構(gòu)。由于文中使用的是月度數(shù)據(jù),本文用1個月的數(shù)據(jù)作為輸入變量,預(yù)測下一個月的數(shù)據(jù),用1至2個月的數(shù)據(jù)作為輸入變量,預(yù)測第三個月的數(shù)據(jù),…,用1至5個月的數(shù)據(jù)預(yù)測第六個月的數(shù)據(jù)等形式,通過實驗選擇具有最小誤差的輸入形式。核函數(shù)的選擇上,用RBF函數(shù)作為SVR的核函數(shù);將分解出來的趨勢分量分為訓(xùn)練集和測試集,用前132個樣本數(shù)據(jù)做訓(xùn)練,后12個樣本做測試,其中隨機選取訓(xùn)練集樣本數(shù)據(jù)的20%做驗證,利用HGWO算法來搜索SVR模型的最優(yōu)參數(shù)c和g;用最優(yōu)參數(shù)的SVR模型進行回歸預(yù)測。表2為本文的混合模型在不同輸入形式下采用試錯法得到的RMSE、MAPE、MAE的值,以及參數(shù)c和g的值。其中用斜體表示的RMSE、MAPE、MAE以及c和g的值對應(yīng)的輸入形式將是本文模型采用的輸入結(jié)構(gòu)。
表2 AHGWO-SVR模型不同輸入形式下的參數(shù)值及誤差值
2.3.3 疊加季節(jié)指數(shù)
將調(diào)整后的季節(jié)指數(shù)還原到第二步的預(yù)測結(jié)果中去,得到最終預(yù)測的農(nóng)產(chǎn)品批發(fā)價格指數(shù)。
2.3.4 模型比較
為驗證該模型在預(yù)測上的優(yōu)越性,將該模型與MHGWO-SVR(季節(jié)指數(shù)乘法分解模型下的HGWO-SVR混合模型)以及APSO-SVR(季節(jié)指數(shù)加法分解模型下的PSO-SVR混合模型),ADE-SVR(季節(jié)指數(shù)加法分解模型下的DE-SVR混合模型)和SARIMA模型進行比較,用RMSE、MAPE、MAE這三個評判標準來評價模型的預(yù)測效果。圖2為基于以上模型預(yù)測的我國2016年12個月的農(nóng)產(chǎn)品批發(fā)價格指數(shù)趨勢,從圖中可以看出,本文提出的模型預(yù)測結(jié)果更接近真實值。圖3中的五條曲線分別為上述五種模型預(yù)測下的2016年12個月的農(nóng)產(chǎn)品價格指數(shù)與實際農(nóng)產(chǎn)品價格指數(shù)的誤差曲線,從圖3中的誤差曲線走勢可以發(fā)現(xiàn)本文提出的模型具有最小的誤差。表3為不同混合模型下的預(yù)測結(jié)果的對比。
圖2 不同模型的預(yù)測趨勢
圖3 不同模型的誤差對比
表3(見下頁)為上述五種模型預(yù)測下的2016年我國農(nóng)產(chǎn)品批發(fā)價格指數(shù)與實際農(nóng)產(chǎn)品批發(fā)價格指數(shù)的誤差值,斜體的值分別表示最小的RMSE、MAPE、MAE的值。顯然,本文提出的AHGWO-SVR混合模型在這三個評判指標下均達到了最高的預(yù)測精度。因此,本文提出的混合模型在農(nóng)產(chǎn)品價格預(yù)測上優(yōu)于其他模型。
首先,將AHGWO-SVR和MHGWO-SVR混合模型預(yù)測效果同APSO-SVR及ADE-SVR模型進行比較,觀察發(fā)現(xiàn)基于HGWO算法的模型預(yù)測效果要優(yōu)于PSO及DE算法建立的模型,這可能是因為HGWO算法在開發(fā)和勘探過程中能夠更好地保持平衡,比PSO和DE算法能夠確定更優(yōu)的SVR參數(shù)c和g。
表3 不同模型下的誤差值
其次,將基于AHGWO-SVR的混合模型與MHGWO-SVR的混合模型進行對比,發(fā)現(xiàn)AHGWO-SVR混合模型預(yù)測效果優(yōu)于MHGWO-SVR混合模型。由于本文研究對象是我國農(nóng)產(chǎn)品批發(fā)價格指數(shù),而農(nóng)產(chǎn)品交易品種繁多,不同種類的農(nóng)產(chǎn)品季節(jié)波動趨勢不盡相同,加法模型分解下的季節(jié)指數(shù)混合模型可能更適合本文的研究。
第三,將以上四種混合模型同SARIMA預(yù)測模型進行對比,發(fā)現(xiàn)基于智能算法的混合模型預(yù)測結(jié)果要優(yōu)于傳統(tǒng)的SARIMA模型,主要是因為新型智能算法在模型預(yù)測方面較傳統(tǒng)模型有著顯著優(yōu)勢。
總之,經(jīng)過對比分析,本文得出以下結(jié)論:(1)HGWO優(yōu)化算法在參數(shù)尋優(yōu)上要優(yōu)于PSO及DE算法,是因為在開發(fā)和勘探過程中HGWO算法能夠更好地保持平衡;(2)基于季節(jié)指數(shù)加法分解模型的混合模型優(yōu)于乘法分解模型的混合模型,表明基于季節(jié)調(diào)整的加法分解模型的混合模型更適合本文的研究;(3)基于智能優(yōu)化算法的混合模型要優(yōu)于傳統(tǒng)的SARIMA模型,是因為智能算法在模型預(yù)測方面較傳統(tǒng)模型有著顯著優(yōu)勢。
本文通過建立季節(jié)指數(shù)調(diào)整的HGWO-SVR混合模型對我國農(nóng)產(chǎn)品價格進行預(yù)測,主要分為三個步驟:(1)將原始數(shù)據(jù)分解為季節(jié)分量和趨勢分量;(2)對趨勢分量進行HGWO-SVR訓(xùn)練及預(yù)測;(3)將季節(jié)指數(shù)還原到預(yù)測的趨勢項中,得到最終預(yù)測結(jié)果。為驗證本文提出的混合模型在農(nóng)產(chǎn)品價格預(yù)測上的優(yōu)勢,本文將該模型與MHGWO-SVR、APSO-SVR、ADE-SVR以及SARIMA模型進行比較,結(jié)果表明,AHGWO-SVR混合模型在預(yù)測精度上優(yōu)于其他模型。本文有以下幾點結(jié)論:
(1)農(nóng)產(chǎn)品價格的時序數(shù)據(jù)通常都帶有季節(jié)性波動的特征,而季節(jié)性波動會給經(jīng)濟時間序列的分析造成困擾和麻煩。因此在進行回歸預(yù)測前,將原始數(shù)據(jù)進行分解,對趨勢項進行預(yù)測,之后再將季節(jié)指數(shù)還原到預(yù)測的趨勢項中,得到最終預(yù)測結(jié)果。這種季節(jié)調(diào)整模型往往能夠緩解季節(jié)性波動的沖擊,從而有效提高預(yù)測精度。
(2)本文應(yīng)用的基于DE算法的GWO算法,該算法原理簡單、易于實現(xiàn),需調(diào)整的參數(shù)少且全局搜索能力強,在求解精度和穩(wěn)定性上要明顯優(yōu)于PSO算法、DE算法,表明HGWO算法具有更強的魯棒性和穩(wěn)定性。
(3)農(nóng)產(chǎn)品價格波動呈現(xiàn)非線性及季節(jié)性的特征,用傳統(tǒng)的預(yù)測方法對其預(yù)測具有一定的局限性。而本文提出的混合模型,能夠充分利用新型智能算法的優(yōu)勢,有效模擬非線性、自適應(yīng)學(xué)習(xí),被證明在農(nóng)產(chǎn)品價格預(yù)測上是一種有效的預(yù)測方法。