基于LSTM神经网络的三七价格指数预测△
2019-05-13李飞飞宋庆燕陈长秀刘佳泽高雪岩
李飞飞,宋庆燕,陈长秀,刘佳泽,高雪岩,2*
1.北京珍宝岛中药产业有限公司,北京 100800;2.中国中药协会中药材种植养殖专业委员会,北京 100700
三七是常用大宗中药材之一,为五加科人参属植物三七Panaxnotoginseng(Burk.)F.H.Chen的干燥根和根茎[1]。现代研究表明三七具有抗衰老、抗疲劳、抗缺氧、降血压、降血脂、降血糖和提高机体免疫力等药理作用[2]。三七临床应用广泛,近年来需求量不断增加,目前三七年需求量约25 000 t。
近年来,市场炒作、种植农户不了解市场信息等原因为部分中药材投机商提供了机会,对中药材市场价格波动起到了推波助澜的作用。市场的波动造成药农和中药材经营者亏损严重,种植和经营积极性下降,进一步影响下游中药饮片和中成药企业的稳定生产,影响行业的健康可持续发展。对三七价格进行预测,可以帮助药农和中药生产企业合理决策,引导三七产业健康有序发展,成为一个重要的研究课题。
目前,中药材相关的预测模型建设已有部分研究。马健[3]基于时间序列对亳州的白芍产量进行了预测分析。冯烽等[4]基于灰色系统对中药材罗汉果价格进行了预测。王诺等[5]等基于自回归积分滑动平均模型对中药材三七价格预测。马广慧等[6]基于遗传BP神经网络的三七价格预测。马健等[7]基于遗传模拟退火三次指数平滑模型对中药材价格进行了预测。这些信息预测模型均只考虑了待预测量的历史数据对其未来数据的影响,没有考虑到影响待预测量变化的其它因素,而对于中药材价格而言,其价格变化必然与供需、成本、宏观经济环境等各种因素密切相关,缺少这些因素的预测存在很大局限性。常征宇等[8]研究了各类因素对中药材价格的影响,并获得了各类因素对中药材价格变化的贡献度,但是未给出各因素与价格之间的定量关系。杨勇等[9]从市场角度分析中药材价格的影响因素,建立向量自回归模型(VAR模型),并运用脉冲响应和方差分解定量方法分析这些影响因素作用的大小,利用已知数据对中药材价格指数进行价格预测,但是模型对3个季度以后价格的预测精度急剧下降。
循环神经网络RNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络。与传统的神经网络相比,RNN的特点在于将时序的概念引入到模型的设计中,RNN网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。这一特点使得RNN能够很好的应用于时序输入序列的预测。LSTM(Long Short Term)神经网络是RNN的一种特殊形式,利用LSTM模型学习长期依赖信息,在很多应用中取得了巨大成功。本研究拟首先分析影响三七价格波动的外在因素,并分析各影响因素的相关性,进行影响因素的筛选后引入LSTM模型,以多种影响因素的时间序列作为模型输入,对三七价格进行预测。
1 LSTM神经网络
LSTM是RNN神经网络的一种特殊类型。RNN神经网络由输入层、隐藏层、输出层组成,其中隐藏层接收本个序列以及上一个序列通过RNN隐藏层计算后输出的结果,实现时间序列的历史信息通过隐藏层计算后与新一期的序列值共同作用于隐藏层,形成新的输出。如图1、图2所示,RNN结构按照时间线展开可以更清楚的看到RNN的结构。
图1 RNN神经网络结构图
图2 RNN神经网络沿时间维度展开
假设RNN的输入层大小为I,隐层大小为H,输出层大小为K。输入层、隐藏层、输出层的向量序列分别表示为:x1,x2,x3…xt;b1,b2,b3…bt;o1,o2,o3…ot。图2中xt为输入序列x的第t项输入,at为第t项的隐藏层的输入,bt为第t项隐藏层的输出。at由第t项输入层的xt以及第t-1项的隐层输出项bt-1共同决定:
(1)
(2)
其中ωih、ωh′h分别为输入层和隐藏层间的权重矩阵、前项隐藏层输出传输到后项隐藏层输入间的权重矩阵,mh为隐层偏置,f(x)为隐层激活函数,常见的激活函数有Sigmoid,双曲正切函数tanh等。第t项隐藏层输出bt传导至输出层,输出层的输出为:
(3)
其中ωhk为隐层到输出层权重矩阵,nk为输出层偏置,g(x)为输出层激活函数。
对于长期依赖问题,理论上RNN能够处理无限长的时间序列数据,但是实际应用中,常常存在丧失学习到连接较远的信息的能力的情况。LSTM作为RNN的一种特殊类型,改进了RNN的结构,通过构建特殊的控制单元解决了长期依赖的问题。LSTM存储和计算模块内部结构的核心思想是将历史信息作为细胞状态在一条专门的信息传送路径中传播,信息受较小干扰,容易保持不变。图3为LSTM的一个存储处理单元的基本结构,其中的忘记门读取ot-1和xt的信息并输出信息以决定选择忘记bt-1的某些信息,输入门确定什么样的新信息被存放在细胞状态中;输出门确定何种信息被输出。
图3 LSTM神经网络存储处理单元
2 数据准备及预处理
2.1 三七价格波动影响因素分析及数据准备
三七价格波动的影响因素包括宏观因素、微观因素以及各类突发类事件因素[10-14]。宏观方面,国家的经济发展水平、三七所处的医药行业发展水平、国家的宏观货币政策等是影响价格波动的中药因素;微观方面,三七的供需和成本是影响价格波动的关键因素;除此之外,三七价格的波动还受到一些突发事件的影响,如三七为原料的新产品开发、相关疫病流行、国家政策变化等。
本研究基于北京珍宝岛中药产业有限公司提供的三七2006—2018年在全国范围内的产量、需求量、库存量、成本、全国种植面积、亩产量等数据,并从官方网站获取年度居民消费支出、月度全国中成药产量、月度货币供应量数据建立基于LSTM的价格预测模型,用以预测三七价格走势。
根据珍宝岛中药材大数据中心提供的数据,2017年全国三七产量在15 000 t左右,三七的年需求量在25 000 t左右,目前年用量以10%~20%递增,预计2018年三七的用量在27 000 t左右。三七种植成本目前为32 000元/亩左右。三七2006—2018年间产量、需求量、种植面积、亩产、种植成本数据见表1。
表1 2006—2018年三七供需及成本数据
本研究使用的宏观数据如年度居民消费支出、月度全国中成药产量、月度货币供应量均来自国家官方统计数据。
三七产新期固定,在产新期前后存在价格的明显波动,因此本研究最后引入月份作为三七价格波动的一个重要影响因素。
市场上三七的规格较多,其中出现最多的规格有:20头、40头、60头、80头、120头、无数头等,不同规格的三七价格存在较大差异。本研究采用珍宝岛中药材数据库中三七的价格指数数据,此指数综合了三七各个规格的价格。2006—2018年部分三七价格指数见表2,三七价格指数变化趋势见图4。
表2 2006—2018年部分三七价格数据
图4 三七价格指数变化趋势图
2.2 影响因素特征选择与归一化处理
本研究通过对影响三七价格变化的宏观、微观因素进行分析,初步确定使用产量、需求量、种植面积、亩产、成本、中成药产量、货币和准货币(M2)、居民消费支出、月份共9个维度的影响因素。
高维数据建模增加了模型的复杂度,降低了算法的泛化能力,增加了算法的搜索难度。建模前进行特征选择,消除冗余数据,有利于提升模型性能。本研究通过分析影响因素间相关性进行影响因素选择。
图5为三七的产量、需求量、种植面积、亩产、成本、中成药产量、货币和准货币(M2)、居民消费支出8个因素的相关性分析。从图中可以看出,中成药产量、货币和准货币(M2)、居民消费支出这3个宏观因素间存在明显的线性相关性。因此从3个因素中任意剔除其它2个因素,本研究剔除中成药产量和居民消费支出2个因素,最终保留三七的产量、需求量、种植面积、亩产、成本、货币和准货币(M2)、月份作为模型的输入变量。
完成特征选择后,对筛选后的特征进行归一化处理。本研究采用min-max标准化方法,即通过下列公式对数据进行标准化处理。
(4)
3 预测模型构建
基于上述算法说明与数据准备,本研究构建了基于LSTM的三七价格指数预测模型。其预测流程主要包括数据预处理、影响因素筛选、数据归一化处理、基于LSTM的三七价格指数预测模型建设、训练、模型测试和应用几个部分,见图6。
图5 影响因素间相关性分析
图6 影响因素间相关性分析
数据的预处理包括数据获取后对缺失值、异常值的基本处理,模型的构建和训练过程中不断检测模型的预测精度,如果精度达到要求则进入下一步模型测试阶段,精度未达到要求则通过增加训练次数、调整模型参数等直到模型达到精度要求。
4 结果与分析
本研究使用2006—2017年数据作为模型的训练数据,使用2018年数据作为模型的测试数据。基于LSTM的三七价格指数模型建立后,针对测试数据进行模型预测效果测试。
图7中实线为真实价格指数数据,虚线为拟合数据和预测数据。2018年的价格预测结果如图7所示。
图7 三七价格预测
从表3中可以看出,模型预测2018年三七价格指数数据的波动范围在206~306之间,全年价格呈现先涨后跌态势,总体比2017年略有下跌。对比2018年三七价格指数实际波动情况可以看到,预测结果能够很好的拟合三七价格变动的整体趋势。2018年上半年前期2—3月份略有上升,之后缓慢下跌。预测精度上,预测值与实际值最大误差为13.01%,最小误差为2.36%。
表3 模型预测2018年三七价格数据
此外,图7还展示了应用此模型另外对2019年上半年的三七价格进行预测的结果,2019年上半年的预测价格见表4。从表4中可以看出,2019年上半年三七价格范围处于216~236之间,整体上在年初略有上涨,3—4月份之后呈现缓慢下跌趋势,三七价格指数在2019年波动较为平缓。
表4 模型预测2019年上半年三七价格数据
5 结论和讨论
三七作为我国传统名贵中药材,是很多经典名方以及大品种中成药的重要原料,其功效也受到消费者越来越多的认同。近年来,三七的价格在市场需求、资本炒作等多方面因素的影响下,2013—2014年出现了大涨大跌,价格的非正常波动造成药农盲目进行种植扩张,继而造成供需不平衡,影响三七相关产业的健康发展。通过科学方法对三七的价格进行预测,进而指导三七药材的生产者和经营者作出正确的生产经营决策,能够有效抑制投机,保证市场健康稳定运行。
通过上述的实验数据表明,LSTM神经网络应用于三七价格指数预测取得了较好的效果。分析主要原因在于三七等中药材价格变化为典型的时序序列,历史价格对当期价格的影响较大,而LSTM神经网络对历史信息处理的典型优势特别有利于三七价格指数的预测。
本文建立的价格指数预测模型也可以引入到其它中药材价格预测,通过信息化、智能化高效利用市场宏观数据和微观数据,有利于达到提高资源配置有效性和保证市场健康运行的目标。