APP下载

基于Prophet-BP模型的猪肉价格预测研究

2021-11-06辜丽川

黄山学院学报 2021年5期
关键词:预测值猪肉仔猪

叶 勇,许 潘,辜丽川,王 超

(安徽农业大学信息与计算机学院;国家农业部农业电子商务重点实验室,安徽 合肥 230036)

1 猪肉价格影响因素及波动特征

1.1 猪肉价格影响因素

1.1.1 国家政策

猪肉价格的波动受很多因素影响,在诸多因素当中政府部门对猪肉价格的调控具有相当大的作用。例如在2019 年12 月12 日中央完成40000 吨储备冻猪肉的投放工作,并在投放后的1 个月内流通到终端用户,此举是为了保障即将来临的元旦和春节猪肉市场供应量及稳定猪肉价格;2019 年9 月份开始猪肉及其相关产品都出现不同程度的涨幅,政府为了确保猪肉的稳定供应同时安抚广大养殖户,发改委表示要重点扶持生猪养殖户,预估投资达3亿元参与生猪养殖建设,同时对符合标准的养殖户进行补贴。这些政策有效地稳固了市场供给,安抚了民众情绪。2020 年年初爆发的新冠肺炎给猪肉市场带来了很大的影响,政府为了保障疫情期间的猪肉供应要求全国各地海关加速肉类产品的验收工作,全力保障猪肉进口工作。由此可见大多数猪肉价格波动的发生、结束及范围都是与国家政策紧密联系。国家政策的推出利于稳定猪肉市场从而使猪肉市场稳定发展。

1.1.2 投入成本

在猪肉价格的诸多影响因素中养殖户投入的成本也是扮演着非常重要的角色,尤其是最近几年仔猪饲养成本的不确定性使得猪肉价格的波动更加频繁。前期投入的成本主要是养殖户购买仔猪以及饲养仔猪所产生的成本,这其中仔猪的购买价格更是关键性因素,仔猪价格的浮动是导致猪肉价格变化的直接因素,因此仔猪作为成本对猪肉价格变化的影响需要着重关注。

1.1.3 饲料价格

养猪离不开饲料,这其中玉米和大豆在猪饲料中占得成分最大。饲料的价格提高导致生产成本就会相应的增加,则猪肉价格也会有提高。反之,饲料价格下降,猪肉价格的涨幅也会较小。饲料成本的高低,影响着养殖户的切身利益从而也会导致猪肉价格的波动。

1.2.4 突发事件

猪肉价格的平稳其实就是供求的平衡,如果有与猪肉相关的突发事情发生,就会打破这种平衡,或者短期类供应量急剧下降都会造成猪肉价格的不稳定变化。这类事件可以归结为:突发疫情、食品安全、自然灾害等。

最近两年我国的猪肉需求量都出现了小幅程度的下降,特别是去年我国猪肉的需求量同比下降为近几年之最甚至远超前几年,导致这种情况主要是因为2018 年突然来袭的猪瘟疫造成养殖户损失惨重从而市场猪肉供应量减少[1]。伴随着疫情的逐渐趋向稳定,2019 年10 月开始,政府部门开始启动生猪补栏周期。2020 年春节期间爆发了新冠肺炎疫情,春节期间所以正好是猪肉需求量比较大的时间段,但是因为猪本身不是病毒的载体,所以此次疫情对猪肉的供应产生了影响,但不会影响民众购买猪肉的意愿。

1.2 波动特征

1.2.1 季节性波动

根据消费习惯可以看出我国的肉类的消费趋势季节性变化比较突出,一般每年11 月到第二年1月是全年消费需求比较高的时间段,而且夏秋时期居民对肉类的消费需求清淡。在猪肉生产方面,由于在1-2 月出生的仔猪发病情况较多从而导致7-8月出栏量有所减少,因此导致后期猪价一般会出现上升趋势。考虑夏季温度比较高,生猪在运输途中容易出现意外情况,生猪往北方运的比较少,供应不足也是导致价格上涨的一部分原因。由于受消费、生产等方面季节性波动的影响,所以导致猪肉的价格变化也存在着一定的季节性。

1.2.2 节假日波动

