halo 的技术博客

返回

「买 ESG 评分高的公司,长期是不是更赚钱?」这是过去十年被问得最多、也最容易被营销话术带偏的问题。作为量化人,我们不靠信念回答,靠因子检验:把 ESG 评分当成一个因子,算它的信息系数(IC)、做分组组合回测,看它到底有没有稳定的截面预测力。

结论先放这里:ESG 绝对水平更像「风险与价值观约束」,净 alpha 接近零;真正有信息增量的,是 ESG 的「变化」——一家公司评分在改善,比它「本来就高」更有预测力。 下面用一段自包含的模拟面板把这件事跑通,所有图表均为真实计算、非占位图。

ESG 评分的行业系统性偏差 + E/S/G 分项相关性

一、ESG 数据先有三个「脏」现实#

在谈 alpha 之前,得先承认 ESG 数据本身的质量问题,否则因子还没建就埋了雷:

  1. 行业系统性偏差:ESG 评分天然行业分化——能源、材料天然低分,公用事业、医疗天然高分。不中性化直接排序,等于在做行业暴露。
  2. E/S/G 高度重叠:三者相关系数常高达 0.6–0.8,信息冗余严重。综合分里 G(治理)数据最稀缺、最易被「拍脑袋」,权重给高了反而引入噪声。
  3. 披露与口径噪声:同一家公司,不同评级机构(MSCI / Sustainalytics / 国内商道融绿等)评分可差出一两个标准差;而且披露滞后,你拿到的「当期分」往往是半年前的旧闻。

所以第一步永远是:行业中性化 + 用分项而不是盲目信综合分 + 对评级机构做交叉验证

二、把 ESG 拆成两个因子:水平 vs 改善#

关键动作是区分两件事:

  • ESG 水平因子(Level):当期综合分(行业中性后)。代表「这家公司现在有多可持续」。
  • ESG 改善因子(ΔESG):过去 12 个月评分的变化量。代表「它在变好还是变坏」。

直觉上,市场会对「持续改善」的公司逐步重定价(类似盈利修正 momentum),而对「一直很高分」的公司早已 price-in。所以 ΔESG 更可能有未被消化的增量信息。下面用模拟验证。

import numpy as np, pandas as pd

# 假设已有面板:sec(行业), E/S/G 分项, esg(综合), d_esg(ΔESG), fwd_ret(未来12月收益)
# 1) 行业中性化:在每个行业内对 esg 做 z-score
df["esg_neu"] = df.groupby("sec")["esg"].transform(lambda x: (x - x.mean()) / x.std())
df["desg_neu"] = df.groupby("sec")["d_esg"].transform(lambda x: (x - x.mean()) / x.std())

# 2) 信息系数 IC = 截面相关系数
ic_level = np.corrcoef(df["esg_neu"], df["fwd_ret"])[0, 1]
ic_delta = np.corrcoef(df["desg_neu"], df["fwd_ret"])[0, 1]
print(f"IC(ESG水平)={ic_level:.3f}  IC(ΔESG)={ic_delta:.3f}")
python

把 300 只股票按当期 ESG 分画出「分 vs 未来收益」散点,拟合斜率很平——说明水平因子截面预测力很弱:

当期 ESG 分 vs 未来收益:截面相关很弱

三、实证:水平因子弱,改善因子强#

在模拟里,ESG 水平只给了微弱的截面信号(因为真实世界里它大半已被市场消化),而 ΔESG 保留了独立增量。两端 IC 对比:

IC(ESG水平) ≈ 0.16   (弱正,且高度依赖行业中性化是否做干净)
IC(ΔESG)   ≈ 0.24   (明显更强,信息增量在「变化」)
plaintext

落到组合层面更直观:把股票按因子分五组,取最高组 vs 最低组,再用月度面板模拟组合净值(已扣掉行业 beta,纯因子收益视角):

结果(模拟,年化):

组合CAGRSharpe
低 ESG(水平最低组)11.5%1.10
高 ESG(水平最高组)12.5%1.13
等权基准14.7%1.49
ESG 改善(ΔESG 最高组)17.1%1.50

ESG 分组组合累计净值:改善因子领先,水平因子优势有限

注意一个反直觉点:静态高 ESG 组(12.5%)甚至跑输等权基准(14.7%)。这正是真实数据的缩影——naive 高 ESG 筛选往往因为超配低增长公用事业、低配高估值科技,反而吃行业亏;而「ESG 改善」作为类似 momentum 的信号,才真正贡献了超额。

四、为什么 ESG 难成干净的 Alpha#

把上面现象归纳成四条硬约束:

  1. 拥挤与提前消化:ESG 已是万亿级配置主题,好公司的溢价早被买进去,水平因子接近「已知信息」,IC 自然衰减。
  2. 数据滞后与 greenwashing:披露慢半拍,且存在「洗绿」(表面高分、实质一般)。用滞后数据训练,等于用旧闻预测未来。
  3. 行业暴露伪装成因子:不中性化的 ESG 因子,大半是行业 beta。你以为在押 ESG,其实在押「低波防御板块」。
  4. 危机期的 ESG 崩塌:2022 年能源股大涨、ESG 基金跑输,说明 ESG 约束在通胀/商品周期里会系统性拖累——它本质是风险约束,不是全天候 alpha。

五、可落地的用法(别丢,也别神话)#

量化上 ESG 最稳的位置不是「选股主因子」,而是两层辅助:

  • 作为风险约束:在组合优化里加 esg >= 阈值esg 行业中性,把不可投资的尾部(治理极差、争议事件)挡在门外,不指望它贡献收益,只求少踩雷。
  • 作为增强信号:用 ΔESG(改善) 而非绝对分做 tilt 或叠加到既有多因子模型——它是少数有信息增量的 ESG 维度,且和估值、动量相关度低,能补一块空白。
# 把 ΔESG 当作一个正交增强因子,叠加到现有打分
composite = 0.7 * existing_alpha + 0.3 * desg_neu   # 仅作示意权重
# 关键:desg_neu 必须先行业中性化,否则又变回行业暴露
python

六、小结#

ESG 数据转化为 alpha,但转化的入口不在「绝对分高」,而在「在改善」。学术与本文模拟一致地指向同一结论:

  • ESG 水平因子:净 alpha ≈ 0,主要价值是风险约束与合规过滤;
  • ESG 改善(ΔESG)因子:有稳定、显著更强的 IC,是真正可交易的信息增量;
  • 任何用法前,行业中性化 + 多源交叉验证 + 警惕滞后 是三道不能省的工序。

把可持续数据当「信仰」会亏钱,当「约束 + 改善信号」才是对它最诚实的量化态度。

本文面板为自包含模拟(300 只股票、含行业偏差与 E/S/G 噪声),用于演示因子构建与 IC 逻辑;实盘接入需替换为真实评级数据并严格行业中性化,结果会因数据质量与样本期显著不同。

ESG 因子量化:可持续数据能否转化为 Alpha
https://blog.halo26812.eu.org/blog/esg-factor-quant
Author halo
Published at 2026年7月11日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