徐昊亮, 程紫运, 张海生, 董 礼, 华回春
(1.国网甘肃省电力公司经济技术研究院,甘肃 兰州 730050;2. 华北电力大学 新能源电力系统国家重点实验室,河北 保定 071003)
在公有制为主体的社会主义基本经济制度下,我国发电行业形成了少数几个国有发电企业占据大部分电力市场份额的局面。这种局面容易发生个别企业利用自己的规模优势极大地影响甚至决定市场最终成交价格的行为,即滥用市场力的行为。滥用市场力行为在电力体制改革初期,市场化程度相对较弱的情况下危害尤其严重,甚至可能造成大规模停电现象,造成重大经济损失,众所周知的美国加利福尼亚州电力危急就是由于发电企业滥用市场力进行物理持留造成的。目前,国内电力现货市场推行稍微滞后于计划,对滥用市场力的担忧也是原因之一。因而,对发电企业进行滥用市场力的识别和监管十分重要。
目前,国外电力市场已经形成了比较完备的市场力监管体系,但国外的电力市场的市场化程度较高,因而在市场力的监管方面主要是对整个市场整体市场力的监测和管控,其主要措施是对市场结构的控制,如美国PJM市场的措施之一是控制每个发电企业的市场份额不能超过20%。然而,国内主要靠投诉举报后的专家决策,效率低下,少数省份开展了市场力行为测试,即判断企业申报价格是否超过了国家参考的价格,这是一种变相的价格上限制度,对市场的反应不灵敏,并不适用于市场体制。随着电力市场的推进,国家提出用信用体系对市场主体的行为进行约束,因而目前需要对每场交易中每个发电企业滥用市场力违规行为进行实时识别,而不仅仅是对整体市场的监管,这样必然涉及大量的运算和对单个企业滥用市场力行为的定义。因而,必须提出适用于计算机分析的单个企业滥用市场力的量化定义,并进一步提出智能识别方法。
在发电企业滥用市场力定义方面,定性表述和市场力影响因素的研究已经比较成熟。通常,市场力是指某一产品或服务的提供者能够持续地影响或操纵市场价格,使之一直高于完全竞争情况下的市场价格的能力。判断发电企业是否滥用市场力可以从三个层次进行分析[1]。第一层次为交易前市场力,即发电企业是否拥有市场力,主要与发电企业的规模和所处区域的输电限制有关;第二层次为交易中市场力,即发电企业是否有应用市场力的意图,主要体现在发电企业的报价策略方面;第三层次为交易后市场力,即发电企业应用市场力造成的后果,主要从市场成交价格进行分析。目前,国内对这三个层次的讨论仍然停留在定性方面,没有形成定量的表述,不利于使用计算机进行分析。
发电企业个体滥用市场力识别是实现市场力监管的主要工作[2-5]。识别方法主要有三类[6,7]:指标法[8-13]、仿真法[14]和基于数据处理的方法[15,16]。文献[8-13]总结和研究了指标法,其中文献[8-10]对国内外传统的滥用市场力识别指标进行了总结和分析,文献[11]建立了一套从电价角度衡量市场力的指标,文献[13]提出了三个针对新能源发电企业的交易前识别指标。但这些指标主要集中在交易前、交易后两个层次,较少基于企业报价数据判断在交易中发电企业是否有滥用市场力的意图,而交易中市场力正是能够实现违规行为实时识别的关键。与指标法不同,文献[14]提出了一种使用市场仿真进行违规识别的方法,但其前提是监管机构对发电企业的完全了解,然而这在实际情况中是无法实现的。为了实现基于交易数据的发电企业滥用市场力行为的识别,文献[15,16]分别尝试了层次分析法和主成分分析法。但滥用市场力识别实质上是一种分类问题,在众多分类算法中,支持向量机由于准确率高且泛化能力强而得到更广泛的应用。由于电力市场交易数据具有维数高、数据量大等特点,直接应用支持向量机耗时较长,因而需要做出针对性改进。
本文首先分析了市场力形成的原理,给出了发电企业滥用市场力的量化定义。其次,为实现快速识别,构造了以支持向量机为核心的智能识别算法,根据电力市场的数据特点做出改进,并将定义与智能识别算法结合起来,形成了完整的滥用市场力识别方法。最后,通过电力市场仿真实验构造原始数据集,采用改进支持向量机进行训练和测试。
为了更为准确地判断发电企业是否滥用市场力,首先需要提出它的量化定义。在市场力的三个层次中,拥有市场力的发电企业可能由于市场规则等原因而不滥用市场力,而在交易完成后识别违规行为又会由于延时而造成不良后果,因此为实现对发电企业滥用市场力的及时准确识别,定义应主要围绕交易中市场力展开。
判断发电企业在交易中是否有滥用市场力的意图,应该基于发电企业的报价策略进行分析。可以确定的是,当发电企业将全部电量按照企业的发电成本报价时,该发电企业完全没有滥用市场力的意图,而一个发电企业将越大比重的电量申报的价格越高,该企业滥用市场力的意图就越明显。下面,本文从这个角度出发,给出滥用市场力的量化定义及相关的概念和计算公式。
在滥用市场力的定义中,首先需要确定的是发电企业生产成本的概念。根据上述分析,定义应该从发电企业滥用市场力的意图出发,因而发电成本的概念应该是企业做出发电策略时的衡量标准。现有的发电成本定义中最具代表性的是平准化发电成本和边际发电成本。平准化发电成本是发电企业整个寿命周期(含建设期)总成本支出的贴现值与运营周期内能量产出的经济时间价值的比值。而边际发电成本是每新发一单位电量带来的总发电成本的增量。容易看出,平准化发电成本是企业全寿命周期的平均成本,而边际发电成本是运营过程中的动态成本。发电企业作为一个单纯的生产者,很难对全寿命周期的成本进行计算,因此,发电企业一般选择边际发电成本作为报价策略的衡量标准。
其次,确定量化定义需要给出报价成本偏离值(申报价格偏离生产成本的程度)和报高价比例(申报价格为高价的电量比例)两个值的计算公式,计算公式如下:
其中高价为大于该企业边际发电成本×(1+报价成本偏离值的临界值)的价格。确定报价成本偏离值和报高价比例的临界值可以使用工程中确定临界值的经典算法——德尔菲法。德尔菲法,也称专家调查法,其原理是反馈匿名函询法。工作流程是:在对所要预测的问题征得专家的意见之后,进行整理、归纳、统计,再匿名反馈给各专家,再次征求意见,再集中,再反馈,直至得到一致的意见。
在报价成本偏离值和报高价比例计算涉及到的各个量中,申报价格、申报电量等数据监管部门可以通过交易平台获得,然而,边际发电成本无法从平台数据直接获得,需要另行计算,下面给出边际发电成本的计算方法。
根据电力市场统一出清的原理,企业在多段式(一般为10段)报价时,其报价将逐段逼近其边际发电成本,然而,国内的市场目前多为三段式报价,在这种报价情况下,企业的申报价格不足以充分暴露其边际发电成本,因此,提出边际发电成本的计算方法是有必要的。
本文采用经典的蒙特卡洛模拟法[17]进行边际发电成本的计算。蒙特卡洛模拟法可以最大限度的减少监管部门由于难以获取发电企业生产信息所造成的估算误差,仅需知道发电企业的机组功率和类型以及发电机组的生产函数即可。
对于有n个机组的发电企业,假定每个机组的生产函数为经典二次函数模型:
式中:ci表示机组i的成本;ai,bi,di为成本函数的参数,其中ai,bi与燃料价格相关;Pi为机组实际负荷。
实际中即使明确了生产函数,由于机组的状态、燃料价格、实际负荷的不确定性,机组成本仍难以估计,蒙特卡罗法是进行随机模拟的有力工具,随着模拟次数的增加,边际发电成本将最终收敛于最大可能边际发电成本。算法流程图如图1所示。
根据经验,实际负荷服从期望为期望负荷(实际上与申报电量相等),标准差为3%的正态分布,机组的强迫停运率为0.05,ai,bi,i=1,2,…,n分别服从[0.9E(ai),1.1E(ai)]和[0.9E(bi),1.1E(bi)]上的均匀分布。
图1 蒙特卡洛模拟法计算边际发电成本流程图Fig.1 Flow chart for calculating marginal generation cost by Monte Carlo simulation method
根据上述理论,给出滥用市场力的量化定义。鉴于国内电力市场竞争不足的现状,需要设置较为严苛的违规行为定义,以在最大程度上禁止违规行为,避免价格畸形。通过德尔菲法,确定报价成本偏离值和报高价比例的临界值分别为0.3和30%。本文最终将滥用市场力行为定义为,在某场集中竞价中,当某个发电企业30%及以上的电量的报价成本偏离值大于0.3时,即报高价比例大于30%时,该发电企业滥用市场力。
使用定义进行滥用市场力识别判断精准,但需要获知发电企业的成本函数,这具有一定的延时性且并不合理,而加强市场主体的信用评价需要识别方法既精准又及时,因而需要将定义与计算迅速的智能识别算法相结合,使用定义对原始样本集进行违规判定,并交由智能识别算法进行训练,然后使用训练后的智能识别算法对发电企业报价数据进行识别,得出疑似违规的发电企业,并使用定义对其进行最终判断。因此下面提出了以改进支持向量机为核心的智能识别算法。
违规识别本质上是分类问题,即将交易数据分为违规和未违规两类。支持向量机是一种高性能的分类算法,其基本思想是最大化分类间隔,它将分类问题归结为二次规划问题,有良好的泛化能力,因此本文选用支持向量机进行违规识别。然而,支持向量机当数据规模过高时效率较低,而电力市场数据规模较大,因此本文对支持向量机做出了改进。下面介绍违规识别中支持向量机及改进支持向量机的原理,并给出评价标准。
对于线性可分的数据,违规识别中的支持向量机的原理如下:
设最优分类界面为
wTx+b=0
则线性可分支持向量机的数学模型为
式中:ξi为松弛变量;C为惩罚参数,即C越大对误分类的惩罚越大。
根据拉格朗日对偶原理可将其转化为
此二次规划问题可解,若解为λ*,则最优解为
当样本点线性不可分时,需要引入核函数,将其转化为线性可分数据进行处理。核函数的定义为
K(xi,xj)=〈φ(xi),φ(xj)〉=φT(xi)·φ(xj)
其中〈·,·〉表示内积运算。常见的核函数有
由于支持向量机的核心是解二次规划问题,当数据规模过大时,会降低运算速度。电力市场的交易数据规模与报价的分段数有关,每一段报价涉及申报价格、申报电量两个数据,当分段数多时,数据规模会过大,因此对支持向量机进行改进,使用多维尺度分析算法对数据进行简化,从而提高运算效率和数据可视化水平。
多维尺度分析法本质是对样本点的距离矩阵进行降维,从而达到保距的效果。多维尺度分析算法原理如下:
设原始高维数据集X={x1,x2,…,xn},其中xi的含义如2.1所述。
Step 1:将数据集X转化为n×2j的矩阵A,其中n为发电企业的机组数量,j为报价分段数。对A进行归一化(每一列除以该列的最大值)得到矩阵B。
Step 2:计算矩阵B的距离矩阵C,其中C中的元素cij=‖xi-xj‖,i,j=1,2,…,n。
Step 3:中心化距离矩阵C得到矩阵D,即每行数据减去对应样本的均值,将矩阵转化为以零坐标为中心的矩阵。
Step 6:输出降维后的数据集。
违规识别的原始数据有违规数据nv和未违规数据nn两种。分类的结果可以分为4类:违规数据被识别为违规数据nvv,违规数据被识别为未违规数据nvn,未违规数据被识别为未违规数据nnn,未违规数据被识别为违规数据nnv。以正确率和召回率对算法进行评价,计算公式如下:
其中正确率可以反映分类的总体准确水平,召回率可以反映出违规数据的识别率,而忽略未违规数据判别的正确率。违规识别应该在违规数据被充分识别出的前提下,寻找正确率高的算法。算例分析本文使用电力市场仿真实验构造数据集进行算例分析,共选取39个样本点,过程如下文所述。
构造训练集需要通过定义判断样本点是否滥用市场力,首先计算边际发电成本,在此我们给出一个负荷预测为1 600 MW的发电企业的边际发电成本的计算过程,发电企业的机组参数如表1所示。
表1 机组参数
使用蒙特卡洛模拟法进行计算,迭代次数为10 000次,得边际发电成本为228.2 545元/MW·h,迭代图像见图2所示。
图2 蒙特卡洛模拟法求边际发电成本迭代图像Fig.2 Iterative image of marginal power generation cost by Monte Carlo simulation method
表2 部分发电企业数据
将39个样本点,逐一通过蒙特卡洛模拟法求其边际发电成本,并计算其每段报价的报价成本偏离值和报高价比例,得到违规样本点5个,未违规样本点34个。表2中列举了2个违规样本点和3个未违规样本点,发电企业9、34的报高价比例大于30%,而发电企业2、8、39的报高价比例小于30%。可以判定发电企业9、34违规,发电企业2、8、39未违规。完整数据见附录A。
通过以上计算构造训练集,训练集中数据包括三段申报电量和申报价格及违规判定,即表2中的3~8列及最后一列这七维数据。
构造完训练集之后,需要使用多维尺度分析法对训练集进行降维处理,本案例取前三个元素,累计贡献率达99.03%,表3列举了5组数据,完整数据见附录B。分类绘制三维图像如图3所示。
表3 经过多维尺度分析降维后的部分数据
图3 训练集三维图像Fig.3 3d image of training set
下面使用训练集的39个样本点训练,同时选用了未改进的支持向量机、改进后的支持向量机以及常用的分类算法KNN、逻辑树等方法训练和测试。
典型方法的训练及测试结果如表4所示(最佳结果已加粗表示),完整结果见附录C。可以看出改进的SVM在训练速度、准确率及召回率方面均为最佳,性能优越。
表4 其它方法训练及测试结果
下面进行核函数选择,通过图3可以看出该训练集是线性不可分的数据集,因而进行支持向量机训练时需要使用核函数进行映射,分别使用线性核函数、高斯核函数、多项式核函数、Sigmoid核函数进行训练和测试。
各核函数的测试评价结果指标如表5所示。
从表5可以看出,多项式核函数在保证违规数据均被识别处的前提下,正确率最高。因此,选择多项式核函数,指数为3,其正确率和召回率均达到100%。改进后的支持向量机训练时间为0.29 s,测试时间仅为0.019 s,而其他方法的训练时间均大于0.4 s,且在准确率及召回率方面均明显弱于本文的方法,说明使用多维尺度分析法改进支持向量机可以提高识别效率。结果表明论文方法可以快速有效识别发电企业滥用市场力的违规行为。
表5 支持向量机测试正确率和召回率
本文给出了滥用市场力的量化定义,设计了以改进支持向量机为核心的识别算法,两者结合,可以实现发电企业滥用市场力的实时识别,推动市场主体的信用评价的发展。本文的主要结论如下:
(1)加强市场主体的信用评价需要实现发电企业滥用市场力的实时识别,为此本文给出了基于交易中发电企业申报数据的定义,经仿真实验证明,该定义可以合理地对发电企业的滥用市场力行为进行判别。
(2)多维尺度分析算法可以有效地解决支持向量机由于数据维数过高造成的效率低下问题,并实现数据的可视化,使用该算法改进违规识别中的支持向量机提高了识别效率和数据可视化水平。
(3)本文的发电企业滥用市场力违规识别方法将量化定义和以改进支持向量机为核心的识别算法充分结合起来,既利用了量化定义,使智能识别有充分的经济学理论支撑,又使用智能识别方法找到了报价数据和违规识别的直接联系,使得识别速度得到了提升。