期刊信息
主办:中国动物学会;中国科学院动物研究所
主管:中国科学院
ISSN:0250-3263
CN:11-1830/Q
语言:中文
周期:双月
影响因子:0.467105
数据库收录:
文摘杂志;北大核心期刊(1992版);北大核心期刊(1996版);北大核心期刊(2000版);北大核心期刊(2004版);北大核心期刊(2008版);北大核心期刊(2011版);北大核心期刊(2014版);北大核心期刊(2017版);农业与生物科学研究中心文摘;化学文摘(网络版);中国科学引文数据库(2011-2012);中国科学引文数据库(2013-2014);中国科学引文数据库(2015-2016);中国科学引文数据库(2017-2018);中国科学引文数据库(2019-2020);日本科学技术振兴机构数据库;中国科技核心期刊;期刊分类:生物学
期刊热词:
研究报告
基于季节分解和长短期记忆的北京市鸡蛋价格预(7)
【作者】网站采编
【关键词】
【摘要】图2 鸡蛋价格预测流程Fig.2 The procedure of egg price forecasting 1.2.2 结果验证方法 本文选取了相对误差(Relative Error,RE),均方根误差(Root Mean Square Error,RMS
图2 鸡蛋价格预测流程Fig.2 The procedure of egg price forecasting
1.2.2 结果验证方法
本文选取了相对误差(Relative Error,RE),均方根误差(Root Mean Square Error,RMSE)以及平均绝对百分比误差(Mean Absolute Percentage Error,MAPE)来评测预测模型的准确性,其各自计算公式如下
式中为价格真实值,为价格预测值,为数据个数。以上3个评价指标的误差值越小,则表示模型预测的准确性越好。
2 模型构建
2.1 鸡蛋价格STL分解模型
STL是一种时间序列分解方法,由Cleveland等发展的时间序列数据的滤波季节分解方法,可以稳健处理任何类型的季节性数据[48]。STL与传统季节性分解技术(例如X-12-ARIMA和移动平均比率方法)不同,其在处理时间序列数据时少数异常观测值不会影响模型对趋势周期和季节性因素的估计。
以t=1、2、3...n表示时间,记为原始鸡蛋价格序列,为鸡蛋价格趋势成分,为鸡蛋价格季节成分,为鸡蛋价格剩余成分。鸡蛋价格分解的STL模型可表示如下
STL分解由2个递归过程(内部和外部循环)组成,每一次内循环都会更新鸡蛋价格季节和趋势成分一次,而每次的外循环都会计算用于下一轮内循环的稳健权重。在内循环中,记和是第k次迭代结果,第k+1步为
1)=-;
2)利用loess平滑器对进行平滑。得到平滑后的循环子序列:;
3)使用低通滤波器处理和loess平滑器处理,输出剩余趋势;
4)去掉平滑后的循环子序列的趋势得到季节成分=-;
5)去季节性=-;
6)使用loess平滑器对上步中获得的进行平滑,以获得趋势分量;
在内循环完成之后,鸡蛋价格就分解出季节和趋势成分,经式(5)鸡蛋价格剩余成分。由此鸡蛋价格就被分解为季节成分、趋势成分和剩余成分3种成分。
2.2 STL模型参数选择
STL函数进行序列分解时,需要确定如下6个参数:每个循环中的观测值的数量;内部循环的迭代数量;外部循环的迭代数量;暂定季节序列的平滑参数;低通滤波器的平滑参数以及平滑参数。
依照Cleveland等的研究和鸡蛋价格序列的特征[48-49],对参数进行如下设置。
鸡蛋价格为每年完整的12个月的数据序列,因此选择=12;内部迭代次数为1;外部迭代次数为6;反映的是季节的周期,对于月度数据而言=12;需被确定为奇数且大于等于,因此=13;参照式(6)应大于等于最小奇数整数值,参照参数和的设定值,则=21。
使用RStudio软件环境中“stats”库中的STL函数完成分解任务。
2.3 鸡蛋价格LSTM预测的模型
2.3.1 LSTM模型原理
LSTM(Long-short Term Memory)长短期记忆网络是由Hochreiter等提出的一种时间循环神经网络,通过对传统循环神经网络(Recurrent Neural Network,RNN)的改进,解决了标准RNN的梯度消失问题,实现信息的长期记忆。目前,LSTM模型已经成为深度学习框架中广为应用的预测模型,在很多领域应用效果突出[50-52]。
LSTM 深度神经网络使用特殊的 LSTM 结构替换了一般的递归神经网络的隐藏层神经元(图3)。LSTM 结构包含遗忘门(forget gates)、输入门(input gates)、输出门(output gates)。在处理鸡蛋价格数据时,LSTM首先通过遗忘门来决定细胞状态中鸡蛋价格中的哪些信息需要保留和丢弃,该门会读取和,输出一个在0到1之间的数值给每个在细胞状态中的数字。1表示“完全保留”,0表示“完全舍弃”。是前一个LSTM单元输出的价格值,是当前时间步的价格输入值,是前一个LSTM单元的记忆,为激活函数sigmoid。具体的计算公式为
表示遗忘门的状态计算结果,和分别表示遗忘门的权重矩阵与偏置项。
其次是确定什么样的鸡蛋价格新信息被存放在细胞状态中。输入门包含2个部分。第一,sigmoid层称决定什么值将要更新。第二,一个tanh层创建一个新的候选值向量,并被加入到状态中。其计算过程为
表示sigmoid 层决定出的更新信息,表示tanh 层创建的新向量的状态计算结果,、、、分别表示输入门的权重矩阵与偏置项。
将旧细胞进行更新,将更新为。其计算公式为
最终,由输出门确定输出鸡蛋价格的预测值
表示经sigmoid 层确定的细胞状态的输出部分,表示最终输出结果。
2.3.2 LSTM模型搭建
本次研究的程序开发环境为Jupyter Notebook(python 3.7),使用Keras提供的LSTM神经网络模型。结合鸡蛋价格序列分解后的趋势序列和剩余序列特征及LSTM的设计原则,本次研究的LSTM模型包括输入层、隐藏层和输出层3个基本模块。输入层对鸡蛋价格的趋势序列和剩余序列进行初步的处理以满足模型输入的要求;隐藏层构建LSTM细胞链路形成网络;输出层获得预测结果。
文章来源:《动物学杂志》 网址: http://www.dwxzzzz.cn/qikandaodu/2021/0114/457.html