第6章 负荷数据:准备、分析与特征生成
第5章介绍了预测的一般定义以及时间序列预测的不同类型和特征的许多概念和分类。开发一个合适的模型需要识别时间序列数据中的真实模式和关系。这需要对数据进行详细调查和分析,因为选择正确的输入特征可以说至少与选择最合适的预测模型同等重要。这一数据分析和特征生成是本章的主要重点。然而,在此之前,重要的是了解数据质量是否足够好,以允许训练一个好的预测模型。下一节首先考虑高质量数据的重要特征以及可能需要的预处理。随后是分析负荷数据并识别可能对预测模型有用的特征的方法。
6.1 准备与预处理
在训练模型之前,必须对数据进行评估和清洗,否则预测将在有缺陷的数据上训练,输出将不准确、具有误导性或毫无意义。正如机器学习的口头禅简洁地总结的那样:“垃圾进,垃圾出”。与教科书示例中常用来演示技术的人造数据不同,真实数据是杂乱的,几乎没有格式,并且很少没有错误。
一些最常见的数据问题包括:
- 缺失值——由于通信错误或监测设备故障,记录的数据很少是完整的。
- 极值——这些值可能过大或过小。确定极值尤其棘手,尤其是对于本书分析的低压能源需求等高波动数据。某些极值可以通过超出系统参数来识别,例如超过房屋的断路器限制,因此在技术上是不可能的(当然,除非断路器出现问题!)。然而,在大多数情况下,识别是困难的,因为通常无法确认某个值是有效的还是错误记录的。

大多数情况下,识别是困难的,因为通常无法确认某个值是有效的还是错误记录的。
- 异常值——根据应用,某些值明显不正确。例如,在没有发电的LV网络馈线上,所有需求应为正值,没有小于零的值。因此负需求显然是不可能的,而在高需求馈线上,记录的零值应受到怀疑。
图6.1展示了不同情况下可能包含异常和错误数据的一些时间序列示例。图(a)显示了时间序列中某个特定点的需求水平增加。这可能是监测设备的修复,或者是由居住者安装新的高需求设备(如热泵或电动汽车)引起的真实变化,这导致基线需求整体增加(也称为概念漂移,第13.6.3节)。图(b)显示了时间序列数据缺失的示例。有时数据仅偶尔缺失,或者像此示例中那样可能缺失很长时间。后者可能发生在监测设备出现故障时。最后,图(c)显示了一段恒定值。这些同样可能由传感器设备故障引起,但检测起来要困难得多,尤其是当它们只发生在短时间内时,因为它们可能不会从基本分析或简单的时间序列图中明显看出。
这些错误值的影响可能对模型质量和相应预测的准确性产生不利影响。因此,缓解或消除它们的影响很重要,通常的做法是将它们从数据集中删除。然而,删除非错误的值可能会降低预测的准确性。当目标是准确预测极端值(如峰值)时尤其如此。此外,在产生概率预测时,这可能导致分布的尾部未被正确校准。
数据预处理本身就是一个复杂的领域,其中大部分超出了本书的范围。附录D.1中包含了一些更高级技术的额外参考。对于本书,专注于一些简单但常见的识别和清理时间序列数据的方法就足够了。
6.1.1 异常值识别
缺失值显然容易识别,异常值也易于检查。因此,重点在于识别异常值,这里指的是那些异常大或异常小的值。可视化方法是一种常见的手段来确定哪些点是异常值,但这可能被认为有些主观,因此可能导致偏差。对于平稳时间序列,更系统化的识别方法是找出那些偏离数据中心值超过数据样本离散程度预期范围的点。最常见的做法之一是识别那些距样本均值若干样本标准差倍数的点(见第3.5节)。回忆一下,对于正态分布的数据,95%的值在均值的2个标准差以内,99%的值在3个标准差以内。然而,数据服从正态分布的假设通常不成立,因此数据的真实分布是未知的。尽管如此,标准差方法通常仍然是理解哪些点可能是异常值的有用度量,但如果数据偏斜且不对称,则需要谨慎。对于非正态分布的数据,一种更稳健但较少使用的方法是考虑数据距样本中位数多少个四分位距(第3.2节)。更一般地,估计数据所处的分位数也可以识别异常值。分位数通常比标准差方法对异常值更稳健,因此在定义数据阈值时可能更可取。
图6.2展示了使用距离均值两个标准差来检测大值的示例。在这个相对人为的示例中,有三个点明显是异常值,并且它们已成功通过标准差准则被识别出来。
当数据非平稳时,该过程要复杂得多。当时间序列中存在简单且明显的趋势,但方差随时间固定时,可以从去趋势序列中计算标准差。去趋势序列就是观测值与模型拟合值之间的差异,即模型残差(第5.2节)。图6.3展示了两个示例,一个序列具有线性递增趋势,另一个具有简单的周期性行为。图中还包含了最佳拟合线以及距离最佳拟合线两倍残差标准差距离的线。如果不进行去趋势化,就不会明显看出其中一些点是异常值,因为它们处于整个数据集的范围内。这种方法的一个复杂性在于,由于在包含异常值/异常数据的数据上训练,趋势拟合可能很差,特别是当这些异常值相对于整个数据集数量很多时。在这种情况下,极端值可能不会被标记为异常值。