节假日对肉类需求量会有明显增加的现象,中秋、春节等传统节日对猪肉价格市场的影响比较明显,通常价格的高点会在这些节日前后出现。比如春节前期,中国多地区有腌制猪肉的习俗,这时人们对肉类的需求量会增多,所以在春节期间,价格会比平时要有所提高。相比春节过后,节日性消费减少,因为春节提前预支了节后的部分需求,因此,节后普遍为消费淡季。

通过对猪肉价格影响因素和对猪肉价格波动特征进行分析,说明在市场经济条件下,猪肉生产的投入,以及国家的相关政策,疾病等,对猪肉的价格都是有影响的,玉米、豆粕、仔猪和新闻情感对猪肉价格的变化有着直接的联系,同时可以看出猪肉价格波动存在季节性和节假日效应。

2 Prophet模型理论

2.1 概念

以往的时间序列分析方法通常把时间序列分成季节项、趋势项和剩余项,但现实生活中的时间序列不仅包含季节项、趋势项、剩余项的影响,还存在节假日效应的影响。2017 年Facebook 开源了一套时间序列预测工具Prophet,它将以上4 点都考虑进去了。在大量统计数据的基础上,将时间序列的背景知识添加进去,让其对数据中的节日效应具有比较好的适应能力。Prophet 它是一个自加性的预测模型,由趋势项、季节项、节日项叠加组成,表示形式如下:

这里g(t)为趋势增长项,它体现了时间序列中非周期部分的波动情况。s(t)表示时间序列中的周期性变化,比如说以周、月、年为单位的规律性变化。h(t)为节假日项,表示假期或者节日等特殊时间点对时间序列值造成的影响。εt指剩余项或者误差项。

而Prophet 模型工作流程分为4 部分,Model‐ing:建立时间序列模型;Forecast Evaluation:模型评估;Surface Problems:呈现问 题;Visually In‐spect Forecasts:以可视化的方式反馈整个预测结果。整体可以看做分析师与自动化过程相结合的循环体系,是一种将问题背景知识与统计分析融合起来的过程,把相关的背景知识转换为合适的参数引入模型,提高了模型的准确性。

2.2 趋势增长项

趋势项是数据生成的关键部分,它体现了时间序列整体的波动趋势,同时对未来的走势进行预测。它是整个Prophet模型的核心部分,用来对序列中非周期性部分进行拟合,通过对数据中变化点的提取对序列的整体趋势走向进行检测。当该项的预测采用逻辑回归模型,如下式所示:

g(t)为增长趋势值,c是承载量表示该时间序列所能增长的最大值,与人口增长函数中人口容量c类似。k表示增长率,它的值越大增加速度也就越快,b为偏移量。根据公式可以看出,随着时间t的不断变化增长趋势值将越趋于c。

但在实际的增长模型里,承载量并不一定是常数,而且增长率也是会存在变化的情况。对于承载量并不一定是常数的问题,可以将承载量设置为随时间变化的函数:c(t)=k或c(t)=m*t+k。对于增长率可能随着时间变化的问题,可以通过给变点设置不同的增长率的方法解决。已知模型定义了增长率发生变化时对应的点为changepoints,用Sj表示。假设一个向量:δ ∈Rs,用δj表示在转折点Sj上增长率发生的变化,其他点的增长率为k,那么每个转折点上的增长率为,进而定义函数aj(t):

则t时刻的增长率为k+aj(t)Tδ。考虑到拐点造成的函数非连续性,对于偏置项应该做相应调整以连接每个分段最后的边界点,通过下式进行计算:

于是可以得到增长函数如下所示,实现目标序列增长的拟合:

另外,对于时间序列增长趋势为线性的,通常下面公式来定义增长函数:

δ为增长率的变化向量,δ ∈Rs,δ 服从拉普拉斯分布δ~Laplace(0,τ),参数τ负责控制增长率的调节强度。

2.3 季节周期项

随着每天、每周、每月或每年的不规则的周期性变化的现象,称作周期性变化。对于这些不规则的周期变化,有效地组合这些趋势对建模季节周期性的效果更好,并且对预测结果的准确度的提高有一定的帮助。为了拟合季节周期项用周期序列的傅里叶级数来构建灵活的季节分量,近似表达这个季节效应,如公式(7)所示。

上式中的P表示时间序列的变化周期,2n指的是期望在模型里使用这种周期的个数。N值的设定需要结合周期一起考虑,按照经验值,以年为周期的,设定P为365.25,N设置为10,以周为周期时,P设定为7,N则设置为3。这里的参数可以用列向量表示:β=,则s(t)表示为x(t)与一个参数向量β的点乘形式,如下式所示:

