张保国 任万明 吴兵
(1山东麦港数据系统有限公司山东济南250100;2山东省现代农业农村发展研究中心山东济南250100;3济南市农业农村信息中心山东济南250100)
农业是国民经济的基础,农产品市场是我国市场经济的重要组成部分,农产品价格的波动直接关系农民切身利益乃至国民生活质量。农产品短期价格受自然灾害、重大疫情等的影响,农产品短期价格呈现波动大、非平稳、非线性的特点,这对农民的收入和农产品市场的稳健发展等产生不利的影响。因此,对农产品短期价格进行预测,帮助政府做出相关决策实施宏观调控、对农业从业者进行指导、维持农产品市场的稳健具有重要作用。
根据原理不同,农产品短期价格预测可以分为2种:定性预测方法和定量预测方法[1]。定量预测方法是农产品短期价格预测领域的主流方法,又可以分为传统方法和智能方法两大类。传统方法主要指计量经济方法,其中比较流行的有差分整合移动平均自回归(Autoregressive Integrated Moving Average,ARIMA)模型[2-3]、自回归条件异 方 差(Autoregressive Conditional Heteroscedasticity,ARCH)模型[4-5]、线性回归等。经济计量模型普遍对非线性数据预测具有局限性,对数据使用有太多限制。智能方法中比较普遍使用的有人工神经网络[6-8]、遗传算法[7]等。目前,在农产品短期价格预测方面,遗传算法主要是与其他预测方法组成混合模型来使用,但是遗传算法中参数的选择主要是靠经验来选择,而参数的人为选择很容易对预测结果造成不利影响。
总体来看,农产品价格的影响因素大概可以分为2种:内部因素和外部因素。内部因素主要是人们按照以往的价格来定价,这使得农产品价格序列表现为历史相关性;而外部因素则由国民经济体中其他的市场变动、自然灾害、重大疫情等情况引起,这使得农产品短期价格序列表现为波动大、非平稳、非线性的特点。
刘峰等[9]利用农产品价格时间序列的当前值和过去值准确预报未来值,以白菜价格为例,构建了非平稳时间序列ARIMA(p,d,q)。姚霞等[10]以南京市青椒价格为例,构建了非平稳时间序列ARIMA(p,d,q)模型,描述并预测时鲜农产品价格的动态变化。但是ARIMA模型过于依赖数据的稳定性,它本质上只能捕捉线性关系,不能捕捉非线性关系,在面对非线性时间序列时,ARIMA模型则差强人意。
马孝斌等[11]对影响生猪市场价格的几个关键因素进行关联分析,在此基础上建立了生猪市场价格预测的向量自回归模型,并运用此模型对实际数据进行了预测和分析。苏博等[12]在对中国粮价的研究中,运用回归分析模型分析了影响中国粮价运行的影响因子,并结合中国粮食价格定价和作用机制在不同时期的发展变化,运用逐步回归方法构造出了粮价预测模型。但是回归分析对数据的异常值十分敏感,并且难以对数据的异常值和大幅波动进行处理。
罗万纯等[13]利用GARCH、GARCH-M、TARCH和EGARCH等ARCH类模型对粮食价格的波动、波动的非对称性进行了分析,并提出了对粮食价格预测的建议。董晓霞等[8]使用双指数平滑、Holt-W inters无季节性模型和ARCH模型对我国鲜奶零售价格短期预测进行了应用模拟,结果显示,ARCH模型预测结果精确度最高。但是ARCH模型对参数的限制极其严格,而且ARCH模型会过高估计抖动率。
牛东来等[14]以北京市2015—2017年几个街道的鸡蛋价格为数据集,以过去5 d的价格作为输入,使用基于Levenberg-Marqardt的BP算法,有效克服了标准BP算法收敛速度缓慢、过拟合等不良现象,总体上对检验样本的数据具有很好的拟合效果。张津等[15]利用神经网络的很强的非线性、自组织、自学习能力,选用基于时间序列的BP神经网络预测法,对猪肉的价格进行预测。但是普通神经网络虽然可以有效的拟合数据,但是它并没有对起伏尖锐的大幅的、不正常的波动数据进行处理,在这方面它存在着不足。
易利容等[16]提出了一种基于多变量分析的LSTM时序预测方法,该方法利用数据的远距离信息和多变量相关性,有效地提高了工业传感器时序数据预测的准确性。但是,农产品短期价格波动频繁,数据异常值和大幅波动对预测精度影响极大,该模型难以对其进行处理。
Kyunghyun等[17]提出了区别于LSTM的另一种门控循环单元(GRU)的门控机制,目标是让每个经常性单位自适应捕捉不同时间尺度的依赖关系,Chung等[18]也对GRU进行了具体的研究。但该思想也难以结合数据异常波动和大幅波动来对数据进行处理。
农产品的价格受到内部外部多方面的影响,呈现出波动大、非线性、非平稳的特点,而剧烈起伏的波动往往对预测结果产生不好的影响,但是目前现有的方法难以对起伏尖锐的、大幅的、不正常的波动数据进行处理。对此,本文针对农产品价格的历史相关性,使用LSTM来解决,其次,针对由自然灾害等引起的大幅波动,可以使用价格波动数据来降低其影响。因此,考虑对标准的LSTM模型进行改进,提出一种新的W-LSTM模型,输入价格数据和波动数据来训练模型,来减少异常价格波动和大幅波动对预测结果的影响,实现对农产品短期价格的精准预测。
由于农产品的价格受到历史价格及其价格波动的影响,因此,进行如下定义:
定义t为历史相关天数:xi表示第i天的价格数据,则输入数据为Xi={x1,x2……xt},X2={x2,x3……xt+1},以此类推,直到最后一天;价格波动使用公式Δpi=pi-pi-1来计算获得,当i=1时,假定前一天的数据为0,则Δw1=w1,价格波动的输入格式为ΔPi={Δp1,Δp2……Δpt},ΔP2={Δp2,Δp3,……Δpt+1},以此类推,直到最后一天。
LSTM模型的输入包括历史价格数据和历史价格波动数据,即使用前t天的数据作为输入来预测t+1天的价格。
LSTM是一种特殊的RNN结构,是由Hochreiter等[19]在1997年提出的,用于决定何时以及如何更新RNN的隐藏状态,由于其很独特的设计结构,LSTM可以很好的解决梯度消失问题,它特别适合处理时序问题。标准的LSTM单元包括遗忘、输入、输出门。
W-LSTM在LSTM的基础上,将其输入信息进行了相应的处理,将历史价格数据和价格波动数据进行相应的处理作为数据的输入,并且它还包括前置门、遗忘门和输出门(图1),因此,它相对标准LSTM能处理更多的信息,在本研究中它的输入包含历史价格信息和价格波动信息。
图1 W-LSTM结构图
前置门(Front gate),将价格信息和价格波动信息进行结合形成组合信息:
其中,Xi是价格信息用来分析历史价格变动规律,Pi是由价格信息中提取出的价格波动信息单独作为输入,来强化模型对价格波动的处理,{Wx,Wp,bx,bp}是网络参数。tanh激活函数的输出结果在[-1,1]之间,输出值越靠近-1,代表负波动越大;输出值越靠近1,代表正波动越大。数据波动越大,它对W-LSTM模型的训练影响就越大,相反,当波动为0时,输入的波动数据便对模型的训练无影响,此时,W-LSTM模型便相当于标准LSTM。
遗忘门(Forget gate),是控制是否“遗忘”的历史状态信息。
其中,ht-1是上一序列的隐藏状态,sk是本次的输入序列。定义Wf为ht-1的偏重矩阵,Uf为sk的偏重矩阵,bf为偏置。
输入门(Input gate)负责将当前输入补充到最新的“记忆”中,它包含两个部分:第一,Sigmoid层输出it;第二,一个Tanh层创建一个新的候选值向量,会被加入到状态中。定义{Wt,Ut,bt}{Wa,Ua,ba}为输入门的网络参数,则
然后更新细胞状态:
输出门(Output gate)控制着有多少“记忆”可以用于下一层网络的更新中,定义{Wo,Uo,bo}为输出门的网络参数,输出门的计算可用公式6表示:
在计算得出Ot后,还需要使用Tanh函数把记忆值压制到[-1,1],所以最终输出门的输出公式为:
最后一个W-LSTM层输出的历史信息经过一个预测层输出结果y:
W-LSTM的训练过程如下:
按照前向计算公式(1)~(8)计算W-LSTM细胞的输出值。
按照时间和网络层级2个方向反向传播,计算误差项。
根据相应的误差项,计算每个权重的梯度,更新权重。
重复(1)~(3),得到一组最优的参数,并保留下来。
为了防止训练过程中过拟合,本研究使用Dropout正则化技术[20],它在2014年由Hinton教授的团队提出。Dropout提供了一种巧妙的方式,通过减少权重连接来增加网络模型的泛化能力。
本节将通过实验评估提出的W-LSTM模型。实验环境为:INTEL Corei5 CPU,2.80GHz;4G内存。实验数据为天津市2016年7月到2019年1月每天的蔬菜价格数据。每个对比实验情况均运行10遍,取平均值。
设置了3个对比模型:
(1)W-LSTM模型,输入历史价格信息与价格波动信息训练模型,进行预测。
(2)LM算法改进的BP神经网络,只将历史价格信息作为输入,使用前n天的价格信息预测第n+1天的农产品价格。
(3)ARIMA模型,将农产品价格随着时间推移而生成的数据序列视为一个随机序列,用一定的数学模型来近似的描述这个序列。
同时,为了检验W-LSTM模型的普适性,使用辣椒、大葱、韭菜和西红柿4种价格数据进行实验来对3种模型进行比较。
本小结分别使用W-LSTM模型、LM算法改进的BP神经网络和ARIMA模型来进行实验,对预测结果的准确性判定公式使用的是均方误差(MSE)和决定系数(R2)。
MSE和R2是评价模型准确率的常用指标,MSE是反映估计量与被估计量之间差异程度的一种度量,MSE越小代表着模型准确率越高;R2越大,自变量对因变量的解释程度越高,自变量引起的变动占总变动的百分比高,观察点在回归直线附近越密集,代表模型拟合程度越高。其中n代表总样本,Y_actual表示真实数据,Y_predict代表预测结果,Y_mean代表真实数据平均值。
通过对蒜苗价格序列进行建模预测,图2、3分别是使用W-LSTM模型和ARIMA模型得到的预测结果与实际数据的比较。很明显,本研究提出的W-LSTM模型预测结果更理想。
图2 W-LSTM预测结果
通过观察图3数据发现,ARIMA模型的实验结果明显与其它模型有较大的偏差,而R2甚至小于0,这代表预测结果与原数据毫无关系。ARIMA模型在处理平稳时间序列时表现良好,当数据不平稳时,需要通过一定的处理方式得到平稳序列,而本实验使用的蒜苗价格数据具有连续不变性和突变性,即在一段时间内连续不变,然后突然垂直变化,这种特性导致数据在差分的时候,损失了太多信息,导致ARIMA模型预测效果极其不好,偏差极大。
图3 ARIMA模型预测结果
训练结束后,输入数据进行预测,W-LSTM模型和LM算法改进的BP神经网络的MSE随着预测的进行,变化如图4所示。W-LSTM模型的MSE为0.032,LM-BP模型的MSE为0.059,ARIMA模型的MSE为0.923。W-LSTM模型的MSE比其它模型都要小,模型准确率最高;而R2比其它模型大,代表W-LSTM模型的拟合程度相对其它模型来说更高。总体来说,两个模型的MSE变化趋势大致相同,WLSTM模型的MSE总体上小于LM算法改进的BP神经网络的MSE。
图4 W-LSTM模型和LM算法改进的BP神经网络的MSE变化
输入数据在总数据的三分之一处出现了大幅的波动,而此时两模型的MSE均出现了短暂的增长,而W-LSTM模型的MSE波动变化要小于LM算法改进的BP神经网络,这说明W-LSTM模型对处理数据的大幅波动有着更好的效果。
为验证W-LSTM模型的普适性,又使用辣椒、大葱、韭菜和西红柿4种价格数据来做为输入对三种模型进行对比实验,实验结果如表1、2。表中展示了3种模型分别在四种蔬菜上的预测结果评价指数,可以看出,W-LSTM比其他模型拥有更好的效果,同时说明了W-LSTM模型具有良好的普适性。
通过以上实验可以看出,W-LSTM模型准确率更高,拟合程度更好,同时具有良好的普适性。综合来看,针对农产品短期价格预测问题,WLSTM是一个很好的预测模型。
表1 MSE对比
表2 R 2对比
农产品价格与农民收入息息相关,也是国家决定相关政策的重要因素,对农产品价格进行精准预测对解决农产品供需问题,促进农业生产转型、和市场经济持续健康发展具有重要意义。本文针对农产品短期价格预测提出了一个W-LSTM预测模型,以历史价格信息与价格波动信息作为输入对模型进行训练,实现对农产品短期价格的精准预测。首先,将W-LSTM对波动较大、不平稳的数据进行处理,实验结果表明,W-LSTM对于该类数据具有更高的准确率;其次,将W-LSTM用于其他的农作物产品,实验表明,该模型比以往通用预测模型在数据上有更好的普适性。
在未来,计划将此模型应用到其他具有相同特征的预测问题,让波动较大、不平稳不再成为预测问题上的一大障碍;同时,提高模型的适应性,让模型可以处理更多通用问题,例如:天气信息、重大疫情等相关信息的处理。