对于更一般的时间序列,无法轻松地去趋势以识别异常值,而且也不建议这样做,因为这需要对潜在过程做出假设。因此,预测者可能会在模型假设中引入一些偏差,并将一些正常值错误地标记为异常值。一种方法是开发一个预测模型,并比较包含和不包含假定异常值的性能,分析它们对准确性的影响。还有其他更复杂的模型用于识别异常值,但这些超出了本书的范围,其中一些可以在附录D.1的进一步阅读中找到。
6.1.2 插补
在识别出异常和异常数据后,必须决定是否删除这些值。如果已知这些值不正确,则绝对应从数据集中删除。否则,如果不能确认某个值是否真的是异常值或错误值,则建议保留该值。一种可能性是分别运行包含和不包含异常值的模型,以查看预测是否对这些变化敏感。如果只有少数异常值,那么包含它们可能对整体模型精度影响不大。在某些情况下,可能存在大量缺失数据,这时可能无法生成任何具有良好精度的模型。“足够”的数据取决于数据类型、应用以及预测周期等其他设计要素。对于短期预测(比如提前一天),有时仅使用四到五周的数据就可以产生合理的基准预测(参见第14章的案例研究)。
当数据缺失或由于清洗操作被移除时,数据集中会出现空白。这会导致若干问题。首先,它使数据处理变得更加复杂,因为必须考虑忽略缺失实例的技术;其次,它会在数据中引入潜在偏差,因为某些特征在缩减后的数据集中可能比原本更加突出。如果缺失数据相对随机,那么引入的偏差很小,可以在缩减后的数据上训练预测模型,而无需担心模型会被任何偏差扭曲。
处理缺失值的另一种方法是插入或估算其他值。此过程称为插补。这简化了对数据的分析和模型训练,有多种不同的方法可以选择要插入的值:
• 简单平均——这保持了数据的样本均值,但忽略了任何趋势或季节性。可以使用移动平均(在数据周围的滑动窗口上)来更好地拟合任何趋势。
最后值——这保留了数据的趋势,并用最近的值填充缺失值。然而,这忽略了数据中可能存在的任何其他模式。值得注意的是,许多用于收集电力数据的数据采集系统在停止接收数据时,通常会按固定间隔向前填充。
季节平均——如果数据具有季节性,则保留这些特征。例如,如果数据具有每日季节性,那么下午4点的缺失值可以使用过去几天下午4点的平均值来填充。
• 回归——回归将在第9章中讨论,但本质上这是指使用周围值的加权平均来填充缺失数据。这允许包含更复杂的关系来插补缺失值。
• 插值——更一般地,可以对缺失数据点周围的值拟合一条曲线(例如多项式),并使用曲线在缺失点处的值来插补该值(参见第9.6节中的插值示例)。
6.1.3 归一化与变换
即使在数据清洗之后,原始形式的数据可能不适合直接在模型中使用。例如,对于线性回归模型(第9.3节),假设误差服从高斯分布。这并非总是成立,特别是对于智能电表数据,在某些情况下已被证明服从对数正态分布(参见第3.1节)。此外,注意,除非电表处存在反向潮流(例如由于光伏发电),否则智能电表需求应始终为非负(即正数或零),这对于高斯分布的数据不成立,但对于对数正态分布成立。回顾(第3.1节),如果随机变量z具有以下形式的概率密度函数,则它服从对数正态分布:
$$\begin{aligned} f(z) = \frac{1}{z \sqrt{2 \pi } \sigma } \exp \left( \frac{-(\ln (z)-\mu )^2}{\sigma ^2} \right) . \end{aligned}\tag{6.29}$$
根据定义,这意味着变换后的变量,例如
$$\begin{aligned} x=(\ln (z)-\mu )/\sigma \end{aligned}\tag{6.30}$$
服从高斯/正态分布。换句话说,如果数据是非负的,具有一个长的正偏态尾部,应用对数正态变换可能产生正态分布的数据。这反过来可能更容易操作和利用。在对此数据训练模型后,可以对预测应用逆变换以获得物理上具有代表性的数据。对数正态分布数据 $(\mu=0,\sigma=0.5)$ 的示例显示在图6.4(左)的直方图中,以及相同数据但对数变换后的结果(右)。注意,对数正态变换后的数据现在是对称的钟形曲线,如预期的那样,并且现在允许负值。
另一种对原始数据常用的变换是归一化,即在可视化或模型开发之前对数据进行缩放。这有两个主要优点。首先,考虑一个情况,正在建模多个变量,但它们的取值范围非常不同,比如一个介于0到10之间,另一个介于0到1000之间。在这种情况下,由于相对变化的极端差异,很难可视化或理解它们之间的关系。缩放这些值可以更好地突出这些关系。