这里β服从β~Normal( 0,σ2)分布,用来提高季节性模型的平滑性,σ值的大小表示模型拟合时间序列中季节周期项的波动效果,越大则模型越能适应季节性波动,值设置的越小则周期性波动体现的越不明显。

2.4 假日和特殊事件影响

将可预计因素包括特殊事件和节假日以日期形式定义,通过事件和假日的唯一名称提供对应的自定义日期列表,以下统称为节假日。由于每个的节假日对时间序列的影响程度存在差异性而且存在的时间点也不一样,所以将它们看作是独立存在的。节假日的重要程度、时间长短,对它前后一段时间的影响也不一样,通过设置不同的窗口值来表示节假日之前和之后的影响。通过设置1个相应的指示函数用来表示节假日对时间序列的影响,同时设置1 个参数ki来表示节假日的影响范围。假设有L个节假日,那么,

其中,i表示为某个节假日,Di为该节假日的设置的窗口值。构建1 个含有特殊假日的时间列表,将其纳入模型。于是引入矩阵Z(t),是关于节假日及自定义的时间窗和特殊事件的特征矩阵。

参数k~Normal(0,v2),通过值的大小调节节假日对时间序列的影响程度,当节假日对时间序列走势影响越大,v值设置越大,否则相反,可以结合具体时间序列的相关背景进行调整。

3 结合舆情的猪肉价格组合预测模型构建

假设猪肉价格时间序列X,第一步运用Prophet模型对猪肉价格序列的长期趋势、节假日项和季节周期部分进行预测,预测结果为P(t)。原始价格序列值与预测结果P(t)相减获取差集e,则e=X-P(t),该序列包含了原序列中的随机非线性部分,这里考虑采用BP 神经网络模型来刻画其中的非线性关系,BP神经网络模型结合新闻情感序列等指标对差集e进行预测,预测结果记为B(t),t=1,2,3,…n,至此定义Prophet-BP组合预测模型为:

其中,t表示时间序列中预测值出现的时间,Y(t)表示Prophet模型和BP算法的预测结果通过相加得到的最终预测值。根据Prophet模型和BP神经网络的结合构建组合预测模型,充分发挥了它们的特点和优势,同时结合舆情的影响,减小最后的预测误差。

3.1 数据实验与分析

3.1.1 数据收集

