上海市老科学技术工作协会造船专业委员会
 

基于LSTM神经网络的月度售电量预测

发表时间:2020-09-30 08:11作者:沈澄泓,沈天翼来源:微信LJB 200929


基于LSTM神经网络的售电量预测

沈澄泓1沈天翼

1,浙江泛海智行电力科技有限公司浙江 杭州 310052


摘要:预测未来一个月的全行业售电量可以为财务制定“现金流预算计划”提供参考。电量预测虽然方法较多,普遍存在预测精度较低和稳定性较差问题。为提高电量模型预测的准确性,本文运用LSTM长短记忆神经网络ARIMA模型、Prophet模型,对绍兴地区高压用户的用电量进行一个月的短期预测,然后推算出未来一个月的全行业售电量。经过验证,LSTM模型预测误差在允许的范围之内。


关键词:售电量预测;LSTM;时间序列;ARIMA;Prophet


Monthly Electricity Sales Forecasting Based on LSTM Neural Network

Shen Chenghong1, Zhou Changxing1

Zhejiang Fanhai Zhixing Power Technology Co.,Ltd.,Hangzhou 310052, Zhejiang, China)


Abstract: Forecasting the electricity sales of the whole industry in the next month can provide a reference for the development of cash flow budget plan. Although there are many methods of electricity forecasting, the problems of low accuracy and poor stability are common. In order to improve the accuracy of model prediction, this paper used LSTM long and short memory neural network, ARIMA model and Prophet model to predict the power consumption of high voltage users in Shaoxing area in the next month, and then calculate the whole industry electricity sales of the next month. After verification, the prediction error of LSTM model is within the allowable range.


Keywords: electricity sales forecast; LSTM; time series; ARIMA; Prophet


0 引言

供电公司的财务部门在每个月的某个时候需要对本月3031天的全行业售电量做出预测,乘以电价得出售电量收入后,为制定“现金流预算计划”提供参考。绍兴作为新二线城市共有高压用户大约3万个,用电量占全行业用电量的80%以上。因此对高压用户的用电量进行准确预测,就可以把握全行业的用电量乃至售电量。


用上述公式先预测出某月的用电量,便可推算出这个月的售电量。供电公司希望短期的一个月的电量预测误差在2%左右,误差大于这个标准的预测是缺乏实际意义的。本文重点研究了用LSTM长短记忆神经网络来预测短期电量,并和ARIMA模型和Facebook的开源模型Prophet的预测结果进行比较。验算结果表明,只有LSTM模型的预测准确度基本达到了供电公司制定的标准。


1 数据获取和处理

随着电力行业SG-ERP的建设,电力行业的业务数据增长速度在不断提升,各种数据已积累多年。从平台中抽取绍兴2016年至2019年底的高压用户日用电量数据,用算法对2019年每个月的用电量做整月的预测,然后和已知的数据进行对比,判断预测的准确性。高压用户的电量数据分为8个区域,分别为诸暨、上虞、嵊州、新昌、市区服务区、柯桥服务区、袍江服务区客服中心,本文对8个区域的电量分别预测,然后汇总成整个绍兴市的电量。

在对日电量构成的时间序列进行预测之前,首先要对数据进行平滑处理。平滑处理的目的是把一些极大或极小或异常的日电量值替换成合理的电量值。异常值定义为小于α的日均电量或大于β的日均电量的电量值,例如α0.6,β1.3。由于日电量可以认为以7天为周期,异常电量值可以用7天或14天前后的电量来替代。测试结果表明,序列经过平滑后预测的精度要明显提高。


2 算法模型

    用三种时间序列预测模型LSTM神经网络、ARIMA模型、Facebook的Prophet模型来对绍兴2019年的各月用电量进行预测并比较结果。


2.1 LSTM神经网络

RNN循环神经网络能对时间序列进行预测,它本质上相当于全连接神经网络上加入了反馈机制,能对之前的信号进行处理,记住处理之后的状态,称之为记忆。RNN循环神经网络的结构示意图如图1所示。

图1:RNN结构示意图


LSTM长短记忆神经网络是在RNN循环神经网络上改进而来的,HorchreiterSchmidhuber于1997年相继提出。LSTM神经网络是由多个循环单元相互递归连接而成的,结构示意图如2所示。

2:LSTM结构示意图

       

LSTM的循环单元内部包括三个门结构,分别为遗忘门、输入门遗忘门的作用是选择出前一记忆状态应当保留的部分,通常由tanh函数实现;输入门可以决定用哪些信息来更新长期记忆状态,该阀门筛选出有用信息喂入网络,它通常由Sigmoid函数实现;最后一个是输出阀门,它置于网络的输出之后,可以自动提取输出信息中的重要部分,它也由Sigmoid函数实现。

HorchreiterSchmidhuber在他们的论文中已经通过实验验证了LSTM相对于RNN的优越性,主要体现在以下两点:1、LSTM引进的三种门控结构,可以学习到长期记忆信息,解决长时依赖问题;2、LSTM中的激活函数是sigmoid函数与tanh函数相结合,在反向传播求导时使得梯度几乎保持为常量,避免了梯度消失或爆炸,大大加快模型收敛速度。

本研究采用Python3.7Keras来实现LSTM神经网络,预测时间窗口设为60天,即用60天的日电量历史数据来预测未来一天的电量,样本的批量大小为128,第一隐含层和第二隐含层的神经元数分别为10和20,随机舍弃50%的神经元,损失函数为均方误差,优化器为rmsprop。LSTM神经网络在同一个训练集上每次训练的模型会有所不同,所以把样本按97%和3%分为训练集和测试集,在训练集上训练10个模型,选择在测试集上效果最好的那个用于预测整个Python算法程序的代码量超过1000行。