缩放的第二个主要原因是帮助训练模型参数(参见第8章关于训练的内容)。数据的尺度可能会影响参数的尺度。通过归一化数据,可以限制数据的范围,并减少最优参数的搜索空间。一个简单的双变量示例如图6.5所示,其中原始变量的散点图显示在(a)中,重新缩放的变量显示在(b)中。缩放操作使得每个变量都在0和1之间。在原始数据中,$X_{1}$的分布范围在2到10之间,而$X_{2}$变量在400到500之间,因此具有更大的量级和分布范围。如果我们要在此数据上训练线性模型,例如$y=aX_{1}+bX_{2}$,我们会看到b相对于a会较小,否则因变量(在其各自范围内)变化所产生的响应y会有巨大差异。这也意味着系数的搜索范围不同。相比之下,归一化后的变量将减少线性系数a、b的搜索空间。注意,变量之间的关系仍将通过归一化得以保留,尽管经过了缩放。
如下文所示,有多种方法可以对数据进行归一化,但一个重要的要求是数据能够重新缩放回原始大小。最常用的方法之一是Min-Max Scaler,它将变量变换到区间[0, 1]。假设时间序列的最大值和最小值分别为$x_{\max}$和$x_{\min}$,则任意数据点x的缩放版本由下式给出:
$$\begin{aligned} \hat{x} = \frac{x - x_{\min }}{x_{\max }- x_{\min }}, \end{aligned}\tag{6.31}$$
因此序列变换为最大值为1、最小值为0的序列。注意,如果存在极端异常值,则$x_{\max}$和$x_{\min}$可能产生不合适的归一化。在这种情况下,在执行缩放之前最好先对数据进行清洗/预处理(参见6.1.1节)。要恢复原始值,只需重新排列计算:
$$\begin{aligned} x = x_{\min }+\hat{x}(x_{\max }- x_{\min }). \end{aligned}\tag{6.32}$$
另一种常用方法是Standard Scaler,它减去序列的均值$\mu,$并除以标准差σ:
$$\begin{aligned} \hat{x} = \frac{x - \mu }{\sigma }. \end{aligned}\tag{6.33}$$
新序列具有零均值和单位方差,且值不再限制在[0, 1]内。注意,均值可能受异常值影响较大,因此与Min-Max Scaler类似,在归一化之前可能有必要移除异常值(6.1.1节)。
为避免异常值的影响,还有其他归一化方法,例如Robust Scaler,它使用中位数$x_{50}$和四分位距$x_{75}-x_{25}$(第25百分位数与第75百分位数之差)。关于百分位数/分位数的更多细节,参见3.2节。缩放后的变量由下式给出:
$$\begin{aligned} \hat{x} = \frac{x - x_{50}}{x_{75}-x_{25}}. \end{aligned}\tag{6.34}$$
这具有中位数零,但注意变换后的序列中仍可能存在异常值。
现在考虑一个简单示例中如何将模型拟合到缩放数据。考虑线性模型
$$\begin{aligned} y=ax+b, \end{aligned}\tag{6.35}$$
对于变量x、y以及系数a、$b\in\mathbb{R}$。假设我们将变量x、y分别缩放为x和$\hat{y}$。参数$\hat{a},\hat{b}$由缩放后的模型求得:
$$\begin{aligned} \hat{y}=\hat{a}\hat{x}+\hat{b}, \end{aligned}\tag{6.36}$$
通过代入重新缩放公式(例如式(6.32)),可以估计原始简单模型。这种情况比其他情况简单得多,因为所有关系都是线性的。对于其他更复杂的情况,这种变换可能不可行。
6.1.4 其他预处理
除了处理缺失和异常数据外,还有一些标准的预处理步骤也应考虑。
首先,许多时间序列预测方法依赖于数据在时间上等间隔分布。许多监测设备校准为均匀间隔记录数据,因此这通常是成立的。然而,如果数据并非均匀间隔,可以通过插值到感兴趣的时间步长来估计这些时间步的数据。这显然会产生额外误差(本例中来自估计的误差),但原始数据分辨率越高、数据波动性越小,这些误差就越小。遗憾的是,处理非均匀间隔记录的时间序列数据的技术和包很少。然而,由于大多数能源监测要么是高分辨率的,要么是为规则间隔设计的,本书其余部分将假设数据在时间上是等间隔的,且插值误差可忽略。
另一个常见问题是不同输入数据具有不同的时间分辨率。例如,负荷数据可能每半小时记录一次,但相应的温度数据可能每小时一次。如果温度变量是负荷预测的重要解释输入变量,那么可能值得将两个数据集统一到每小时的数据分辨率。¹ 对于能源数据(kWh),这实质上意味着将两个半小时的数据相加;而对于平均功率(kW)数据,则需要平均这两个半小时的点。后者(功率)是负荷数据更常见的表示形式。
6.2 特征选择与工程
创建准确预测的最重要因素之一是为模型选择最合适的特征。在许多情况下,特征比所用的预测模型更重要。一种选择是包含所有可用特征,并拟合一个对模型中使用的参数数量进行惩罚的模型,例如信息准则和正则化技术(第8.2.2节和第8.2.4节)。这些方法可用于选择变量并创建精简模型。在本节中,将考虑几种方法用于识别因变量和自变量之间潜在的重要关系。
如第8.1节所述,选择特征的目标是实现偏差-方差权衡。换句话说,尝试包含描述数据的所有重要特征,但不要太多以免模型最终过拟合。如果模型中可能包含的特征数量很大,那么值得考虑上述信息准则和正则化技术,将特征减少到最重要的那些。
6.2.1 领域知识
某些变量可以根据感兴趣的领域自动选择。例如,如果试图预测冰淇淋销量,有理由怀疑室外温度是一个强有力的决定因素。类似地,考虑居民家庭能源使用时,由于典型行为模式,合理假设需求与一天中的时间和一周中的某天相关(然而,注意也很容易找到不严格符合这一假设的家庭,如轮班工人)。在每个应用中,都有一些强有力的候选变量,如果可用,可以作为特征包含在预测模型中。至少,应进行进一步调查,例如使用第6.2.2节中介绍的视觉化技术。
如果明显的候选变量不易获得或无法测量,则可以考虑代理值。这些值与所考虑的值密切相关。例如,感兴趣的具体位置可能没有天气数据,但邻近城镇可能有。另一个代理值的实际例子是科学家使用冰芯和树木年轮数据作为过去气候的代理。
6.2.2 视觉分析
视觉化对于更好地理解数据并确定模型中潜在包含的特征至关重要。它们也可用于确认(或否定)预测者预期有用的关系,或发现全新的关系。
时间序列数据最直观的可视化方法就是简单地将数据对时间作图,毫不意外地,这被称为时间序列图。之前已经有多个示例,包括图5.1。这些示例展示了从图中容易识别的一些简单特征,包括数据是否平稳(数据的分布是否随时间变化),以及任何季节性或线性趋势。

