发布于: Oct 21, 2022
本文对预测个人客户层面用电量的两种不同方法进行了评估,一种没有相关时间序列信息,另一种有相关时间序列信息。
对于预测问题,相关时间序列信息是与目标值相关联的变量(例如天气或价格),并为目标值的预测提供统计优势(本文中是指能源需求)。更准确地说,Forecast 将相关时间序列视为外生变量。这些变量不属于模型规范,但是您可以使用它们来捕获相关时间序列的当前值与目标时间序列的相应值之间的相关性。
您可能无法一直通过合并相关时间序列来提高准确性。因此,您必须在回测的基础上添加任何相关时间序列,以检查添加相同的时间序列是否可以提高或保持总体准确性。Forecast 不需要相关时间序列,但需要目标时间序列。如果相关时间序列缺少值或具有其他质量问题,最好不要包含相同的时间序列,以免将噪声引入模型。本质上,决定哪个相关时间序列有用或如何有效使用它们是一个关键的特征工程任务。
差分整合移动平均自回归模型 (ARIMA) 是经典的时间序列统计模型。它使用滞后值和预测误差的线性组合来表示时间序列值,用过去的值来解释未来的值。您可以将 ARIMA 与具有解释变量的差分整合移动平均自回归模型 (ARIMAX) 一起使用,也可以不使用相关时间序列或回归变量。当您应用 ARIMA 模型时,可能很难选择正确的模型顺序,这是一个主观手动过程。在 Forecast 中,您可以使用 auto.arima
自动找到最适合用于数据的 ARIMA 模型。
所使用的输入数据是单独的用电量数据。这是一个具有以下三个属性的 CSV 文件:<CustomerID>
、<Date>
、和 <Energy consumption amount>
。用电量以 kWh(千瓦时)为单位。本文使用了 557 天的每日历史数据,但是您可以轻松使用每小时数据,此指标在行业中更常用。将数据文件上传到您选择的 S3 存储桶中。
以下屏幕截图为客户数据快照的示例。
下图形象显示了这些示例数据。
1.在 Amazon Forecast 控制台上选择创建数据集组。
2.提供名称和预测域。
3.指定目标时间序列数据集:
Item_id
是公用事业<CustomerID>.
timestamp
是日期<YYYY-MM-DD>
,这是是每日消费数据。Target_value
是用电量。
4.创建一个导入作业,导入历史数据。确保 IAM 角色有权访问将 CSV 文件上传到的 S3 存储桶。
5.导入数据后,目标时间序列数据的状态显示为“活动”。
6.在控制面板上的训练预测工具下,选择开始。
7.对于算法,本文选择使用 ARIMA。
8.完成预测工具训练后,控制面板上的状态将显示为“活动”。
9.创建预测。
成功创建预测后,您可以查询特定客户 ID 的情况或运行导出作业,生成所有客户 ID 的结果。以下屏幕截图显示了 ID test 的预测用电量。
尽管此演练不包括温度等因素,但这是开始并使用目标时间序列数据建立基线模型的绝佳方法。此外,作为努力满足整体供需的公用事业提供商,您可以潜在地汇总所有客户数据并预测未来的用电量,以做出相应的供应计划。
使用 DeepAR+ 创建用电量预测模型
Forecast DeepAR+ 算法是一种使用循环神经网络 (RNN) 预测标量(一维)时间序列的监督式学习算法。ARIMA 或指数平滑法 (ETS) 等经典预测方法会将单个模型拟合到每个单独的时间序列中,而 DeepAR+ 会创建一个全局模型(所有时间序列共用一个模型),具有跨时间序列学习的潜在优势。
DeepAR+ 模型特别适用于处理大量(四位数以上)目标时间序列(其中某些时间序列信息量有限)。例如,为了预测每个家庭的用电量,DeepAR+ 等全局模型可以利用信息量更大的序列的统计优势更好地预测新家庭的用电量。此外,DeepAR+ 可以考虑相关时间序列,这有助于改善预测。
鉴于其与用电量的相关性,该使用案例添加了天气数据。关键步骤如下:
timestamp
和
CustomerID
除外):
-
dayofweek
dailyaveragedrybulbtemperature
dailycoolingdegreedays
dailydeparturefromnormalaveragetemperature
dailyaveragenormaltemp
dailyheatingdegreedays
dailymaximumdrybulbtemperature
dailyminimumdrybulbtemperature
length_of_day_hours
下表总结了来自公共天气来源的西雅图(假设此数据集的客户位于该城市)的这些数据。
dayofweek |
dailyaveragedrybulbtemperature |
dailycoolingdegreedays |
dailydeparturefromnormalaveragetemperature |
dailyaveragenormaltemp |
dailyheatingdegreedays |
dailymaximumdrybulbtemperature |
dailyminimumdrybulbtemperature |
Length_of_Day_Hours |
7 |
53 |
0 |
-3.1 |
56.1 |
12 |
60 |
46 |
15.03 |
1 |
55 |
0 |
-1.3 |
56.3 |
10 |
60 |
49 |
15.08 |
2 |
51 |
0 |
-5.5 |
56.5 |
14 |
55 |
47 |
15.12 |
3 |
50 |
0 |
-6.7 |
56.7 |
15 |
53 |
46 |
15.15 |
4 |
53 |
0 |
-3.9 |
56.9 |
12 |
60 |
46 |
15.2 |
5 |
57 |
0 |
-0.1 |
57.1 |
8 |
64 |
50 |
15.25 |
6 |
62 |
0 |
4.7 |
57.3 |
3 |
73 |
50 |
15.28 |
7 |
64 |
0 |
6.5 |
57.5 |
1 |
72 |
56 |
15.32 |
1 |
64 |
0 |
6.3 |
57.7 |
1 |
76 |
51 |
15.35 |
2 |
69 |
4 |
11.1 |
57.9 |
0 |
82 |
55 |
15.4 |
3 |
67 |
2 |
8.9 |
58.1 |
0 |
81 |
53 |
15.43 |
- 使用更新的数据集创建一个新的预测器。
- 生成新模型。
- 创建新预测。
以下屏幕截图显示了使用新模型时,相同 test 客户 ID 的预测用电量。
您可以借助预测范围超过 5 天的(本文为 2019 年 11 月 11 日至 2019 年 11 月 15 日)的实际用电量来评估这两个模型(ARIMA 和 DeepAR+ 及其相关时间序列)的结果。
要进行此评估,请使用 wQL[0.5]/MAPE 指标。使用 ARIMA 计算得出的 MAPE 指标为 0.25,而包含天气数据的 DeepAR+ 模型的 MAPE 为0.04。您可以在此处了解有关评估模型的更多信息。包含天气数据的 DeepAR+ 模型帮助将模型准确性提高了 84%。下表总结了此对比的详细信息。
日期 |
ARIMA(单位:kWh) |
DeepAR+(单位:kWh) |
实际用电量(单位:kWh) |
2019 年 11 月 11 日 |
43.5 |
44.1 |
46 |
2019 年 11 月 12 日 |
49.1 |
59 |
59.6 |
2019 年 11 月 13 日 |
49.5 |
69 |
70 |
2019 年 11 月 14 日 |
48.8 |
73.5 |
75 |
2019 年 11 月 15 日 |
48.4 |
68.1 |
67 |
下图形象地展示了对比数据。
本文讨论了如何通过 Forecast 及其基础系统架构使用智能电表数据预测单个客户的用电需求。您可以使用 DeepAR+ 和天气数据提高模型的准确性,达到约 96% 的预测准确性(由 MAPE 确定)。
相关文章