基于GRNN模型的安徽省生猪价格预测预警研究
2020-11-14程建华
程 硕, 程建华
(安徽大学 经济学院,合肥 230601)
0 引 言
从2018年8月开始,非洲猪瘟就在中华大地肆虐,并扰乱了中国猪市节奏。不同地域的生猪价格发生了翻天覆地的变化。为避免生猪间出现交叉感染,全国疫情省份如火如荼地开展扑杀生猪工作,生猪存栏量暴跌使得大部分地区卷入高价猪的风暴中。安徽省作为长三角地区重要的副食品供应基地,在这次风暴中也未幸免于难。截止到2019年11月,安徽省生猪价格高达35.6元/kg,比去年同期增长61.43%。[1]生猪价格的剧烈波动引发了居民对于生活保障的担忧和恐慌。然而,目前对生猪价格波动及预警研究多聚焦全国,区域性生猪价格波动及预警的工作开展较少。虽然中国生猪市场具有明显区域性,但可以通过研究地方生猪价格了解和掌握全国生猪价格动向,当地方监测生猪市场价格出现大幅波动风险时,对其进行提前感知并采用有效措施予以应对,以便及时向国家主管部门发出市场预警,减少经济损失。基于此,选取安徽省生猪价格作为研究对象并开展预警研究,以期通过监测安徽省生猪市场状况进而为长三角地区乃至全国生猪市场平稳健康发展提供解决途径。
1 相关研究文献评述
目前,国内外学者对生猪价格的研究主要围绕价格形成和传导机制、波动规律、价格预测和预警三方面展开。为深入研究受疫情影响下的安徽省生猪价格的未来变动,文章主要对生猪价格预测预警方面的文献进行梳理。在对猪产业价格的预测研究中,计量经济模型多为学者采用。Rezitis等[2]利用GARCH模型,得出影响希腊生猪价格的重要成本因素是饲料价格并验证了市场重要风险来源为生猪价格的不规则波动;Molina等[3]使用X-12-ARIMA模型研究菲律宾生猪价格后发现剔除季节波动后的价格的预测效果更好。近年来,随着生猪价格与其影响因素之间愈发明显的非线性关系,神经网络等机器学习算法开始在该领域崭露头角。曾弘[4]、陈悦等[5]、任青山等[6]在使用BP神经网络预测生猪价格都取得了较好的预测效果;平平等[7]采用灰色预测和BP神经网络组合对吉林省生猪价格开展预测,发挥了不同模型的组合优势;楼文高等学者[8]使用了GRNN神经网络模型预测上海市鲜猪肉价格时展现了神经网络在价格预测中的优势,但是选取指标过多,并没有挖掘出影响上海市猪肉价格的重要因素,容易造成过拟合现象的出现。
国内外学者目前针对生猪价格的预警研究较少,更多学者专注于鸡蛋、蔬菜等农产品价格的风险预警,并且重点关注全国范围的研究。唐江桥等[9]以生猪价格波动率作为警情指标,以CPI指数为基础确定警限预警,价格的影响因素考虑十分全面,但是其研究以年度为单位,不能在短期对生猪价格的波动进行预警。综合来看,现有生猪价格预警研究多基于系统动力学、VAR模型、支持向量机、BP神经网络、极值理论等实证方法[10-15],GRNN神经网络用于生猪价格的预警鲜有人涉足:付莲莲等[16]使用BP神经网络对以玉米价格、仔猪价格等6项指标作为输入和生猪价格作为输出的预警模型预警江西省生猪价格,取得了良好效果;刘全等[17]、刘小乐[18]等学者认为VAR模型能够较好的刻画生猪价格波动的风险,但是考虑到由于生猪价格周期性、时变性和高度非线性等特点的存在,VAR模型对生猪价格风险的刻画可能略显不足;许震宇[19]通过BP神经网络和支持向量机预警生猪价格时发现支持向量机的预警效果优于BP神经网络,但考虑到支持向量机的训练速度慢并且核函数的选取方法尚不成熟,可能会造成预警方面的偏差。
从内容上看,针对区域性生猪价格预测预警研究较少,研究指标参差不齐,很难遴选出影响生猪价格的重要指标;由于生猪价格受多方面因素的影响,部分学者基于生猪价格这一单独的指标进行方法性的预测可能略显片面;从方法上看,以往研究大多使用单一模型或模型的简单组合开展预测,不能避免模型自身存在的不足。基于此,首先选用Zou H[20]提出的自适应LASSO变量选择方法,在实现参数估计的同时收缩变量,从供给、需求和市场外部因素等方面全面选取了影响生猪价格的13个影响因素,并使用自适应LASSO变量选择的方法得出重要影响因素,然后借助时差相关分析找出先行、同步和滞后指标。但考虑到自适应LASSO方法在处理生猪价格及其影响因素之间复杂的非线性关系时稍有欠缺,最后为弥补这一缺陷在此基础上选用非线性拟合能力较强的神经网络模型开展预测预警研究并将两种方法结合,实现对生猪价格的预测并开展预警分析。
2 安徽省生猪价格形成机制及模型结构
2.1 生猪价格形成机制
蛛网模型能十分清楚地揭示价格的形成机制,生猪的供给和需求是生猪价格的主要影响因素,生猪疫情、环保约束及国际贸易战等外部因素对价格波动也有着推动作用。
(1)供给方面。近年来,生猪养殖成本持续走高,从仔猪哺乳期到育肥期生猪出栏大概需要半年,期间玉米、豆粕等生猪饲料的消耗成为影响生猪价格的重要成本因素。因此,主要饲料价格波动必然会影响生产成本,进而影响生猪价格;当生猪出栏量低,市场供应不足便会导致价格上涨,而养殖户往往会根据当期生猪存栏量,调整未来生猪出栏量进而影响生猪价格。此外,与运输成本息息相关的油价涨跌、养殖人工费和饲料费等成本的增加等也会对生猪价格产生影响。
(2)需求方面。替代品价格是影响生猪价格的又一重要因素。当生猪替代品牛羊肉等价格上涨时,百姓增加生猪的消费进而会影响生猪价格。同时受春节、冬至等节气的影响,猪肉需求的增加也会推动价格上涨;国家统计局数据显示2020年2月食品中的猪肉价格影响CPI上涨约3.19个百分点,猪肉价格的大幅度增加也是拉动CPI上涨的一大成因。
(3)市场外因素。国家政策和国际形势的变化也会对生猪价格的波动产生影响。一方面,国家加大养猪产业的财政补贴会提高养殖户的积极性,对于稳定生产具有积极作用。此外,因环保问题大量猪场被拆除也会在短期内带来生猪价格的波动;国际形势变动对生猪价格波动的影响也不容小觑:如中美贸易争端带来的中国买家取消大量美国猪肉的购买、限制大豆的进口等举措也会在一定程度上影响生猪价格。另外考虑到经济全球化的大环境下国际间进出口量的增加,汇率变动也会对生猪价格产生影响;疫情和自然灾害对生猪价格的影响更是不言而喻,2011年的口蹄疫、2018年非洲猪瘟等大型疫情的蔓延导致生猪死亡率增加,生猪价格波动剧烈。
综上,结合数据可得性,选择饲料价格(玉米、豆粕、育肥猪配合饲料价格)、仔猪价格、猪肉价格、替代品价格(活鸡、牛肉、羊肉、鸡蛋价格)、CPI、人民币实际有效汇率、生猪疫情宽度指数等指标纳入分析。
2.2 生猪价格波动的特点
考虑生猪价格具有明显的季节性,采用Census-X13对生猪价格进行季节调整,调整后的序列与未调整的生猪价格走势如下图1所示,显然,2011年之后价格波动的季节性波动愈加明显。
图1 安徽省生猪价格走势图与季节调整后的生猪价格走势(截至2019年11月)
2011年之前,生猪价格季节因子高峰往往出现在1月份,主要与2011年之前重大疫情事件接连不断有关(2003年猪流感、2006年蓝耳病、2010年夏季猪瘟、2011年口蹄疫和流行腹泻等),夏季生猪存栏量的减少对次年初生猪价格影响十分剧烈;此后一般每年5-6月份生猪价格的季节因子最小,每年9月份生猪价格季节因子最大,随后有下降趋势,但往往11月份之后,生猪价格季节因子会呈现短暂上升,但波动不大。总体来看,安徽省生猪价格波动较大,整体呈现上涨趋势并存在明显的周期性波动,2003年之前安徽省生猪价格较稳定,2003年之后生猪价格开始呈现较大波动,特别是2019年进入9月之后生猪价格更是一路飙升,最高达35.6元/kg(2019年11月)。
为深入挖掘生猪价格的周期性特征,接下来使用H-P滤波对循环趋势进行分解,具体如图2所示。由此可见安徽省生猪价格存在明显的周期波动,以“谷—谷原则”划分长周期,发现从2000年至今生猪价格共经历了10个完整的波动周期。目前安徽省生猪价格正处于第11个周期,并且还正处于上升阶段。在不同周期中价格波动振幅差异较大,平均波动周期为20个月。当前的第11个周期振幅较为剧烈并且直线上升。受非洲猪瘟、养猪场所的大批拆除、COVID-19影响,饲料运输成本加大带来饲料紧缺等因素的叠加影响使得生猪价格大幅上涨。面对波动幅度越来越大并且愈发明显缩短的周期趋势,剖析生猪价格波动背后机理并对价格预测预警便显得尤为必要。
图2 H-P滤波分解(截至2019年5月)
2.3 模型结构与基本原理
基于生猪价格影响因素之间的复杂性和高度相关性,选择以变量收缩和解决多重共线性专长的自适应LASSO回归,筛选影响生猪价格的主要因素。然后,考虑其与生猪价格之间复杂的非线性关系,选择使用神经网络方法预测生猪价格的变动情况,并在此基础上,选择生猪价格波动率作为警情指标对安徽省生猪价格波动开展预警分析。
2.3.1 主要因素识别过程
选择自适应LASSO回归进行生猪价格影响因素的识别,自适应LASSO(Adaptive The Least Absolute Shrinkage and Selectionator Operator)[20]回归算法是基于LASSO回归的改进,综合了岭回归和LASSO惩罚项,使一些不重要变量压缩为零,很好地解决了多重共线性的问题,同时可以很好地筛选变量。自适应LASSO回归相当于在回归方程的基础上加入了参数绝对值和的约束惩罚项,其表达式如下:
(1)
式(1)也可以等价写作:
(2)
其中,λ为正则化参数,λ值越大表示惩罚力度就越大,保留的变量也就越少,常用交叉验证(Cross Validation,CV)、赤池信息准则(Akaike Information Criterion,AIC)、贝叶斯信息准则(Bayesian Information Criterion,BIC)等方法选择λ。
2.3.2 生猪价格预测过程
生猪价格预测中,首先对单个选定的影响因素建立灰色预测模型,同时利用GRNN神经网络模型良好的非线性逼近功能建立训练模型,将GM(1,1)各因素的预测值带入训练好的模型中得到预测结果。广义回归神经网络[21,22](General regression neural network,GRNN)以径向基网络和非参数回归为基础,对生猪价格及其影响因素进行Parzen非参数估计并以概率最大化原则计算输出。
假设x,y是随机变量,其联合概率密度为f(x,y),已知x的观测为x0,y对x的回归为:
(3)
然后进行Parzen非参数估计估计密度函数f(x0,y),
(4)
其中,n为样本容量,p为随机变量x的维数,σ为光滑因子,也就是高斯函数的标准差。
最终,求解得出估算值见公式(5):
(5)
根据生猪价格影响因素,确定网络输入节点数为6;隐含层是径向基层,基函数为高斯函数;然后在加和层将对应权重与函数值相乘输出;输出层输出生猪价格估计值,即公式(5)。
3 安徽省生猪价格预测预警模型构建
结合前文分析和月度数据的可得性,选取生猪价格为因变量并将玉米价格等12个因素列为生猪价格的影响因素,同时经检验后将滞后2期的价格看作生产者预期纳入生猪价格波动的分析中,具体变量对应关系与数据来源如表1所示。
表1 生猪价格相关影响因素及数据来源
3.1 基于自适应LASSO方法的生猪价格主要影响因素识别
研究发现牛肉和羊肉价格的相关系数为0.955,玉米和育肥猪配合饲料之间的相关系数高达0.93,指标之间呈现高度相关性。在对自变量标准化处理并将因变量中心化后分别使用LASSO回归与自适应LASSO回归进行主要因素识别,变量压缩过程见图4和图5。其中LASSO回归通过交叉验证选择λ=0.666 67,剔除了育肥猪配合饲料和牛肉价格两个变量,测试集的RMSE=0.086 93;自适应LASSO回归下,结果显示调整参数γ=12.232。在AIC、BIC等准则下均显示豆粕价格、仔猪价格、CPI、人民币有效汇率、育肥猪饲料价格、牛肉价格、活鸡价格等7个变量被剔除,AIC准则下测试集的RMSE=0.084 401。
图4 LASSO变量压缩图
图5 自适应LASSO变量压缩图
从RMSE来看,自适应LASSO回归与LASSO回归的拟合能力都非常接近,但是自适应LASSO只使用了6个变量,而LASSO模型需要使用11个变量,从模型的简约性来看,自适应LASSO优于LASSO回归,因此选择自适应LASSO回归进行主要因素的识别。
3.2 基于GRNN神经网络的生猪价格预测
经主要影响因素筛选后,将筛选出的变量作为GRNN模型的输入,生猪价格作为输出建立预测模型。以2009年1月到2018年11月的数据作为训练集,2018年12月到2019年11月的数据用于测试集,给出未来两个月的生猪价格预测结果,使用交叉验证训练GRNN神经网络并通过循环迭代方法确定最优的拓展系数SPREAD值为0.2。其中自变量的预测值由GM(1,1)给出,预测精度等级显示为“好”,GRNN神经网络对生猪价格预测结果如图6所示。从图6可以看到测试集预测值和真实值之间相差较小,表明GRNN神经网络模型的样本外预测效果好,并且给出了2019年12月和2020年1月的安徽省生猪价格的预测值分别为33.905元/kg和36.504元/kg。从图7中预测趋势来看,未来几个月安徽省生猪价格还有持续走高的趋势。
图6 GRNN结果对比图
图7 各神经网络下结果对比图
国内学者付莲莲等[16]和吴培[23]分别利用BP神经网络和 RBF 神经网络模型很好地预测了猪肉价格。为验证模型的预测精度,接下来分别建立BP、RBF神经网络与GRNN神经网络模型对比,其中BP神经网络输入节点数为6,构建初始网络结构为6×10×1,根据结果逐步调整隐层节点数;RBF神经网络的SPREAD=250,神经元个数N = 5 000。最后训练得到三个组合模型预测对比结果见下表2所示。
表2 不同组合模型下猪肉价格预测误差结果
不论从绝对误差还是相对误差来看,GRNN神经网络模型在安徽省生猪价格预测方面均表现良好的效果,其相对误差仅为0.056%。图7为三种神经网络测试集预测价格与真实价格之间的对比图,三种神经网络的预测能力都较强,但从综合结果来看GRNN神经网络更优于RBF神经网络和BP神经网络。
3.3安徽省生猪价格预警构建
3.3.1警情指标和警限的确定
首先将对数差分后的生猪价格波动率作为警情指标,具体处理如下:
Rt=(LnPt-LnPt-1)*100
(6)
其中Pt和Pt-1分别为第t个月和第t-1个月生猪价格,Rt为生猪价格波动率。
然后对生猪价格波动率进行Kolmogorov-Smirnov正态性检验得出检验统计量为0.069,P=0.2>0.05,得出95%显著性水平下生猪价格波动率为正态分布的结论。然后根据3σ原理设定了生猪价格波动率波动的警限范围和警情状态,见表3。
表3 警限和警度
3.3.2 先兆指标的确定与预警结果分析
当发现优先或一致于警情指标变动对于预警来说才是有意义的。接下来基于自适应LASSO回归筛选出的6个影响生猪价格的重要指标,使用季节调整后数据取TC序列,并使用时差相关分析法,确定生产者预期、鸡蛋价格、玉米价格等作为先兆指标。
根据以上研究发现2018年12月之后安徽省生猪价格呈现大幅波动。因此,下面给出GRNN神经网络对于2018年12月到2019年11月的预测值和预警结果,从表4的预测结果来看,安徽省生猪的价格短期内还将处于较快波动状态。
表4 2018年12月到2019年11月安徽省生猪价格及预警结果 单位:元/kg
3.3.3 风险预警信号输出
为了直观的展示GRNN模型的预警效果,绘制出了安徽省生猪价格波动预警信号图,预警匹配的月份占总月份的比重为83%,该预警系统较为精确,见表5。此外,生产者预期、鸡蛋价格等先行指标的波动基本能预测短期生猪价格波动率的变化,具有良好的先行性。
表5 2018年12月到2019年11月生猪价格预警信号输出及评价
4 结 语
近年来,价格风险预警工作主要集中在鸡蛋、蔬菜等农产品领域,生猪产业预警的研究较为匮乏,且生猪预警的研究多锁定在全国范围难以分析生猪价格的区域性影响。基于此,结合自适应LASSO回归与GRNN神经网络开展预测预警研究,一方面使用自适应LASSO变量选择的方式从生猪价格的众多影响因素中挑选最为重要的影响因素规避模型过拟合的风险,另一方面综合神经网络在非线性问题处理上的优势,选择GRNN神经网络用于生猪价格的预警,取得了良好预警效果。随着数据的获取来源越来越丰富,学者对于非结构化数据的处理和研究越来越多,而与生猪价格有关的新闻评论、新闻文本类数据的加入,是否会进一步提高生猪预测预警精度还有待于进一步研究。