“Datawhale AI 夏令营“ task1 学习笔记

针对“电力现货市场”(可以类比证券交易市场),泛指短时间内的电能量交易市场。

市场中有大量发电机组(供给者,会发电并卖出电力)按照交易规则,在指定的平台上采取集中竞价的方式确定电能的交易量和价格。这些电能会被输送给个体户、商业用户等,从而利用市场机制实现资源优化配置。

在最理想的情况下,市场完全竞争(市场参与者众多,以至于没有任何一方能够影响价格,不存在控制价格的可能性),没有任何博弈行为。每个发电机组都诚实报价,市场出清价格稳定可靠,达到最优效率。

但现实中,电力现货市场有以下特点:

  • 寡头竞争(几家电力公司独大,对价格有显著影响)

  • 不完全信息(不同机组信息不互通,存在打信息差牟利的可能)

  • 非合作博弈(机组之间各谋其利,追求各自的利益最大化)

  • 参与者有限理性(受限于经济知识和对市场的了解,机组不一定能做出最优决策)

从而不同机组之间有复杂的博弈行为这就让市场出清价格难以估计。

因此,要求针对电力现货市场价格和市场博弈主体的信息,用ABM方法建模这些机组在报价上的博弈行为,使最终模拟的市场出清报价接近现实中的市场出清价格

此题本质是一个回归(预测目标为连续值,例如根据年龄预测身高)问题,需要预测2023年7月1日到2024年4月18日每15分钟的市场出清价格,虽然可以纯粹依靠时间序列模型完成,但比赛方称期待参赛成员使用ABM模型建模获取市场出清价格,因此可以在两方面进行尝试上分

最终评价指标为MSE(均方误差)和RMSE(均方根误差)的均值(事实上这和只用RMSE或者MSE是一样的),值越小越好,公式如下:

$$\text{MSE}=\frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{n} $$

$$\text{Final Metric}=\frac{\text{MSE}+\sqrt{\text{MSE}}}{2 }$$

其中:

  • $$y_i $$为真实市场出清价格

  • $$\hat y_i$$为预测的市场出清价格

  • $$n$$为样本数量,这里是测试集的大小28228

ABM(Agent-Based Modeling),即基于个体的建模,是一种模拟系统复杂行为的工具。它通过模拟个体(代理)的行为和相互作用,来研究系统整体的动态变化

ABM有很多应用案例,例如康威的生命游戏(Game of Life),新冠传染病传播模型、政府企业博弈模型、鸟群模型……

总结来说,一个典型的ABM模型由以下几个部分组成:

  • 代理(Agent):系统中的基本个体,每个代理都有自己的属性和行为规则。

  • 环境(Environment):代理活动的空间或网络,可能影响代理的行为。

  • 交互规则(Interaction Rules):代理之间、代理与环境之间的相互作用规则。

  • 时间步(Time Steps):系统按离散的时间步推进,模拟出系统的动态变化过程。

定义了这些规则后,我们就可以开始模拟,并从模拟中发现ABM的核心“涌现现象”,即个体的行为涌现出了总体的变化。

市场出清价格(Market Cleaning Price)如何形成

注意,这里假设了只有数据集中的火电厂存在。但现实中火电厂会受风电、水电、太阳能等电力替代品竞争,同时总负荷一部分会被如跨省调电、蓄电等方式消耗,这些我们没有考虑在Baseline中。

电力市场的出清价格形成类似证券市场早上9:15-9:25的集合竞价,由于赛题只提供了总需求,我们可以认为需求曲线是一条直线。

出清价格的形成步骤如下:

  1. 所有发电机组申报自己卖出的电价和电量

  2. 市场根据机组报价,从低到高排序,依次从低价开始成交

  3. 当成交的容量和大于等于总需求时,达到市场出清(供需平衡),这时候最后一个达成交易的机组报价为市场出清价格

我们用一个实际案例来解释,假如市场总需求为3000MW,四个机组依次报价报量如下:

  • 机组1:报价150元,容量500MW

  • 机组2:报价200元,容量500MW

  • 机组3:报价250元,容量2000MW

  • 机组4:报价400元,容量2500MW

按价格从低到高,机组1先成交,随后是机组2、机组3,此时容量和等于总需求,不再有额外的电力需求,市场达到出清状态,市场出清价格为250元。

这里我们还可以发现一些现象:

  • 机组4由于过高的价格竞标失败,导致没有卖出任何电力。现实中机组4不得不停掉一些发电机。但煤电机组频繁关停会影响设备寿命和性能,还可能延误后续高价时段的正常发电,最终只能亏本卖出。

  • 机组1实际上能卖更多钱,如果他能预料到机组2和3报价为200和250,他就可以报价300元,保证最后一个出清的是他,而不是只能卖150元(但它无法报特别高的价,因为电力是公共物品,受政府管控,设置了价格上下限)

因此报价本身就是一个充满策略博弈的行为,就像在股市中总想做买入价格最低,卖出价格最高的那个人。

边际成本定价策略

实际边际成本并不会保持不变,由于边际报酬递减规律,其会随着发电量的增加而增加。但在该比赛中假设了边际成本不变。

在baseline中,我们选择了最简单的边际成本定价策略作为每个Agent的策略,在这里我们解释这样做是最朴素但也最稳健的原因,当然这种简单的策略没有包含智能体之间的交互以及与环境的交互。

边际成本的定义是生产额外一单位产品(这里是一度电)带来的成本增加,机组报出的电价不能低于边际成本,否则就会亏损。

  • 假设机组突然报一个低价,原来边际成本是300元,现在报200元,最后发现市场以350元出清,导致自己损失了本来可能赚的150元

  • 现在机组抬价,报1000元,然后发现低价的都先成交了,市场以400元出清,自己竞价失败,只能亏本售电。而电能具有难存储性,必须保证用电发电平衡,如果无法售出只能弃电,相当于成本价都无法收回。

因此长期来看,所有机组都会选择边际成本定价,至少能保证不亏不赚

但实际的电力市场并没有这么理想,不按边际成本报价才是正常的,具体来说发电机组可能产生如下行为:

  • 分析供需关系,在预期电力需求上升时提高报价以获取更高收益;在预期电力供应过剩时降低报价以抢占市场份额

  • 在成本价的基础上,乘以一个系数以获取额外利润

  • 根据其他机组过去的边际价格,估计市场边际电价,并在该基础上报一个低价,保证自己的电量能完全卖出

  • 预测其他机组的报价来提高自己报价

  • 跟随大部队报价

这些策略可能被应用于后续的效果提升中

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值