劉合兵,韓晶晶,席 磊
(河南農業大學信息與管理科學學院,鄭州450002)
物價可以直觀反映我國國民經濟和發展狀況,根據我國居民目前的收入水平及消費結構現狀,食品價格漲跌將直接影響我國物價總水平的變化,其中農產品價格的變化影響更為顯著。農產品價格下降會降低生產者及經營者的收益,而價格上漲會增加居民的生活成本。農產品價格的劇烈波動對人們日常生活造成直接影響,不利于社會的穩定。農產品價格的穩定受到社會廣泛關注,對農產品價格進行準確預測成為當前研究重點。通過開展農產品價格的分析與預測,為農戶及生產經營者提供前瞻性信息,及時調整生產及銷售思路,防范農產品價格異常波動帶來的損失,提高農業市場風險規避能力,為當地政府出臺穩定農產品市場供需和價格相關政策提供決策參考,同時,也為消費者進行日常飲食消費選擇提供參考。
農產品種植受氣候限制和影響,農產品生產大多具有明顯的周期特征。農產品價格主要受市場供需影響,表現出季節性,趨勢性及隨機性等特點,其時間序列呈現典型的非線性特征。國內外對于價格的短期預測方法主要分為3種:傳統時間序列預測方法、智能預測方法和組合預測模型。傳統時間序列預測方法主要基于計量經濟學方法進行分析,包括季節指數法、移動平均法、指數平滑法等。劉峰等[1]利用ARIMA(p,d,q)模型對白菜的月度價格走勢進行預測,結果證實ARIMA(0,1,1)模型對白菜價格進行短期預測是可行的。苗開超[2]選用指數平滑方法對番茄年度價格進行預測,結果表明該模型在分析預測線性度較好的情況下擬合度較高。李干瓊等[3]以番茄價格為研究對象,分別運用ARIMA、ARCH和GARCH3種方法進行預測,結果證實GARCH模型在預測中具有更高的精度。張標等[4]從蔬菜價格和上市量的波動角度出發,利用季節指數對蔬菜整體、果菜、葉菜和根莖菜分別構建預測模型,預測得知未來2年價格均繼續呈現出季節性變動的緩慢上升趨勢。傳統時間序列預測方法在對具有線性特征的時間序列數據進行預測時精度較高,但隨著市場逐漸向復雜化、非線性化、不規則化發展時,該類方法在對價格進行預測時,為模型參數調整帶來較大困難,反映出一定的局限性。隨著人工智能的發展,智能預測方法如神經網絡、支持向量機、極限學習機等方法逐漸成為價格預測的熱點。其中BP神經網絡方法在時間序列預測時具有很強的非線性映射能力和柔性的網絡結構,同時又能使樣本預測誤差逼近最小的優點。近年來一些學者針對農產品價格預測問題探索了BP神經網絡在此方面的應用。解建強[5]通過對贛南臍橙的月度價格數據構建了BP神經網絡的預測模型,預測結果表明基于改進算法的BP神經網絡價格預測模型的誤差低于ARIMA模型。任青山等[6]基于灰色關聯度和Stepwise回歸分析影響生豬價格波動的主要影響因素,通過多元回歸分析和BP神經網絡的交叉應用建立了一種組合預測模型,結果證實組合預測模型比單一的預測模型精度高。然而BP神經網絡的單獨應用存在學習速度慢、容易陷入局部極小值的問題。現今基于小波變換的組合預測模型逐漸應用在糧食產量、原油價格、增值稅預測方面,并驗證了該方法的可行性和有效性[7-9]。
因此,文章研究了一種具有普適性且預測精度較好的農產品價格組合預測模型,引入了小波變換對農產品價格序列進行分解,將這些分量作為BP神經網絡的輸入變量分別進行預測,并將預測結果進行組合獲得最終農產品的預測價格。選取2013—2018年河南省批發市場的5種蔬菜月均價格為例對小波變換和BP神經網絡的組合模型進行方法應用,驗證其可行性和精確性。
菠菜、大白菜、番茄、辣椒和馬鈴薯是居民日常消費類蔬菜,也是葉菜類、果菜類和根莖菜類的代表,其價格的波動直接影響消費者的生活。該文以菠菜、大白菜、番茄、辣椒和馬鈴薯作為研究對象,從河南省農產品信息監測系統[10]下載5種農產品的月均價格數據,根據樣本的可獲得性和完整性原則,采集2013年1月至2018年12月共72組月均價格樣本數據,將2013—2017年的樣本數據作為訓練集,2018年的樣本數據作為測試集。
小波變換繼承和發展了傅里葉變換局部化的思想,能夠對信號進行多尺度分析,在分解過程中能夠充分突出信號的細節特征,在信號高頻部分進行時間細分,在低頻部分進行頻率細分,從而達到聚焦信號細節特征的作用,實現對分析對象更為細致的逼近。
根據農產品價格時間序列的分布特征,采用小波變換方法進行去噪,提高時間序列信號的預測精度,主要是因為小波變換可以同時觀察頻率和時間軸,可以分離信號的精細或粗糙部分,小波基的選擇具有多樣性等優勢。不同的小波基對信號進行小波變換得到不同的變換結果。在實際應用中,并沒有統一的理論基礎和方法指導選擇。一般來說,農產品價格屬于非平穩的時間序列,而針對非平穩的信號去噪應用中應該選擇正交的、中心頻率高且與原始信號形狀相匹配的小波基。因此,該文采用Daubechies小波基函數,簡稱dbN,N為小波的階數,選擇階數為5,對選取的蔬菜價格時間序列進行去噪處理。分解尺度過小會影響多因素條件下農產品價格序列的細節特征信號突出,不利于預測精度的提高,而分解尺度過大則會加重實踐過程操作。該文選擇小波的分解尺度為3,可以避免分解尺度過大或過小產生的問題。確定分解尺度后,對原始信號進行db5的3尺度分解得到趨勢低頻部分a3及細節高頻部分d1、d2、d3,對農產品價格波動的頻率和幅度進行更為細致的透視,如圖1所示。
人工神經網絡通過模擬生物的神經信號傳輸機制實現復雜的計算。BP神經網絡是一種獨特的能夠將計算誤差進行反向傳播的多層前饋神經網絡。它由輸入層、輸出層和隱含層構成,其最簡單的3層拓撲結構如圖2所示。

