4. 描述性统计:均值、方差、偏度、峰度、极值分析,理解碳价分布特征

做碳市场高频交易,第一步不是跑模型,而是先摸清数据的「脾气」。

说白了,就是得知道碳价这个数字到底是怎么分布的。它是不是像正态分布那样规规矩矩?还是说经常抽风?

我个人习惯,拿到任何新的碳市场数据,第一件事就是跑一遍描述性统计。这就像医生看病先量体温、测血压一样,是基本功。

4.1 均值与方差:碳价的「中心」和「波动」

均值,就是碳价的平均价格。但这里有个坑——碳价数据往往有尖峰厚尾特征,均值很容易被极端值带偏。

我记得有一次分析广东碳市场的盘中数据,某天下午突然出现一笔异常高的成交,直接把当天的均值拉高了3%。如果你只看均值,会以为市场情绪突然亢奋了。其实呢?就是一笔错单。

我的建议: 在高频分析中,我更喜欢用中位数来代替均值,尤其是做日内波动分析时。中位数对异常值更「淡定」。

方差(或标准差)衡量的是碳价的波动程度。方差越大,说明价格越「跳」。

你想想看,如果方差突然放大,往往意味着有重大消息要出来了,或者市场流动性出了问题。

import numpy as np
import pandas as pd

# 假设 df 是包含碳价数据的 DataFrame,列名为 'price'
# 计算日内5分钟频率的均值和标准差
df['return'] = df['price'].pct_change()
daily_stats = df.resample('1D').agg({
    'price': ['mean', 'std', 'min', 'max'],
    'return': ['std']
})
print(daily_stats.head())

4.2 偏度:碳价是「左偏」还是「右偏」?

偏度描述的是数据分布的不对称性。

  • 偏度 > 0(右偏):说明价格经常出现较大的正涨幅,但跌幅相对温和。市场情绪偏乐观。
  • 偏度 < 0(左偏):说明价格容易暴跌,但上涨比较缓慢。市场情绪偏悲观。

我在研究欧盟碳市场(EU ETS)时发现,政策公布前后的偏度变化非常明显。政策利好时,偏度瞬间转正;政策利空时,偏度直接跳水到负值。

实战经验: 我曾经用偏度作为「市场情绪指标」来辅助判断开仓方向。当偏度连续3个15分钟窗口都大于0.5时,我会倾向于做多。当然,这需要结合其他指标一起看。

4.3 峰度:碳价的「尖峰厚尾」特征

峰度衡量的是数据分布的「尖锐」程度。

  • 峰度 > 3(尖峰):说明价格集中在均值附近,但尾部(极端值)比正态分布更厚。这就是典型的「尖峰厚尾」。
  • 峰度 < 3(平峰):分布比较平坦,极端值较少。

碳市场的数据,尤其是高频数据,峰度通常远大于3。我见过最高的峰度值出现在湖北碳市场的开盘瞬间,峰度一度超过20。

为什么会这样?因为碳市场不是连续竞价,而是有集合竞价和间歇性交易。价格经常在某个区间内「僵持」,然后突然爆发。

避坑指南: 我曾经犯过一个错误——直接用正态分布假设去给碳价做VaR(风险价值)计算。结果呢?实际发生的极端亏损比模型预测的大了整整一倍。后来我才意识到,碳价的厚尾特征太明显了,必须用t分布或者极值理论(EVT)来建模。

4.4 极值分析:捕捉碳价的「极限」

极值分析,说白了就是研究碳价「最坏的情况」和「最好的情况」。

我们通常关注两个指标:

  • 最大值/最小值:日内最高价和最低价,反映当天的价格区间。
  • 极值间隔:两次极端价格之间的时间间隔。如果间隔越来越短,说明市场越来越不稳定。

我个人习惯用「极值比率」——即日内最高价除以最低价。这个比率如果超过1.05(5%的波动),我就会警惕起来,检查是否有异常事件。

# 计算日内极值比率
df['daily_range'] = df.groupby(df.index.date)['price'].transform(lambda x: x.max() / x.min())
# 标记异常波动日
abnormal_days = df[df['daily_range'] > 1.05].index.date
print(f"异常波动天数: {len(set(abnormal_days))}")

4.5 知识体系:描述性统计的核心逻辑

下面这张图,是我自己总结的碳价分布特征分析框架。你可以把它当作一个检查清单。

碳价分布特征分析 均值与方差 中心位置 + 波动幅度 中位数更稳健 偏度 分布不对称性 右偏乐观 / 左偏悲观 峰度 尖峰厚尾特征 峰度 > 3 是常态 极值分析 极端价格 + 极值间隔 极值比率 > 1.05 需警惕 核心目标:识别碳价分布的非正态特征,为建模打基础

4.6 实战案例:一次完整的描述性统计

拿某试点碳市场2023年7月的数据举个例子。我随机抽了一天,跑了一下描述性统计:

统计量 数值 解读
均值 58.23 元/吨 价格中枢在58元附近
中位数 57.98 元/吨 与均值接近,说明没有严重偏态
标准差 1.45 元/吨 日内波动约2.5%,相对温和
偏度 0.32 轻微右偏,上涨概率略大
峰度 5.87 尖峰厚尾,极端值比正态分布多
最小值 55.10 元/吨 日内最低点
最大值 61.50 元/吨 日内最高点,极值比率1.12

看到这个结果,我的第一反应是:峰度5.87,说明这个市场有「肥尾」风险。做策略时,止损要设得比正态分布假设下更宽一些。

一句话总结: 描述性统计不是走过场,它是你理解碳价「性格」的第一步。均值告诉你它在哪里,方差告诉你它怎么动,偏度和峰度告诉你它「疯不疯」,极值告诉你它「能疯到什么程度」。

专注资料整理