从零入门AI for Science(AI+经济)Datawhale暑期训练营

训练营介绍:        

从零入门 AI for Science(AI+经济)是 Datawhale 2024 年 AI 夏令营第三期的学习活动,基于阿里云天池平台“第二届世界科学智能大赛社会科学赛道:市场博弈和价格预测” 开展的实践学习。

学习内容方向:

数学建模方案(主体建模 Agent-based model)到强化学习方案。

AI+社会科学是近年来非常前沿的方向,主要结合博弈论、复杂系统、强化学习、系统动力学、市场经济等领域知识,对个体在环境中的行为进行模拟,探索群体的涌现现象,从而指导现实社会的政策制定、资源分配等。

在接下来的学习中,我们将进一步了解ABM(Agent-Based-Modeling)这一简洁而有趣的建模复杂世界的方法。学习如何结合博弈论、市场经济、时间序列挖掘等知识,帮助解决复杂的电力现货市场定价问题,体验计算社会科学的神奇之处。

通过魔塔社区的内置jupterlab进行了一次baseline的跑通,初步认识了

第二届世界科学智能大赛社会科学赛道:市场博弈和价格预测赛题背景

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

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

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

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

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

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

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

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

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

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

题数据

electricity price.csv:电力市场的市场出清价格,市场需求等信息。训练集范围为2021年12月1日到2023年7月1日,共计55392个点;测试集范围为2023年7月1日到2024年4月18日,共计28228个点

  1. Day/Time:交易时间,中国电力现货市场15分钟结算一次,一天共96个交易点

  2. demand:区域内电力总负荷(总需求),单位为MW

  3. clearing price (CNY/MWh):市场出清电价,单位为元/MW·h

简要介绍ABM(Agent-Based-Modeling)

注意,这里ABM的Agent不是大语言模型中的Agent,更接近强化学习中的Agent概念

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

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

你会发现这和DW数学建模教程中的微分方程和动力系统如此相似,事实上二者一脉相承,不过ABM不关注复杂的数学,只关注如何用简单的交互规则模拟复杂系统。

例如在模拟两种生物种群相互作用的捕食者-被捕食者(Predator-Prey)模型中,数学建模用洛特卡-沃尔泰拉(Lotka-Volterra)方程来描述作用关系,并用数值方法解微分方程观察结果:

  • 被捕食者种群变化率:$$\frac{dN}{dt} = rN - aNP$$,被捕食者种群的增长率来自自身的自然增长(rN)和捕食者捕食造成的减少(aNP)

  • 捕食者种群变化率:$$\frac{dP}{dt} = baNP - mP$$,捕食者种群的增长率来自捕食被捕食者获得的增长(baNP)和自身的自然死亡(mP)

但现实中,并不是所有模型都能用方程表示,尤其在交互更加复杂,参数逐渐增多的时候。因此ABM提供了一个更简单的方案——从简单的个体交互规则涌现系统的复杂性。在ABM中,实现相似的模拟结果,只需要三个规则:

  • 每个智能体有初始的能量,移动会消耗能量,进食会增加能量

  • 当能量过低,智能体死亡;当能量足够高,智能体会繁育

  • 如果移动后遇到食物(对于羊来说是青草,捕食者来说是羊),则吃下它

哇哦ABM真神奇,想不想试试写一个Datawhale宣传传播模型?(`∀´)

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

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

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

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

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

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

当然,这里只简要说明ABM的概念,具体我们将在Task2中进一步实践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元(但它无法报特别高的价,因为电力是公共物品,受政府管控,设置了价格上下限)

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

价格帽

根据上面内容,我们会想:“那如果用电特别紧缺”,机组不是能开特别高价来获利吗?

为了解决这个问题,并且保证市场稳定,电力现货市场中存在价格帽,即规定:

  • 报价上限为:1300元/MWH

  • 报价下限为:-80元/MWH

  • 出清价格上限:1500元/MWH

  • 出清价格下限:-100元/MWH

通过观察数据我们也能发现,数据中有4512个-80元的交易点,最低价格为-85元。而最高价格是1296元,接近价格上限。

边际成本定价策略

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

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

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

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

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

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

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

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

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

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

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

  • 跟随大部队报价

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

daytimedemandclearing price (CNY/MWh)
2021/12/10:1540334.18350.8
2021/12/10:3040523.15350.8
2021/12/10:4540374.74350.8

unit.csv:存放市场供给者(各发电机组)的参数信息

机组数据包含549个不同的火电机组

  1. unit ID:每个机组唯一的ID

  2. Capacity(MW):机组的额定容量(额定功率),越高机组的发电能力越强

  3. utilization hour (h) :电厂的年平均运行小时数,需要注意多个机组可能共同属于一个电厂,有相同的值

  4. coal consumption (g coal/KWh):每发一度电需要耗费多少煤炭,为成本参数

  5. power consumption rate:电厂单位时间内耗电量与发电量的百分比,例如单位时间耗电量为500度电,发电量为10000度电,利用率就是500/10000=5%。

unit IDCapacity (MW)Utilization Hour (h)Coal Consumption (g coal/KWh)Power Consumption Rate (%)
11102069.12266.076.91
21605509.22292.76.91
31603562.79293.356.91

比赛任务

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值