圖1 小波分解示意圖 Fig.1 Wavelet decomposition diagram
該文利用BP神經網絡自主學習后能夠根據實際輸出的誤差反復調整權值和閾值直至達到指定精度的優勢用于預測農產品價格時間序列。其工作流程如下:(1)將輸入樣本提供給輸入層神經元,逐層正向傳遞信號,直到產生輸出結果;(2)計算輸出層的誤差,將誤差逆向傳輸至隱層神經元;(3)根據誤差對連接權和閾值進行調整;(4)回到步驟(2),循環進行,直到達到停止條件。選取2013—2017年月均數據作為訓練數據集,2018年月均數據作為測試數據集,傳遞函數選擇tansig函數,訓練函數選擇trainlm函數,權值學習函數和性能函數都選擇默認函數learngdm函數和mse函數,迭代次數為1 000次。
該文運用MATLAB R2014b軟件分別對選取的菠菜、大白菜、番茄、辣椒和馬鈴薯的月均價格數據運用小波變換方法進行db5的3尺度分解,分解出近似序列a3和細節序列d1、d2、d3。通過對原始時間序列的價格數據做細致分解,將不同的影響因素分離開,避免相互干擾,有利于后續模型預測精度的提升。然后對分解出來的4個序列分別采用BP神經網絡方法進行建模,通過不斷的調整參數使得預測值更為接近分解后的各序列值。最后對各個序列預測的結果進行累加得出最終的農產品預測價格,其流程如圖3所示。

圖3 數據預測流程圖Fig.3 Data prediction flow chart
為了實現較高的預測精度,該文分別對3個細節序列和1個近似序列進行3層神經網絡建模,4個序列的建模過程類似。以菠菜價格預測中的近似序列神經網絡建模為例,首先對菠菜月均價格數據進行歸一化處理,分解出2013—2017年菠菜月均價格的近似序列作為模型訓練集,分解出2018年月均價格的近似序列作為測試集;設置神經網絡各層節點的個數為7-5-1,當前月份的前6個月的價格和上一年同月份的價格共7個數據作為輸入層數據;對輸出數據進行反歸一化處理,還原為價格數據。由于不同種類的農產品原始價格不同,分解后的各序列波形不同,在進行BP神經網絡預測時對應的隱含層和輸入層的節點個數不同。BP神經網絡建模實驗由MATLAB編程實現。
為了評估組合預測模型的預測效果,選擇平均絕對誤差(MAE)、平均百分比誤差(MAPE)與均方根誤差(RMSE)指標來度量預測結果的精度。各預測指標的計算公式為:

