第四章:数据驱动预测——负荷、新能源与出清价格
各位同学,欢迎来到第四章。前面我们聊了调频调峰的基本逻辑,也讲了怎么用算法去优化报价。但有个问题一直绕不开——你拿什么去优化?
说白了,所有策略都是建立在预测之上的。你预测不准负荷,就不知道什么时候该调峰;你猜不透新能源出力,调频容量就定得心里没底;你算不对出清价格,报高了拿不到单,报低了白干活。
我个人习惯把预测比作「电力市场的眼睛」。今天我们就来聊聊这三双眼睛——负荷预测、新能源出力预测、市场出清价格预测。我会结合自己踩过的坑,把方法、工具、避坑指南都摊开来讲。
核心观点:预测不是越复杂越好,而是越稳定越好。我在项目中见过太多人堆了一堆深度学习模型,结果还不如一个简单的XGBoost跑得稳。
4.1 负荷预测方法
负荷预测,听起来好像就是猜明天用多少电。但你想想看,这里面门道可多了。工作日和周末不一样,夏天和冬天不一样,甚至今天下雨和明天出太阳都不一样。
我一般把负荷预测分成三个时间尺度:
- 超短期(分钟级):用于调频响应,需要秒级更新
- 短期(小时级):用于日前市场报价,精度要求高
- 中期(天级):用于机组检修计划,趋势更重要
常用的方法,我列个表给大家参考:
| 方法 | 适用场景 | 精度 | 我的评价 |
|---|---|---|---|
| ARIMA | 短期负荷,数据平稳 | 中等 | 经典但不够灵活 |
| XGBoost/LightGBM | 短期+中期,特征丰富 | 高 | 我项目中最常用的 |
| LSTM/Transformer | 超短期,时序依赖强 | 很高 | 数据量大时效果好 |
| 集成方法(Stacking) | 所有场景 | 最高 | 但训练成本也高 |
嗯,这里要注意——特征工程比模型选择更重要。我曾经在一个项目中,光靠加了一个「节假日因子」特征,就把预测误差从5%降到了3.2%。你想想看,这比换模型省事多了。
我的小技巧:做负荷预测时,一定要把「温度滞后效应」考虑进去。比如今天35度,空调负荷不会立刻拉满,而是会滞后1-2小时。我习惯把过去3小时的平均温度也作为特征输入。
4.2 新能源出力预测
新能源预测,说白了就是跟老天爷打交道。光伏看云,风电看风,这两样东西都很难精准预测。
我个人经验是:光伏预测相对好做,风电预测才是真正的硬骨头。为什么?光伏有明确的日周期,中午高早晚低,只要天气预报准,模型就能跑得不错。但风电呢?风向一变,出力可能从80%瞬间掉到10%。
我给大家看一个我实际用过的风电预测代码框架:
# 风电出力预测 - 基于时序特征 + 数值天气预报
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
# 特征工程:把时间拆开
def create_features(df):
df['hour'] = df['timestamp'].dt.hour
df['month'] = df['timestamp'].dt.month
df['wind_speed_lag1'] = df['wind_speed'].shift(1)
df['wind_direction_sin'] = np.sin(df['wind_direction'] * np.pi / 180)
df['wind_direction_cos'] = np.cos(df['wind_direction'] * np.pi / 180)
return df
# 模型训练
model = RandomForestRegressor(n_estimators=200, max_depth=10)
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
print(f"预测误差 MAE: {np.mean(np.abs(y_pred - y_test)):.2f} MW")
这段代码看着简单,但我在实际项目中踩过一个坑——风向特征不能直接用数值。0度和360度其实是一个方向,但数值差360。所以我用了sin/cos变换,把角度映射到圆上。这个坑,我曾经花了一周才找到原因。
避坑指南:新能源预测一定要做「爬坡事件检测」。我曾经有一个项目,模型平时跑得挺好,但一到风速骤变的时候,预测误差直接翻倍。后来我加了一个「风速变化率」特征,专门捕捉这种突变,效果立竿见影。
4.3 市场出清价格预测
出清价格预测,这是最刺激的部分。为什么?因为价格不仅受供需影响,还受市场参与者的博弈行为影响。说白了,大家都在猜别人会怎么报价。
我习惯把出清价格预测分成两步:
- 基本面预测:根据负荷、新能源、机组启停等物理量,算出一个理论价格
- 行为修正:考虑市场力、报价策略、历史博弈结果,对理论价格做修正
这里我分享一个我常用的特征组合:
- 供需比:总负荷 / 总可用容量,这个指标非常关键
- 边际机组类型:是煤机还是气机?燃料成本差很多
- 历史出清价:过去7天同一时段的平均价格
- 市场集中度:HHI指数,反映市场垄断程度
我个人建议用LightGBM来做价格预测。为什么?因为它对缺失值处理得好,而且训练速度快。我在一个省级电力市场项目中,用LightGBM做到了平均误差不到5元/MWh,客户非常满意。
关键提醒:出清价格预测的误差容忍度很低。你预测偏差10元/MWh,对于一个100MW的机组来说,一天就是2.4万元的收入差距。所以,一定要做「区间预测」,而不是点预测。我习惯输出P10、P50、P90三个分位数,这样报价时心里有底。
4.4 知识体系总览
说了这么多,我画了一张图,把这三类预测的关系串起来。你一看就明白了:
从这张图你能看到,负荷预测和新能源预测是「输入」,出清价格预测是「输出」。但三者之间不是单向的——新能源多了会压低价格,负荷高了会推高价格,价格反过来又会影响机组的启停决策。这是一个闭环。
实战建议:如果你刚开始做预测,我建议先从负荷预测入手。为什么?因为数据最全、规律最明显、模型最容易验证。等你把负荷预测做到误差3%以内,再去做新能源和价格预测,会顺手很多。
好了,这一章的内容就到这里。记住一句话:预测不是目的,决策才是。我们做这么多模型、调这么多参数,最终都是为了在调频调峰市场里多赚一点、少亏一点。下一章我们会聊怎么把这些预测结果用到实际报价策略中,到时候再细说。
公众号:蓝海资料掘金营,微信deep3321