基于小波变换的Bi-LSTM-TCN短期电价预测
2024-01-08竺筱晶薛睿萌
竺筱晶, 薛睿萌
(上海电力大学数理学院, 上海 201306)
1 引言
近些年来,我国电力体制不断改革。2021年9月,绿色电力集中交易正式达成,各个市场主体可以直接参与交易,在相对自由又充满竞争的交易环境下,参与者希望得到最精准的预测电价来做出合理决策,达到收益最大化[1]。目前,我国新能源技术得到快速发展,发电水平不断提高,新能源发电成本低且绿色环保,未来将会成为电力系统稳定运行的主要力量[2]。而当前,大多数研究者仅考虑天气、电力负荷、日常活动强度等对电价的影响,没有考虑到新能源对电价的影响。
迄今为止,对短期电价进行预测的方法主要有时间序列法和机器学习法等[3]。时间序列方法易于搭建模型,但仅考虑了时间对电价的影响,没有考虑到其他影响因素,且不能容纳大量数据的输入,无法深入了解特征的具体波动情况,所以预测精度普遍较低。机器学习方法能够缓解特征难以提取的问题,提高模型泛化能力,但对于时序数据之间的关系挖掘不足。
相比于上述方法,深度学习方法对图像、语音等数据的处理方面具有良好的应用效果,能够缓解特征难以提取的问题,同时也可以弥补机器学习方法泛化能力差的难题,因此逐渐成为研究者用于时间序列预测的方法[4]。文献[5]对比了七种基准模型,证明长短期记忆网络(Long Short-Term Memory, LSTM)的预测准确率最高。但LSTM对于较长时间序列,会遗忘较早的信息,从而学习不到数据的全部内容[6],因此双向长短期记忆网络(Bi-directional Long Short-Term Memory, Bi-LSTM)作为LSTM的延伸被提出,它可以考虑到数据的全局信息,避免时序数据太长而遗忘较早的内容。文献[7]运用时间卷积网络(Temporal Convolution Network, TCN)预测电力负荷,证明了TCN可以解决深层网络学习的退化问题。文献[8]利用小波包分解序列,建立双重注意力机制的TCN进行预测,获得更高的预测精度。文献[9,10]分别用奇异谱分析和小波包对原始数据进行处理,改善了模型框架,说明对数据进行信号处理可以提高模型的有效性。文献[11]建立基于注意力机制的门控循环单元(Attention Gated Recurrent Unit, Attention-GRU)模型对电价进行预测,但没有考虑新能源发电量对电价的影响。文献[12]针对含高比例风能和太阳能的电力市场建立预测模型,但没有对电价的不同影响因素进行分类特征提取处理。
综上所述,本文提出一种基于小波变换的Bi-LSTM-TCN的模型,对含高比例风电新能源的DK1市场进行短期电价预测。首先运用离散小波变换(Discrete Wavelet Transform, DWT)对原始数据进行分解,并对重构后的子序列进行相关性分析,得出影响各子序列的主要因素;然后对于主要影响因素为负荷的子序列建立基于Bi-LSTM和深度神经网络(Deep Neural Networks, DNN)的Bi-LSTM-DNN模型进行预测,对于主要影响因素为风电量的子序列建立Bi-LSTM-TCN模型进行预测;最后叠加各子序列预测结果得到电价预测值。实验结果表明,相较于一些其他模型,该方法具有更高的预测精度,为电力市场交易中的参与者提供一定参考。
2 预测模型原理
2.1 离散小波变换
傅里叶变换作为早期的信号处理方式应用广泛,但不能处理非平稳的信号,所以在此基础上延伸出小波变换[13]。小波变换又分为连续和离散小波变换。因本实验用到的数据是按小时记录的,所以采用离散小波变换,公式如下:
(1)
式中,α0为尺度参数;τ0为平移参数;m、n分别为缩放和平移参数;ψ*(x)为复共轭函数;f(t)为时间序列。
运用不同的小波基得到的分解结果不同。对于时间序列数据来说,采用3~5层Daubechies小波函数的效果最好[14]。本文经实验对比最终选取db5进行3层小波分解重构。对原始电价序列进行DWT得到的时频图如图1所示。
运用皮尔逊相关系数法(Pearson Correlation Coefficient, PCC)分析每条子序列中影响电价的主要特征。计算结果见表1,其中A3和D1的主要影响因素为风力发电量,D2和D3的主要影响因素为负荷。计算过程如下:
表1 各子序列r值Tab.1 r value of each subsequence
(2)
式中,E(x)、E(y)分别为x和y的期望。
2.2 Bi-LSTM神经网络
Bi-LSTM由前向LSTM和后向LSTM组合而成[15]。LSTM的遗忘门ft用来忘记上一时刻记忆细胞中不重要信息,输入门it控制输入,输出门ot控制输出,由值域为[0,1]的σ激活函数计算得出。计算过程如下:
ft=σ(Wxfxt+Whfht-1+bf)
(3)
it=σ(Wxixt+Whiht-1+bi)
(4)
ot=σ(Wxoxt+Whoht-1+bo)
(5)
(6)
(7)
隐藏状态ht是通过输出门对记忆细胞的控制来进行输出。计算过程如下:
ht=ot⊗tanh(Ct)
(8)
式中,Wxf、Whf、Wxi、Whi、Wxo、Who、Wxc、Whc为权重;bf、bi、bo、bc为偏置。LSTM的内部结构如图2所示。
图2 LSTM单元结构Fig.2 Unit structure of LSTM
对于t时刻的输入,Bi-LSTM计算过程如下:
(9)
(10)
(11)
图3 Bi-LSTM 结构Fig.3 Structure of Bi-LSTM
2.3 TCN网络
TCN是一种基于卷积神经网络(Convolutional Neural Network, CNN)的新型网络结构,其特殊性在于以一维卷积神经网络为基础,结合了因果卷积、扩张卷积和残差连接,在对时间序列数据预测方面有着良好的效果[16]。
TCN的核心是扩张因果卷积[17]。因果卷积即第i层的输出a仅与第i-1层a及其以前时刻的值有关。扩张卷积即卷积时对输入数据间隔采样,计算过程如下:
(12)
式中,*为卷积运算;f:{0,…,k-1}为卷积核;d=[1,…,2L]为空洞参数。
扩张因果卷积的结构如图4所示,本文设置参数为d=1,2,4,8,16,k=3。随着层数增加,d通过指数级增长以较少层数获得更大感受野,同时降低网络复杂度。
图4 TCN扩张因果卷积结构Fig.4 Dilated causal convolutional structure of TCN
TCN的感受野取决于网络深度n、k和d,当捕获更长时间序列数据之间的关系时,TCN模型采用残差模块使前一层的误差直接传入后一层。TCN的残差模块如图5所示。
图5 TCN的残差模块结构Fig.5 Residual module structure of TCN
3 DWT-Bi-LSTM-TCN预测模型
电价、负荷和风力发电量都具有波动性和随机性,属于非平稳序列,而深度学习对这类序列具有较高的适应性。其中,负荷的多少不仅与当前温度、日类型等因素有关,还与消费者心理、用户响应程度有关[18],而用户的消费心理受目前和未来一段时间电价、政策等因素的影响,所以当前以及未来时刻的部分因素共同影响负荷。Bi-LSTM对数据进行双向学习,同时捕获历史以及未来时间序列中的全部特征,在对由负荷影响电价的序列进行预测时具有较高的预测精度[19]。而风力发电量的多少主要与当前时刻的风速、风能密度、环境温度等因素有关[20],因此TCN的扩张因果卷积结构恰是符合对由风力发电量影响电价的序列进行预测。
因此,对DWT后的子序列进行了PCC分析,对于主要影响因素为负荷的子序列D2和D3建立Bi-LSTM-DNN预测模型,对于主要影响因素为风电量的子序列D1和A3建立Bi-LSTM-TCN预测模型。
Bi-LSTM-DNN预测模型先是对输入的数据集进行双向学习,从而更好地记忆较长时序数据的内部变化规律,再用经过Dropout处理的DNN提取数据更深层次的特征,防止模型过拟合,并减少训练时间,提高模型的拟合能力。
Bi-LSTM-TCN预测模型运用Bi-LSTM对输入的电价和负荷数据集进行双向学习,运用TCN捕获历史风电量的变化特征,最后进行电价预测。
综上所述,本文建立DWT-Bi-LSTM-TCN模型预测电价,预测模型的基本框架如图6所示。
图6 预测模型流程Fig.6 Process of predictive model
具体步骤如下:
(1)运用PCC分析法对多维输入特征进行筛选,计算各影响因素与电价之间的相关性,选取相关性值较高的特征作为实验数据集。
(2)对所选特征进行数据预处理,离群值用阈值替代,缺失值采取均值插补法进行填补。
(3)对预处理后的各特征分别进行小波分解和系数重构,得到含有不同频率的多条子序列,按照频率相关性进行序列重组。
(4)对重组后的4组序列分别进行最大最小归一化处理,将数据缩放到[0,1]之间,避免各个特征在数值上的差别过大而导致预测误差增大,计算过程如下:
(13)
式中,xi为原数据;x′i为归一化数据;xmin为最小值;xmax为最大值。
(5)得到4条处于不同频率的组合序列,运用PCC分析影响每条序列的主要因素,对主要影响因素是负荷的序列建立Bi-LSTM-DNN模型,对主要影响因素是风力发电量的序列建立Bi-LSTM-TCN模型。
(6)独立构建并训练模型,对4条序列分别进行电价预测,将预测结果反归一化处理。
(7)叠加各子序列的预测值,得到最终的预测电价值。
4 基于DWT-Bi-LSTM-TCN的电价预测
4.1 数据来源与预处理
本文数据采集于含高比例风电新能源的北欧丹麦DK1电力市场,丹麦实施风力发电最早,是风电占电力消费比例最高的国家之一[21]。数据从2021年1月21日到3月21日,以小时为记录单位,共1 440条数据,前936条为训练集,后48条为测试集,中间456条为验证集。其60天的电价曲线如图7所示。从图7中可以看出,电价曲线波动幅度较大,有时候会出现极大值和极小值,属于非平稳序列。
图7 DK1电价曲线Fig.7 Electricity price curve of DK1
采集的原始数据包含历史电价、历史负荷、历史风电发电量、历史交易量、日期和温度等,并引入外部变量风荷比,即风能与负荷的比值[22]。由于影响电价的因素较多,在预测中会出现维度灾难问题,所以运用PCC计算电价与其影响因素之间的影响因子,筛选出相关性较高的特征,从而防止过拟合。计算结果见表2,选取绝对值在0.5~1.0之间的影响因素,包括电价、负荷、风电和风荷比。
表2 电价序列r值Tab.2 r value of electricity price series
对原始数据进行预处理,避免在采集时出现人为因素、设备故障等问题,从而确保数据的有效可靠性。对于缺失值本文采取均值插补法进行填补,对于离群值用阈值代替。
4.2 误差评价指标
本文以均方根误差(Root Mean Square Error, RMSE)和平均绝对误差(Mean Absolute Error, MAE)为评价指标,计算过程如下:
(14)
(15)
式中,yi为实际值;y′i为预测值;T为测试集总数。
4.3 实验结果与对比分析
为验证本文方法的有效性和泛化性,进行了四个维度的对比实验,分析评估模型的性能。
4.3.1 模型性能分析
为了验证本文所建立的预测模型的有效性,根据DWT-Bi-LSTM-TCN得到4种变体模型:
(1)Bi-LSTM。在本文模型的基础上去掉了小波变换和TCN网络,仅对原始数据集进行数据预处理,然后运用Bi-LSTM模型对4条子序列进行预测。
(2)Bi-LSTM-TCN。在本文模型的基础上去掉了小波变换部分,即预处理后的数据直接参与模型训练与预测,不经过小波分解与系数重构。
(3)DWT-Bi-LSTM。在本文模型的基础上去掉了TCN模型,对预处理后的数据进行小波变换后,只通过Bi-LSTM模型进行训练和预测,不特殊考虑发电量对电价的影响。
(4)DWT-Bi-LSTM-TCN。对数据进行小波变换,运用Bi-LSTM-TCN模型进行预测,即本文建立的电价预测模型。
得到的各模型的电价预测结果曲线如图8所示,预测结果误差见表3。由图8和表3可知:
表3 变体模型预测误差Tab.3 Prediction error of variant model
图8 变体模型预测曲线Fig.8 Prediction curve of variant model
(1)DWT-Bi-LSTM-TCN模型的预测曲线最接近原始电价曲线,模型误差最小,RMSE和MAE分别为3.081和2.588,整体预测结果优于其他模型。主要原因是在预测前用DWT对数据进行频率信息的提取与重构,然后构建Bi-LSTM-TCN模型,其中Bi-LSTM对长时间序列有较强的记忆能力,TCN针对风电量对电价的影响做预测。
(2)Bi-LSTM模型最简单,未对数据进行小波变换提取频率信息,仅对数据进行单个模型电价预测,预测误差均最大。表明预测前的数据处理及组合模型对模型预测很重要,DWT-Bi-LSTM-TCN模型相较于此模型,RMSE、MAE分别降低42%和37%。
(3)与Bi-LSTM-TCN模型相比,本文所建模型对数据进行了离散小波变换,预测效果有明显提升,RMSE和MAE分别降低了37%和29%。实验结果表明DWT通过提取数据中的不同频率信息,形成多条子序列,针对不同序列建立不同模型进行预测,可以更好地拟合到数据的变化规律,从而提高电价预测精度。
(4)与DWT-Bi-LSTM模型相比,本文针对新能源发电量对电价的影响,建立TCN网络进行预测,改善了预测效果,RMSE和MAE分别降低了25%和22%。
4.3.2 不同模型对比分析
为了进一步说明本文模型在电价预测中的优势,选取现有论文中的模型CNN、3L-GRU[23]和CNN-LSTM[24]与本文模型进行对比。得到各个模型的电价预测结果曲线如图9所示,对比各个预测模型的预测误差如图10所示。
图9 对比模型预测曲线Fig.9 Prediction curve of contrasting model
图10 不同预测模型的预测误差值对比图Fig.10 Prediction error of contrasting model
由图9和图10可知,本文建立的预测模型误差评价指标最小,预测曲线最接近原始电价曲线。其中,CNN作为单一模型进行预测效果最差;3L-GRU模型由于层数的增加,训练模型的内存开销增大,易产生过拟合的现象,所以预测误差偏高;CNN-LSTM利用CNN提取特征,LSTM进行预测,但LSTM无法考虑到时序数据中较早的信息,CNN进行卷积运算时会发生信息泄露的问题,所以相比于Bi-LSTM-TCN的预测结果仍有不足。
4.3.3 不同输入特征对比分析
电价受多个特征的影响,为了验证不同特征对电价预测的影响,共建立了3种模型进行实验对比,模型分别包含不同的输入特征,具体输入输出形式如下:
(1) A模型。输入特征为前一天24个时刻的电价、负荷、风电量和风荷比,输出当天0点时的电价,以此类推,得到24个时刻的电价。即本文所选取的全部特征。
(2) B模型。仅输入电价和负荷进行预测,输出形式与A模型相同,即不考虑风电和风荷比对电价的影响。
(3) C模型。输入电价、负荷和风电量数据集,输出形式相同,即不考虑风荷比对电价的影响。
运用DWT-Bi-LSTM-TCN模型对含不同输入特征的3个模型进行电价预测,记录总的预测结果误差值,以及对4条子序列的预测误差值并进行对比分析。电价预测结果的RMSE见表4,预测结果的MAE见表5。
表4 不同输入特征的RMSETab.4 RMSE for different input features
表5 不同输入特征的MAETab.5 MAE for different input features
由表4和表5可知,A模型考虑了全部的输入特征,预测结果误差最小,RMSE和MAE分别为3.081和2.588。与B、C模型相比,RMSE分别降低了25%和14%,MAE分别降低了24%和12%。其中B模型仅考虑电价和负荷两个特征,其预测结果误差最大,说明风电新能源对电价预测的重要性;C模型的预测误差介于A模型和B模型之间,说明风荷比对电价的预测也存在一定的影响。由此验证了新能源并网会对电价的走势产生影响,对由风电量影响的电价序列做独立预测可以提高预测准确性。
4.3.4 不同数据集对比分析
为了验证所提出的电价预测方法的泛化性,选取北欧丹麦DK2电力市场2020年12月27日~2021年1月31日的数据集进行实验,DK2与DK1电力市场相似,具有较高的风力发电量。电价预测结果曲线图如图11所示,预测结果误差见表6。
表6 DK2预测误差Tab.6 Prediction error of DK2
图11 DK2预测曲线Fig.11 Prediction curve of DK2
从图11和表6中可知,在各模型对DK2电力市场的预测结果中,DWT-Bi-LSTM-TCN模型的预测误差最小,RMSE和MAE分别为2.682和2.109,预测曲线图与原始电价曲线图最接近。实验结果表明,本文所建立的模型预测效果最好,从而进一步验证了该方法的普遍适用性,具有较好的泛化能力。
5 结论
针对风电新能源影响下电价预测难度增大的问题,提出了一种基于小波变换的Bi-LSTM-TCN的短期电价预测模型。首先采用DWT把各特征按时间和频率进行分解重构,充分提取出原始数据的变化特征;然后运用PCC对各条子序列进行相关性分析,对于受不同因素影响的序列建立不同模型;最后对电价进行预测。在北欧丹麦DK1电力市场数据集上进行仿真实验,结果表明,相比于其他预测模型,该模型的RMSE和MAE分别降低了25%和22%以上;通过输入不同特征、在不同数据集上进行对比分析,证明了本文在考虑风电新能源影响下所建立的模型,有较好的泛化能力,有效提高了电价预测精度,为电力市场交易中的参与者提供一定的参考。
目前,我国电力现货市场处于起步阶段,电价是整个市场运作的关键因素,建立电价预测模型并准确预测电价是电力市场各参与方密切关注的问题。与此同时,我国新能源发电水平不断提高,以化石能源为主体的电力系统也将逐步转变为以新能源为主体的新型电力系统。新能源并网将会对电价的波动产生一定的影响,而目前考虑新能源发电量对电价影响的研究较少。
今后工作将会进一步考虑到节假日、太阳能发电量等因素对电价的影响,运用深度学习算法挖掘各特征变换规律以及与电价之间的关系,并尝试加入其他预测模型进行组合,基于更复杂的环境建立电价预测模型,从而提高电价预测精度。