式(1)~(3)中,n為價格樣本數量,yi為第i個樣本的月均價格。
農產品價格序列通過小波變換后,被分解成1個近似序列a3和3個細節序列d3、d2、d1。該文通過小波變換對5種蔬菜月均價格進行分解,分別得到5種蔬菜的4個序列數據,為進一步分析做準備。如圖4為菠菜價格分解前后序列波形圖,其中s是菠菜價格的原始序列,直觀地反映了原始數據的波動趨勢和幅度。圖4中a3是原始序列的近似序列曲線,其波動狀態受主要因素的影響,反應了原始數據的大趨勢。d1、d2和d3是原始序列的細節序列,代表著不同小權重因素影響下的細小波動及振幅狀態。通過對比5種蔬菜分解后的各序列波形圖發現,近似序列a3分解出來的數值均大于3個細節序列的數值,且a3序列的數值最接近于原始序列的值。3個細節序列的數值均處于0值上下波動。而由于不同種類的蔬菜原始價格不同,分解后的各序列具體波動形態不同。

圖4 菠菜價格各序列波形圖Fig.4 Waveform of each sequence of spinach price
該文采用統計分析方法對2013—2018年5種蔬菜月均價格進行匯總,其價格變化趨勢如圖5所示。利用2013—2017年5種農產品月均價格進行訓練,構建的組合預測模型分別對5種農產品2018年的月均價格進行預測,預測結果如表1所示。采用評價指標對組合模型的預測結果進行精度評價,其結果如表2所示。5種農產品的預測價格與實際價格的偏差較小,其中馬鈴薯的平均絕對誤差值最小,為0.083元/kg;其次是大白菜,為0.085元/kg;菠菜則最高,為0.49元/kg。比較5種農產品價格預測結果的平均百分比誤差,辣椒的值最小,為3.95%;菠菜的值最大,為8.66%。比較均方根誤差,馬鈴薯最小,為 0.10元/kg,菠菜最大為0.61元/kg。從結果可知,5種蔬菜中菠菜的價格預測結果平均絕對誤差、平均百分比誤差和均方根誤差等評價指數均在最高值,比較5種蔬菜的價格變化規律可知,2013—2018年菠菜的月均價格波動最劇烈,價格峰谷差值最大,達到12.73元/kg。而馬鈴薯和大白菜的峰谷差值分別為3.09和2.24元/kg。從價格走勢看,菠菜價格走勢呈現出較為明顯的“凸”型,年內價格具有明顯的季節性,年間價格走勢趨于一致。而馬鈴薯和大白菜的價格走勢較為平滑,個別年份會出現較大波動,且不同年度價格的走勢存在差異。由此可知,價格波動的頻率和幅度等特征會對小波變換—BP神經網絡組合的價格預測模型預測結果產生影響,當農產品價格波動幅度小、頻率低時預測結果更好。綜合分析可知,小波變換和BP神經網絡的組合預測模型可以實現任意波動形式的短期精準預測。

圖5 價格變化時序圖Fig.5 Timing chart of price change

表1 小波變換—BP神經網絡組合預測結果Table 1 Combined prediction results of wavelet transform and BP neural network 元/kg

表2 小波變換—BP神經網絡組合預測結果評價Table 2 Evaluation of combined prediction results of wavelet transform and BP neural network
該文從蔬菜價格的綜合影響因素及具體波動情況出發,為減少價格數據中各序列在分析過程中的相互影響,采用先分解后集成的思想,構建了小波變換和BP神經網絡的組合預測模型對河南省5種蔬菜的月均價格進行實證研究和預測,研究表明組合模型的預測結果具有較高的預測精度,充分展示了小波變換和BP神經網絡對非線性時間序列的處理能力及農產品價格波動幅度和強度會對該模型的預測精度產生影響。
因大多數預測模型的研究僅針對單一種類的產品進行實證分析,其預測方法及預測精度并不具有普適性。而該文提出的小波變換和BP神經網絡的組合預測模型能對多種農產品價格波動進行預測,且對5種具有代表性的蔬菜進行預測驗證的結果說明該模型具有較好的普適性。農產品價格的短期精確預測能為未來價格走勢做出模擬,這對農產品生產者、經營者、消費者及相關政府部門具有重要的現實意義。因農產品的種類較多,僅針對蔬菜產品進行驗證,不能代表其方法對肉類、水果類、糧油類及畜禽類具有同樣的效果,在今后還將應用該模型對其他類型產品進行分析,實現更多種類農產品的價格預測。