1. 项目概述
电力市场价格预测一直是能源行业的核心难题之一。作为一名长期从事电力市场数据分析的研究者,我深知电价波动的复杂性和预测的重要性。西班牙作为欧洲电力市场化程度最高的国家之一,其电价受可再生能源占比高、负荷波动大等因素影响,呈现出显著的非线性和非平稳特征。传统的统计方法如ARIMA已经难以满足现代电力市场对预测精度的要求。
在本次研究中,我们系统性地对比了10种不同的机器学习与深度学习模型在西班牙电力市场电价预测中的表现。特别值得一提的是,我们引入了最新的TimeMixer时序模型,并配合SHAP可解释性分析,不仅提升了预测精度,还深入理解了模型决策背后的逻辑。这种"预测+解释"的双重方法,为电力市场参与者提供了更可靠的决策支持。
2. 数据准备与特征工程
2.1 数据来源与构成
我们收集了西班牙2015-2018年期间的小时级电力市场数据,主要来自两个核心数据集:
-
电力运行数据集:包含各类电源的发电量(核电、燃气、水电、风电、光伏等)、系统负荷需求、日前电价预测值与实际结算价格等关键指标。这些数据来源于ENTSO-E公共数据门户和西班牙输电系统运营商红色电气公司(Red Eléctrica de España)。
-
气象特征数据集:覆盖同期西班牙主要城市的小时级气象观测数据,包括温度、气压、湿度、风速、降雨量、云量等指标。这些数据对可再生能源出力(特别是风电和光伏)以及负荷需求都有直接影响。
2.2 数据预处理流程
数据预处理是确保模型性能的关键步骤,我们采用了以下处理流程:
-
数据清洗:
- 处理缺失值:对于连续缺失不超过3小时的数据,采用线性插值法填充
- 异常值处理:使用3σ原则识别异常值,并用前后时间点的均值替换
- 重复记录:检查并删除完全相同的重复记录
-
数据标准化:
对所有数值特征采用Z-score标准化:code复制z = (x - μ) / σ其中μ是特征均值,σ是标准差。这种处理可以消除不同特征间的量纲差异,加速模型收敛。
-
特征工程:
- 时间特征:提取小时、星期几、月份、季节、是否节假日等时间特征
- 滞后特征:构建过去24小时、72小时的历史电价、负荷、发电量等滞后特征
- 气象衍生特征:计算温度波动幅度、风速移动平均等衍生指标
- 交叉特征:创建负荷与温度的交互项等特征
注意:在构建滞后特征时,要特别注意避免未来信息泄露。我们严格确保每个时间点的预测只使用该时间点之前的历史数据。
2.3 数据集划分策略
考虑到电力市场数据的时序特性,我们采用时间顺序划分法:
- 训练集:2015年1月1日-2017年12月31日(3年数据)
- 验证集:2018年1月1日-2018年9月30日(9个月数据)
- 测试集:2018年10月1日-2018年12月31日(3个月数据)
这种划分方式模拟了实际应用场景,确保模型评估的客观性。验证集用于超参数调优和早停策略,测试集仅用于最终性能评估。
3. 模型架构与技术细节
3.1 传统深度学习模型
3.1.1 LSTM网络
长短期记忆网络(LSTM)是处理时序数据的经典架构。我们实现的LSTM模型包含以下关键组件:
- 输入层:接收多维时间序列特征
- 两个LSTM层:每层128个单元,使用tanh激活函数
- Dropout层:比率设为0.2,防止过拟合
- 全连接输出层:输出下一小时的电价预测值
LSTM的核心优势在于其门控机制,可以有效地捕捉长期依赖关系。在我们的实现中,时间步长设为24,意味着模型会考虑过去24小时的数据来预测下一小时的电价。
3.1.2 GRU网络
门控循环单元(GRU)是LSTM的简化版本,我们将GRU模型的参数配置为:
- 两层GRU结构,每层128个单元
- 使用重置门和更新门控制信息流动
- 同样设置24小时的时间窗口
GRU相比LSTM参数更少,训练速度更快,但在某些复杂时序模式捕捉上可能略逊一筹。
3.1.3 CNN-LSTM混合模型
我们设计了一个结合CNN和LSTM的混合架构:
- 一维卷积层:64个滤波器,核大小为3,用于提取局部时序特征
- 最大池化层:池化大小为2,降低特征维度
- LSTM层:128个单元,处理全局时序依赖
- 全连接输出层
这种结构可以同时捕捉电价序列的局部波动和长期趋势,在实际应用中表现稳定。
3.2 新一代时序模型
3.2.1 TimeMixer架构
TimeMixer是ICLR 2024提出的最新时序模型,其核心创新在于多尺度解耦和混合:
-
多尺度分解:
- 使用移动平均分解原始序列为趋势项和残差项
- 对不同尺度分量分别建模
-
混合专家(MoE)结构:
- 多个专家网络分别处理不同频率的分量
- 门控网络动态分配权重
-
逆向标准化:
- 预测后对各分量预测结果进行重组
- 保持预测结果的尺度一致性
我们的实现中,TimeMixer包含4个尺度的分解,每个专家网络是两层的MLP,隐藏层维度为256。
3.2.2 PatchTST模型
PatchTST采用分块策略处理长时间序列:
- 将输入序列划分为不重叠的patch
- 每个patch独立通过Transformer编码器
- 使用通道独立策略减少特征间干扰
我们设置的patch长度为6小时,模型深度为6层,每层注意力头数为8。这种设计显著降低了传统Transformer的计算复杂度。
3.2.3 iTransformer改进
iTransformer对标准Transformer做了以下改进:
- 特征维度而非时间维度做自注意力
- 引入可学习的位置编码
- 添加特征交互模块
我们的实现中,iTransformer有4层编码器,隐藏维度为128,前馈网络维度为512。
3.3 传统机器学习模型
3.3.1 LightGBM实现
作为传统机器学习的代表,我们配置LightGBM如下:
- 树的数量:1000
- 最大深度:8
- 学习率:0.05
- 特征采样比例:0.8
- 早停轮数:50
LightGBM使用直方图算法加速训练,并内置了对类别特征的处理优化。
4. 实验设计与模型训练
4.1 评价指标体系
我们采用四种核心指标全面评估模型性能:
-
均方根误差(RMSE):
code复制RMSE = sqrt(1/n Σ(y_pred - y_true)^2)反映预测值与实际值的平均偏差幅度。
-
平均绝对误差(MAE):
code复制MAE = 1/n Σ|y_pred - y_true|对异常值不敏感,反映平均预测误差。
-
平均绝对百分比误差(MAPE):
code复制MAPE = 100% * 1/n Σ|(y_pred - y_true)/y_true|相对误差指标,便于不同价格水平的比较。
-
决定系数(R²):
code复制R² = 1 - Σ(y_true - y_pred)^2 / Σ(y_true - y_mean)^2衡量模型解释方差的比例,越接近1越好。
4.2 训练配置与超参数优化
所有深度学习模型统一训练配置:
- 优化器:AdamW
- 初始学习率:1e-3(带余弦退火调度)
- 批量大小:64
- 训练轮次:200(带早停策略)
- 损失函数:Huber损失(平衡MAE和MSE)
超参数优化采用贝叶斯优化方法,重点调整:
- 模型深度和宽度
- 注意力头数(对Transformer类)
- Dropout比率
- 学习率调度参数
每个模型进行50轮优化,选择验证集表现最佳的配置。
4.3 实验结果与分析
4.3.1 定量结果对比
在测试集上的表现对比如下(数值越小越好,R²除外):
| 模型 | RMSE(€/MWh) | MAE(€/MWh) | MAPE(%) | R² |
|---|---|---|---|---|
| TimeMixer | 8.21 | 5.67 | 7.32 | 0.963 |
| PatchTST | 9.45 | 6.83 | 8.91 | 0.951 |
| iTransformer | 9.87 | 7.12 | 9.23 | 0.947 |
| ModernTCN | 10.23 | 7.45 | 9.67 | 0.942 |
| Transformer | 11.56 | 8.32 | 10.89 | 0.925 |
| CNN-LSTM | 12.34 | 8.91 | 11.56 | 0.914 |
| BiLSTM | 12.78 | 9.23 | 12.01 | 0.908 |
| GRU | 13.12 | 9.56 | 12.45 | 0.902 |
| LSTM | 13.45 | 9.87 | 12.89 | 0.896 |
| LightGBM | 14.23 | 10.45 | 13.67 | 0.883 |
从结果可以看出,TimeMixer在所有指标上全面领先,特别是在RMSE和R²上的优势明显。新一代时序模型(PatchTST、iTransformer、ModernTCN)整体优于传统深度学习架构,而传统机器学习方法(LightGBM)表现相对最弱。
4.3.2 计算效率对比
我们还对比了各模型的训练和推理效率:
| 模型 | 训练时间(小时) | 单次预测时间(ms) | 参数量(M) |
|---|---|---|---|
| TimeMixer | 2.3 | 15 | 4.2 |
| PatchTST | 3.1 | 22 | 8.7 |
| iTransformer | 3.8 | 28 | 10.2 |
| ModernTCN | 1.9 | 12 | 3.8 |
| Transformer | 4.5 | 35 | 12.5 |
| CNN-LSTM | 2.7 | 18 | 5.3 |
| BiLSTM | 2.9 | 20 | 6.1 |
| GRU | 2.1 | 16 | 4.5 |
| LSTM | 2.4 | 18 | 5.2 |
| LightGBM | 0.5 | 5 | - |
ModernTCN展现出最高的计算效率,TimeMixer紧随其后。Transformer类模型由于自注意力机制的计算复杂度,效率相对较低。LightGBM训练最快,但预测精度有限。
5. SHAP可解释性分析
5.1 SHAP方法原理
SHAP值基于合作博弈论中的Shapley值概念,为每个特征分配一个贡献值,解释其对模型预测的影响。对于预测值φ,SHAP值满足:
code复制φ = φ₀ + Σφᵢ
其中φ₀是基准值(所有特征取均值时的预测),φᵢ是第i个特征的贡献。
我们使用KernelSHAP算法计算各特征的SHAP值,既分析全局特征重要性,也研究具体样本的局部解释。
5.2 全局特征重要性
基于TimeMixer模型的SHAP分析显示,影响电价的前五大特征是:
- 系统负荷需求(平均|SHAP|=0.32)
- 风电发电量(平均|SHAP|=0.28)
- 温度(平均|SHAP|=0.25)
- 历史电价(滞后24小时)(平均|SHAP|=0.22)
- 燃气发电量(平均|SHAP|=0.19)
这些特征的SHAP值分布揭示了它们与电价的关系:
- 负荷与电价呈强正相关:SHAP值随负荷增加而单调上升
- 风电与电价呈负相关:风电出力越高,SHAP值越低
- 温度呈U型关系:极端高温和低温都推高电价
- 历史电价显示惯性效应:前期高价推动当前价格上涨
- 燃气发电量正相关:反映其作为边际电源的角色
5.3 特征交互分析
通过SHAP交互值,我们发现了一些重要的特征组合效应:
-
负荷与温度的交互:
- 高温+高负荷:协同推高电价效应显著
- 低温+中等负荷:影响相对平缓
-
风电与燃气发电的交互:
- 风电低+燃气高:电价飙升的典型场景
- 风电高+燃气低:电价抑制效应叠加
-
时间特征与能源结构的交互:
- 节假日+高可再生能源占比:电价低谷
- 工作日傍晚+化石燃料主导:电价高峰
5.4 典型场景解释
我们选取三个典型场景进行局部解释:
-
价格高峰案例(2018-12-15 19:00):
- 主要正向贡献:负荷(0.42)、温度(0.38)、燃气发电(0.35)
- 主要负向贡献:风电(-0.28)
- 解释:寒冷天气导致负荷增加,同时风电出力不足,燃气发电占比上升
-
价格低谷案例(2018-05-12 14:00):
- 主要正向贡献:历史电价(0.12)
- 主要负向贡献:风电(-0.41)、光伏(-0.32)、温度(-0.25)
- 解释:适宜温度降低负荷,风光发电充足,形成电价低谷
-
价格突变案例(2018-11-03 08:00):
- 突变原因:风速骤降导致风电出力锐减(SHAP变化-0.37)
- 系统响应:燃气发电快速增加(SHAP变化+0.42)
- 结果:电价在1小时内上涨56%
6. 实际应用建议
6.1 模型选择策略
基于我们的实验结果,针对不同应用场景推荐:
-
高精度要求场景:
- 首选TimeMixer:提供最佳预测精度
- 备选PatchTST:精度略低但解释性更好
-
实时性要求高场景:
- ModernTCN:最快的推理速度
- GRU:平衡精度与速度
-
可解释性优先场景:
- LightGBM+SHAP:传统模型更易解释
- TimeMixer+SHAP:深度学习的可解释方案
6.2 特征工程优化
根据SHAP分析,建议重点关注以下特征:
-
加强负荷相关特征:
- 细分区域负荷数据
- 工商业负荷占比
- 负荷预测误差
-
完善可再生能源特征:
- 风光功率预测
- 区域间可再生能源传输
- 备用容量指标
-
引入外部市场因素:
- 国际天然气价格
- 碳交易价格
- 跨境电力流动
6.3 部署注意事项
在实际部署预测系统时,需要注意:
-
数据质量监控:
- 建立数据异常检测机制
- 设计自动化的数据修复流程
- 定期评估特征重要性变化
-
模型持续更新:
- 设置模型性能衰减预警
- 定期用新数据重新训练
- 监控概念漂移现象
-
预测结果解释:
- 为每个预测提供关键驱动因素
- 标注预测不确定性范围
- 突出异常预测的根本原因分析
7. 技术挑战与解决方案
7.1 处理极端价格事件
电力市场中的极端价格(如价格尖峰)是预测难点。我们的解决方案:
-
数据层面:
- 对极端样本进行加权处理
- 使用鲁棒性损失函数(如Huber损失)
-
模型层面:
- 在TimeMixer中添加极端事件检测模块
- 对高波动时段使用专门的子模型
-
后处理层面:
- 设置价格合理范围约束
- 对极端预测进行人工复核流程
7.2 多步预测实现
单步预测扩展到多步预测的挑战:
-
直接多步预测:
- 修改模型输出维度
- 使用序列到序列架构
-
递归预测:
- 将前一步预测作为输入
- 使用计划采样技术减轻误差累积
-
混合策略:
- 短期使用递归策略
- 中长期采用直接预测
7.3 模型解释一致性
确保模型解释与实际物理机制一致的方法:
-
领域知识约束:
- 将物理规则作为模型正则项
- 设计符合电力市场规律的模型架构
-
解释验证:
- 对比SHAP分析与计量经济学结果
- 邀请领域专家评估解释合理性
-
不确定性量化:
- 提供特征贡献的置信区间
- 识别解释不稳定的样本
8. 未来研究方向
基于当前研究,我们认为以下方向值得进一步探索:
-
多市场联合预测:
- 考虑区域市场间的耦合效应
- 建立跨国��价预测模型
-
概率预测框架:
- 输出价格分布而非点估计
- 结合分位数回归和深度学习
-
强化学习应用:
- 将预测与交易策略联合优化
- 考虑市场主体博弈行为
-
边缘计算部署:
- 开发轻量级预测模型
- 实现分布式实时预测
-
新型架构探索:
- 图神经网络建模电网拓扑
- 物理信息神经网络结合领域知识
在实际应用中,我们发现TimeMixer架构虽然性能优异,但对超参数较为敏感。经过多次实验,我们确定了一组相对稳健的参数配置:多尺度分解层数设为4,专家网络隐藏层维度保持在256-512之间,学习率控制在1e-3到3e-4范围内。这些经验可以帮助其他研究者更快地复现我们的工作。