2.2 ARIMA模型

ARIMA模型,差分整合移动平均自回归模型,又称整合移动平均自回归模型,是时间序列预测分析的经典方法之一。ARIMA(q,d,q)中,AR是自回归,p为自回归项数,MA为滑动平均,q为滑动平均项数,d为使之成为平稳序列所做的差分次数(阶数)。


式中,;,为平稳可逆ARMA(p,q)模型的自回归系数多项式;,为平稳可逆ARMA(p,q)模型的移动平系数多项式。

用Python3.7statsmodels来实现ARIMA算法,用单位根检验来判断序列是否平稳,对不稳定的序列进行差分处理。此外设p和q的最大值为5,采用自动搜索使BIC最小的方法来寻找最优模型用于预测


2.3 Prophet模型

Prophet是Facebook开源的时序框架,Facebook表示,Prophet相比现有预测工具更加人性化,它使用起来非常方便,提供可手动调整的完全自动化的预测,且预测效果好。

对于一个给定的时间序列Prophet把它分为3个部分,趋势成分季节性成分节假日成分和不确定成分。即:


事实上,是Generalized Additive Model(GAM)模型的特例,但Prophet只用到了时间作为拟合的参数。Prophet模型比ARIMA模型更灵活、拟合快、不必考虑缺失值的填充问题。


2.4 节日期间的电量预测

节日主要是指具有较长连续假期的春节和国庆节等。每年国庆节的阳历日期都相同,而每年春节的阳历日期都不同因此预测变得更复杂。

2.4.1 春节期间的电量预测

由于春节特殊性,春节对附近月份电量的影响每年都是不同的,普通的时间序列算法都不能准确地预测春节期间的电量,因此本文采用分段预测的方法。下图3绘制了以20172018和2019的农历正月初一春节为基准绍兴上虞县春节前16天至春节后28天的用电量。可以清楚地看到,以农历为基准的春节期间用电量曲线基本吻合。2019年春节期间前后共45(16+28+1)天的用电量可以用前两年对应农历日期的平均电量乘以一个成长因子得出,这个成长因子可以是不同年份间春节前17天至47天的电量之比。45天之外的用电量仍然用算法如LSTM来预测。


图3:上虞县春节期间电量


2.4.2国庆期间的电量预测

国庆和春节不同之处是每年国庆大约7天假期的阳历都是相同的。一般用序列算法来预测国庆期间的电量通常预测地过高,所以国庆假期的电量可以用和预测春节电量相似的方法来估计。2019年国庆期间的电量等于前两年国庆期间对应日期平均电量乘以一个成长因子。


3 绍兴高压用户月度电量预测

对绍兴地区高压用户在2019/1-2019/12时段内12个整月的1号至月的电量进行预测预测时同时用LSTM、ARIMA和Prophet三个模型,每次都对8个区域的月度电量分别做预测,适用模型前都对数据做同样的平滑,最后比较3个模型的效果。


表1:LSTM模型预测误差(高压用户电量)



表2:ARIMA模型预测误差(高压用户电量)


表3:Prophet模型预测误差(高压用户电量)


    平均绝对误差是8个区域预测误差的绝对值的均值,区域电量汇总误差是汇总8个区域的电量真实值和预测值计算得到的误差。由于正负相抵,区域电量汇总误差一般要小于平均绝对误差。比较3种算法主要看的是表中所示的平均误差和汇总后平均误差,前者是12个平均绝对误差的均值,后者是区域电量汇总误差的绝对平均值。从表1-3可以看到,ARIMA模型的两个误差指标最差,LSTM模型和Prophet模型相比,Prophet模型的平均误差(3.1%)要小于LSTM(3.5%),但是LSTM的汇总后平均误差只有2.2%,要明显小于Prophet的2.6% 汇总后平均误差代表的是整个绍兴市电量的预测误差,因此更为重要,而且2.2%的误差和供电公司财务部所要求的月度预测误差在2%左右是基本相符的。另外值得注意的是2019春节期间(2019/2/1-2019/2/28)的区域电量汇总误差仅为-0.6%,这是令人满意的结果。

      为了进一步验证LSTM模型的预测效果,又抽取了绍兴市所有外贸企业2018/1-2020/6的日电量数据,采用和前文基本相同的方法对2019年6月至2020年5月时段内的12个整月的电量进行30天预测,预测区间为每月21号开始的30天结果表明除了由于疫情原因导致2020年1春节期间预测偏差较大外,LSTM对其余11月的预测结果都比较准确。

   

4:LSTM模型预测误差(外贸企业用户电量)


                         5ARIMA模型预测误差(外贸企业用户电量)


                        6Prophet模型预测误差(外贸企业用户电量)

      表4-6没有填入2020/1/212020/2/19的预测误差统计情况。从数据可以看出,LSTM模型的平均误差和汇总后平均误差最低。值得注意的是,表4中的LSTM模型的汇总后平均误差和表1中的高压用户预测的结果一样为2.2%,基本达到了供电公司期望的水平。

在月度用电量准确预测前提下,月售电量也能够较为准确地预测,从而帮助财务部门制定准确的“现金流预算计划”。


4 结语

     本文用LSTM、ARIMA、Prophet三种时间序列算法对绍兴高压用户的日电量进行了一个月的短期预测,结果表明LSTM模型的精度最高,达到了供电公司对电量预测精度的一般要求,因此可以在各供电公司进行推广使用。


推送:李金标 20-09-29