基于BP 神经网络的煤炭价格预测研究
2021-01-29殷金恒
殷金恒
(沈阳理工大学,辽宁 沈阳 110000)
1 引言
第一次工业革命以来,煤炭一直是世界工业发展的主要能源,即使当今社会大力提倡发展清洁能源,煤炭仍然占据主导地位。每年都会因为种种原因导致煤炭的价格出现一定的波动,煤炭价格的变化不仅仅会影响自身行业的发展,同时也会导致部分相关的行业在其影响下出现一些问题。从2012 年以来,由于一些原因导致了煤炭的价格在整体上处于下跌的趋势,给很多煤炭方面的大企业造成了很大的困扰。中国作为发展中的大国,煤炭的供应量和需求量每年位居世界前列,因此对煤炭的价格进行研究尤为必要。
2 问题分析
影响煤炭价格的主要有煤炭的产量、进出口量、消费量、煤炭成本以及可替代能源石油的价格,运用主成分分析法先将原始数据进行标准化处理,再计算相关系数矩阵及其特征值和特征向量,最后确定主成分计算综合评价值,将因素进行排序。运用灰色预测和时间序列分解法进行预测,表格中的数据间隔为7 d,在预测未来31 d 的煤炭价格时,取2020-04 的数据进行插值,再使用灰色预测进行短期预测。未来35 周根据原始数据使用时间序列分解法先对月份进行预测,再通过插值得出周的预测数据。预测未来36 个月的煤炭价格时,将4 周的煤炭价格取平均值代表该月的价格,使用时间序列分解法进行预测。分析突发事件对每种价格影响因素的大小,对原数据进行预处理,将影响煤炭价格的因素作为输入层的输入向量,设立1 个隐含层,根据经验隐含层设定6 个神经元节点,煤炭价格为输出神经元,利用MATLAB 对神经网络进行训练,得到最终的预测结果。
3 模型的建立
将6 个煤炭价格的影响因素作为输入层,设定1 个隐含层,利用MATLAB 工具箱隐含层设定6 个单元,煤炭价格作为输出层;用数据对神经网络进行训练,训练过程中对神经网络进行修正,最后得到预测结果。
输入层由6 个煤炭价格影响因素组成,所以有3 个节点;输出层为煤炭价格,有1 个节点组成;隐层的个数由于没有统一的标准,以公式(m,n为输入层和输出层的节点数,a为1~10 之间的数)来确定,故设定1 个隐含层,隐含层内设定6 个单元。
取(-1,1)之间的随机数初始化网络权值w、阀值θ、输入学习速度γ、期望误差ε、输入原始数据矩阵a和目标数据矩阵T,计算出隐层各神经元的输出矩阵B和输出层的输出矩阵C:
当网络训练到平方和误差E<ε时,BP 神经网络的结构就真正确定下来。然后把检验样品输入网络与实际值进行比较,如果符合度不高,就重新训练,直到检验样品的训练结果和实际值符合度较高。这时再把测试样品输入神经网络即可得到结果。根据历史数据预测未来31 d、35 周、36 个月煤炭价格。
4 模型的求解
运用MATLAB 神经网络工具箱对未来一段时间煤炭价格进行预测,结果如图1 所示。
图1 预测值与真实值对比
利用MATLAB 神经网络工具箱作出所创建的神经网络的各个指标的图像,从图像中可以看出,网络在第三次迭代是已经达到最佳性能,停止训练而且训练网络的各个指标值已经达到设置值。通过图2 可以看出,每个R值都大于0.95,甚至有3 个达到1,R值越接近于1,预测值越准确,网络越性能良好。具体数据见如图2 所示。
进行BP 神经网络训练需要精确的数据作为保证,在很大程度上决定了网络的性能和精确度。但由于中国煤炭网暂未开放,网络数据部分缺失,本文选取的样本数量相对较少,因此,在一定程度上降低了BP 神经网络预测模型的精确度。在后续的研究中,需进一步完善样本数据,提高该模型的精确度。同时,在BP 神经网络的编程中,设置值也局限了网络的迭代的精确度,当指标达到设置值,网络就停止了训练,可以通过改变(提高或降低)设置值来提高网络的精确度。
图2 检验指标R 值
5 结论
从模型所考虑到的影响因素分析,对于该问题所建立的模型只考虑了6 个主要影响因素,忽略了其他方面的影响因素,或许其他的因素中有对煤炭价格影响相对比较显著的部分。综合以上预测分析可以得出:未来一段时间内,中国的煤炭价格相对稳定,在502~602 元/t 间波动,年初煤炭价格较高,年底价格相对较低,因此建议相关企业可以考虑在年底进行采购,由此也可以推断出煤炭的股市也相对平稳。