从国家发展和改革委员会(https://www.ndrc.gov.cn/)、行情宝(http://hqb.nxin.com/hqb/index.sht‐ml)、中国养猪网(https://hangqing.zhuwang.cc/)以及其他参考文献资料进行数据的获取,收集仔猪,玉米,豆粕,猪肉(元/斤)2018-01-01~2020-02-29 集市平均零售价格,与获取的新闻情感序列结合,将收集的仔猪、玉米、豆粕、新闻情感序列、猪肉价格数据按照时间顺序排序作为实验数据[2,3]。

3.1.2 组合模型训练和预测

由理论知识可知,Prophet 模型可以将时间序列经过一些函数变换分解为不同时间维度的趋势,再通过叠加得到整体的变化趋势。本次实验第一步使用Prophet 模型对收集的数据进行模型的构建和价格的预测。首先初始化Prophet 模型并确定相关参数如表1所示。

表1 Prophet模型参数设置

在节假日项中设定2018 年1 月至2020 年2 月以来我国主要假日时间点,如表2所示。

表2 2018-2020年我国主要节假日

Prophet模型的输入项只有日期和价格,这里将原始猪肉价格数据分为训练集和测试集,2018-01-01~2020-01-30为训练集,2020-01-31~2020-02-29 数据为测试集,将2018-01-01~2020-01-30 的猪肉价格输入Prophet 模型进行训练,图1 给出了猪肉价格时间序列的分析结果,可以看出猪肉价格的变化趋势在12 月底至2 月初有明显峰值存在,而4 月至7 月有明显的下降趋势,这与现实生活中猪肉的价格变化规律是类似的[4]。

图1 猪肉价格组成分量

预测值的走势与历史的变化趋势、当前的价格走势都有较大的相关性,但同时也会被外界其他因素所影响,所以在Prophet 模型预测值的基础上,结合其他指标对猪肉价格的影响采用BP 神经网络对随机非线性部分进行预测。

在神经网络中不规则的数据在训练的时候可能会出现较大的误差,为了缩小了各个维度的差异,采用归一化的方法,使各指标数量级保持一致有利于提高训练的效果。归一化公式为:

上式中,minA是特征A的最小值,maxA为特征A的最大值,x是特征A的一个原始值,通过上式映射到区间范围为[0,1]的值x'。

已知Prophet模型的预测值,可以计算原始猪肉价格和Prophet 预测值的差值,将新闻情感序列、玉米、豆粕、仔猪的价格作为输入数据,原始猪肉价格和Prophet预测值的差值作为期望输出,使用三层网络结构构建模型。确定本次实验的输入节点为4,输出节点为1,在常用公式的基础上,经过多次调整测试确定此次BP模型的隐藏层节点数量为11个。

本次实验设置学习的速率为0.01,最小误差0.0001,最大迭代次数为10000。至此分别得到Por‐phet模型和BP神经网络的预测值,将两者相加后记为组合模型预测结果即为猪肉价格的最终预测值[5,6]。

表3 不同隐藏层节点数训练对比

表4 和表5 各列分别代表猪肉价格原始序列;Porphet模型对猪肉价格的预测值,Porphet-BP 组合模型对猪肉价格的预测值;Porphet-BP 组合模型结合情感序列对2020-01-31~2020-02-29 的30 天猪肉价格的预测结果以及各预测值和原始价格的相对误差。

表4 预测未来30天的价格

为了模型对中长期的预测效果,实验利用提出的组合模型对未来12个月的猪肉价格进行了预测,得出2014-01~2020-02 情感序列[7,8]。同时从中国畜牧业信息网(http://www.caaa.cn/)收集2014-01~2020-02 每月的去皮带骨猪肉(元/千克)、玉米、豆粕、仔猪的价格进行收集,用2014-01~2019-02为测试集,利用组合模型预测2019-03~2020-02 每月的价格,结果如表5所示。

表5 预测未来12个月的价格

3.2 实验结果

利用Prophet 模型去预测猪肉价格时间序列的趋势项、节假日效应和季节周期性的影响,用BP 神经网络去预测猪肉价格序列中的随机非线性部分,把两个方法的结果累加即为最终的预测值[9-10]。

选用均方根误差(RMSE)、平均绝对误差(MAE)作为Prophet-BP 组合模型的预测结果准确度的评判标准。预测值是真实值为yi,其表达式为:

表6 对30天预测值的精度评价

从实验结果可以看出,预测值与真实价格上虽然存在一定的差异,但Prophet-BP 组合模型的预测结果相对于单个模型预测结果在整体上精确度有所提高,说明Prophet-BP 组合预测模型的预测结果是相对有效的。同时在结合了舆情因素的影响后,无论是MAE还是RMSE指标,加入新闻情感序列后的模型预测效果更优,说明舆情指标对猪肉价格的预测是有影响的。

表7 对12个月预测值的精度评价

在对未来12个月猪肉价格进行预测时,对比单个模型和组合模型的预测结果可以看出,Prophet-BP 组合模型得到的预测值与真实值之间的误差有了较为明显的减少,同时组合模型在结合舆情的基础上,均方根误差减少了0.84,平均绝对误差减少了0.56,融合舆情的Prophet-BP组合预测模型,性能总体上取得了比较大的改善。

4 结语

结合舆情的Prophet-BP 组合模型在整体上对猪肉价格预测的准确度有了明显的提高,说明新闻情感可以作为一种衡量指标来预测猪肉价格的波动。从理论上说,组合预测模型可以通过初始值来预测未来任意时刻的猪肉价格,并对未来生产决策做出一定意义上的指导,但随着时间推移误差有增大的趋势,因为猪肉价格的浮动还受其他多种不可抗力因素的影响,比如食品安全事件、突发疾病等,都会对价格造成深远影响,所以很难使预测准确无误,预测方法还有待检验。

猜你喜欢

预测值猪肉仔猪
加拿大农业部下调2021/22年度油菜籽和小麦产量预测值
春季仔猪白肌病如何防治
猪肉将降到白菜价
仔猪强弱悬殊 要及时调整
秋冬季仔猪保暖措施有哪些
注意预防仔猪腹泻
±800kV直流输电工程合成电场夏季实测值与预测值比对分析
猪肉价格“落地”后怎么走?
AI讲座:ML的分类方法
近期猪肉价格上涨动力减弱