1. 引言
电力系统负荷(电力需求量,即有功功率)预测是指充分考虑历史的系统负荷、经济状况、气象条件和社会事件等因素的影响,对未来一段时间的系统负荷做出预测。负荷预测是电力系统规划与调度的一项重要内容。短期(两周以内)预测是电网内部机组启停、调度和运营计划制定的基础;中期(未来数月)预测可为保障企业生产和社会生活用电,合理安排电网的运营与检修决策提供支持;长期(未来数年)预测可为电网改造、扩建等计划的制定提供参考,以提高电力系统的经济效益和社会效益。
对此,很多学者和工程师对电力系统负荷预测做了大量的研究。常见的预测模型有基于统计模型,如时间序列预测、回归预测等,基于机器学习和深度学习,如支持向量积、随机森林等。Huang [1] 等人提出一种带分层规则的阀值的自回归模型对电力系统小时负荷需求预测,实验证明该方法提高了预测精度和可靠性。Lee [2] 等人采用提升方案和自回归综合移动平均(ARIMA)模型进行短期电力负荷预测,Chen [3] 等人首次研究非对称效应在负荷时间序列的应用,对比各种模型的预测精度,建立了基于多种非对称自回归条件异方差模型;Lloyd [4] 等人提出一种基于梯度提升机和高斯过程的短期电力负荷预测方法,该方法通过机器学习回归方法,极大地提高了预测精度。Yu [5] 等人提出了一种结合动态时间规整的递归神经网络,用于预测日高峰负荷。复杂多变的气象条件和社会事件等不确定因素都会对电力系统负荷造成一定的影响,使得传统负荷预测模型的应用存在一定的局限性。同时,随着电力系统负荷结构的多元化,也使得模型应用的效果有所降低,因此电力系统负荷预测问题亟待进一步研究。本文采用了机器学习算法、深度学习算法以及新的时间序列预测模型在某地区未来十天间隔十五分钟用电负荷的预测精度进行了比较,选取最优的模型来进行后续的预测工作。
2. 数据预处理
数据说明及预处理
针对不同问题选用不同时间段的样本数据进行数据集的划分。对于区域未来十天十五分钟负荷数据预测选近来6个月作为训练集,近来十天作为测试集;对于取悦未来三十天十五分钟符合数据预测选用近来18个月样本数据作为训练集,近来三个月作为测试集。对于不同行业未来用电负荷预测,根据时序图分析波动性与周期性,灵活选取训练集与测试集。同时将天气数据利用encoder编码与行业按日期数据合并,以作为行业数据预测的协变量。
3. 基于ARIMA模型的电力负荷的中短期预测
3.1. 模型数据的分析
对于时间序列数据 [6] ,我们首先观察序列的时序图、自相关图以及偏自相关图,见图1、图2、图3。
Figure 2. Sequence autocorrelation diagram
图2. 序列自相关图
Figure 3. Sequence partial autocorrelation diagram
图3. 序列偏自相关图
由于2021年5月份之前的数据有很多的异常值,经讨论认为,认为这些异常值可能是由于节假日或者极端天气的影响,但由于开始我们只是预测未来10天的数据,并且未来10天并没有节假日,因此我们决定只有2021年5月份以后的数据来拟合模型。
3.2. 问题一的模型建立与评价
观察该2021年5月份以后数据的时序图、自相关图、偏自相关图,见图4、图5、图6:
Figure4. Time sequence diagram of some data
图4. 部分数据时序图
Figure 6. PACF diagram of partial data
图6. 部分数据PACF图
从原始的时序图发现,序列的周期性很强,有明显的季节效应,趋势变化并不是很明显。因此本文第一步先常数使用ARIMA模型。
3.2.1. ARIMA模型
使用R语言的包forecast中的auto.arima函数拟合数据,得到ARIMA(3,0,1)模型。为了评价模型的准确率,本文把2021年8月15日以后的数据作为测试集,之前的作为训练集重新拟合模型,得到模型ARIMA(5,0,0),模型的在测试集上的效果见表1 (注MAE、RMSE、MAPE越小,说明模型对该数据来说越好):
Table 1. Indicators of the ARIMA model test set
表1. ARIMA模型测试集的指标
3.2.2. ARIMA加法季节模型
由于数据有明显的季节性因素,因此构建含有季节性的ARIMA模型。使用R语言的ARIMA函数拟合加法季节模型的ARIMA(4,0,5),其在测试集上的效果见表2:
Table 2. Indicators of ARIMA additive seasonal model
表2. ARIMA加法季节模型的指标
3.2.3. STL分解模型
使用R语言的STL函数,其中参数设置为s.window = 96,t.window = 25,t.jump = 1。得到序列分解图如图7:
模型预测的准确度 [7] 如表3所示:
Table 3. Indicators of STL decomposition model
表3. STL分解模型的指标
4. 基于机器学习算法的电力负荷的中短期预测
4.1. 模型数据的分析
经过对附件数据信息的预处理,对数据信息进行分析,首先有数据为2018年1月1号0点0分开始到2021年8月31号23点45分为止的每隔十五分钟的负荷数据,描述该地区在这三年多内用电量随时间的变化,画出其整体电力负荷随时间变化如图8所示(横坐标为时间,纵坐标为电力负荷即总有功功率):
从图8中可以发现,除去2018年中旬的一次断崖式下降和其他年份的小量突变点之外,负荷随时间的变化由很强的季节性,这也与实际十分相符,因为包括轻重工业在内的大部分工业在除每一天的工作时间、每一周的周一到周五以及法定工作日之外的休息时间其电力负荷都是非常小的,而这些工业用电是占据电力负荷的大头,因此进一步分析该时间序列的季节性主要包括哪些方面,我们分别画出来了该数据集最后十四天如图9所示(横坐标为时间,纵坐标为电力负荷划分的测试集),最后四个月的图像,如图10所示(横坐标为时间,纵坐标为电力负荷划分的训练集):
Figure 9. Time series for the last 14 days
图9. 最后14天时序图
Figure 10. Time series diagram from May to August 2021
图10. 2021年5~8月时序图
由此可以看出,该时间序列的季节性包括,每天,每周,每月以及相应大型节假日,因此,为使得机器学习的算法能够识别这些信息,我们需要生成天变量,周变量,月变量以及相应的大型节假日信息变量,因为机器学习的算法是无法直接从我们的时间序列中去获取这些信息的,需要把它们全不生成变量告诉它这些是负荷的影响因子,是这些季节性变量使得负荷数据响应产生部分变化,除此之外,也应该把时间序列的其他影响因素也以变量的形式“告诉”机器学习算法,例如时间序列中的趋势,随机性等等,把这些都生成变量,使得我们利用机器学习的方法对数据的拟合能更加准确。这也是能在时间序列的预测使用机器学习的方法的一种方法。
4.2. 模型建立与评价
4.2.1. 随机森林模型
通过对时间信息的变量化处理,我们得到了与该时间序列相关的日变量(以其十五分钟取样为周期的循环变量)、周变量(以周为周期的循环变量)、月变量(以月为周期的循环变量)后,我们根据前面对整体时间序列的分析,决定把训练集取2019年之后的数据集,由于是短期十天的预测,因此我们最终训练集只取了2020年1月之后的数据,再以最后十天的数据作为验证集,经过对随机森林模型里的一些调优参数的调整,建立随机森林模型 [8] [9] 对数据进行拟合,其最终的拟合效果如图11所示:
(注:横坐标为最后十天电力负荷记录次数,纵坐标为电力负荷总有功功率,红色线为预测值,蓝色线为真实值。)
Figure 11. Comparison of random forest test set predictions
图11. 随机森林测试集预测对比图
模型预测的准确度如表4所示:
4.2.2. GBDT模型
通过对时间信息的变量化处理,我们得到了与该时间序列相关的日变量(以其十五分钟取样为周期的循环变量)、周变量(以周为周期的循环变量)、月变量(以月为周期的循环变量)后,根据前面对整体时间序列的分析,决定把训练集取2019年之后的数据集,由于是短期十天的预测,因此最终训练集只取了2020年1月之后的数据,再以最后十天的数据作为验证集,经过对GBDT模型 [10] [11] 里的一些调优参数的调整,建立GBDT模型对数据进行拟合,其最终的拟合效果如图12所示:
(注:横坐标为最后十天电力负荷记录次数,纵坐标为电力负荷总有功功率,红色线为预测值,蓝色线为真实值。)
Figure 12. Comparison of GBDT test set predictions
图12. GBDT测试集预测对比图
模型预测的准确度如表5所示:
4.2.3. XGBoost模型
通过对时间信息的变量化处理,我们得到了与该时间序列相关的日变量(以其十五分钟取样为周期的循环变量)、周变量(以周为周期的循环变量)、月变量(以月为周期的循环变量)后,我们根据前面对整体时间序列的分析,决定把训练集取2019年之后的数据集,由于是短期十天的预测,因此我们最终训练集只取了2020年1月之后的数据,再以最后十天的数据作为验证集,经过对XGBoost模型 [12] 里的一些调优参数的调整,建立XGBoost模型对数据进行拟合,其最终的拟合效果如图13所示。
模型预测的准确度如表6所示:
(注:横坐标为最后十天电力负荷记录次数,纵坐标为电力负荷总有功功率,红色线为预测值,蓝色线为真实值。)
Figure 13. Comparison of XGBoost test set predictions
图13. XGBoost测试集预测对比图
5. 结论与反思
本文采用了ARIMA、机器学习算法对某地区未来十天间隔十五分钟用电负荷进行预测,并通过预测值和观测值的MAE、RMSE、MAPE对精度进行了比较,研究发现精度最好的为GBDT模型,所以最终选取GBDT模型来进行后续的预测工作。复杂多变的气象条件和社会事件等不确定因素都会对电力系统负荷造成一定的影响,使得传统负荷预测模型的应用存在一定的局限性。同时,随着电力系统负荷结构的多元化,模型应用的效果也有所降低,因此电力系统负荷预测问题亟待进一步研究。