3. E(环境)因子构建:碳排放强度、水资源管理、绿色专利数量、环境得分标准化

好,咱们进入E因子的实战环节。环境因子,说白了就是衡量一家公司在环保上到底干了多少实事。我见过太多人只看一个碳排放数据就下结论,结果踩了大坑。今天我把四个核心维度拆开讲,每个维度背后都有我踩过的坑和总结的经验。

3.1 碳排放强度:别被绝对值骗了

很多人一上来就拉碳排放总量,然后说A公司比B公司排得多,所以A公司差。这其实是个误区。你想想看,一家钢铁厂和一家软件公司,碳排放总量能比吗?

我个人习惯用碳排放强度,也就是单位营收的碳排放量。公式很简单:

碳排放强度 = 年度碳排放总量(吨CO₂e) / 年度营业收入(百万元)

这样做的好处是剔除了规模效应。我在一个项目中遇到过一家化工企业,碳排放总量每年增长5%,但营收增长更快,算下来强度其实是下降的。如果你只看总量,就会误判它是个坏学生。

关键点:碳排放强度越低,说明这家公司用更少的碳排放换来了更多的收入,环境效率越高。

数据来源方面,我建议优先用CDP(碳披露项目)的数据,其次是公司年报或ESG报告。如果实在没有,可以用行业均值做插值,但一定要在因子里打个标记,后面做回测时能看出来哪些是估计值。

3.2 水资源管理:容易被忽视的硬约束

水资源这个因子,说实话,以前我也不太重视。直到有一次我分析一家食品饮料公司,发现它在干旱地区的工厂因为取水限制停产了整整两周。那之后我才意识到,水不是免费的,也不是无限的。

水资源管理的核心指标我一般看两个:

  • 取水强度:总取水量 / 营收,单位是立方米/百万元
  • 水循环利用率:循环用水量 / 总用水量,越高越好

这里有个坑——不同行业的取水强度差异巨大。比如半导体行业需要大量超纯水,而金融行业几乎不直接用水。所以做标准化时,一定要按行业分组处理。

我的小技巧:对于水风险高的行业(食品饮料、化工、采矿),我会把水资源因子的权重调高一些。对于低风险行业,适当降低权重甚至忽略。

3.3 绿色专利数量:创新能力的硬指标

绿色专利数量,反映的是公司在环保技术上的创新能力。这个因子我特别喜欢,因为它有前瞻性——今天的专利可能就是明天的产品。

具体操作上,我一般用WIPO的绿色专利分类号去专利数据库里检索。比如:

# 伪代码示例
绿色专利分类号 = ['Y02', 'Y04S']  # 气候变化减缓技术
专利数量 = search_patents(company_name, classification=绿色专利分类号)
绿色专利强度 = 专利数量 / 公司总资产(十亿元)

为什么要除以总资产?因为大公司专利多很正常,但我们要看的是相对创新能力。我曾经对比过两家公司,一家是传统能源巨头,专利数量很多但大部分是化石燃料相关;另一家是新能源初创,专利数量少但全是绿色技术。如果不做标准化,你会误判前者更环保。

注意:专利数据有滞后性,一般滞后1-2年。另外,有些公司会把非绿色技术包装成绿色专利来充数,需要人工复核或使用NLP做文本分类过滤。

3.4 环境得分标准化:让不同量纲的数据能打架

好,现在我们有四个维度的原始数据:碳排放强度、取水强度、水循环利用率、绿色专利强度。它们的量纲完全不同,没法直接相加。所以要做标准化。

我常用的方法是Z-score标准化,但会做一点改进:

# 改进版Z-score标准化
def robust_zscore(series):
    median = series.median()
    mad = (series - median).abs().median()  # 中位数绝对偏差
    # 用MAD代替标准差,对异常值更鲁棒
    z = (series - median) / (mad * 1.4826)  # 1.4826是正态分布下的校正因子
    return z

为什么要用MAD?因为碳排放数据里经常有极端值——比如某年工厂发生泄漏,排放量暴增10倍。如果用普通Z-score,这个异常值会把其他所有公司的分数压得很低。用MAD就好很多。

标准化之后,四个维度的分数都在同一个尺度上。然后我按以下权重合成最终的环境得分:

维度 权重 说明
碳排放强度(反向) 40% 核心指标,权重最高
水资源管理 25% 取水强度反向 + 循环利用率正向
绿色专利强度 20% 前瞻性指标
其他环境得分 15% 如废弃物管理、生物多样性等

最终环境得分 = 0.4 × Z(碳排放强度反向) + 0.25 × Z(水资源管理) + 0.2 × Z(绿色专利强度) + 0.15 × Z(其他)

得分越高,代表环境表现越好。

3.5 核心逻辑框架图

下面这张图把整个E因子构建的流程串起来了,你可以对照着看:

E因子构建核心流程 原始数据输入 CDP/年报/专利库 行业分类标签 碳排放强度 单位营收排放量 水资源管理 取水强度+循环率 绿色专利数量 相对创新能力 其他环境指标 废弃物等 行业分组 → 稳健Z-score标准化(MAD替代标准差) 加权合成:40%碳 + 25%水 + 20%专利 + 15%其他 最终环境得分(E Score)

3.6 避坑指南

最后,分享几个我踩过的坑:

  • 数据缺失问题:很多中小公司根本不披露碳排放数据。我建议用行业均值填充,但要在因子里加一个「数据可得性」的哑变量,后面做多因子模型时可以用来做条件筛选。
  • 范围一、二、三的区分:碳排放有范围一(直接排放)、范围二(电力等间接排放)、范围三(供应链排放)。大部分公司只披露范围一和二,范围三数据质量很差。我一般只用范围一+二,除非有可靠数据来源。
  • 专利质量的陷阱:有些公司申请一堆垃圾专利来凑数。我建议用专利被引次数做加权,或者只保留授权专利,不统计申请中的。
  • 时间对齐:碳排放数据通常是年度数据,而股价是日度的。做回测时要注意对齐时间戳,别把今年的碳排放和去年的股价混在一起。

我的经验:E因子在传统高污染行业(能源、化工、材料)中的区分度最高,在科技和金融行业里区分度较低。如果你做全市场选股,建议按行业分层后再做因子测试。

嗯,E因子的构建大概就是这些。记住一点:环境数据天生就有噪音,不要追求完美,而是追求信号足够强、逻辑足够自洽。下一节我们会讲S因子(社会因子)的构建,到时候再聊。

专注资料整理