图6.6展示了使用全球能源预测竞赛2012数据(GEFCOM 2012)2 中美国某公用事业公司一个区域的一年真实每小时电力需求,以及附近气象站的温度(关于GEFCOM 2012的详细数据参见[1])。需求值和温度值的年度季节性一目了然。需求在年初、年中和年末较高,这可能是由于冬季取暖和夏季空调使用增加所致。显然,温度与需求时间序列之间是相互关联的。
温度和需求之间的关系通过散点图更容易可视化,散点图将一个变量对另一个变量作图,每个点对应每个小时时段。如图6.7所示。在这种形式下,变量之间的关系更加清晰,其他特征也显而易见。例如,现在可以看出,当温度低于$50^{\circ}\mathrm{F},$时,需求随温度降低而增加,但增速远慢于温度高于$50^{\circ}\mathrm{F}.$时需求随温度升高而增加的速度。利用散点图揭示的额外信息,可以根据关系的形状开发更准确的预测模型。

如果有多个变量,为所有不同变量之间的关系生成散点图可能很繁琐。更简洁的表示是配对图(也称为散点图矩阵)。它只是一个散点图矩阵,比较每对变量之间的关系。图6.8展示了三个变量的模拟数据示例。第$k\in\{1,2,3\}$行、第$j\in\{1,2,3\}$列表示第k个变量对第j个变量的散点图。注意,第j行第k列显示相同的信息,只是镜像对称,因为散点矩阵中对角线两侧的图是反射的。通常,如本例所示,第k个对角线上包含第k个变量的直方图。换句话说,它显示了该变量边际分布的估计(见第3.3节边际分布的定义)。
在本节和第6.2.4节中,值得牢记的是,尽管变量之间存在相关性,但这并不意味着它们之间存在因果关系(“相关性并不意味着因果性”这句格言),但这同样不意味着这些特征对于预测目的没有用,这被称为格兰杰因果关系。
6.2.3 评估线性关系
第6.2.2节的散点图可以暗示变量之间的不同关系。两个随机变量X和Y的皮尔逊相关系数$Corr({X},{Y})$定义为
$$\begin{aligned} Corr(X,Y)=\frac{\mathbb {E}(X-\mathbb {E}(X))(Y- \mathbb {E}(Y))}{\sigma _X\sigma _Y}, \end{aligned}\tag{6.37}$$
并且是衡量它们之间线性相关性的有用指标。这里$\sigma_{X}$和$\sigma_{Y}$分别是X和Y的标准差,E(X)、E(Y)是对应的期望值(详见第3.3节)。取值范围从-1到1。值为1表示完全线性正相关,即X的增加对应Y的线性增加。值为-1时同样完全线性对齐,但这次是负相关,因此一个变量的增加将同时对应另一个变量的线性减少,反之亦然。中间的值表示相关性较小,其中$Corr({\boldsymbol{X}},{\boldsymbol{Y}})=0$表示完全不相关。
图6.8中显示了每对变量的最佳拟合线和相关系数。在这种情况下,显然变量X1和X2的相关性非常小(0.05),变量X1和X3也是如此(0.01)。相比之下,变量X2和X3呈强正相关(0.85)。
如果多个预测变量彼此高度相关,则可能难以理解它们各自对因变量的影响。这可能意味着模型以一种非常不同的方式分配每个变量的重要性(例如通过其训练系数),如果只有一个变量包含在预测模型中,情况会大不相同。当变量与一个高度相关的变量一同包含在模型中时,其重要性可能被低估,因为其影响可能看起来微不足道。在这种情况下,值得测试具有不同相关输入组合的模型,以观察它们对预测准确性的影响。共线性的影响将在第13.6.1节进一步讨论。

