国内某多策略私募的基金经理问:「这两个因子样本内夏普都是 1.0,都跨过 Hou-Xue-Zhang t 值 > 3,都在 Chen-Zimmermann 开源库有复现。为什么权重不同?」研究员愣了一下。基金经理继续:「盈利能力因子有一个可引用的故事——q 理论:高 ROE 的公司资本成本低,这一差异就是状态变量风险溢价。低波动异象的故事是彩票偏好与杠杆厌恶:散户付了高价,套利者又无法做空。第一个面向未来可靠;第二个套利风险大,合成因子里应当收缩。」研究员点头。本节课就要装上这个区分。L1 + L2 + L3 告诉你因子统计上是否真实、方法学上是否干净;L4 告诉你它未来还会不会付钱、以及在合成因子里应占多大权重。
风险解释下的 ICAPM 传统
Merton 1973 在 Econometrica 上把静态 CAPM 推广到动态环境(跨期资本资产定价模型, intertemporal capital asset pricing model, ICAPM)。在 Merton 的框架下,任何能预测未来不利投资机会的变量——衰退状态变量、流动性状态变量、波动率制度状态变量——都是市场 beta 之外的候选被定价风险。一只股票如果在状态变量 坏时态 的实现下载荷为正,就该拿到一份溢价,作为它「在边际投资者最需要正回报时偏偏交付负回报」的补偿。框架是抽象的;实证含义取决于识别 哪些 状态变量重要、哪些 特征能代理它们。
现代因子动物园中常用的三种风险解释:
1. value_premium = bad_times_beta (Lettau-Ludvigson 2001 cay-conditioning;
Campbell-Vuolteenaho 2004 cash-flow beta vs discount-rate beta)
2. profitability_premium = q_theory_cost_of_capital_differential (Hou-Xue-Zhang 2015)
3. investment_premium = q_theory_real_options_differential (Hou-Xue-Zhang 2015 + Cochrane 1996)
三条解释标签、引证、以及「a risk-based factor should not decay post-publication; it should perform poorly in bad times when the state variable is most adverse」这条规则,跨地区逐字一致。价值溢价被解释成坏时态 beta:价值股是处于困境的公司,它们的现金流对衰退风险特别敏感;投资者持有困境风险要求溢价。Lettau-Ludvigson 2001 在 JF 上证明,按消费财富比 cay 条件化能强化价值-CAPM 故事;Campbell-Vuolteenaho 2004 在 AER 上把市场 beta 拆为现金流 beta 与折现率 beta,发现价值股的现金流 beta 特别高——按 Campbell 的会计口径,这是「好」的那种风险。q 理论下的盈利与投资溢价来自公司投资的欧拉方程:高盈利公司预期收益低于低盈利公司,两者之差就是盈利能力溢价;投资溢价同理来自 q 理论的实物期权通道。Hou-Xue-Zhang 2015 把 q 因子实现直接给了出来。
风险解释下因子的实证标志:出版后套利无法消除风险溢价,因为底层风险真实存在,总要有人持有。所以溢价 不会衰减(或衰减很小);因子在衰退中表现差,正好对应状态变量最不利的时态;预期收益就是这份风险的补偿。
行为金融传统
竞争性传统主张:因子溢价存在,是因为投资者由于认知偏差系统性地错误定价资产,而套利限制让理性交易者无法完全纠正这种错误定价。三个规范化模型:
1. Daniel_Hirshleifer_Subrahmanyam_1998_overconfidence_self_attribution_momentum
2. Barberis_Shleifer_Vishny_1998_conservatism_PEAD
3. Hong_Stein_1999_newswatcher_vs_momentum_trader
三个模型标签、引证、以及「a behavioural factor should decay post-publication as arbitrageurs read the paper and trade against it」这条规则,跨地区逐字一致。Daniel-Hirshleifer-Subrahmanyam 1998 在 JF 上(下称 DHS)构建了一个模型:投资者对私人信号过度自信,并表现出有偏的自归因(投资者把符合预期的信号归功于自己、把不符合的信号归咎于噪声)。结果是对私人信息的过度反应再加上延续,产生短到中期动量。Barberis-Shleifer-Vishny 1998 在 JFE 上(下称 BSV)构建了一个代表性投资者两态模型:保守态下投资者对新盈利公告反应不足;代表性态下投资者过度外推规律。保守态解释盈利公告漂移(post-earnings announcement drift, PEAD);代表性态解释长期反转。Hong-Stein 1999 在 JF 上把信息缓慢扩散(新闻观察者交易者, newswatcher)与动量交易者结合起来,同时产生短期反应不足与长期过度反应。
行为解释下因子的实证标志:出版后套利 应当 部分侵蚀错误定价,因为理性交易者会读到论文、识别出异象、反向交易。所以溢价 应当 在出版后窗口衰减。McLean-Pontiff 2016 测出的 32% 经济衰减,正好对应这一故事。
套利限制
行为故事有一个明显的难题:既然理性套利者看到了错误定价,为什么它不立即消失?套利限制(limits to arbitrage)文献——Shleifer-Vishny 1997 在 JF、De Long-Shleifer-Summers-Waldmann 1990 在 JPE、Stambaugh-Yu-Yuan 2012 在 JF——解释了为什么错误定价在聪明钱出现时仍能持续。四个规范化通道:
1. fundamental_risk (mispricing widens before correcting; LTCM 1998 example)
2. noise_trader_risk (sentiment drives prices further from fundamentals;
De Long-Shleifer-Summers-Waldmann 1990)
3. funding_constraints (capital withdrawals during widening; Shleifer-Vishny 1997 agent-principal problem)
4. short_sale_constraints (small-cap, hard-to-borrow, illiquid stocks;
Stambaugh-Yu-Yuan 2012 short-side anomaly concentration)
四个通道标签、引证、以及「mispricings persist when arbitrage is risky」这条规则,跨地区逐字一致。基本面风险:理性套利者建仓,错误定价收敛前可能 先扩大——按市值计价的浮亏可能很惨,套利者可能在最糟的时候被迫平仓。LTCM 1998 是教科书案例:对俄罗斯主权债务、企业信用价差的理性头寸,1998 年 8 月经历严重浮亏,直到 1999 年才收敛。噪声交易者风险(De Long-Shleifer-Summers-Waldmann 1990):情绪驱动的交易者把价格推得更远再回归,套利者面临在收敛兑付前被挤出市场的风险。资金约束(Shleifer-Vishny 1997):套利者管理的是别人的资本,委托人偏偏在头寸浮亏最深时撤资。卖空约束(Stambaugh-Yu-Yuan 2012):做空小盘、难借券股成本高;需要做空高估腿的行为异象因此特别持久。A 股市场内,SSE 与 SZSE 的融券池极薄,沪深300 之外个股的卖空更难;T+1 结算 进一步抑制短线套利,使行为异象在 A 股留存得比美股更久。
存活聚类的风险 vs 行为分类
把诊断应用到 L2 存活因子聚类上:
1. value: mixed_risk_plus_behavioural (~30% decay)
2. momentum: behavioural_dominant (~25% decay; DHS 1998)
3. profitability: risk_dominant (~near_zero_decay; q-theory)
4. investment: risk_dominant (~near_zero_decay; q-theory)
5. low_volatility: behavioural_dominant (~modest_decay; lottery-preference / leverage-aversion)
6. quality: mixed (~near_zero_decay)
六个聚类分类、衰减量级、以及「风险型因子面向未来可靠;行为型因子套利风险大」这条规则,跨地区逐字一致。价值落在混合桶里:坏时态 beta 风险故事(Lettau-Ludvigson)可信,同时 过度外推近期增长 的行为故事也可信;出版后约 30% 的实证衰减跟混合来源一致。动量是行为主导:DHS 1998 的过度反应故事是规范化解释;约 25% 的衰减是出版后部分套利的实证标志。盈利能力与投资在 q 理论下是风险主导;近零的出版后衰减是真实风险溢价的实证标志。低波动是行为主导:彩票偏好与杠杆厌恶是规范化解释;轻度衰减反映部分套利。质量(QMJ 的盈利 + 增长 + 安全 + 派息合成)落在混合桶,与盈利和投资在风险上有重叠,加上「为增长付高价」的行为故事;近零衰减主要反映风险重叠成分。
对生产权重的含义:风险主导因子在 面向未来 更可靠;行为型因子 套利风险 更大。AQR 风格的公开配置把风险主导因子(质量 + 盈利 + 投资)合计配到大约 40-50%,行为主导因子(动量 + 低波)配到大约 30-40%,混合因子(价值)配到大约 10-20%。
生产级因子清单
把 L1(TS alpha 检验) + L2(HLZ 通胀修正 + 复现) + L3(FF 规范化方法学) + L4(经济故事)合成一份五点生产级清单:
1. TS_alpha_t_stat_gt_3_vs_FF5_or_HXZ4 (L2 HLZ-deflated bar)
2. replicated_in_Chen_Zimmermann_or_HXZ_2020 (L2 cross-check)
3. survives_FF_canonical_methodology (L3: main-board breakpoints + value-weighted + micro-cap exclusion + survivorship-bias-free)
4. credible_economic_story (L4: risk-based, behavioural, or both, with citable defining paper)
5. positive_post_publication_OOS_evidence (L2: not catastrophic decay)
五条清单标签、它们对 L1/L2/L3/L4 的依赖、以及「(1)-(3) 在统计上通过但在 (4) 经济故事上失败的因子是统计假象,应当剔除」这条规则,跨地区逐字一致。检查顺序是 L1 统计(TS alpha)、L2 交叉验证(复现库)、L3 方法学(FF 规范化)、L4 经济(可信故事)、L2 样本外(OOS 衰减)。一个只通过统计检查、却拿不出可引用经济故事的因子,就是统计假象——即使 t 值是 5,如果你无法解释 为什么 这份溢价在未来还会持续,它对你的合成因子也没有意义。
Formula Explorer
E[r_i] - r_f = \beta_{i,M} \cdot (E[r_M] - r_f) + \sum_{k=1}^{K} \beta_{i,k} \cdot (E[F_k] - r_f)代码:风险 vs 行为分类
def classify_factor_economic_story(factor_name: str, in_sample_t_stat: float,
post_pub_oos_decay_pct: float,
economic_story: dict) -> dict:
"""在 L4 风险 vs 行为诊断下对因子做分类。
factor_name : 描述性标签 (例如 'profitability', 'momentum')
in_sample_t_stat : 报告的样本内 TS-alpha t 值
post_pub_oos_decay_pct : 测得的出版后样本外衰减 (0-100)
economic_story : dict, 含可选键 'risk_paper' 与 'behavioural_paper'
返回 dict, 键: classification (risk_dominant / behavioural_dominant / mixed / unclassified),
forward_confidence (high / medium / low), production_weight_recommendation
(overweight / normal / underweight / discard).
"""
has_risk = bool(economic_story.get('risk_paper'))
has_behav = bool(economic_story.get('behavioural_paper'))
if has_risk and has_behav:
classification = 'mixed'
elif has_risk:
classification = 'risk_dominant'
elif has_behav:
classification = 'behavioural_dominant'
else:
classification = 'unclassified'
if classification == 'risk_dominant' and post_pub_oos_decay_pct < 15:
forward_confidence = 'high'
elif classification == 'mixed' and post_pub_oos_decay_pct < 30:
forward_confidence = 'high'
elif classification == 'behavioural_dominant' and post_pub_oos_decay_pct < 30:
forward_confidence = 'medium'
elif classification == 'unclassified':
forward_confidence = 'low'
else:
forward_confidence = 'low'
if classification == 'unclassified':
production_weight_recommendation = 'discard'
elif forward_confidence == 'high' and classification == 'risk_dominant':
production_weight_recommendation = 'overweight'
elif forward_confidence == 'high':
production_weight_recommendation = 'normal'
elif forward_confidence == 'medium':
production_weight_recommendation = 'underweight'
else:
production_weight_recommendation = 'discard'
return {
'classification': classification,
'forward_confidence': forward_confidence,
'production_weight_recommendation': production_weight_recommendation,
}
函数名 classify_factor_economic_story、参数名 factor_name / in_sample_t_stat / post_pub_oos_decay_pct / economic_story、economic_story 内键(risk_paper、behavioural_paper)、返回 dict 键(classification、forward_confidence、production_weight_recommendation)、以及枚举值,跨地区逐字一致。
练习
Exercise
你拿到六组因子数据,沪深300成分股范围,2018-2023(SSE 与 SZSE 主板 数据,沪深300 范围,经 CFFEX 清算口径核对,T+1 结算约束生效,涨跌停 日的样本已剔除),每组包含 factor_name、in_sample_t_stat、post_pub_oos_decay_pct、与 economic_story = {'risk_paper', 'behavioural_paper'}。六个因子分别是:(a) value (in_sample t=5.2, OOS decay 30%, risk=Lettau_Ludvigson_2001, behavioural=overextrapolation), (b) momentum (in_sample t=6.1, OOS decay 25%, risk=None, behavioural=DHS_1998), (c) profitability (in_sample t=4.8, OOS decay 5%, risk=Hou_Xue_Zhang_2015, behavioural=None), (d) investment (in_sample t=4.3, OOS decay 8%, risk=Hou_Xue_Zhang_2015, behavioural=None), (e) low_volatility (in_sample t=4.0, OOS decay 18%, risk=None, behavioural=Baker_Bradley_Wurgler_2011), (f) quality (in_sample t=4.5, OOS decay 7%, risk=overlap_profitability_investment, behavioural=overpaying_for_growth)。
(i) 对六个因子分别跑 classify_factor_economic_story;报告每一个的 classification、forward_confidence、production_weight_recommendation。
(ii) 对每个因子,列出四通道套利限制暴露(fundamental_risk、noise_trader_risk、funding_constraints、short_sale_constraints)——哪些通道适用?
(iii) 构造一个假设的生产权重配置,超配风险主导因子,低配行为主导因子;报告合计 100% 的建议权重 weight_dict = {value: w1, momentum: w2, profitability: w3, investment: w4, low_volatility: w5, quality: w6}。
(iv) 按 L4 规则「缺少可信经济故事的因子是统计假象」,指出六个因子中是否有应当被 剔除 的;用一句话解释为什么列表里没有需要剔除的,但一个假设的第七个因子 economic_story = {risk_paper: None, behavioural_paper: None} 无论样本内 t 值多高都应剔除。
(v) 把得到的 weight_dict 与 AQR 风格公开配置(质量 + 盈利 + 投资 ~40-50% 风险主导;动量 + 低波 ~30-40% 行为主导;价值 ~10-20% 混合)对比,说明所构造的配置是否一致。
提示
提示
下一节
下一节《端到端构建一个自定义因子》是 capstone:你会把 L1 因子定价框架、L2 异象清单、L3 构建工艺、本节的经济故事规范步骤合到一起,做一次端到端因子构建。工作示例是 Asness-Frazzini-Pedersen 2019 的 quality-minus-junk(QMJ)因子——规范化的合成 z 分数质量因子,出版后衰减接近零,在五维生产级清单上全部通过。你会走完六步因子规范配方、对所建因子跑 4.2-machinery 诊断包,并应用 因子上线决策规则 确定它在生产合成因子中的角色。
参考卡
本课元素:inline-code listing(代码清单)、fenced ```python(代码围栏)、Exercise(练习)、FormulaExplorer。术语:因子模型、因子暴露、Alpha 衰减、动量、价值因子、规模因子、质量因子、低波动因子、信息比率、夏普比率。
A 股区域参考
本节示例在 A 股语境下默认使用以下数据与机构参考(均为 CN 区域专属,与美股语境不重合):数据库 Wind、Qlib、JoinQuant、RiceQuant、Tushare、JQData、Choice;监管机构 CSRC、PBoC、SAFE、CBIRC;交易所 SSE、SZSE、BJEX、CFFEX;基准指数 CSI300、CSI500、CSI1000、ChinaA50;券商与基金 CICC、CITIC、HuaTai、Guosen、GuoTai、JunAn、HaiTong、ZhongJin、JiaShi、EFunds、BOSC、Bosera;研究锚定文献 LSY、Liu、Stambaugh、Yuan(LSY 三因子)、ShiChuan《因子投资》、WuFeixiang《量化投资》、DingPeng《量化投资策略》;本地术语 ChiNext、STAR、Beijing、RMB、PIT、BIPC。