李海濤劉昌年
(青島科技大學信息科學與技術(shù)學院,山東 青島 266061)
2020年,受新冠疫情的影響,我國水產(chǎn)養(yǎng)殖業(yè)出現(xiàn)了大規(guī)模壓塘現(xiàn)象,養(yǎng)殖經(jīng)營企業(yè)損失嚴重[1]。2021年,隨著疫情的好轉(zhuǎn),消費市場逐漸復蘇,而水產(chǎn)品市場供應(yīng)嚴重不足,造成了水產(chǎn)品價格持續(xù)上漲[2]。若能對水產(chǎn)品價格進行預測,則能指導企業(yè)合理控制養(yǎng)殖規(guī)模,幫助企業(yè)減少因受市場波動造成的經(jīng)濟損失。近年來,國內(nèi)外學者對水產(chǎn)品價格預測問題進行了深入研究。楊衛(wèi)等人[3]基于2016年1月至2019年5月大黃魚月度價格指數(shù)數(shù)據(jù),提出了使用ARIMA 模型進行擬合,成功對大黃魚價格指數(shù)做出預測;張靜怡[4]基于2010—2017年上海7種主要水產(chǎn)品價格數(shù)據(jù),采用Holt-winters模型對不同種類水產(chǎn)品進行預測;R.MAHARJAN 等人[5]提出了基于模糊CBR 模型的水產(chǎn)品價格預測模型,對中國水產(chǎn)品價格進行研究;A.P.BARTEN 等人[6]提出將逆需求體系應(yīng)用于水產(chǎn)品價格形成研究;C.M.JOLLY 等人[7]將普通最小二乘法模型、無條件最小二乘法模型、最大似然模型和自回歸條件異方模型用于水產(chǎn)品價格研究,對歐洲部分水產(chǎn)品進行分析;段青玲等人[8]提出GA-SVR 水產(chǎn)價格預測模型,并對價格序列進行穩(wěn)定性檢測,再通過GA 遺傳算法優(yōu)化支持向量回歸模型參數(shù),最終以最優(yōu)參數(shù)為基準構(gòu)建支持向量回歸(support vector machines for regression,SVR)模型?;诖?本文提出一種Lasso-BP組合價格預測模型,以北京地區(qū)鯉魚價格為例,分析價格波動成因,將影響因素通過Lasso模型進行篩選,再將關(guān)聯(lián)性高的影響因素作為BP神經(jīng)網(wǎng)絡(luò)的輸入變量,構(gòu)建出北京地區(qū)鯉魚價格預測模型。該研究具有一定的應(yīng)用價值。
本文所研究的鯉魚價格數(shù)據(jù)主要來源于北京豐臺區(qū)新發(fā)地農(nóng)產(chǎn)品批發(fā)市場、北京八里橋農(nóng)產(chǎn)品批發(fā)市場及北京京豐岳各莊農(nóng)副產(chǎn)品批發(fā)市場。由于各個市場報價規(guī)格不同,因此取各批發(fā)市場“>1 000 g”規(guī)格的鯉魚大宗報價的平均值進行研究。選取自2013年1月1日至2018年6月17日每日價格數(shù)據(jù)作為研究對象,共計1 811條數(shù)據(jù)。
2013—2017年北京地區(qū)鯉魚月度均價走勢如圖1所示。由圖1可以看出,鯉魚的價格波動與季節(jié)有關(guān),具體表現(xiàn)為秋冬季價格較低,春夏季價格較高,每年的6~8月處于全年峰值,其后持續(xù)下跌,直至12月價格開始回升。
圖1 2013—2017年北京地區(qū)鯉魚月度均價走勢
水產(chǎn)品價格是水產(chǎn)品市場供需關(guān)系的體現(xiàn)[9]。在理想狀態(tài)下,市場供應(yīng)和市場消費直接影響價格走勢?,F(xiàn)實中,鯉魚價格受到政策和匯率等外部因素的影響,價格走勢不完全由市場供需決定,而且鯉魚具有養(yǎng)殖周期長、養(yǎng)殖成本變化較大的特點[10],外部因素的細微變化都會對鯉魚價格造成影響。結(jié)合市場供需關(guān)系和鯉魚的養(yǎng)殖過程,可將鯉魚價格波動成因歸納如下:
1) 生產(chǎn)。生產(chǎn)方面可從供給和生產(chǎn)成本2個維度進行分析。從供給方面來看,鯉魚的產(chǎn)量影響鯉魚價格,在市場需求穩(wěn)定的情況下,產(chǎn)量越高,價格越低。產(chǎn)量的影響因素包含鯉魚產(chǎn)量、鯉魚養(yǎng)殖面積、水產(chǎn)苗種數(shù)量等;從生產(chǎn)成本方面來看,鯉魚生產(chǎn)成本的提高會提高鯉魚的價值,鯉魚價格也會提高。影響生產(chǎn)成本的因素主要包含魚塘租金、魚苗成本、飼料成本、魚藥成本等[11]。
2) 消費。消費者對鯉魚的需求和消費能力會影響價格。隨著消費者消費理念的升級,消費者對水產(chǎn)品等優(yōu)質(zhì)蛋白質(zhì)的需求日益旺盛,在一定程度上擴大了市場需求,在鯉魚供給穩(wěn)定的情況下,消費需求越大,市場行情越高[12]。影響消費需求的因素包含居民人口數(shù)量和飲食習慣等,消費者的消費能力越強,能承受的價格越高,也會促進消費需求的增長。影響消費能力的因素主要包含居民人均可支配收入、平均工資、居民人均消費支出等。
3) 流通。鯉魚從出塘到批發(fā)市場需要經(jīng)歷運輸過程,運輸過程的成本會對鯉魚價格產(chǎn)生影響,影響因素包含柴油油價和運輸人員薪資等。
4) 綜合因素。主要包含宏觀和微觀。宏觀方面主要包含政府對漁業(yè)的扶持力度、生產(chǎn)總值、水產(chǎn)品產(chǎn)值、居民消費價格指數(shù)等因素,是政治經(jīng)濟的綜合體現(xiàn)[13]。微觀方面主要包含產(chǎn)區(qū)平均氣溫、平均降水量及鯉魚價格的周期性波動等因素[14]。
通過對波動成因的分析,選擇北京地區(qū)平均氣溫、降水量和鯉魚產(chǎn)量等19個因素為研究對象,影響因素及數(shù)據(jù)來源如表1所示。
表1 影響因素及數(shù)據(jù)來源
基于Lasso-BP鯉魚價格模型主要包括Lasso回歸模型和BP神經(jīng)網(wǎng)絡(luò)兩部分,Lasso-BP組合模型結(jié)構(gòu)如圖2所示。圖中Lasso回歸部分的x1…x19為待篩選的19個影響因素,BP神經(jīng)網(wǎng)絡(luò)部分的x′1…x′9為篩選后的9個影響因素,H1…H10為10個隱含層節(jié)點,輸出層節(jié)點Y為鯉魚價格。
圖2 Lasso-BP組合模型結(jié)構(gòu)
首先使用Lasso回歸模型對影響因素變量進行篩選,再將篩選之后的影響因素作為BP神經(jīng)網(wǎng)絡(luò)的輸入,將鯉魚價格作為輸出。影響因素數(shù)據(jù)通過隱含層的非線性變換之后輸出價格,若輸出價格與真實價格不相符,則進入誤差反傳過程,將誤差傳遞至各層的節(jié)點,以誤差為依據(jù)重新調(diào)整各節(jié)點之間的權(quán)值,直至找到誤差最小的參數(shù),完成神經(jīng)網(wǎng)絡(luò)訓練[15]。
將影響因素數(shù)據(jù)輸入到訓練之后的模型中,即可輸出預測價格。使用Matlab 進行編程,Lasso-BP組合模型實現(xiàn)過程如圖3所示。
圖3 Lasso-BP組合模型實現(xiàn)過程
根據(jù)以上分析,選取19個對鯉魚價格造成影響的變量,即平均氣溫x1、降水量x2、柴油價格x3、居民人均可支配收入x4、社會平均工資x5、居民人均消費支出x6、年末常住人口x7、水產(chǎn)品類居民消費價格指數(shù)x8、北京市生產(chǎn)總值x9、漁業(yè)總產(chǎn)值x10、農(nóng)用柴油使用量x11、地方財政農(nóng)林水事務(wù)支出x12、鯉魚產(chǎn)量x13、鯉魚養(yǎng)殖面積x14、水產(chǎn)苗種數(shù)量x15、淡水加工品總量x16、漁業(yè)從業(yè)人員數(shù)量x17、受災害水產(chǎn)品損失數(shù)量x18、漁業(yè)災情造成的經(jīng)濟損失x19,并選取2013年1月至2017年5月的影響因素與價格數(shù)據(jù)作為訓練樣本,部分樣本數(shù)據(jù)如表2所示。
表2 部分樣本數(shù)據(jù)
由于鯉魚價格受到多種因素的影響,各個因素的單位不一致,因此需要對原始數(shù)據(jù)進行中心標準化處理[16],使不同維度的特征擁有相同的影響尺度。中心標準化后的數(shù)據(jù)計算過程為
式中,x為原始數(shù)據(jù);μ為原始數(shù)據(jù)均值;σ為方差。
構(gòu)建鯉魚價格Yt影響因素的線性回歸模型為
式中,β1…β19是影響因素的回歸系數(shù);εt是一系列服從標準正態(tài)分布的干擾項;β取常數(shù)8。
將中心標準化之后的數(shù)據(jù)進行Lasso求解,經(jīng)過28次迭代得到所有的Lasso解,使用赤池信息準則(akaike information criterion,AIC)確定最佳模型[17]。赤池模型通過在似然函數(shù)添加懲罰項的方式描述模型的精度[18],根據(jù)赤池最小值A(chǔ)可以從一系列不同模型中確定最佳模型,即
式中,d為參數(shù)數(shù)量,d=19;n為觀測數(shù),n=28;R為殘差平方和(residual sum of squares,RSS)。殘差平方和計算方法為
式中,yi為實際值為估計值。
求解后,Lasso回歸模型參數(shù)估計如表3所示。由表3可以看出,在第9次Lasso迭代時,赤池信息值A(chǔ)達到最小值,此時模型擬合最佳。選擇第9次迭代結(jié)果作為變量篩選依據(jù),去掉系數(shù)為0的參數(shù),最終選取平均氣溫、居民人均可支配收入、居民人均消費支出、水產(chǎn)品類居民消費價格指數(shù)、漁業(yè)總產(chǎn)值、地方財政農(nóng)林水事務(wù)支出、鯉魚產(chǎn)量共9個變量作為BP神經(jīng)網(wǎng)絡(luò)的輸入層節(jié)點。
表3 Lasso回歸模型參數(shù)估計
為了避免神經(jīng)網(wǎng)絡(luò)收斂慢的問題,需要對樣本數(shù)據(jù)進行歸一化操作[19]。采用零均值歸一化方法,將數(shù)據(jù)映射到[0,1],歸一化后的數(shù)據(jù)計算方法為
式中,μ為原始數(shù)據(jù)的均值;σ為原始數(shù)據(jù)的標準差;x為原始數(shù)據(jù)。
選擇2013年1月1日至2017年9月31日數(shù)據(jù)作為訓練樣本,構(gòu)建BP神經(jīng)網(wǎng)絡(luò)需確定網(wǎng)絡(luò)結(jié)構(gòu)、激勵函數(shù)和隱含層節(jié)點數(shù)[20]。將Lasso回歸模型篩選出的9個變量作為BP神經(jīng)網(wǎng)絡(luò)的輸入層節(jié)點,輸出層節(jié)點為鯉魚價格,隱含層和輸出層的激勵函數(shù)分別選擇tan-sigmoid函數(shù)線性傳遞函數(shù)purelin。隱含層節(jié)點數(shù)的計算公式為
式中,N為輸入層節(jié)點數(shù),N=9;M為輸出層節(jié)點數(shù),M=1;常數(shù)a范圍為[0,10]。經(jīng)計算,隱含層節(jié)點數(shù)應(yīng)在[3,14]之內(nèi)。將訓練次數(shù)上限設(shè)置為10 000,誤差目標設(shè)置為10-8,隱含層節(jié)點數(shù)分別設(shè)置為3~14,生成BP神經(jīng)網(wǎng)絡(luò),BP神經(jīng)網(wǎng)絡(luò)訓練過程如圖4所示。
圖4 BP神經(jīng)網(wǎng)絡(luò)訓練過程
將隱含層節(jié)點數(shù)不同的神經(jīng)網(wǎng)絡(luò)進行檢驗,不同隱含層節(jié)點數(shù)神經(jīng)網(wǎng)絡(luò)均方誤差如圖5所示。由圖5可以看出,當隱含層節(jié)點數(shù)為10時,均方誤差(mean squared error,MSE)最低,模型性能最佳。BP神經(jīng)網(wǎng)絡(luò)的拓撲結(jié)構(gòu)設(shè)定為9-10-1,重新訓練神經(jīng)網(wǎng)絡(luò),在進行162次迭代后,均方誤差滿足預設(shè)的誤差目標10-8,訓練停止。BP神經(jīng)網(wǎng)絡(luò)迭代過程如圖6所示。
圖5 不同隱含層節(jié)點數(shù)神經(jīng)網(wǎng)絡(luò)均方誤差
圖6 BP神經(jīng)網(wǎng)絡(luò)迭代過程
選擇2017年10月1日至2018年6月17日數(shù)據(jù)作為測試樣本,對測試樣本進行歸一化處理。使用已構(gòu)建的BP神經(jīng)網(wǎng)絡(luò)對2017年10月1日的價格進行預測,再將預測結(jié)果加入到訓練樣本中,重新訓練神經(jīng)網(wǎng)絡(luò),以此類推,直至完成對2018年6月15日的預測,共獲得260條預測結(jié)果。對輸出結(jié)果進行反歸一化處理,獲得價格預測值,Lasso-BP組合模型部分預測結(jié)果如表4所示。
表4 Lasso-BP組合模型部分預測結(jié)果
在260條預測數(shù)據(jù)中,有30條預測數(shù)據(jù)相對誤差低于1%,70條數(shù)據(jù)介于1%與3%之間,120條數(shù)據(jù)在3%~5%之間,40條數(shù)據(jù)大于5%,預測值與真實值整體平均誤差2.59%,模型預測精度較高。真實價格與預測價格擬合情況如圖7所示。
由圖7可以看出,在260條預測數(shù)據(jù)中,有132條預測值大于真實值,128條預測值小于真實值,誤差偏向不明顯。在價格波動趨勢方面,有251條預測數(shù)據(jù)與真實情況相同,9條預測數(shù)據(jù)與實際情況相反,準確率96.53%。在價格波動幅度方面,預測結(jié)果的波動幅度與真實數(shù)據(jù)基本相同,預測結(jié)果可滿足實際生產(chǎn)工作中的需要。
圖7 真實價格與預測價格擬合情況
本研究采用Lasso-BP組合模型,并與無Lasso的BP神經(jīng)網(wǎng)絡(luò)和ARIMA 差分整合移動平均自回歸模型進行對比,選擇均方誤差MSE、平均絕對誤差MAE和回歸方程確定性系數(shù)R2作為不同模型的評判方法,不同模型指標對比結(jié)果如表5所示。
由表5可以看出,通過對3種模型比較可以看出,ARIMA 模型的MAE遠高于其他2種模型,已經(jīng)無法滿足實際需求,而Lasso-BP 組合預測模型和BP神經(jīng)網(wǎng)絡(luò)模型的MEA 較低,預測效果較好;在回歸方程確定性系數(shù)R2方面,Lasso-BP組合預測模型最大,擬合效果最好;BP神經(jīng)網(wǎng)絡(luò)模型與Lasso-BP組合預測模型MSE均好于ARIMA 模型。
表5 不同模型指標對比結(jié)果
本文提出了一種使用Lasso-BP組合模型進行鯉魚價格預測的方法,并選擇2013—2018年北京地區(qū)鯉魚價格及影響因素數(shù)據(jù)進行試驗,實驗結(jié)果證明本文提出的價格預測模型能準確預測鯉魚價格。在實驗過程中,由于研究方法的局限性,未考慮很多難以量化的影響因素,如政策因素、社會突發(fā)事件、自然災害事件等,可能會影響模型的預測精度。與研究價格自身的波動規(guī)律不同,本文從消費、生產(chǎn)、流通等不同環(huán)節(jié)選擇多個影響因素進行研究,獲得了各個影響因素與鯉魚價格之間的映射關(guān)系,構(gòu)建的價格預測模型符合水產(chǎn)品價格波動成因。本文提出的組合預測模型實現(xiàn)了通過歷史數(shù)據(jù)對未來鯉魚價格做出預測,為養(yǎng)殖企業(yè)提供生產(chǎn)指導,幫助企業(yè)規(guī)避市場因素造成的經(jīng)濟損失。接下來的研究重點是將尋找合適方法對難以量化的因素進行研究,并結(jié)合GA 遺傳算法,對BP神經(jīng)網(wǎng)絡(luò)的初始化權(quán)值和閾值進行尋優(yōu),加快BP神經(jīng)網(wǎng)絡(luò)收斂,提高預測精度,進一步優(yōu)化模型。