期刊信息
主办:中国动物学会;中国科学院动物研究所
主管:中国科学院
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);日本科学技术振兴机构数据库;中国科技核心期刊;期刊分类:生物学
期刊热词:
研究报告
基于季节分解和长短期记忆的北京市鸡蛋价格预(2)
【作者】网站采编
【关键词】
【摘要】1.1.2 北京市鸡蛋价格特征 2000年1月至2018年12月期间,北京鸡蛋价格总体波动中保持上升(图1a),2014年10月份左右鸡蛋价格达到最高点,随后在波动中稍有
1.1.2 北京市鸡蛋价格特征
2000年1月至2018年12月期间,北京鸡蛋价格总体波动中保持上升(图1a),2014年10月份左右鸡蛋价格达到最高点,随后在波动中稍有下降。考察整个价格区间,鸡蛋价格大体每28~36个月会呈现出一个倒U型的波动周期。但近年来,鸡蛋价格波动出现了新的变化:鸡蛋价格上升趋势不再明显,而是上下波动频繁;鸡蛋价格波动周期开始缩短,波动的幅度也越来越大。
北京鸡蛋价格有着明显的随季节变化的波动规律。将北京鸡蛋价格2000—2018年月度价格数据进行分割,按照每36个月为一组,共分为6组数据(图1b)。可以发现北京鸡蛋价格波动有着明显的季节性。每年的2、3月份鸡蛋价格开始下降,4、5月份鸡蛋价格降至低点,6、7月份之后鸡蛋价格逐渐回升,9、10月份鸡蛋价格达到全年高点。图2中各时间段的价格序列大体保持平行,表明北京鸡蛋价格的季节性波动并非偶然现象,且已多年表现出季节性波动特征。
图1 北京市鸡蛋价格Fig.1 Egg price in Beijing City
1.2 方法
1.2.1 价格预测方法
根据上述鸡蛋价格序列的非线性、季节性和周期性波动特征,提出了基于时间序列季节性分解方法(Seasonal-trend Decomposition Procedure Based on Loess,STL)和长短期记忆网络(Long-short Term Memory,LSTM)组合的鸡蛋价格预测模型STL-LSTM。首先对于给定的鸡蛋价格序列,通过STL模型将原始鸡蛋价格序列分解为趋势成分、季节成分和剩余成分3部分。其次用LSTM模型对分解后的鸡蛋价格波动趋势成分和剩余成分预测,季节朴素方法(Seasonal-na?ve, Sna?ve)对分解后的季节成分预测。最后,将预测得出的鸡蛋价格趋势成分预测值、剩余成分预测值和季节成分预测值相加求和,得到原始鸡蛋价格预测值(图2)。
图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函数完成分解任务。 文章来源:《动物学杂志》 网址: http://www.dwxzzzz.cn/qikandaodu/2021/0114/457.html