皮尔逊相关性仅限于线性关系,因此对于衡量两个变量之间非线性模型的潜力没有用处。例如,在图6.7中,负荷与温度之间的关系显然不是线性的。衡量变量间模型描述质量的常用方法称为决定系数或$R^{2}$值(R平方),它描述了一个模型(例如一条直线)对数据的描述程度,其定义为:
$$\begin{aligned} R^2 = 1- \frac{SS_{res}}{SS_{tot}} = 1 - \frac{\sum _{k=1}^N r_k^2}{\sum _{k=1}^N (Y_k - \bar{Y})^2}, \end{aligned}\tag{6.38}$$
其中$\bar{Y}=(1/N)(\sum_{k=1}^{N}Y_{k})$是观测值的均值,$r_{k}$是残差,$SS_{tot}=\sum_{k=1}^{N}(Y_{k}-\bar{Y})^{2}$ = 观测值与均值之间的平方差之和,$SS_{res}=\sum_{k=1}^{N}r_{k}^{2}$是残差平方和。$R^{2}$通常取值在0到1之间(但当模型比均值估计更差时可能取负值),最佳情况为$R^{2}=1$,因为模型完全拟合观测值,因此$SS_{res}=0$。具有较大$R^2$值的解释变量被认为比具有较小值的变量对描述因变量更重要。决定系数的值可以解释为模型捕获了因变量中多少变异,例如,$R^2 = 0.75$表示75%的变异由模型解释。在比较不同模型时必须谨慎。更好的拟合(因此更大的$R^{2}$值)通常可以通过增加参数数量来实现,因此具有不同输入数量的模型不能使用传统的$R^2$值进行比较。相反,通常使用调整后的R平方,它仍然比较模型捕获的变异量,但也控制了模型的复杂性(不同数量的参数)。调整后的决定系数定义为
$$\begin{aligned} AdjR^2 = 1- (1-R^2)\frac{N-1}{N-p-1}, \end{aligned}\tag{6.39}$$
其中$p$是模型中自变量的数量(不包括任何常数项)。调整后的$R^2$值总是小于或等于$R^2$值。假设在模型中加入一个新参数,如果$R^2$的改善超过随机预期,则调整后的决定系数会增加。注意,良好的R平方可能仅仅通过过拟合数据实现,但这并不意味着预测准确(回顾第8.1.2节),而调整后的$R^2$有助于缓解这一问题。
6.2.4 时间相关性分析
前面的章节至少比较了一个变量与另一个变量。然而,在时间序列中,未来值通常依赖于其历史值。自相关函数(ACF)可用于评估这些时间上的相互依赖性。自相关简单地计算时间序列与其自身移位(或滞后)版本之间的相关性。对于时间序列$(L_{1}, L_2, \ldots , L_{N})^T$,滞后k处的ACF定义为
$$\begin{aligned} \rho (k) = \frac{1}{N\sigma ^2} \sum _{i=1}^{N-k} (L_i - \mu )(L_{i+k} - \mu ) = \frac{R(k)}{R(0)}= \frac{R(k)}{\sigma ^2}, \end{aligned}\tag{6.40}$$
其中$\mu$是样本均值,$\sigma^{2}$是时间序列的样本方差(更多细节见第3.5节)。重要的滞后可以通过检查自相关图发现,该图绘制了自相关作为滞后数量的函数。图6.9显示了GEFCOM 2014小时需求数据的自相关图。很明显,数据中存在强烈的日季节性,因为ACF具有周期性,并且在24小时的倍数的滞后处有更大的峰值。
自相关函数的一个缺点是较短滞后的值会影响较长滞后处的自相关函数值。偏自相关函数(PACF)在滞后k处可以通过移除1, ..., k−1滞后的影响来减少这种效应(正式定义见第3.5节)。在图6.9中,底部的图也显示了GEFCOM负荷序列的偏自相关。注意,现在在48、72等日滞后处的PACF值要低得多,但在滞后168处值略有增加,这对应于整整一周,表明时间序列中的周相关性。这意味着24小时滞后仍然显著,周滞后也显著,但其他日滞后(例如前两天、前三天、前四天等)可能不太显著,因为PACF中显示的相关性要弱得多。

