3、E(环境)风险因子识别:气候变化风险、碳排放与碳足迹、水资源与生物多样性风险

聊到E(环境)因子,很多做量化的朋友第一反应就是“这东西太虚,没法量化”。

说实话,我早年也这么想。直到有一次,我帮一家欧洲的资管机构做因子归因,发现他们持仓里有一家水务公司,因为连续三年干旱导致水源枯竭,股价直接腰斩。而我们的多因子模型里,居然没有任何一个指标能提前预警这个风险。

从那以后,我开始认真对待环境因子。今天我们就来拆解一下,E因子里最核心的三个风险维度。

3.1 气候变化风险:物理风险与转型风险

气候变化风险,说白了就是两类:

  • 物理风险:台风、洪水、干旱、海平面上升。这些是“看得见”的损失。
  • 转型风险:政策收紧、碳税、技术替代。这些是“看不见”的合规成本。

我个人习惯把物理风险叫做“急性风险”,转型风险叫做“慢性风险”。急性风险好理解,比如一家沿海的化工企业,一场飓风就能让工厂停产三个月。慢性风险更隐蔽,比如欧盟的碳边境调节机制(CBAM)一落地,出口型企业的利润可能直接缩水5%-10%。

量化要点

物理风险可以用“气候情景分析”来建模。我常用的方法是:

  • 获取IPCC的RCP 4.5和RCP 8.5情景数据
  • 将企业的地理位置与极端天气频率做空间匹配
  • 计算“气候暴露度”作为风险因子

避坑指南

我曾经犯过一个错误——直接用历史天气数据做回测。结果发现,历史数据根本预测不了“百年一遇”的极端事件。后来我改用蒙特卡洛模拟,生成1000种可能的天气路径,才勉强靠谱。

3.2 碳排放与碳足迹:从Scope 1到Scope 3

碳排放是E因子里最成熟、也最容易被量化的指标。但这里有个坑——很多人只看Scope 1(直接排放)和Scope 2(能源间接排放),忽略了Scope 3(供应链排放)。

你想想看,一家苹果公司的Scope 3排放,可能占其总碳足迹的90%以上。如果你只看Scope 1和2,那你的模型基本等于没看。

我建议的做法是:

  1. 优先获取CDP(碳披露项目)数据,这是目前最全的碳排放数据库
  2. 计算碳强度:碳排放量 / 营收(或市值),用于跨行业比较
  3. 关注碳减排趋势:连续3年碳强度下降的企业,通常有更好的管理能力

注意

碳排放数据有个致命问题——滞后性。大部分企业的碳排放数据要延迟1-2年才公布。所以,我一般会用“行业平均碳强度 + 企业产能利用率”来做实时估算。

这里给一个简单的Python示例,用于计算碳强度因子:

import pandas as pd

# 假设df包含碳排放量(吨CO2e)和营收(百万美元)
df['carbon_intensity'] = df['scope1_emissions'] + df['scope2_emissions']
df['carbon_intensity'] = df['carbon_intensity'] / df['revenue']

# 行业标准化
df['carbon_intensity_z'] = (df['carbon_intensity'] - 
                            df.groupby('industry')['carbon_intensity'].transform('mean')) / \
                            df.groupby('industry')['carbon_intensity'].transform('std')

# 因子方向:碳强度越低越好(负向因子)
df['carbon_factor'] = -df['carbon_intensity_z']

3.3 水资源与生物多样性风险

这两个因子,说实话,在量化圈里还比较“小众”。但我觉得,未来5-10年,它们会成为主流。

水资源风险

  • 不是所有行业都受水资源影响。重点关注:半导体、化工、纺织、食品饮料
  • 核心指标:水消耗强度(立方米/营收)、水回用率、所在流域的水压力指数

生物多样性风险

  • 这个更前沿。目前主要靠“地理位置 + 保护区数据”来评估
  • 比如:一家矿业公司,如果矿区靠近世界自然遗产地,那它的生物多样性风险就极高

我的经验

水资源风险其实很好用。我记得有一次,我构建了一个“水压力因子”,专门做空高水消耗、高水压力地区的企业。回测下来,这个因子在干旱年份的夏普比率能达到1.5以上。说白了,水就是钱。

3.4 知识体系框架图

下面这张图,是我自己梳理的E因子识别框架。你可以把它当作一个检查清单:

E(环境)风险因子识别框架 气候变化风险 碳排放与碳足迹 水资源与生物多样性 物理风险(急性) 转型风险(慢性) 情景分析(RCP 4.5/8.5) Scope 1(直接排放) Scope 2(能源间接) Scope 3(供应链) 碳强度因子 水消耗强度 水压力指数 保护区距离 生物多样性暴露 输出:E因子综合评分(0-100) 用于多因子模型中的风险调整或权重优化

3.5 实战中的注意事项

最后,分享几个我在实战中踩过的坑:

  • 数据频率问题:环境数据大多是年度数据,而量化模型需要月度甚至日度数据。我的解决办法是:用季度财报中的“资本支出”作为代理变量,高频更新环境风险敞口。
  • 行业差异:同一个E因子,在不同行业里的含义完全不同。比如,碳排放因子对科技公司几乎没用,但对能源公司就是命根子。一定要做行业中性化处理。
  • 不要过度拟合:环境因子在回测中往往表现很好,但实盘可能失效。为什么?因为市场对ESG的定价逻辑在快速变化。我建议每半年重新校准一次因子权重。

一个小技巧

如果你刚开始做E因子,我建议先从“碳排放强度”入手。这个数据最容易获取,逻辑也最清晰。等跑通了,再慢慢加入水资源和生物多样性。别想一口吃成胖子。

嗯,关于E因子的识别,今天就聊到这里。记住一句话:环境风险不是“道德标签”,而是实实在在的财务风险。你把它量化了,它就是alpha。


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