第四章:数据驱动预测——负荷、新能源与出清价格

各位同学,欢迎来到第四章。前面我们聊了调频调峰的基本逻辑,也讲了怎么用算法去优化报价。但有个问题一直绕不开——你拿什么去优化?

说白了,所有策略都是建立在预测之上的。你预测不准负荷,就不知道什么时候该调峰;你猜不透新能源出力,调频容量就定得心里没底;你算不对出清价格,报高了拿不到单,报低了白干活。

我个人习惯把预测比作「电力市场的眼睛」。今天我们就来聊聊这三双眼睛——负荷预测、新能源出力预测、市场出清价格预测。我会结合自己踩过的坑,把方法、工具、避坑指南都摊开来讲。

核心观点:预测不是越复杂越好,而是越稳定越好。我在项目中见过太多人堆了一堆深度学习模型,结果还不如一个简单的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 市场出清价格预测

出清价格预测,这是最刺激的部分。为什么?因为价格不仅受供需影响,还受市场参与者的博弈行为影响。说白了,大家都在猜别人会怎么报价。

我习惯把出清价格预测分成两步:

  1. 基本面预测:根据负荷、新能源、机组启停等物理量,算出一个理论价格
  2. 行为修正:考虑市场力、报价策略、历史博弈结果,对理论价格做修正

这里我分享一个我常用的特征组合:

  • 供需比:总负荷 / 总可用容量,这个指标非常关键
  • 边际机组类型:是煤机还是气机?燃料成本差很多
  • 历史出清价:过去7天同一时段的平均价格
  • 市场集中度:HHI指数,反映市场垄断程度

我个人建议用LightGBM来做价格预测。为什么?因为它对缺失值处理得好,而且训练速度快。我在一个省级电力市场项目中,用LightGBM做到了平均误差不到5元/MWh,客户非常满意。

关键提醒:出清价格预测的误差容忍度很低。你预测偏差10元/MWh,对于一个100MW的机组来说,一天就是2.4万元的收入差距。所以,一定要做「区间预测」,而不是点预测。我习惯输出P10、P50、P90三个分位数,这样报价时心里有底。

4.4 知识体系总览

说了这么多,我画了一张图,把这三类预测的关系串起来。你一看就明白了:

数据驱动预测知识体系 负荷预测 新能源出力预测 出清价格预测 供需 边际影响 耦合 ARIMA / XGBoost / LSTM NWP + 时序模型 + 爬坡检测 LightGBM + 博弈特征 输出:调频调峰收益最大化策略 三类预测相互影响,共同支撑收益最大化决策

从这张图你能看到,负荷预测和新能源预测是「输入」,出清价格预测是「输出」。但三者之间不是单向的——新能源多了会压低价格,负荷高了会推高价格,价格反过来又会影响机组的启停决策。这是一个闭环。

实战建议:如果你刚开始做预测,我建议先从负荷预测入手。为什么?因为数据最全、规律最明显、模型最容易验证。等你把负荷预测做到误差3%以内,再去做新能源和价格预测,会顺手很多。

好了,这一章的内容就到这里。记住一句话:预测不是目的,决策才是。我们做这么多模型、调这么多参数,最终都是为了在调频调峰市场里多赚一点、少亏一点。下一章我们会聊怎么把这些预测结果用到实际报价策略中,到时候再细说。


公众号:蓝海资料掘金营,微信deep3321