特定滞后处的大自相关或偏自相关可以告知在预测模型中应包含哪些历史数据。例如,如果如上述,在周滞后处存在较强的相关性,那么值得考虑在预测模型中包含前几周相同时间段的数据。来自同一时间序列的历史输入通常被称为自回归成分。如第9.4节所示,ACF和PACF图在ARIMA模型的参数选择中起着重要作用。
如第3.5节所示,我们还可以考虑两个独立时间序列之间的互相关。这不仅显示了它们之间的相关性,还显示了两序列滞后之间的相关性。例如,尽管供暖需求可能由低温驱动,但可能存在延迟响应(尤其是在隔热良好的房屋中),因此将温度作为输入,连同前几个时间步的值一起包含进来可能很重要。可以像自相关图一样使用互相关(第3.5节)来识别模型中应包含的显著滞后。图6.10显示了GEFCOM数据中温度与负荷数据之间的示例。x轴显示了序列之间的滞后(最多前后24小时)。注意,这里的滞后可以为负,因为任一序列都可以滞后,负滞后表示温度滞后值(历史值)与未滞后的负荷之间的相关性。首先,注意互相关为负,但不太强。实际上,如果是在冬季比较这些序列,互相关会更负;在夏季则会为正,这是由于图6.7中显示的供暖与制冷模式。然而,由于互相关衡量的是线性相关性,系数值因为正负相关混合而弱得多。另一件需要注意的事情是,这些值在零滞后附近并不对称。这是因为温度对整体负荷的影响可能存在延迟。
6.2.5 作为特征的基础函数
上述特征选择方法在很大程度上需要手动调查和可视化分析。这对于预测大量时间序列来说非常耗时且不切实际。一种更自动化的模型训练方法是从各个组件构建模型,这些组件被称为基函数。这对于表现出周期性行为的时间序列(如能源需求时间序列)特别有用。换句话说,一个时间序列(或时间序列的一段)$Y_{t}$ 可以写成简单函数/向量 $\phi_{k}(t)$ 的线性组合。

