附录A 时间序列的平稳性检验
如第5.1节所述,平稳性是时间序列分析和预测的一个重要性质,尤其适用于应用ARIMA模型(第9.4节)。由于仅凭时间序列图并不容易判断序列是否平稳,因此通常应用统计检验来提供进一步的支持证据。本节简要讨论一类特定的平稳性检验:单位根检验。
增广迪基-福勒检验(ADF)和Phillips-Perron单位根检验是两种最常用的平稳性检验。考虑一个简单的ARMA模型
$$\begin{aligned} \hat{L}_N= \sum _{i=1}^{p} {\psi _i}{L_{N-i}}+ \sum _{j=1}^{q} {\varphi _j}{\epsilon _{N-j}}, \end{aligned}\tag{A.1}$$
则序列 $L_{1},L_{2},\dots,$ 是平稳的,如果多项式所有根的绝对值
$$\begin{aligned} 1 - \sum _{i=1}^{p} {\psi _i}x^{i}, \end{aligned}\tag{A.2}$$
都大于1(参见[1])。该方法检验原假设“存在单位根”是否成立。其核心概念是平稳序列(即没有单位根)应回归均值,因此滞后值应能指示预测序列变化的相关信息。具体细节超出了本书范围,但这些检验本身通常包含在各种软件包中,因此相对容易应用。这些软件包通常给出可以拒绝原假设的显著性水平。关于假设检验基础的更多信息,请参见入门教材如[2]。
附录B 用于能源预测的天气数据
天气被认为是预测能源负荷最重要的变量之一,这是因为许多家庭行为与电器设备都与天气相关,例如:
当天气过冷时,暖气会被打开。
在温暖的国家,如果天气变得过冷,空调也会被开启。
云量的多少决定了太阳能光伏发电的发电量。
多种天气变量的组合可能改变其影响。例如,当湿度较高时,温度效应可能会加剧。因此,人们实际感受到的温度会更高,从而可能在较低的实际温度下就开启制冷设备。然而,正如第14.2节的案例研究所显示的,这种影响可能出乎意料。该案例研究表明,将温度作为输入并未能产生更精确的低压负荷预测,这表明温度并非电力使用的决定性因素。文中给出了可能的解释,特别是英国(数据所在地)目前大多数供暖由燃气提供,因此相比电供暖的住宅,受温度变化的影响较小。不过,行为模式总是在变化(第13.6.3节),随着热泵的普及,电力负荷很可能越来越与天气效应(尤其是温度)相关联。
: 由于天气与负荷之间存在潜在强关联,本章简要概述了天气与天气预报的一些概念。讨论了一些主要变量及其可能呈现的不同形式。对于天气预报,本节简要讨论了其生成方式,以便读者理解可能的误差与不确定性来源。
B.1 天气变量与类型
第6.2.6节已简要介绍了一些用于负荷预测的主要变量,包括温度、风速、湿度、太阳辐射、能见度。然而,其他变量如降水量和气压也可能有用,因为不同天气变量之间存在相互依赖关系,可能产生多种影响。需要指出的是,气象学本身是一门非常复杂的学科,大多数数据科学家对天气与气候科学的了解有限。因此,如果预测者希望引入更复杂的天气变量或由其推导出的派生变量,最好咨询该领域更为专业的人士。话虽如此,上述标准观测变量通常足以用于短期负荷预测,额外的特征可能仅能带来微小的精度提升。本节将讨论在模型中使用天气变量时需注意的几个特征。
首先要了解的数据单位。尽管数值天气中心通常对其变量使用标准单位¹,但常见的变体并不总是清晰明了。最明显的是温度采用摄氏度还是华氏度(甚至可能是开尔文),这取决于所在国家。气压数据尤其令人困惑,可能以帕斯卡(国际单位制)、大气压、巴、PSI(磅每平方英寸)或牛顿每平方米表示。
每个变量通常都有多种变体,其中一些可能根据应用和上下文比另一些更为有用。例如,欧洲中期天气预报中心(ECMWF)为每个变量提供了大量选项²。即使是像温度这样“显而易见”的变量,也有众多可选方案。此外,辐射等变量还有诸如长波辐射、入射短波辐射、全球水平辐照度、直接法向辐照度等变体。尽管主要数值天气预报中心提供了指导,但对于新手而言,任务仍可能令人望而却步。通常,使用在特定地点直接记录的观测数据更为简便。对于负荷预测,地表温度与风速(通常分解为两个正交分量)通常尤为重要。然而,即使使用这些数据,在如何使用及预处理方面也有若干考虑(见下文及第B.2.2节)。
虽然预报数据通常为小时分辨率(观测数据可能更频繁),但天气变量的报告形式也可能不同。一些值是每小时瞬时测量得到的,而另一些变量则是整个小时的平均值。处理平均值时需谨慎,必须明确用于计算最终平均值的是哪个小时区间:是时间戳值之前的那个小时,还是之后的小时,亦或是由该值前后各半小时的值构成?这可能对如何在模型中使用该变量(例如,使用滞后值)产生影响。瞬时变量也可能存在问题,因为记录时刻的数据相对于该小时的其他时间可能较为异常。
需要注意的是,存在许多不同的天气产品,但它们通常分为三种主要形式:
- 观测数据:顾名思义,这些是根据各种传感器观测到的数值。这些数据可能来自气象站、漂流浮标、卫星或飞机。
- 预报数据:这些是通过将观测数据与大气预报模型相结合而生成的。附录B.2将更详细地描述这些内容。
- 再分析数据:在预报时限过后,预报模型可以利用实际观测数据进行重新优化,从而有效估计过去的气象状态。
与在预定义网格上定义的预报数据不同,观测数据的位置可能集中在特定区域,因而可能远离目标站点。这意味着,即使气象变量与需求高度相关,与站点的距离也可能导致观测变量对模型无用。
如果存在多个观测站点,那么某个站点可能比另一个站点更能改进模型,或者通过组合它们可以得到改进(第13.1节)。另一种选择是包含所有变量,并使用诸如LASSO之类的方法来选择最合适的变量输入(第8.2.4节)。还需注意,由于滞后效应,气象时间序列的滞后值可能对预报模型有用(特别是当气象变量与需求站点不在同一位置时)。
B.2 数值天气预报
制作天气预报的过程称为数值天气预报(NWP)。世界各地有许多中心生成天气预报,但其中许多至少部分由政府资助。³ NWP是一个计算开销很大的过程,因为它需要优化包含许多变量的成本函数。本节将进一步深入探讨天气预报过程及其理解方法。
B.2.1 天气预报是如何生成的
天气预报将大气模型与观测数据以及对大气当前状态的先验猜测相结合,以找到大气当前状态的最优估计。然后通过预报方程将这个当前状态向前演化,以估计大气的未来状态。寻找大气最优状态的过程称为数据同化,下面将进行描述。
大气模型本质上是一组偏微分方程,包括流体动力学、热力学和海气相互作用。这些方程必须根据观测数据进行训练,以便为感兴趣区域内的每个网格点生成未来几天(通常以小时为分辨率)的多个气象变量的预报。许多NWP中心必须生成整个地球的预报。事实上,网格点不仅位于经纬度点上,还在地表以上多个高度层上。这意味着预报模型必须求解一个状态空间,其阶数至少为 $10^{8}$ 。问题是观测数据的数量通常比这个少一个或两个数量级(比如 $10^{6})$ )。因此,该问题是欠定的。为此,需要先验猜测来提供整个状态空间的估计。
数据同化的一种主要形式是四维变分数据同化。它本质上是一种带有正则化项的最小二乘估计(第8.2.1节),可以写为
$$\begin{aligned} J(\textbf{x}_0) = \frac{1}{2}(\textbf{x}_0-\textbf{x}^b_0)^TB^{-1}(\textbf{x}_0-\textbf{x}^b_0) +\frac{1}{2}\sum _{k=0}^N(\mathcal {H}_k(\textbf{x}_0)-\textbf{y}_k)^T R_k^{-1} (\mathcal {H}_k(\textbf{x}_0)-\textbf{y}_k) \end{aligned}\tag{B.1}$$
这里的目标是找到使上述成本函数最优化的初始状态 $\mathbf{X_{0}}$ ,其中:
• $\mathbf{x}_{0}^{b}$ 是初始状态的初始先验估计,也称为背景场。这通常是之前的预测值,也可以是气候学估计。
· $\mathbf{y}_{k}$ 是预测区间内时间步长 k 处的观测值。
• $\mathcal{H}_{k}()$ 是天气预报模型与观测算子的组合。它将当前估计 $\mathbf{X_{0}}$ 演化到时间步长 k,然后将状态转换到与观测变量相同的位置和类型。
B 是背景误差的误差协方差(第3.3节)。
• $\mathbf{R}_{k}$ 是观测值的误差协方差。
因此,数据同化是一个非线性优化问题,其中一个分量衡量观测值与当前猜测的模型预报之间的差异,另一个分量衡量先验猜测与当前估计之间的差异。背景项作为正则化项(第8.2.4节),填补观测值的缺失。协方差矩阵作为优化的权重,使得模型/估计更接近更精确的值。