$$\begin{aligned} Y_t = \sum _{k=1}^{\infty } \alpha _k \phi _k(t). \end{aligned}\tag{6.41}$$
其中 $\alpha_{k}$ 是必须找到的系数。最常见的例子是傅里叶级数,其周期基函数形式为 $\sin\left(\frac{2\pi kt}{K}\right)$ 和 $\cos\left(\frac{2\pi kt}{K}\right)$,其中 $t\in[-K,K]$。
使用基函数作为特征意味着可以训练每个时间序列,同时减少为每个时间序列开发定制特征的需求。在实践中,选择有限和而不是公式(6.41)中的无限和,但如前所述,这可能导致时间序列对训练数据的过拟合,因此必须仔细选择。选择合适项数的方法在8.2.2节给出。基特征的一个特例——使用样条——在9.6节中针对广义加性模型进行了描述。
6.2.6 负荷预测中的常见特征
负荷由几种不同类型的用户组成,从居民用户到中小企业(也称为SMEs),如理发店、小商店等。还有较大的商业用户(大型超市、学校等),最后是工业用户,通常包括钢铁生产和其他重工业等较大需求。可能需要对这些个体用户的需求或变电站的负荷,或更大区域的负荷进行预测,因此这些负荷由个体用户和其他连接的聚合组成。这些其他连接可能包括路灯,但也包括分布式发电(例如太阳能农场或风力涡轮机)。因此,没有一组简单的特征可以对所有类型的需求进行建模。然而,可能存在一些共同的特征,或者至少值得测试以确定它们是否能成为有用的解释变量。本节将讨论一些常见的特征。
首先,值得一提的是,即使是相同类型的用户(居民、中小企业等)仍可能具有非常不同的需求行为,驱动因素也各不相同。例如,使用电采暖的家庭的电力需求可能受温度驱动,而使用燃气采暖的家庭的电力需求可能几乎不受天气影响。其次,用户聚合的负荷可能会随着聚合规模的增大而变得更加规律,尽管主要驱动因素可能变得不那么清晰,或者一些特征可能变得更加明显。如图1.2(第1.2节)和图2.5(第2.3节)所示,更大的聚合改善了每周的规律性。
我们在本6.2节中已经讨论了很多关于天气的内容,但就像上面提到的燃气与电采暖的例子,如果不进一步调查,天气是否会对需求产生影响可能并不明显。此外,如6.2.4节所述,检查互相关和滞后变量也是值得的,因为影响可能存在延迟。如果观察到关系,它不太可能是完全线性的,如图6.7所示。在温度与需求的关系图中,低于50°F时需求因采暖而增加,但高于60°F时需求因空调而增加。在这种情况下,将关系建模为分段线性模型、多项式、样条或其他基函数(第6.2.5节)可能是值得的。
除了温度之外,其他天气变量对需求预测也可能很重要:
- 风速:较高的风速可以加剧体感温度的影响,例如,风速越快,寒冷温度感觉更冷。这可能会产生连锁效应,使供暖更早开启。该变量称为风寒指数,是通过结合温度和风速构造的。
- 湿度:类似地,较高的湿度会增加体感温度。一种描述方式是湿度指数,它是湿度和温度的组合。
- 太阳辐射和能见度:太阳向地球辐射并升高地球温度。如果云层较多,则到达地表的辐射较少,温度将低于晴朗天气。
日周期和周期常常见于电力负荷中。住宅和商业需求由人类行为与需求驱动,因此遵循日、周模式。但当然也有例外,如医生和护士,因轮班工作,其日常行为模式可能不同。在模型中纳入日、周滞后(例如,对于小时级时间序列,滞后分别为24和168)的自回归效应是引入周期性的方式之一。然而,这并未模拟通用的一周中各日效应。要纳入“星期一”、“星期二”等效应,意味着将七个分类变量的效应引入电力需求这一连续变量模型中。这需要根据不同的日期对需求进行更新或改变。一种常见方法是通过所谓的虚拟变量。虚拟变量根据变量存在与否取值为0或1。例如,设W(k)是一个变量,若时间步k发生在工作日(星期一至星期五)则为1,否则为0,即
$$W(k)=\left\{\begin{array}{ll}1,&\text{if time step k occurs on weekday}\\0,&\text{otherwise}\end{array}\right..$$
这称为工作日的虚拟变量。若模型需要表示每个工作日的效应,则需为每个工作日引入相应的虚拟变量。在这种情况下,定义虚拟变量$D_{j}(k)$,对于$j=1,\dots,7$为
$$D_{j}(k)=\left\{\begin{array}{ll}1,&\text{if time step k occurs on day j of the week}\\0,&\text{otherwise}\end{array}\right..$$
通常不需要定义N个虚拟变量来表示全部N个可能取值。例如,一周只有七天,这意味着第七天可简单地定义为不属于其他六天。只需六个变量,因为它们可作为对默认第七天的修正项加入。如果所有七个变量都包含在模型中,则其中一个变量可由其他六个变量建模,这会产生共线性变量(第13.6.1节),可能导致最终模型参数训练时出现问题。这也称为虚拟变量陷阱。注意,“虚拟变量”一词常用于统计建模,而在机器学习中,常称为独热编码。
我们在第5.1节和第6.1.1节已看到,需求时间序列信号中常存在长期变化。这可能是大规模的年季节性或线性趋势等。需求序列经常变化,新技术出现,或相同电器的更高效版本,或连接到网络的客户发生变化(美发店变成便利店)。如果这些差异在时间序列中清晰可见,则可能值得将它们作为显式变量纳入模型。序列中的线性趋势可通过在模型中简单加入时间步指示变量来包含。在简单线性模型(第9.3节)中,趋势通过添加bt项来包含,其中t是时间步,$b\in\mathbb{R}$是待训练的参数。
需求时间序列的另一个常见特征是年季节性趋势。冬季能源需求通常因需求增加而上升,夏季可能降至最低水平,因为温度足够温暖,无需供暖(在更热的地区,由于空调设备,需求往往增加)。这些模式代表周期模式,因此应包含在模型中。一种选择是简单地加入一年中的日期或时间段,例如生成大量虚拟变量。然而,此时没有足够的历史样本来训练参数,模型可能泛化不佳。通常最好使用能用较少参数估计季节性的周期变量。一个非常基本的例子是使用基函数(第6.2.5节)。三角函数如sin at和cos bt是一种选择。参数a、$b\in\mathbb{R}$可以选择(或更优选地训练)以确保周期适当匹配信号中的模式。可以选择多个三角函数(具有不同周期)以改进拟合并生成复杂模式,见图6.11。还有更复杂的选择,如小波函数,这里不探讨。我们在第14.2节的案例研究中给出了在线性模型中使用三角函数的例子。

6.3 问题
对于需要使用真实需求数据的问题,尝试使用附录D.4中列出的一些数据。
- 考虑填补缺失值的不同方法。选择一个需求时间序列。通过从时间序列中移除它们来模拟缺失值(保存它们以便以后比较)。现在考虑使用第6.1.2节中给出的一些技术进行填充。与真实值进行比较。哪些方法表现最佳?你认为为什么?
- 选择一个需求时间序列,并选择四周的数据。计算样本均值和标准差。哪些值距离均值超过两个标准差?三个标准差呢?这些值看起来不现实或太大吗?现在计算中位数和四分位距。最大值距离中位数多少个四分位距?
- 取一个具有半小时分辨率的平均kW或kWh值的时间序列。通过对每对连续半小时的数据进行平均,将数据转换为小时级数据。通过线性插值将数据重新转换回半小时级。与原始数据相比,重建的半小时级数据差异如何?误差最大的地方在哪里,为什么?尝试使用更高阶多项式(例如三次)进行插值。这样更准确吗?与家庭智能电表数据相比,系统级数据(例如GEFCOM 2014)的效果如何?
- 除温度外,还有哪些其他重要的天气变量可能影响家庭或更一般的国家电力需求?非天气数据呢?还有哪些好的需求指标?
- 考虑伦敦智能电表数据。3 绘制不同天气值与需求之间的散点图。哪些变量与需求的关系最强?天气变量之间是否互相关联?它们之间的相关性如何?哪个具有最大的相关性值?
- 取一个需求时间序列。绘制序列的自相关和偏自相关图。在哪些滞后处相关性最强?绘制需求对需求序列滞后值的散点图。包括一个时间步的滞后,以及给出最大自相关值的滞后。关系是线性的吗?如果它们是线性的,计算调整后的决定系数。哪些滞后给出了最大的值?
参考文献
- T. Hong, P. Pinson, S. Fan, 全球能源预测竞赛2012. Int. J. Forecast. 30(2), 357–363 (2014)
除非在材料的致谢行中另有说明,本章中的图像或其他第三方材料均包含在本章的知识共享许可中。如果材料未包含在本章的知识共享许可中,且您的预期使用不被法定法规允许或超出允许使用范围,您将需要直接获得版权持有人的许可。