观测算子 $\mathcal{H}_{k}()$ 值得更详细地考虑。注意,观测值不在网格点上,而且通常观测值甚至不是感兴趣的量(温度、压力等)。许多观测来自卫星,这些卫星记录跨越大气多个层次的信息。这意味着观测算子必须插值到相同位置,并转换为可与感兴趣的状态变量进行比较的变量。
图B.1 展示了单个网格点上单个变量的数据同化过程。最终估计的确定使得其演化状态最接近准确的观测值以及先验估计(背景场)。未来状态通过将模型进一步向前演化生成。天气预报模型通常通过考虑技能评分(第7.4节)来评估。
值得注意的是,天气预报通常不是每小时更新。数值天气预报计算相对昂贵,因此通常每六小时更新一次。因此,某个小时的预报可能来自不同于另一小时的模型运行。
再分析数据本质上是观测值的预报模型等效物。这是指在历史观测值上重新训练数据同化过程,以创建所有网格点上状态值的最佳估计。如果预报数据不可用,则再分析数据可作为负荷预测模型的替代输入,但应注意在实际应用中只有预报数据可用。
B.2.2 预处理
天气数据跟大多数数据一样应该进行预处理。由于天气预报是在网格上定义的,这也引入了其他预处理方法,这些方法对于大多数时间序列数据可能无法实现。下面列出了一些利用天气数据改进负荷预测的预处理方式:
• 偏差校正:与任何预测一样,天气预报模型可能仍然存在一些偏差。在用于负荷预测模型之前,应纠正这些偏差,以减少最终模型的误差。概率天气预报的校准可能复杂得多。本书[3]详细研究了这一主题,提出了几种校准概率预测的方法。
网格点选择:由于天气预报是在网格上定义的,因此可以使用特征选择方法(如LASSO,第8.2.4节)来选择哪个网格点产生最佳的预测。
• 网格组合:正如单个预测模型可以通过组合得到改进(第13.1节),天气预报也有可能通过组合附近网格点来改进。
• 单个时间序列内的特征工程:指数平滑是一种有用的特征工程技术,因为在负荷预测中使用时,它可以考虑温度对负荷的延迟效应。对于建筑负荷预测,这会创建一个同时考虑热惯性的变量。文献[4]给出了一个使用指数平滑处理温度的示例。
使用多种不同天气变量的特征工程:可以组合天气变量来生成对负荷预测可能有用的新变量。两个常见的派生值是风寒指数和湿度指数,它们比单独的温度能更好地表征体感的冷热。例如,风寒指数考虑了风速和温度的综合效应。在寒冷天气中,较高的风速会使体感温度比风速较低时更冷。这种更高的风寒可能转化为更多家庭开启暖气,从而导致更高的低压负荷。同样,高湿度会使高温感觉比低湿度时更热。
跨网格的特征工程:一个位置周围的网格数据点所包含的信息远多于简单的平均。网格间的变化提供了进一步的信息,并描述了区域内的一些动态特性。Browell和Fasiolo在文献[5]中使用特征提取技术生成概率净负荷预测。他们从网格数据中推导出最大值、最小值和标准差等特征,作为其负荷预测模型的输入。
附录C 负荷预测:引导式实践
本节将考虑一个预测试验,如何选择模型输入,测试本书中介绍的一些不同预测方法,并评估其准确性。本次实践演练的背景是生成日前预测(预测原点从一天开始时开始)。在理想情况下,预测模型会在每天开始时根据新获取的数据重新训练,但为了减少持续重新训练的计算成本,本次任务只对训练数据训练一次(用于验证集),并对训练集和验证集的合并数据再训练一次(用于测试集)。在未来的实验中考虑其他训练方法。这里的步骤将大致遵循第12章中介绍的方法。
要进行评估,请选择一个开放数据集。下面有一个可用的数据集列表,来自 https://low-voltage-loadforecasting.github.io/ ,但以下也是可能的选择:
爱尔兰智能电表数据,可从 https://www.ucd.ie/issda/data/commissionforenergyregulationcer/ 获取。这是最常用的智能电表数据集之一。
伦敦智能电表数据,包含来自伦敦超过5500个智能电表的半小时需求数据,可从kaggle网站 https://www.kaggle.com/jeanmidev/smart-meters-in-london 直接下载。该数据集还包含伦敦多个变量的天气数据,包括温度。
2014年全球能源预测竞赛(GEFCOM)数据 [6]。该数据集的电压等级高于智能电表数据,但包含多年的需求数据以及温度数据。因此,尽管它比低压级需求更平滑、更规律,但有大量数据可用于训练和测试。
为重现本书中的分析,可将单个智能电表数据聚合以模拟低压馈线级数据。这显然会比智能电表数据更平滑,但可能使需求更容易预测。收集数据后,首先开始探索数据中的模式和关系。这通常是模型开发中最重要的部分之一。
- 快速检查:在做任何事之前,先快速检查数据中是否有太多缺失值(第6.1节)。如果数据有太多缺失,则将数据集缩减至缺失值少于5%的更短数据集。如果使用智能电表数据,则选择几百个至少具有95%有效值的电表。GEFCOM数据应该相对干净。
- 分割数据:如第8.1.3节所示,数据需要划分为训练集、验证集和测试集。将时间序列中最旧的60%数据作为训练数据,接下来的20%作为验证集,最后20%作为测试集。可以尝试其他分割比例,但对于初步研究而言,这已经足够。
- 绘制时间序列:绘制训练数据的时间序列(第6.2.2节),或者对于智能电表数据,绘制多个序列以更好地理解数据结构。注意任何模式,是否存在年度季节性?如果有,需求最高和最低的时候是什么时候?趋势如何,需求随时间增加还是减少?放大观察几周的数据,是否存在日或周季节性?不同星期几的差异是否明显?如果没有明显的季节性,数据是否看起来平稳?在这种情况下,可能需要考虑应用单位根检验(见附录A)。
- 季节性相关性:对于疑似存在季节性的数据,绘制自相关和偏自相关图(见第3.5节)。如果考虑大量智能电表数据,检查每个ACF和PACF图将不切实际,因此应考虑汇总信息的方法。如案例研究(图14.2,第14.2节)所示,可以绘制ACF和PACF的散点图,其中x轴和y轴为不同滞后,这些滞后可能是显著的,例如日和周的滞后(对于半小时数据,滞后48和336)。这将显示一系列不同的季节性。关注那些相关性最强和最弱的特定智能电表,绘制其ACF和PACF,并与实际智能电表时间序列进行比较。这可能揭示出先前未曾预料到的异常行为。或者,考虑平均智能电表轮廓的自相关和偏自相关。在观察ACF和PACF时,哪些滞后的相关性最强?滞后336(一周)的相关性是否大于日滞后(48)?
- 识别异常值:除了缺失值(第1点),还能找到哪些其他异常值(第6.1节)?这些可能在时间序列图(第3点)中已经可见,显示出非常大的值或负值(负值可能不应出现在需求数据中——除非家庭连接了太阳能发电且智能电表显示净需求)。可能需要创建一个简单的季节性模型来识别异常值。例如,如果存在年度季节性,则对于半小时数据,拟合如下形式的简单季节性模型
$$\begin{aligned} a+b + \sum _{p=1}^P c_p \sin \left( \frac{2\pi p t }{24 \times 365} \right) + d_p \cos \left( \frac{2\pi p t }{24 \times 365} \right) , \end{aligned}\tag{C.1}$$
其中 P=2 或 3。取模型与数据之差应能去除年度季节性。如果序列中存在线性趋势,则在(C.1)中添加额外的线性项进行更新。得到残差序列后,检查哪些点偏离均值超过三个标准差,并选择这些点进行替换。当然,可以使用分析中发现的其他特征选择更复杂的模型(例如,像第14.2.3节中ST模型那样包含周和日成分),但目前仅考虑此方法。
- 预处理:对于第1点和第5点中识别的缺失值和异常值,应替换为适当的值。对于具有日/周季节性的数据,使用该值前后相同时期的周平均值来插补(第6.1.2节)训练集和验证集中的异常值和缺失值。换句话说,对于星期二下午2点的缺失值,取前一个星期二下午2点和后一个星期二下午2点的平均值。如果存在较大缺口,导致这些值也缺失,则可能需要多次插补。由于所选数据相对干净,这应该足够。
上述过程应生成一个相对干净、无缺失值的数据集,这将使后续分析更加简单,并有助于创建预测模型。此外,上述基本分析应已突出数据的某些核心特征,特别是数据是否平稳以及不同类型的季节性。下一步是开始更详细地分析数据的其他特征,并逐步选择一些模型进行训练并在保留的测试集上测试。这些步骤由以下要点描述。
• 解释变量的可视化:开始探索训练集数据中的其他关系。已考虑了自相关以及数据中的大模式和趋势。如果主需求数据还有其他解释变量可用,例如温度,则考虑绘制散点图;如果有大量潜在解释变量,则考虑绘制配对图(见第6.2.2节)。这些关系看起来如何?是线性还是非线性?如果看起来是非线性的,简单的二次或三次关系能否准确描述?一天中的不同时段是否具有不同程度的季节性,或与解释变量有更强的相关性?尝试绘制互相关图(第6.2.3节),最大值何时出现?这将显示模型中是否也应包含一些滞后值。还要考虑一周中不同天数的差异。绘制不同天的平均轮廓,查看是否存在相似或差异,指示它们可能需要在模型中单独处理,例如通过虚拟变量(如第9.3节和第14.2.3节中多元线性回归所示)。在建模潜在关系时,考虑调整后的 $R^{2}$(第6.2.3节),哪些变量给出最大值?
初始模型选择:根据数据分析选择一组可能合适的模型。如果数据与解释变量存在强自相关和线性关系,则可以生成线性模型或ARIMAX型模型(第9.4节)。考虑解释变量的几种不同选择:可以是线性、二次和三次版本。如果数据存在强季节性,则考虑季节性指数平滑模型(第9.2节)。如果有强解释变量但无季节性关系,则考虑第10.5节的深度神经网络或支持向量回归(第10.2节)。
基准模型:根据分析中观察到的特征选取一些简单的基准模型(常见基准见第9.1节)。如果数据中存在季节性,则考虑季节性持久模型或季节性移动平均模型。如果没有季节性,则仅考虑简单的持久模型。上一步中选择的一些较简单模型也可作为基准。或者将部分基准建立在单个解释变量上。基准的重要性在于理解对预测精度至关重要的主要特征,并提示潜在的改进方向。因此,简单的基准比复杂的比较更具信息量。另一方面,与最新技术的比较可以成为衡量预测质量极有用的试金石。
误差度量:选择至少一个最能代表预测精度的误差度量(第7章)。如果处理智能电表数据或具有许多小值的数据,则MAPE不适用,因为小值的误差会被放大(或未定义!)。如果希望比较多个时间序列的精度,则选择相对误差度量(例如RMSE或MAE的归一化版本,甚至在数值不小的情况下使用MAPE)。
• 训练:在训练数据的观测值上训练所选模型(和基准)(第8.2节),这也意味着训练一系列相同类型的模型(神经网络、多元线性回归等),并使用不同的参数(例如,对于神经网络,意味着尝试不同数量的节点和层;对于多元线性回归,使用不同的输入变量,可能包括这些变量的变换)。有自动选择输入或减少过拟合的方法,特别是通过正则化(第8.2.4节)和基于似然的模型的信息准则(第8.2.2节)。然而,在此流程中,仅考虑使用交叉验证(第8.1.3节)来选择超参数和最终测试模型。大多数标准包会根据标准度量/损失函数训练模型(例如,多元线性回归使用最小二乘法——第8.2节),但可能需要更改目标度量以更好地匹配上一步中选择的误差度量。
模型/超参数选择:使用训练好的模型在验证集上进行预测(第8.1.3节),并比较误差。从每个模型家族中选择表现最佳(误差最小)的几个模型。保留所有基准,但利用这个机会查看哪些模型似乎具有最小的预测误差。哪些模型比基准更准确?准确多少?这很有趣,可以看看与测试集比较时是否有任何变化。通常在验证集上测试许多模型及其变体,因此某个模型只是偶然成为最准确的。
预测:在组合的训练集和验证集上重新训练数据。现在生成测试集上的提前一天预测!
评估结果:计算每种方法的误差。现在是开始评估结果并更好地理解差异、相似之处以及使一个模型优于另一个模型的核心特征的时候了。最准确的方法有哪些共同特征?这些特征是否也存在于最不准确的方法中?表现最差的方法缺少哪些特征?特定解释变量的包含是否会改进方法?不同模型在一天中的不同时间是否具有不同的精度?
至此,您已完成一个完整的预测试验!然而,有几种方法可以提高模型的精度和质量。以下是一些进一步的尝试:
基于误差分析的改进:根据结果评估,是否有明显的方法可以改进结果?任何解释变量在包含与不包含时是否显示出改进?如果它们未包含在最准确的模型中,则尝试添加它们后是否会改进?最佳模型是否有其他模型不具备的特征?如果其他模型包含该特征,它们是否会比当前最佳模型具有更高的精度?
残差分析:绘制残差时间序列,序列中是否存在任何突出的特征、季节性或趋势?如果是,则更新模型以包含这些特征。残差序列应是平稳的,用单位根检验进行验证(附录A)。最准确模型的残差中是否仍存在相关性?如果是,如第7.5节所示,有一种简单的方法可以通过向模型添加额外的自回归成分来改进预测。
组合模型:改进单个预测模型的常用方法是将多个预测模型组合在一起,如第13.1节所示。通过对测试集中使用的部分(或全部)模型取简单平均,生成新的预测。
• 特征提取:在上述研究中,仅通过比较验证集中的不同模型来选择特征。现在考虑更自动化的特征选择方法。使用赤池信息准则(第8.2.2节)选择ARIMA模型。同时考虑使用所有可用特征(及其派生特征)的线性模型,并通过LASSO模型(第8.2.4节)选择最终变量。还考虑使用其他方法但使用LASSO选定的变量创建模型。
概率模型:如果考虑一个包含大量历史数据的数据集,那么概率预测是改进未来需求估计的有效方法。第11章介绍了多种方法。以用于点预测的线性模型为例,将其用于分位数回归,对0.05、0.1、……、0.95分位数进行估计,如第11.4节所述。残差自助预测对于单步超前预测也相对容易实现(第11.6.1节)。利用残差误差,在每个时间步对每个预测进行调整,以生成未来需求的新实现。重复这个过程数百次(最好数千次),以产生预测集合。然后,在一天中的每个时间步生成经验分位数(第3.4节),以生成另一个分位数预测(第5.2节)。概率预测需要一个概率预测度量,如Pinball损失分数和连续排名概率分数(CRPS),如第7章所述。
你自己的研究:本书之外还有大量未涵盖的模型和方法。为了帮助你入门,更多的模型和方法可以在附录D.1和D.2的进一步阅读中找到。
附录D 进一步阅读
本书涵盖了大量主题,是低压电力需求序列预测的入门教材。它应该为读者提供足够的信息,以便设计自己的试验并实现自己的预测方法。无论你的知识水平如何,希望书中有足够的方法和技术能教你一些新东西,当然,外面还有更多研究和有洞察力的材料。本节概述了一些进一步阅读,这些阅读可能有助于扩展本书中的许多主题,以及未讨论的其他方法。
注意,在某些情况下,特别是与能源数据相关的情况下,来源可能是可能发生变化的网站。
D.1 时间序列分析与工具
第5章至第7章涵盖了测量预测误差、分析关系、从数据中提取特征以及模型选择的广泛技术。作为一般资源,https://robjhyndman.com/hyndsight/ 是一个强烈推荐的博客,由时间序列预测领域顶尖专家之一Rob J Hyndman教授撰写,其中包含大量关于预测方法论和时间序列最新研究的信息。此外,他还出版了一本免费电子书[7]4,进一步介绍了时间序列预测的原理和技术,以及在R中的实现示例。时间序列分析的书籍很多,但作者发现Ruppert和Matteson的著作[1]是一个极好的资源。
对于感兴趣的读者,以下是对第5章至第7章中一些特定主题的进一步阅读。
• 异常值检测是一个庞大的主题,但可以找到一种用于检测异常值的复杂算法[8],其附带了名为stray的R包。
• 概率评分函数是一个快速发展的领域。可以在[9]中找到对这些函数的详细和深入探讨。关于校准和锐度概念的更易理解的介绍可以在[10]中找到。一项有趣的研究[11]比较了多变量数据的各种概率评分函数。在[12]中给出了一个使用能量分数进行集合预测评估的例子,应用于海上风电预测。
• 偏差-方差权衡是机器学习和预测中最重要的主题之一。一本流行的机器学习书籍[13]提供了非常易读和易懂的介绍,该书已可在网上免费获取。6 这本书还很好地概述了数据科学中的许多其他主题。
D.2 方法:时间序列与负荷预测
第9–11章仅对时间序列预测模型(特别是概率方法)给出了宽泛的概述。对于感兴趣的读者,有大量资源可供进一步学习时间序列预测,尤其是针对能源系统。本节将概述其中一部分。专门针对低压系统预测的进一步阅读材料将在附录D.3中给出。
除了附录D.1中提到的Rob Hyndman的博客外,一些最新的能源预测研究可以在Tao Hong的博客(http://blog.drhongtao.com/)上找到,他定期发布关于能源预测主题的文章,以及他共同组织的全球能源预测竞赛(GEFCom)7的资讯。Tao Hong也是一篇关于概率负荷预测的有用入门文章[14]的合著者。参考文献[15]是一本用Python实现机器学习模型的优秀教材,包括随机森林、支持向量机、人工神经网络、Boosting和强化学习的易理解介绍。虽然并非专门针对能源,但Petropoulos等人[16]的大型开放获取汇编提供了大量主题的描述,以及指向其他文献的链接。
概率预测正变得越来越常见,因此也出现了越来越多专门用于此的软件包。例如,ProbCast是一个R包,它提供了多种概率预测方法以及可视化和评估功能[17]。这包括参数化和非参数化方法以及高斯Copula的实现。
在以下参考文献中,可以找到本书所涵盖的某些预测方法和技术的进一步细节、示例和理论。
• 指数平滑法:关于指数平滑法的优秀章节可以在[7]中找到。Holt-Winters-Taylor双季节性指数平滑法最早在[18]中提出,并应用于短期电力需求预测。
ARIMAX方法:参考文献[7]也概述了ARIMAX模型,包括季节性变体SARIMA。关于ARIMAX模型的详细研究也可在[1]中找到。
人工神经网络:参考文献[13]详细介绍了神经网络,包括训练神经网络的误差反向传播技术。
经典机器学习方法:关于经典方法(虽然注意并非专门针对时间序列预测)的深入概述,包括加性模型、Boosting和随机森林、支持向量机以及最近邻方法,可参见Hastie、Tibshirani和Friedman的著作[19]。
随机森林:读者可能会对随机森林创始者之一的论文感兴趣[20]。它们在短期负荷预测中的应用示例见[21]。
支持向量回归:参考文献[22]是对支持向量回归的良好介绍和概述。
LASSO:参考文献[23]是将LASSO模型应用于GEFCom2014竞赛中能源预测的一个优秀范例。
广义加性模型:广义加性模型是GEFCom2014竞赛概率负荷预测赛道两个获胜模型的主要组成部分。获胜论文[24]值得一读,它考虑了分位数回归形式的预测。对于希望深入了解GAM的读者,Simon N. Wood的入门书籍[25]非常宝贵,他还开发了R中的mgcv(混合GAM计算车辆与自动平滑度估计)包。我们还推荐Christoph Molnar的免费在线资源“可解释的机器学习”[26],其中对GLM和GAM及其优缺点进行了出色的分析。
k近邻法:文献[27]给出了短期负荷预测的应用案例。更贴合本书主题的是,该论文提供了低压需求预测的示例[28, 29].
• 梯度提升回归树:文献[30]中的教程概述了基本的梯度提升机及其最重要的超参数。关于最流行实现(XGBoost8和LightGBM9)的文档,请参阅其不同编程语言的接口及各自的超参数说明。
分位数回归与核密度估计:文献[31]中给出了这两种方法的示例,包括如何组合它们以生成改进预测的示例,应用于GEFCom2014竞赛中的中期概率负荷预测。
• Copula's与GARCH模型在金融应用中很常见,因此[1]提供了这两种技术的优秀且易于理解的概述,并给出了许多R语言实现方法的示例。[32]对copula's进行了全面探讨。
• 深度学习方法:Goodfellow、Bendio和Courville的免费书籍[33]提供了深度学习模型(不专注于时间序列)的更深入概述。针对时间序列预测的更专门深度学习方法,请参阅关于DeepAR[34]和N-BEATS[35]的论文,以及文献[36, 37]。
第13章还讨论了其他技术和主题,包括模型组合与分层预测。以下是关于这些主题的补充阅读材料:
预测组合:该主题在13.1节中介绍。Armstrong [38]提供了关于预测组合的若干见解。[39]概述了一种使用copula's组合预测的高级方法。在负荷预测应用中,[40]给出了组合概率负荷预测的示例。Rob Hyndman最近撰写了一篇关于过去50年预测组合的综述,供对现有多种技术感兴趣的读者参考[41]。
统计显著性检验。Diebold-Mariano检验在13.5节中介绍。[11]给出了使用Diebold-Mariano检验进行概率预测的详细示例。Harvey、Leybourne和Whitehouse的论文[42]更深入地讨论了显著性检验,包括一些缺点和可用的替代方法。
分层预测:分层预测是一个越来越受关注的领域。如13.2节中简要介绍的那样,它涉及在不同层次上进行预测,同时考虑它们之间的一致性。[43]针对智能电表数据探讨了这一主题。GEFCom201710包含了一个分层组件,其目标是产生各区域的预测,然后得到ISO New England的总负荷[44]。[7]中也提供了精彩的介绍。
• 特殊日:如13.6.2节所述,特殊日的行为可能与预期大不相同。文献[45]的作者提出了法国特殊日负荷预测的方法。
• 校准概率预测:第7.5节仅简要提及概率预测的处理。这些技术在将天气预报用于负荷预测之前对其进行预处理也很重要(附录B.2.2节)。书籍[3]介绍了多种校准概率预测的方法。
其他陷阱:Hewamalagea等人[46]提出了时间序列预测评估中的常见陷阱和最佳实践。这包括基准、误差度量、统计显著性,以及由趋势、异方差性、概念漂移、异常值等引起的问题。
D.3 低压预测示例
第14章引入的案例研究强调了一个低压应用的真实预测示例。还有大量其他低压级别的预测示例,其中大部分是针对单个智能电表(家庭)级别的需求。智能电表的推广意味着有更多的预测论文研究家庭级需求,其中一些列举如下。以下由本书两位作者撰写的综述文章研究了低压预测中的方法、解释变量和应用[47]。这将帮助读者快速了解该领域应用的众多技术和方法,其中许多在本书中已有描述。
第14章的预测案例研究主要基于其中一位作者的研究,感兴趣的读者建议阅读原始论文以获取更多细节和额外分析。低压馈线预测工作基于论文[48],该论文还包括各种核密度估计方法的应用,这些在第14章中没有介绍。
关于低压级需求的文献相当稀少,主要集中在智能电表数据的聚合上。文献[49, 50]提出了分层概率预测的一个有趣实现,考虑了智能电表的多个聚合级别。这些方法在应用时还使预测相互一致(确保各预测之和等于聚合预测)。第15节中存储控制示例中使用的支持向量回归(第10.2节)和随机森林回归(第10.3.2节)基于论文[51]。文献[28]给出了一个k近邻法用于低压需求预测的示例。
大多数智能电表预测是点预测,但由于家庭需求波动较大,准确建模可能相当困难。文献[52]给出了一个将加性模型应用于生成概率性家庭预测的有趣示例,其中还包括家庭电池的应用。在[53]中,作者使用部分线性加性模型(PLAMs)并进行了扩展,以确保可以建模需求的波动分量。PLAMs是广义加性模型(第9.6节)的扩展。由于GAM通常仅限于平滑分量,它们不一定适用于家庭级需求,这就是可能需要和必要扩展的原因。[54]中的作者应用卷积神经网络(第10.5节)方法预测居民需求。
由于智能电表数据的波动性,概率预测正变得越来越普遍。文献[55]给出了一个优秀的短期概率智能电表负荷预测示例,涉及核密度估计和概率Holt-Taylor-Winters预测。[56]中的作者通过一种使用梯度提升方法的量化回归(第11.4节)形式,给出了生成智能电表概率预测的示例。
由于峰值通常是低压需求的主要有趣特征之一,一个重要关注领域是峰值需求预测,这自然属于极值理论范畴。Jacob等人的书[57]对这些方法及其在低压级需求中的应用进行了精彩介绍。
最后,针对一些更冷门的内容,读者可以参考[29, 58, 59]。如第13.3节简要所示,由于智能电表数据的波动性和尖峰特性,峰值的位置可能会移动(某人下班或放学回家较晚,其行为也会相应改变)。这意味着传统的逐点误差度量方法(如本书第7章介绍的MAPE、MAE和RMSE)可能不适用,因为存在“双重惩罚效应”。对于略微错过的峰值(例如早半小时),将受到两次惩罚:一次是错过了真实峰值,另一次是预测了一个未发生的峰值。上述论文进一步深入探讨了第13.3节中给出的调整后误差度量,并考虑了其他更新和变体。
D.4 数据和竞赛
深入理解预测并应用各种技术的最佳方法是开始用真实数据进行编码和实践。本节将概述一些公开可用的数据集。
数据集可用的一种方式是通过竞赛。近年来,像Kaggle(https://www.kaggle.com/)这样的网站主办了基于机器学习问题的竞赛。竞赛提供了与其他参与者竞争、尝试新方法以及了解更多关于如何做出良好预测的机会。论文[60]对其历史和预测竞赛的一些主要经验教训给出了精彩概述。一些主要的时间序列预测竞赛包括
• M-竞赛,最早的时间序列预测竞赛之一,始于1982年的M1。每次竞赛通常有越来越多的参赛者、复杂性和时间序列数量。2018年的M4竞赛包含100,000个时间序列用于预测[61]。
• 全球能源预测竞赛。一个始于2012年的预测竞赛,专注于能源需求预测;第二届于2014年举办,专注于概率性能源预测[6]。2017年的竞赛聚焦于能源预测的层次化方面。
全球能源预测竞赛的综述论文是学习能源预测领域一些前沿方法的绝佳资源[6, 62]。也可参阅关于某些方法的特定论文,特别是在概率跟踪方面[24, 31]。数据也已公开,供读者尝试自己的预测方法(参见Tao Hong的博客获取该数据及其他数据:http://blog.drhongtao.com/2016/07/datasets-for-energy-forecasting.html)。
不幸的是,GEFCom数据通常电压等级高于本书讨论的主题。因此,尽管它们适合用于开发你的首个负荷预测方法,但其需求通常比本书所关注的数据平滑得多。低压数据实际上更为稀疏,正因如此,公开可用的数据集往往被过度分析,增加了这些数据存在偏差及对数据集有不切实际先验知识的可能性。
作者整理了一份低压数据集清单,可能对读者自己的研究有用。11 然而,以下是该清单中包含的一组特定公开数据,可用于设计你自己的模型:
- T-H. Dang-Ha, F.M. Bianchi, R. Olsson,局部短期电力负荷预测:自动方法,载于2017年国际神经网络联合会议(IJCNN)论文集(2017),第4267–4274页
- S.N. Wood,《广义加性模型:R语言入门》,第2版(Chapman and Hall/CRC出版社,2017)
- S. Ben Taieb, J.W. Taylor, R.J. Hyndman,《基于智能电表数据的电力需求层次概率预测》(2017),第1–30页
- J. Browell, M. Fasiolo,基于条件极值和网格化NWP的区域净负荷概率预测,《IEEE智能电网汇刊》12(6),第5011–5019页(2021)
- C. Molnar,《可解释机器学习:让黑盒模型可解释的指南》(独立出版,2022)
- T. Yunusov, G. Giasemidis, S. Haben,《低压馈线削峰的智能储能调度与预测》(Springer国际出版,Cham,2018),第83–107页
- 爱尔兰智能电表数据:这是首批公开的智能电表数据集之一,包含约4000个智能电表的数据。https://www.ucd.ie/issda/data/commissionforenergyregulationcer/
- T. Hong, P. Pinson, S. Fan, H. Zareipour, A. Troccoli, R.J. Hyndman,概率性能源预测:2014年及以后的全球能源预测竞赛,《国际预测杂志》32,第896–913页(2016)
- A.T. Lora, J.M. Riquelme Santos, J. Cristóbal Riquelme, A. Gómez Expósito, J. Luís Martínez Ramos,时间序列预测:在短期电力需求中的应用,载于《人工智能前沿话题》,R. Conejo, M. Urretavizcaya, J-L. Pérez-de-la Cruz 编(Springer,柏林,海德堡,2004),第577–586页。
- C. Capezza, B. Palumbo, Y. Goude, S.N. Wood, M. Fasiolo,针对分解电力需求预测的加性叠加法。Ann. Appl. Stat. 15(2),727–746(2021)。
- 伦敦智能电表数据。包含伦敦超过5500个智能电表的半小时需求数据以及当地天气数据。https://www.kaggle.com/jeanmidev/smart-meters-in-london。
- R.J. Hyndman, G. Athanasopoulos,《预测:原理与实践》,第二版(OTexts,澳大利亚墨尔本,2018)。https://Otexts.com/fpp2。访问于2020年7月。
- O. Valgaev, F. Kupzog, H. Schmeck,基于k近邻方法的低压电力需求预测,载于《2016年IEEE创新智能电网技术-亚洲会议(ISGT-Asia)》(2016),第1019–1024页。
- U. Amato, A. Antoniadis, I. De Feis, Y. Goude, A. Lagache,利用包含平滑和锯齿分量的加性模型进行高分辨率电力需求数据预测。Int. J. Forecast.(2020)。
- REFIT:20个家庭的高分辨率(8秒)电力负荷数据集,包括家电数据。https://pureportal.strath.ac.uk/en/datasets/refit-electrical-load-measurements-cleaned。
- P.D. Talagala, R.J. Hyndman, K. Smith-Miles,高维数据异常检测(2019)。
- M. Voß, A. Haja, S. Albayrak,基于调整特征感知的k近邻:利用局部置换误差进行短期住宅建筑负荷预测,载于《2018年IEEE智能电网通信、控制与计算技术国际会议(SmartGridComm)》(IEEE,2018),第1–6页。
- M. Voss, C. Bender-Saebelkampf, S. Albayrak,基于卷积神经网络的住宅短期负荷预测,载于《2018年IEEE智能电网通信、控制与计算技术国际会议(SmartGridComm)》(2018),第1–6页。
- 开放电力系统数据平台:包含不同分辨率下的家庭数据,包括太阳能数据。也是其他电力系统数据(如电价、天气和需求)的重要资源。https://data.open-power-system-data.org/。
- T. Gneiting, A.E. Raftery,严格正确的评分规则、预测与估计。J. Am. Stat. Assoc. 102,359–378(2007)。
- A. Natekin, A. Knoll,梯度提升机教程。Front. Neurorobot. 7, 21 (2013)
- S. Arora, J. Taylor,使用条件核密度估计预测电力智能电表数据。Omega 59, 47–59 (2016)
- UK-DALE:五个家庭的6秒高分辨率数据,包括单个电器数据。https://jack-kelly.com/data/。
- T. Gneiting, F. Balabdaoui, A.E. Raftery,概率预测、校准和锐度。J. Roy. Stat. Soc.: Ser. B (Stat. Methodol.) 69(2), 243–268 (2007)
- S. Haben, G. Giasemidis,用于gefcom2014概率负荷预测的核密度估计与分位数回归混合模型。Int. J. Forecast. 32, 1017–1022 (2016)
- S. Ben Taieb, R. Huser, R.J. Hyndman, M.G. Genton,通过Boosting加性分位数回归预测电力智能电表数据的不确定性。IEEE Trans. Smart Grid 7(5), 2448–2455 (2016)
- GREEND:来自8个家庭的1秒分辨率数据。https://sourceforge.net/projects/ greend/。
- F. Ziel, K. Berk,多元预测评估:关于敏感且严格适当的评分规则(2019)
- D. Kurowicka, R. Cooke,高维依赖建模,第4章(Wiley,2006),第81–130页
- M. Jacob, C. Neves, D. Vukadinovi´c Greetham,预测与评估个体电力峰值风险(Springer International Publishing, Cham, 2020)
- 行为能源效率——200个家庭的15分钟分辨率数据。https://zenodo.org/record/3855575。
- C. Gilbert, J. Browell, D. McMillan,用于改进海上作业的概率可达性预测。Int. J. Forecast. 37(1), 134–150 (2021)
- I. Goodfellow, Y. Bengio, A. Courville, Deep Learning (MIT Press, 2016). http://www.deeplearningbook.org
- S. Haben, J.A. Ward, D.V. Greetham, P. Grindrod, C. Singleton, A new error measure for forecasts of household-level, high resolution electrical energy consumption. Int. J. Forecast. 30, 246–256 (2014)
请注意,这些数据大部分来自智能电表/家庭层面,因为不幸的是,低压数据非常少。然而,可以通过智能电表的聚合来模拟低压电网的估计,但应注意,这些数据略有不同,因此等价性并不精确[48]。
- C.M. Bishop, Pattern Recognition and Machine Learning (Information Science and Statistics) (Springer, Berlin, Heidelberg, 2006)
- D. Salinas, V. Flunkert, J. Gasthaus, T. Januschowski, Deepar: probabilistic forecasting with autoregressive recurrent networks. Int. J. Forecast. 36(3), 1181–1191 (2020)
- N. Charlton, D.V. Greetham, C. Singleton, Graph-based algorithms for comparison and prediction of household-level energy use profiles, in 2013 IEEE International Workshop on Intelligent Energy Systems (IWIES) (2013), pp. 119–124
参考文献
- T. Hong, S. Fan, Probabilistic electric load forecasting: a tutorial review. Int. J. Forecast. 32(3), 914–938 (2016)
- B.N. Oreshkin, D. Carpov, N. Chapados, Y. Bengio, N-beats: Neural basis expansion analysis for interpretable time series forecasting (2019). arXiv:1905.10437
- R.J. Hyndman, A brief history of forecasting competitions. Int. J. Forecast. 36, 7–14 (2020)
- A. Gron, Hands-On Machine Learning with Scikit-Learn and Tensor Flow: Concepts, Tools, and Techniques to Build Intelligent Systems, 1st edn. (O’Reilly Media, Inc., 2017)
- A. van den Oord, S. Dieleman, H. Zen, K. Simonyan, O. Vinyals, A. Graves, N. Kalchbrenner, A. Senior, K. Kavukcuoglu, Wavenet: a generative model for raw audio (2016). arXiv:1609.03499
- S. Makridakis, E. Spiliotis, V. Assimakopoulos, M4竞赛:结果、发现、结论与未来方向. Int. J. Forecast. 34, 802–808 (2018)
- D. Ruppert, D.S. Matteson, 金融工程中的统计与数据分析:附R示例. Springer Texts in Statistics (2015)
- F. Petropoulos, D. Apiletti, V. Assimakopoulos, M.Z. Babai, D.K. Barrow, S. Ben Taieb, C. Bergmeir, R.J. Bessa, J. Bijak, J.E. Boylan, J. Browell, C. Carnevale, J.L. Castle, P. Cirillo, M.P. Clements, C. Cordeiro, F. Luiz Cyrino Oliveira, S. De Baets, A. Dokumentov, J. Ellison, P. Fiszeder, P.H. Franses, D.T. Frazier, M. Gilliland, M.S. Gönül, P. Goodwin, L. Grossi, Y. Grushka-Cockayne, M. Guidolin, M. Guidolin, U. Gunter, X. Guo, R. Guseo, N. Harvey, D.F. Hendry, R. Hollyman, T. Januschowski, J. Jeon, V.R.R. Jose, Y. Kang, A.B. Koehler, S. Kolassa, N. Kourentzes, S. Leva, F. Li, K. Litsiou, S. Makridakis, G.M. Martin, A.B. Martinez, S. Meeran, T. Modis, K. Nikolopoulos, D. Önkal, A. Paccagnini, A. Panagiotelis, I. Panapakidis, J.M. Pavía, M. Pedio, D.J. Pedregal, P. Pinson, P. Ramos, D.E. Rapach, J.J. Reade, B. Rostami-Tabar, M. Rubaszek, G. Sermpinis, H.L. Shang, E. Spiliotis, A.A. Syntetos, P.D. Talagala, T.S. Talagala, L. Tashman, D. Thomakos, T. Thorarinsdottir, E. Todini, J.R. Trapero Arenas, X. Wang, R.L. Winkler, A. Yusupova, F. Ziel, 预测:理论与实践. Int. J. Forecasting 38(3), 705–871 (2022)
- S. Bai, J. Zico Kolter, V. Koltun, 通用卷积与循环网络在序列建模中的实证评估 (2018). arXiv:1803.01271
- T. Hong, P. Pinson, S. Fan, 全球能源预测竞赛2012. Int. J. Forecast. 30(2), 357–363 (2014)
- F.M. Dekking, C. Kraaikamp, H.P. Lopuhaä, L.E. Meester, 概率与统计的现代导论:理解为何与如何 (Springer, London, 2005)
- J. Browell, C. Gilbert, Probcast:概率预测的开源生成、评估与可视化. 5 (2020)
- J. Scott Armstrong, 预测原理:研究人员与实践者手册 (Springer, 2001)
- S. Vannitsem, D.S. Wilks, J.W. Messner (编) 集合预报的统计后处理 (Elsevier, 2018)
- J.W. Taylor, 基于双季节指数平滑的短期电力需求预测. J. Oper. Res. Soc. 54, 799–805 (2003)
- 基于Copulas的时间序列组合预测器, Inf. Sci. 376, 110–124 (2017)
- T. Hastie, R. Tibshirani, J. Friedman 数据挖掘、推断与预测. 统计学习基础. Springer Series in Statistics (2009)
- Y. Wang, N. Zhang, Y. Tan, T. Hong, D.S. Kirschen, C. Kang, Combining probabilistic load forecasts. IEEE Trans. Smart Grid 10, 3664–3674 (2019)
- L. Breiman, Random forests. Mach. Learn. 45(1), 5–32 (2001)
- X. Wang, R.J. Hyndman, F. Li, Y. Kang, Forecast combinations: an over 50-year review (2022)
- G. Dudek, Intelligent Systems’2014. Advances in Intelligent Systems and Computing. Short-Term Load Forecasting Using Random Forests, vol. 323 (Springer, Cham, 2015), , pp. 821–828
- D.I. Harvey, S.J. Leybourne, E.J. Whitehouse, Forecast evaluation tests and negative long-run variance estimates in small samples. Int. J. Forecast. 33(4), 833–847 (2017)
- A.J. Smola, B. Schölkopf, A tutorial on support vector regression. Stat. Comput. 14, 199–222 (2004)
- S. Ben Taieb, J.W. Taylor, R.J. Hyndman, Hierarchical probabilistic forecasting of electricity demand with smart meter data. J. Am. Stat. Assoc. 0(0), 1–17 (2020)
- F. Ziel, B. Liu, Lasso estimation for gefcom2014 probabilistic electric load forecasting. Int. J. Forecast. 32(3), 1029–1037 (2016)
- Global energy forecasting competition 2017: Hierarchical probabilistic load forecasting. Int. J. Forecast. 35(4), 1389 – 1399 (2019)
- P. Gaillard, Y. Goude, R. Nedellec, Additive models and robust aggregation for gefcom2014 probabilistic electric load and electricity price forecasting. Int. J. Forecast. 32(3), 1038–1050 (2016)
- S. Arora, J. Taylor, Rule-based autoregressive moving average models for forecasting load on special days: a case study for France. Eur. J. Oper. Res. 266, 259–268 (2017)
- H. Hewamalage, K. Ackermann, C. Bergmeir, Common Pitfalls and Best Practices, Forecast Evaluation for Data Scientists (2022)
- S. Haben, S. Arora, G. Giasemidis, M. Voss, D. Vukadinovi´c Greetham, 低压负荷预测综述:方法、应用和建议。Appl. Energy 304, 117798 (2021)
- S. Haben, G. Giasemidis, F. Ziel, S. Arora, 短期负荷预测及低压等级温度的影响。Int. J. Forecast. 35, 1469–1484 (2019)
- S. Ben Taieb, R.J. Hyndman, 基于智能电表数据的电力需求分层概率预测 (2017)