第 4 章

多因子模型

第 3 章逐个认识了因子,本章把它们组装成"机器"——多因子模型。前半章逐一拆解学术界近 30 年提出的七个主流模型:每个模型的回归方程长什么样、因子怎么构造、提出者的动机是什么、比前代强在哪。后半章回到 A 股:先用 Fama–MacBeth 回归回答"哪些因子在 A 股真正被定价",再用 α 检验和 GRS 检验演示如何比较两个模型,最后讨论一个模型到底该装几个因子。

4.1七大主流多因子模型

先交代一个背景:本节介绍的所有模型都是针对美国股票市场提出的。原因有二——美股是全球最重要的股票市场;现代金融学又诞生于美国的顶尖学府,学者拿身边的数据做研究顺理成章。好在这些模型经过多年检验,其中不少已被成功移植到其他国家的市场(4.2、4.3 节就是在 A 股上的应用)。

七个模型不是孤立出现的,它们构成两条清晰的"血统":风险/理性定价血统(Fama–French 系与 q-factor 系——分歧在于风险从哪推导出来)和行为金融血统(把 α 的来源归结为错误定价)。下表是这张族谱的时间线:

年份模型因子承接与回应
1993Fama–French 三因子MKT、SMB、HML收编 Basu(1977)盈利市值比、Banz(1981)小市值等异象,取代 CAPM 成为新范式
1997Carhart 四因子FF3 + MOM收编 Jegadeesh 和 Titman(1993)的截面动量异象
2013Novy-Marx 四因子MKT、HML、UMD、PMU用毛利率把"盈利"维度带进主流,动摇 FF3 的完备性
2015Fama–French 五因子FF3 + RMW + CMA从股利贴现模型出发,回应盈利与投资的证据;FF 家族的正统升级
2015Hou–Xue–Zhang q-factorMKT、ME、I/A、ROE独立血统:从公司投资的 q 理论推出定价关系,与 FF5 正面开战
2017Stambaugh–Yuan 四因子MKT、SMB、MGMT、PERF行为血统:用 11 个异象合成两个"错误定价因子"
2020Daniel–Hirshleifer–Sun 三因子MKT、FIN、PEAD行为血统:按时间尺度把错误定价切成长(过度自信)短(反应不足)两个因子

要强调的是,新模型的提出虽然都以"取代旧模型"为目标,但学术界至今没有就孰优孰劣达成一致——FF3 依然是实证研究中被使用最广的基准模型,而 q-factor、SY、DHS 这些从完全不同角度出发的模型,则极大拓宽了人们理解资产定价的视野。下面逐一拆解。

Fama–French 三因子模型(1993)

20 世纪 70 年代之后,CAPM 的麻烦不断:Basu(1977)发现盈利市值比(earnings-to-price,EP)高的股票收益系统性偏高;Banz(1981)发现小市值股票收益系统性偏高;随后账面市值比(book-to-market,BM)、债务市值比(debt-to-market,DM)效应也相继被发现。单个异象只是"打脸",Fama 和 French(1992)则把这些异象整合到一起,证明它们共同指向 CAPM 的系统性失效。但要摒弃一个旧模型,唯有拿出一个更好的新模型——这就是 Fama and French(1993)三因子模型的由来:在市场因子之外加入规模(Small-Minus-Big,SMB)与价值(High-Minus-Low,HML)两个因子。

式 (4.1) · Fama–French 三因子模型
$$ \E[R_i] - R_f \;=\; \beta_{i,MKT}\left(\E[R_M]-R_f\right) + \beta_{i,SMB}\,\E[R_{SMB}] + \beta_{i,HML}\,\E[R_{HML}] $$
$\E[R_i]$股票 $i$ 的预期收益率;$R_f$ 为无风险收益率,左边整体是预期超额收益
$\E[R_M]-R_f$市场因子(MKT)的预期超额收益,即市场风险溢价
$\E[R_{SMB}]$规模因子的预期收益率:做多小市值、做空大市值的多空组合的平均收益
$\E[R_{HML}]$价值因子的预期收益率:做多高 BM(便宜)、做空低 BM(贵)的多空组合的平均收益
$\beta_{i,MKT},\ \beta_{i,SMB},\ \beta_{i,HML}$股票 $i$ 在三个因子上的暴露
CAPM 说"只有跟市场共沉浮才有补偿";FF3 说补偿有三种来源:跟市场、跟小盘股整体、跟便宜股整体的共沉浮。原论文用 $b$、$s$、$h$ 表示三个暴露,本手册为了各模型符号统一,一律写成 $\beta$ 加下标。
2×3 独立双重排序构造因子 2×3 independent double sort

把所有股票按市值切两刀、按另一个指标切三刀,得到 6 个格子;用"若干格子的平均减另若干格子的平均"拼出一个多空组合,它的收益率就是因子收益率。

Fama and French(1993)的具体做法:以纽约证券交易所(NYSE)上市公司市值的中位数为界,把 NYSE、NASDAQ、AMEX 三大交易所的全部股票分为小市值(S)、大市值(B)两组;同时以 NYSE 公司 BM 的 30% 和 70% 分位数为界,把全部股票分为高(H)、中(M)、低(L)三组。两个维度独立划分、取交集,得到 S/H、S/M、S/L、B/H、B/M、B/L 六个组合,组合内股票按市值加权。之所以只用 NYSE 的分位数做断点,是为了避免海量小盘股(多在 NASDAQ)把断点拖偏。每年六月末用上一财年最新财务数据重新排序、再平衡。这套"NYSE 断点 + 独立划分 + 组内市值加权"的做法成为后来几乎所有模型竞相模仿的模板。

式 (4.2)/(4.3) · SMB 与 HML 的构造
$$ R_{SMB} = \tfrac{1}{3}\left(R_{S/H}+R_{S/M}+R_{S/L}\right) - \tfrac{1}{3}\left(R_{B/H}+R_{B/M}+R_{B/L}\right) $$ $$ R_{HML} = \tfrac{1}{2}\left(R_{S/H}+R_{B/H}\right) - \tfrac{1}{2}\left(R_{S/L}+R_{B/L}\right) $$
$R_{S/H}$ 等六个组合各自的(市值加权)收益率;第一个字母是市值分组(S 小 / B 大),第二个是 BM 分组(H 高 / M 中 / L 低)
$R_{SMB}$三个小市值组合等权平均,减三个大市值组合等权平均
$R_{HML}$两个高 BM 组合等权平均,减两个低 BM 组合等权平均
在"小减大"时,两边各自都均匀地含高、中、低 BM 的股票,价值效应被对冲掉了;在"高减低"时,两边各自都均匀地含大小市值,规模效应被对冲掉了。双重排序的全部意义就在于此:让每个因子尽量"纯"。

FF3 提出后逐步取代 CAPM 成为资产定价的第一范式,也接受了最密集的检验:Davis 等(2000)把数据回溯到 1927 年,Fama 和 French(1998)在其他国家市场上复现,Fama 和 French(2008)用它审查 CAPM 解释不了的各种异象。至于 SMB 和 HML 为什么赚钱,Fama 和 French(1996)猜想它们与上市公司的财务困境风险(distress risk)有关,并把 FF3 定位为 Merton(1973)跨期资本资产定价模型(Intertemporal CAPM,ICAPM)的多因子版本——SMB、HML 是某些"状态变量"的代理。但这两个因子究竟代理了什么状态变量,至今没有定论。

Carhart 四因子模型(1997)

FF3 开创性十足,"适用性"却有限——很多异象它解释不掉,其中最扎眼的是截面动量(cross-sectional momentum):Jegadeesh 和 Titman(1993)发现,用 $t-12$ 到 $t-1$ 月这 11 个月的累计收益率给股票排序,做多"赢家"、做空"输家",能获得显著超额收益。刻意跳过最近一个月,是因为市场存在短期反转(Jegadeesh 1990)——上个月涨得猛的股票下个月往往回吐,不剔除会污染中期动量信号。

Carhart(1997)在研究共同基金业绩持续性时,把动量因子(momentum,MOM)直接加进 FF3:

式 (4.4) · Carhart 四因子模型
$$ \E[R_i] - R_f = \beta_{i,MKT}\left(\E[R_M]-R_f\right) + \beta_{i,SMB}\,\E[R_{SMB}] + \beta_{i,HML}\,\E[R_{HML}] + \beta_{i,MOM}\,\E[R_{MOM}] $$
$\E[R_{MOM}]$动量因子的预期收益率:做多过去 11 个月赢家、做空输家的多空组合的平均收益
$\beta_{i,MOM}$股票 $i$ 在动量因子上的暴露
其余符号同式 (4.1)
FF3 + 动量。模型本身没有新的理论故事——动量至今缺少令人信服的风险解释——它赢在实用:基金业绩归因里如果不控制动量,"追涨型"基金经理会被误判为有 α。

构造上,Carhart 的动量因子是七个模型里的特例:不做双重排序,而是每月末把三大交易所全部股票按 $t-12$ 到 $t-1$ 月累计收益率单变量排序,做多前 30%、做空后 30%,且多空两头内部都采用等权重(而非市值加权)。动量组合每月再平衡——动量信号衰减快,一年一调根本来不及。

Novy-Marx 四因子模型(2013)

下一块拼图是盈利。Novy-Marx(2013)提出:盈利能力强的公司,未来预期收益也更高,且这个效应的预测力堪比 BM。他据此提出一个四因子模型——注意,这个模型没有规模因子:

式 (4.5) · Novy-Marx 四因子模型
$$ \E[R_i] - R_f = \beta_{i,MKT}\left(\E[R_M]-R_f\right) + \beta_{i,HML}\,\E[R_{HML}] + \beta_{i,UMD}\,\E[R_{UMD}] + \beta_{i,PMU}\,\E[R_{PMU}] $$
$\E[R_{UMD}]$动量因子(Up-Minus-Down)的预期收益率——就是动量,只是换了个缩写
$\E[R_{PMU}]$盈利因子(Profitable-Minus-Unprofitable)的预期收益率:做多高毛利率、做空低毛利率
$\beta_{i,UMD},\ \beta_{i,PMU}$股票 $i$ 在相应因子上的暴露;其余符号同式 (4.1)
Novy-Marx 的口号是"盈利是价值的另一半"(the other side of value):同样便宜的两家公司,赚钱能力强的那家显然更值得买。价值看"价格便宜",盈利看"质量过硬",两者天然互补。
毛利率 gross profitability, GP

用"毛利润 ÷ 总资产"衡量公司赚钱能力——选利润表最上面的、还没被各种费用和会计科目"加工"过的那个利润。

为什么不用净利润?Novy-Marx(2013)给出三条理由:(1)毛利润衡量的是企业最真实的经济产出,是股东和债权人共同投入的成果;(2)研发、广告这些费用在会计上被从利润里减掉,但它们实际上是在为未来的盈利投资,不该被惩罚;(3)利润表越往下,可操纵的科目越多,数据越"脏"。实证上,无论排序法还是 Fama–MacBeth 回归,GP 的预测能力与 BM 相当,且优于净利润/净资产、自由现金流/净资产等替代指标。

构造上,Novy-Marx(2013)沿用 FF 的 2×3 模板:分别用 logBM、$t-12$ 到 $t-1$ 月累计收益率、GP 三个变量与市值做双重排序(因此他的动量因子 UMD 与 Carhart 单变量排序的 MOM 不是同一个序列)。以 GP 为例:按 NYSE 公司 GP 的 30%、70% 分位数把全部股票分为盈利(P)、中性(N)、不盈利(U)三组,与市值两组交叉得到 S/P、S/N、S/U、B/P、B/N、B/U 六个市值加权组合:

式 (4.6) · 盈利因子 PMU 的构造
$$ R_{PMU} = \tfrac{1}{2}\left(R_{S/P}+R_{B/P}\right) - \tfrac{1}{2}\left(R_{S/U}+R_{B/U}\right) $$
$R_{S/P},\ R_{B/P}$小市值·高 GP 与大市值·高 GP 组合的收益率
$R_{S/U},\ R_{B/U}$小市值·低 GP 与大市值·低 GP 组合的收益率
盈利与预期收益正相关,所以做多"盈利"端、做空"不盈利"端。结构与 HML 完全同构,只是把 BM 换成了 GP。

该模型还有一个独特处理:构造这三个风格因子时做了行业中性化——做多一只股票的同时,按同等权重做空该股票所属的行业指数,从而剥离行业涨跌的影响,让因子收益更"纯"地来自个股在行业内的相对强弱。

误区

同名因子 ≠ 同一因子。Carhart 的 MOM(单变量排序、等权)与 Novy-Marx 的 UMD(与市值 2×3 双重排序、市值加权、行业中性)虽然都叫"动量因子",收益率序列却不相同;后面还会看到 FF5 的 SMB 与 FF3 的 SMB 构造也不同,SY 模型的 SMB 更是另起炉灶。读论文或用现成因子数据时,务必核对构造细节,不同版本的因子收益不可混用。

Fama–French 五因子模型(2015)

面对盈利与投资维度不断累积的证据(也包括 Novy-Marx 的挑战),Fama 和 French(2015)给出了官方升级:在 FF3 之上加入盈利因子(Robust-Minus-Weak,RMW)与投资因子(Conservative-Minus-Aggressive,CMA)。

式 (4.7) · Fama–French 五因子模型
$$ \E[R_i] - R_f = \beta_{i,MKT}\left(\E[R_M]-R_f\right) + \beta_{i,SMB}\,\E[R_{SMB}] + \beta_{i,HML}\,\E[R_{HML}] + \beta_{i,RMW}\,\E[R_{RMW}] + \beta_{i,CMA}\,\E[R_{CMA}] $$
$\E[R_{RMW}]$盈利因子的预期收益率:做多高 ROE(稳健盈利)、做空低 ROE(疲软盈利)
$\E[R_{CMA}]$投资因子的预期收益率:做多低投资(保守扩张)、做空高投资(激进扩张)
$\beta_{i,RMW},\ \beta_{i,CMA}$股票 $i$ 在这两个因子上的暴露;其余符号同式 (4.1)
FF3 + 盈利 + 投资。与 Carhart 那种"实证上好使就加"不同,这次 Fama 和 French 先给出了一段理论推导:从股利贴现模型出发,把 BM、预期盈利、预期投资与预期收益率联系起来。

动机推导:从股利贴现模型到三个预测变量。股利贴现模型(Dividend Discount Model,DDM)说,股票的市值等于未来全部股利的贴现和。利用 Miller 和 Modigliani(1961)的结果——股利可以写成利润减去留存在公司里的再投资(即账面价值的增加)——可以把"股利"替换成会计报表上可观察的量,得到:

式 (4.8) · 市值的会计表达(DDM + Miller–Modigliani)
$$ M_t \;=\; \sum_{\tau=1}^{\infty} \frac{\E\left[\,Y_{t+\tau} - dB_{t+\tau}\,\right]}{(1+r)^{\tau}} $$
$M_t$公司在 $t$ 时刻的市值
$Y_{t+\tau}$$t+\tau$ 期的净利润
$dB_{t+\tau}$$t+\tau$ 期账面价值(净资产)的变化,即留存下来的再投资;$Y - dB$ 就是可分给股东的钱
$r$贴现率——近似地就是这只股票长期的预期收益率(内部收益率)
市值 = 未来所有"赚到且没留在公司里"的钱的现值。这个式子的妙处在于:它把股价 $M_t$、盈利 $Y$、投资 $dB$、预期收益 $r$ 四样东西绑在了同一个等式里。

两边同时除以 $t$ 时刻的账面价值 $B_t$:

式 (4.9) · 除以账面价值:让 BM 现身
$$ \frac{M_t}{B_t} \;=\; \frac{\displaystyle\sum_{\tau=1}^{\infty} \E\left[\,Y_{t+\tau} - dB_{t+\tau}\,\right] \big/ (1+r)^{\tau}}{B_t} $$
$M_t/B_t$市值账面比,即 BM 的倒数——左边越小,公司越"便宜"
$Y_{t+\tau}/B_t,\ dB_{t+\tau}/B_t$把右边逐项除以 $B_t$ 后,分子变成"预期盈利能力"(类似预期 ROE)与"预期投资强度"
固定其他量、每次只动一个变量,就能读出三个预测关系(见下)。这是一种"比较静态"式的思想实验,不是均衡推导——这一点后来成了 q-factor 阵营攻击它的把柄之一。

对式 (4.9) 做三次"固定其他、只动其一"的思想实验:

  • 价值:固定预期盈利、预期投资和 $B_t$,若 $M_t$ 更小(等价地 $B_t/M_t$ 更高),等式要成立,贴现率 $r$ 必须更高 —— 高 BM ⇒ 高预期收益
  • 盈利:固定 $M_t/B_t$ 和预期投资,若预期盈利 $Y_{t+\tau}$ 更高,右边分子变大,等式要成立,$r$ 必须更高 —— 高预期盈利 ⇒ 高预期收益
  • 投资:固定 $M_t/B_t$ 和预期盈利,若预期投资 $dB_{t+\tau}$ 更高,右边分子变小,等式要成立,$r$ 必须更低 —— 高预期投资 ⇒ 低预期收益

理论说的是预期盈利和预期投资,但预期不可观测,实证中怎么办?Fama 和 French(2006)专门比较过两种做法:用历史数据做朴素估计(naïve estimate),或用回归模型去预测。结果是:用历史总资产变化率直接代理预期投资时,它与收益率显著负相关;用回归预测出的预期投资反而找不到显著关系。预期盈利那边,历史 ROE 与回归预测差别很小。于是两篇论文最终都采用了朴素估计——直接拿历史 ROE 代理预期盈利、拿过去一年总资产变化率代理预期投资。还有一处妥协:按 DDM,投资变量本该是账面价值的变化,但 Fama 和 French(2015)发现用总资产变化率排序时股票收益的截面差异更大,就选了总资产。

误区

不要以为 FF5 的投资因子有多牢靠的理论地基。颇具讽刺意味的是:Fama and French(2006)中用回归预测的"预期投资"与预期收益率之间呈相关(虽不显著)——方向与 DDM 推导的负相关正好相反。也就是说,实证里真正好使的是历史投资(总资产增长率),它到底是不是"预期投资"的代理,大有疑问。这一矛盾后来成为 Hou 等(2019b)抨击 FF5 的重要论据(第 6 章 6.2 节)。

因子构造。RMW 和 CMA 完全套用 2×3 模板。盈利维度:按 NYSE 公司 ROE 的 30%、70% 分位数分为稳健(R)、中性(N)、疲软(W)三组,与市值交叉得 S/R、S/N、S/W、B/R、B/N、B/W;投资维度:按总资产变化率的 30%、70% 分位数分为激进(A)、中性(N)、保守(C)三组,与市值交叉得 S/A、S/N、S/C、B/A、B/N、B/C。所有组合市值加权,每年六月末再平衡:

式 (4.10)/(4.11) · RMW 与 CMA 的构造
$$ R_{RMW} = \tfrac{1}{2}\left(R_{S/R}+R_{B/R}\right) - \tfrac{1}{2}\left(R_{S/W}+R_{B/W}\right) $$ $$ R_{CMA} = \tfrac{1}{2}\left(R_{S/C}+R_{B/C}\right) - \tfrac{1}{2}\left(R_{S/A}+R_{B/A}\right) $$
$R_{S/R},\ R_{B/R}$ / $R_{S/W},\ R_{B/W}$高 ROE(稳健)/ 低 ROE(疲软)组合,盈利与收益正相关,故稳健减疲软
$R_{S/C},\ R_{B/C}$ / $R_{S/A},\ R_{B/A}$低投资(保守)/ 高投资(激进)组合,投资与收益负相关,故保守减激进
两个因子的多空方向都直接由式 (4.9) 的比较静态结论决定:盈利正相关做多高盈利,投资负相关做多低投资。

规模因子的构造这次变了。FF5 里 BM、ROE、总资产变化率分别与市值做 2×3 排序,共产生 18 个组合。若还像 FF3 那样只用 BM×市值的 6 个组合拼 SMB,别人会问:凭什么不用 ROE 或投资的分组?Fama 和 French(2015)的解决办法是"雨露均沾"——三套排序各拼一个 SMB,再取平均:

式 (4.12)–(4.15) · FF5 的复合规模因子
$$ R_{SMB}^{B/M} = \tfrac{1}{3}\!\left(R_{S/H}+R_{S/M}+R_{S/L}\right) - \tfrac{1}{3}\!\left(R_{B/H}+R_{B/M}+R_{B/L}\right) $$ $$ R_{SMB}^{OP} = \tfrac{1}{3}\!\left(R_{S/R}+R_{S/N}+R_{S/W}\right) - \tfrac{1}{3}\!\left(R_{B/R}+R_{B/N}+R_{B/W}\right) $$ $$ R_{SMB}^{Inv} = \tfrac{1}{3}\!\left(R_{S/C}+R_{S/N}+R_{S/A}\right) - \tfrac{1}{3}\!\left(R_{B/C}+R_{B/N}+R_{B/A}\right) $$ $$ R_{SMB} = \tfrac{1}{3}\!\left(R_{SMB}^{B/M} + R_{SMB}^{OP} + R_{SMB}^{Inv}\right) $$
$R_{SMB}^{B/M}$用 BM×市值 6 个组合拼出的"小减大"(与 FF3 的 SMB 相同)
$R_{SMB}^{OP},\ R_{SMB}^{Inv}$分别用 ROE×市值、投资×市值的 6 个组合拼出的"小减大"
$R_{SMB}$三者的等权平均——FF5 最终使用的规模因子
三套排序对"小减大"各投一票再平均,避免规模因子偏袒任何一个风格维度。
因子张成回归 / 冗余因子 spanning regression / redundant factor

把一个因子当成"资产",用模型里其余因子对它做时序回归:如果截距 α 不显著,说明这个因子赚的钱其余因子全能凑出来——它是多余的。

形式上,检验因子 $g$ 相对因子组 $\{f_1,\dots,f_K\}$ 是否冗余,做回归 $R_{g,t} = \alpha + \sum_k \beta_k R_{f_k,t} + \varepsilon_t$,对 $\alpha$ 做 t 检验。$\alpha$ 不显著 ⇒ $g$ 的平均收益可以由其余因子的线性组合复制,把它加进模型不会带来任何新的定价能力。FF5 论文里最著名(也最尴尬)的结果正来自这个检验:在 1963—2013 年的美股数据中,HML 对其余四个因子回归后 α 约等于零——加入盈利和投资后,价值因子成了冗余因子。直觉上不难理解:高 BM 公司往往同时是低投资、盈利平平的公司,HML 的收益大部分被 CMA(以及 RMW)"顶包"了。

下面用可复现的模拟数据把这个"HML 冗余"现象演示出来。我们按照"HML 的收益主要来自它在 CMA 上的高暴露"生成 360 个月的因子数据,然后做张成回归。左图对比 HML 原始累计收益与"回归剥离四因子后剩下的部分"($\alpha+\varepsilon$ 的累计);拖动滑杆给 HML 注入真实 α,观察它何时不再冗余:

图 4-1 | 张成回归演示(模拟数据,360 个月,示意)。蓝线:HML 原始累计收益;红线:对 MKT/SMB/RMW/CMA 回归后 α+残差的累计收益。真实 α = 0 时,HML 看似一路赚钱,但剥离四因子暴露后几乎归零——冗余。
图 4-2 | HML 月均收益的来源分解(同一模拟、随上方滑杆联动)。每根柱 = 回归系数 × 对应因子的样本均值;α 柱是四因子解释不掉的部分。真实 α = 0 时,绝大部分收益来自 CMA 暴露。
旁注

HML 冗余不等于"价值投资已死"。张成回归只说明在均值层面 HML 可被复制;HML 与其他因子的逐期相关并不完美,风险管理、组合构建中它仍有信息。Fama 和 French 自己的态度也是保留 HML——模型使用者若关心的是解释截面收益,五因子里去掉 HML 无伤大雅;若关心刻画组合风格,HML 仍不可少。

Hou–Xue–Zhang q-factor 四因子模型(2015)

与 FF5 同年,Hou、Xue 和 Zhang(Hou et al. 2015)从完全不同的方向抵达了几乎相同的地点。他们不从投资者的角度("什么风险该被补偿")出发,而是从公司的角度出发:公司如何做投资决策,反过来决定了它的股票该有怎样的预期收益。这套理论叫实体投资经济学,又称 q 理论(q-theory,源自托宾 q),所以该模型被称为 q-factor 模型。它包含市场、规模、投资、盈利四个因子:

式 (4.16) · Hou–Xue–Zhang q-factor 模型
$$ \E[R_i] - R_f = \beta_{i,MKT}\left(\E[R_M]-R_f\right) + \beta_{i,ME}\,\E[R_{ME}] + \beta_{i,I/A}\,\E[R_{I/A}] + \beta_{i,ROE}\,\E[R_{ROE}] $$
$\E[R_{ME}]$规模因子(ME 即 market equity)的预期收益率
$\E[R_{I/A}]$投资因子的预期收益率(I/A 即 investment-to-assets,做多低投资、做空高投资)
$\E[R_{ROE}]$盈利因子的预期收益率(做多高 ROE、做空低 ROE)
$\beta_{i,\cdot}$股票 $i$ 在相应因子上的暴露
没有价值因子——q 理论认为价值溢价本质上是投资溢价的镜像,I/A 因子会把 HML 的活儿全干了。使用中,规模与投资的排序变量每年六月末更新,盈利的排序变量(单季度 ROE)每月用最新财报更新,且所有因子组合每月再平衡——高频更新的 ROE 让该模型顺带捕捉了动量类异象。

理论出发点:净现值原则。模型的思想源头是 Cochrane(1991);作者之一张橹后来在《清华金融评论》撰文(Zhang 2016)介绍过来龙去脉。核心是公司金融里最朴素的净现值原则(NPV rule):项目现值大于投资成本才投。公司会先投最好的项目(折现率低、盈利率高、净现值最高),随着项目越投越多,边际成本上升、边际盈利率下降,直到最后一个项目净现值恰好为零:投资的边际成本 = 项目现值 = 盈利率 / 折现率。把这个等式变形:

$$ \text{折现率} \;=\; \frac{\text{盈利率}}{\text{投资的边际成本}} $$

从这个关系立刻读出两个条件预期结论:盈利率给定时,投资越多(边际成本越高)的公司折现率越低,股票预期收益越低;投资给定时,盈利率越高的公司折现率越高,股票预期收益越高。下面把这个直觉写成正式的两期模型。

考虑时刻 0 和 1。公司 $i$ 在时刻 0 拥有资产 $A_{i0}$、已知利润率 $\Pi_{i0}$;时刻 1 的利润率 $\Pi_{i1}$ 是随机变量。每期现金流为"资产 × 利润率"。公司唯一的决策变量是时刻 0 的投资额 $I_{i0}$;假设时刻 0 的资产到时刻 1 全部折旧完,所以时刻 1 的资产就是这笔投资:$A_{i1}=I_{i0}$。投资还伴随一笔调整费用 $\frac{a}{2}\left(\frac{I_{i0}}{A_{i0}}\right)^2 A_{i0}$(工厂扩得越快,摩擦越大,费用随投资强度平方增长)。公司最大化两期股东回报之和:

式 (4.17) · 两期投资决策的目标函数
$$ \max_{I_{i0}}\;\; \Pi_{i0}A_{i0} - I_{i0} - \frac{a}{2}\left(\frac{I_{i0}}{A_{i0}}\right)^{2} A_{i0} \;+\; \E_0\!\left[\,M_1\,\Pi_{i1}A_{i1}\,\right], \qquad A_{i1}=I_{i0} $$
$\Pi_{i0}A_{i0}$时刻 0 的现金流(利润率 × 资产)
$I_{i0}$时刻 0 的投资额——决策变量
$\frac{a}{2}(I_{i0}/A_{i0})^2 A_{i0}$投资的调整费用,$a$ 为调整费用参数
$M_1$随机折现因子(stochastic discount factor,见附录 A),把时刻 1 的现金流折成时刻 0 的价值
$\E_0[\cdot]$基于时刻 0 信息的条件期望
时刻 0 股东拿到"现金流 − 投资 − 调整费用",时刻 1 拿到全部现金流的贴现值。公司选投资额让两期回报之和最大。
式 (4.18) · 一阶条件:边际成本 = 贴现的边际收益
$$ 1 + a\,\frac{I_{i0}}{A_{i0}} \;=\; \E_0\!\left[\,M_1\,\Pi_{i1}\,\right] $$
$1 + a\,I_{i0}/A_{i0}$多投 1 元钱的边际成本:本金 1 元 + 边际调整费用 $a\,I_{i0}/A_{i0}$
$\E_0[M_1\Pi_{i1}]$多投 1 元在时刻 1 多产出 $\Pi_{i1}$ 的现金流,贴现回时刻 0 的价值
对式 (4.17) 关于 $I_{i0}$ 求导并令其为零。这正是净现值原则的数学化:投到"最后一元钱刚好不赚不亏"为止。
式 (4.19)/(4.20) · 投资第一性原理与投资收益率
$$ \E_0\!\left[\,M_1\, r^{I}_{i1}\,\right] = 1 \qquad\Longrightarrow\qquad r^{I}_{i1} \;=\; \frac{\Pi_{i1}}{1 + a\,I_{i0}/A_{i0}} $$
$r^{I}_{i1}$投资收益率(上标 $I$ 区别于股票收益率):任何"收益率"型资产都必须满足定价方程 $\E_0[M_1(1+r)]=1+r$ 的总收益形式,此处 $r^I_{i1}$ 以总收益计
$\Pi_{i1}$时刻 1 实现的利润率——投资的边际收益
$1+a\,I_{i0}/A_{i0}$时刻 0 投资的边际成本
左式是投资第一性原理(the first principle of investment):投资这项"资产"经随机折现因子定价后也必须值 1。把式 (4.18) 代入比较,即得右式:投资收益率 = 边际收益 ÷ 边际成本
式 (4.21) · 股票收益率 = 投资收益率
$$ r^{S}_{i1} \;=\; r^{I}_{i1} \;=\; \frac{\Pi_{i1}}{1 + a\,I_{i0}/A_{i0}} \qquad\Longrightarrow\qquad \E_0\!\left[r^{S}_{i1}\right] = \frac{\E_0\!\left[\Pi_{i1}\right]}{1 + a\,I_{i0}/A_{i0}} $$
$r^{S}_{i1}$股票收益率;Cochrane(1991)与 Liu 等(2009)证明在此模型设定下它与投资收益率相等
$\E_0[\Pi_{i1}]$预期盈利(预期利润率)
$I_{i0}/A_{i0}$时刻 0 的(历史)投资强度——注意是已发生的投资,不是预期投资
给定预期盈利,投资越多 ⇒ 分母越大 ⇒ 预期收益越低;给定投资,预期盈利越高 ⇒ 分子越大 ⇒ 预期收益越高。这就是 I/A 因子和 ROE 因子的全部理论出处——一个等式同时孵出两个因子。
旁注

q-factor 与 FF5 的论战。两个模型都含市场、规模、盈利、投资,看似孪生,血统却不同:q-factor 从投资 q 理论推出收益率与历史投资负相关,FF5 从 DDM 推出收益率与预期投资负相关。别小看这点差异——FF5 用历史总资产增长率去代理"预期投资",而其自家回归证据显示预测出的预期投资与收益率的关系方向相反(见前文误区框);q 理论则根本不需要"预期投资"这个概念,历史投资本来就是理论变量。Hou 等(2019b)据此抨击 FF5 的投资因子"理论、实证两头都不靠"。此外从时间上看,q-factor 工作论文早在 2012 年前后即流传,HXZ 阵营一直主张 FF5 是对其的"跟进"。这场论战在第 6 章 6.2 节还有下文。

因子构造:2×3×3 独立三重排序。为了体现"条件预期"——盈利给定看投资、投资给定看盈利——HXZ 没有做三次独立的双重排序,而是把市值(NYSE 中位数分两组)、单季度 ROE(NYSE 30%/70% 分位数分三组)、总资产变化率(同样三组)一次性交叉,得到 $2\times3\times3=18$ 个市值加权组合。用 $c_1/c_2/c_3$ 标记三个维度的分组($c_1\in\{S,B\}$,$c_2,c_3\in\{H,M,L\}$,如 S/H/H 表示小市值·高 ROE·高投资),三个因子定义为:

式 (4.22)–(4.24) · ME、ROE、I/A 因子的构造
$$ R_{ME} = \frac{1}{9}\sum_{c_2,c_3} R_{S/c_2/c_3} \;-\; \frac{1}{9}\sum_{c_2,c_3} R_{B/c_2/c_3} $$ $$ R_{ROE} = \frac{1}{6}\sum_{c_1,c_3} R_{c_1/H/c_3} \;-\; \frac{1}{6}\sum_{c_1,c_3} R_{c_1/L/c_3} $$ $$ R_{I/A} = \frac{1}{6}\sum_{c_1,c_2} R_{c_1/c_2/L} \;-\; \frac{1}{6}\sum_{c_1,c_2} R_{c_1/c_2/H} $$
$R_{c_1/c_2/c_3}$18 个组合各自的市值加权收益率;下标依次为市值、ROE、总资产变化率分组
$R_{ME}$9 个小市值组合等权平均,减 9 个大市值组合等权平均
$R_{ROE}$6 个高 ROE 组合等权平均,减 6 个低 ROE 组合等权平均
$R_{I/A}$6 个投资组合等权平均,减 6 个投资组合等权平均(投资与收益负相关)
三重排序保证每个因子在另外两个维度上都被"均匀稀释":比如 ROE 因子的多头和空头里,大小市值、高低投资的股票各占一样的份额。代价是 18 个格子里有些格子股票很少,对小样本市场(比如 A 股)未必适用。

Stambaugh–Yuan 四因子模型(2017)

前五个模型都默认"因子收益是风险补偿"。接下来两个模型换了阵营:行为金融学(behavioral finance)认为,投资者的有限理性与认知偏差造成大量错误定价(mispricing),而错误定价才是众多异象收益的真正来源。Stambaugh 和 Yuan(2017)在市场、规模之外引入两个"错误定价复合因子"——管理因子(MGMT)与表现因子(PERF):

式 (4.25) · Stambaugh–Yuan 四因子模型
$$ \E[R_i] - R_f = \beta_{i,MKT}\left(\E[R_M]-R_f\right) + \beta_{i,SMB}\,\E[R_{SMB}] + \beta_{i,MGMT}\,\E[R_{MGMT}] + \beta_{i,PERF}\,\E[R_{PERF}] $$
$\E[R_{MGMT}]$管理因子的预期收益率:由 6 个与公司管理层决策相关的异象合成
$\E[R_{PERF}]$表现因子的预期收益率:由 5 个与公司经营表现相关的异象合成
$\beta_{i,MGMT},\ \beta_{i,PERF}$股票 $i$ 在两个错误定价因子上的暴露;其余符号同式 (4.1)
与其一个异象配一个因子,不如把一堆异象"浓缩"成少数复合因子:单个异象的信号里噪声大,取平均能把噪声抵掉、把共同的"错误定价成分"留下来。规模、管理、表现三个因子的组合均为月度再平衡。
错误定价指标 mispricing measure

给每只股票打一个"被高估程度"的综合分:在一堆异象变量上分别排名,再把排名取平均——排名越靠前越可能被高估,未来预期收益越低。

Stambaugh 和 Yuan 延续了他们与合作者余剑峰在 Stambaugh et al.(2012、2014、2015)中的一系列错误定价研究,选取 11 个 FF3 无法解释的异象作为原料。逻辑是:既然异象收益是 FF3 解释不掉的超额收益,它就度量了个股的错误定价,异象变量取值的高低便对应错误定价的方向和大小。排名方向统一为"高估在前":若异象变量与未来收益相关(如应计利润),按取值从高到低排;若相关(如动量),按取值从低到高排。每只股票得到 11 个名次,按组内取平均得到两个综合排名——排名越高越可能被高估、未来收益越低;排名越低越可能被低估、未来收益越高。

11 个异象按相关性聚成两组(组内相关高、组间相关低),恰好各自有清晰的经济含义:

异象共同点
管理组(6 个 → MGMT 因子)股票净发行量、复合股权发行量、应计利润、净营业资产、总资产增长率、投资与总资产之比都直接受公司管理层决策驱动(发股、做账、扩张)
表现组(5 个 → PERF 因子)财务困境、O-分数(破产概率)、动量、毛利率、总资产回报率都反映公司的经营表现与市场对它的反应

构造上,管理、表现两个综合排名分别与市值做 2×3 双重排序。这里 Stambaugh 和 Yuan 有两处明显偏离传统:断点不用 NYSE 分位数,而用全部股票的分位数;阈值不用 30%/70%,而用 20%/80%。他们对此没有太多解释;Hou 等(2019b)复现后发现,改回传统的 NYSE 30%/70% 断点,这两个因子的表现会明显变化——错误定价因子对构造细节相当敏感,这是它的一个软肋。

式 (4.26)/(4.27) · MGMT 与 PERF 的构造
$$ R_{MGMT} = \tfrac{1}{2}\left(R_{S/Low}+R_{B/Low}\right) - \tfrac{1}{2}\left(R_{S/High}+R_{B/High}\right) $$ $$ R_{PERF} = \tfrac{1}{2}\left(R_{S/Low}+R_{B/Low}\right) - \tfrac{1}{2}\left(R_{S/High}+R_{B/High}\right) $$
$R_{S/Low},\ R_{B/Low}$综合排名(被低估、未来收益高)的小市值 / 大市值组合——做多端
$R_{S/High},\ R_{B/High}$综合排名(被高估、未来收益低)的组合——做空端;两式分别使用管理、表现排名各自的 2×3 划分,组合内市值加权
做多被低估、做空被高估——错误定价因子的多空方向不来自任何风险故事,纯粹来自"价格会向价值回归"的判断。

规模因子的构造偏离传统更远。两套 2×3 排序共 12 个组合,Stambaugh 和 Yuan 把管理、表现维度的高、低组(共 8 个)全部扔掉,只用 4 个中间组

式 (4.28) · SY 模型的规模因子:只用"中间组"
$$ R_{SMB} = \tfrac{1}{2}\left(R_{S/M}^{MGMT}+R_{S/M}^{PERF}\right) - \tfrac{1}{2}\left(R_{B/M}^{MGMT}+R_{B/M}^{PERF}\right) $$
$R_{S/M}^{MGMT},\ R_{B/M}^{MGMT}$管理排名居中的小市值 / 大市值组合
$R_{S/M}^{PERF},\ R_{B/M}^{PERF}$表现排名居中的小市值 / 大市值组合
只在"错误定价不严重"的中间地带比较大小盘,得到一个被错误定价污染最少的规模因子。
套利不对称性 arbitrage asymmetry

纠正"太贵"比纠正"太便宜"难:看空要做空,而做空有约束、有成本,所以高估比低估更难被消除。

这是 SY 规模因子特殊构造的理论依据(Stambaugh et al. 2015)。传统双重排序号称能"中性化"错误定价对市值的影响,但由于做空难,高估端的错误定价迟迟不消;又因为错误定价在小市值股票中更严重,多空两头无法对称地被中性化,传统构造出的规模因子会带上系统性偏差。实证上,SY 用式 (4.28) 构造的 SMB 比传统方法构造的版本有更高的风险溢价——他们的解释是:剔除错误定价的干扰后,"纯"规模溢价其实更大。

Daniel–Hirshleifer–Sun 三因子模型(2020)

行为金融阵营的第二个模型来自 Daniel、Hirshleifer 和 Sun(Daniel et al. 2020)。它的切入点非常巧妙:市场上绝大多数异象,按错误定价被纠正的时间尺度可以分成两大类——长尺度(大于 1 年,通常 3~5 年)与短尺度(1 年以内)。两类异象对应两种不同的行为偏差,于是各配一个行为因子(behavioral factor),与市场因子一起组成三因子模型:

式 (4.29) · Daniel–Hirshleifer–Sun 三因子模型
$$ \E[R_i] - R_f = \beta_{i,MKT}\left(\E[R_M]-R_f\right) + \beta_{i,FIN}\,\E[R_{FIN}] + \beta_{i,PEAD}\,\E[R_{PEAD}] $$
$\E[R_{FIN}]$长周期行为因子(financing,融资因子)的预期收益率:基于公司股票发行与回购构造
$\E[R_{PEAD}]$短周期行为因子(post-earnings-announcement drift,盈余公告漂移因子)的预期收益率
$\beta_{i,FIN},\ \beta_{i,PEAD}$股票 $i$ 在两个行为因子上的暴露
一长一短各管一段:FIN 捕捉需要数年才修正的错误定价(组合每年六月更新),PEAD 捕捉几个月内就修正的错误定价(组合每月更新)。
过度自信与有限注意力 overconfidence / limited attention

过度自信:投资者太相信自己的判断,别人(比如公司管理层)用真金白银发出的信号也听不进去,错误要很久才认。有限注意力:信息太多看不过来,新消息一时没被消化,价格反应慢半拍。

从行为金融角度看,股票收益率的共同运动有两个来源:错误定价本身的共性(同一风格的股票被情绪一起推高推低,Barberis and Shleifer 2003),以及投资者对基本面信息错误反应的共性(Daniel et al. 2001)。既然错误定价能预测未来收益,就可以用行为因子搭一个定价模型——这正是 DHS 的研究动机。两种偏差对应两个时间尺度:过度自信让投资者长期坚持错误观点,制造长尺度异象;有限注意力让投资者对公告类新信息反应不足,制造短尺度异象。

FIN 因子:跟着管理层"抄作业"。管理层拥有信息优势,善于给自家股价"择时":认为股价被高估时增发,被低估时回购。而过度自信的普通投资者对这些信号反应不足,股价短期内不会修正——于是增发预示未来低收益、回购预示未来高收益(美股上有大量实证支持)。DHS 用两个指标刻画融资行为:过去五年的复合股权发行量(5-year composite share issuance,CSI)与过去一年的股票净发行量(1-year net share issuance,NSI)。

CSI 的处理简单:按 NYSE 公司 CSI 的 20%、80% 分位数分低、中、高三档。NSI 的处理则相当繁琐——因为逐年看,增发和回购的公司数量极不平衡,直接单变量排序不合理。DHS 的做法:先把股票分成净回购、净发行两大类;净回购公司按 NYSE 净回购数的中位数分高低两组;净发行公司按 NYSE 净发行数的 30%、70% 分位数分低、中、高三组;最后取"净回购的高组"作为 NSI 的低组(回购最狠 = 最被低估)、"净发行的高组"作为 NSI 的高组(增发最猛 = 最被高估)。两个变量再按下表合成 FIN 分组:

情形FIN 分组
CSI 与 NSI 均为高组;或其一为高组、另一缺数据高组(做空端)
CSI 与 NSI 均为低组;或其一为低组、另一缺数据低组(做多端)
其余情形中间组
误区

构造越精巧越要警惕。NSI 这套"先分两类、再各自分组、再交叉合成"的流程,DHS 给出的解释各有道理,但如此多的自由度难逃过拟合之嫌——每一处非常规选择(中位数还是 30%/70%?缺数据怎么归组?)都是研究者可以"调"的旋钮。第 6 章讨论 p-hacking 时会再回到这一点。

FIN 分组与市值(NYSE 中位数)做 2×3 双重排序得 6 个市值加权组合,因子定义为:

式 (4.30) · FIN 因子的构造
$$ R_{FIN} = \tfrac{1}{2}\left(R_{S/L}+R_{B/L}\right) - \tfrac{1}{2}\left(R_{S/H}+R_{B/H}\right) $$
$R_{S/L},\ R_{B/L}$FIN 低组(回购型、被低估)的小 / 大市值组合——做多端
$R_{S/H},\ R_{B/H}$FIN 高组(增发型、被高估)的小 / 大市值组合——做空端
增发回购有合规约束、也怕引起投资者怀疑,公司不可能频繁操作,所以这个信号变化极慢,对应的错误定价修正也以年计——FIN 只能解释长尺度异象,对 1 年以内的异象无能为力。

PEAD 因子:赚"反应不足"的钱。大量实证显示,业绩超预期公司的股票在其后 6~9 个月持续跑赢业绩不及预期的公司——这就是盈余公告后漂移(post-earnings-announcement drift,PEAD),源于投资者的有限注意力(DellaVigna and Pollet 2009;Hirshleifer and Teoh 2003):公告出来了,很多人根本没看,价格只消化了一部分信息。DHS 用公告窗口内的市场反应来度量"业绩惊喜":以最近一次财报披露日为时间零点,计算 $[-2,+1]$ 窗口(披露前 2 个交易日到披露后 1 个交易日)相对市场的累计异常收益率(cumulative abnormal return,CAR):

式 (4.31) · 盈余公告窗口的累计异常收益
$$ CAR_i = \sum_{d=-2}^{+1}\left(R_{i,d} - R_{M,d}\right) $$
$R_{i,d}$公司 $i$ 在其最近一次财报披露窗口内第 $d$ 个交易日的收益率
$R_{M,d}$市场组合同日的收益率;两者之差为当日异常收益
$CAR_i$4 个交易日异常收益之和——公告引发的即时市场反应有多大
用"公告日股价怎么动"代替"盈利数字超预期多少"来度量惊喜,好处是绕开了分析师预期数据,且价格反应天然汇总了所有维度的公告信息。由于反应不足,公告窗口的收益与未来收益相关:公告日大涨的,后面往往还会继续涨。
式 (4.32) · PEAD 因子的构造
$$ R_{PEAD} = \tfrac{1}{2}\left(R_{S/H}+R_{B/H}\right) - \tfrac{1}{2}\left(R_{S/L}+R_{B/L}\right) $$
$R_{S/H},\ R_{B/H}$高 CAR(公告反应好)的小 / 大市值组合——做多端;分组用 NYSE 市值中位数与 CAR 的 20%/80% 分位数做 2×3 排序,组合内市值加权
$R_{S/L},\ R_{B/L}$低 CAR(公告反应差)的组合——做空端
与 FIN 相反,PEAD 的信号每月都在更新(总有公司发财报),修正也快,专门负责短尺度异象。

七个模型放在一起看

模型年份因子数因子理论来源一句话定位
Fama–French 三因子19933MKT、SMB、HML风险补偿(ICAPM 式状态变量,具体所指未有定论)开山鼻祖,至今仍是使用最广的基准
Carhart 四因子19974MKT、SMB、HML、MOM实证驱动(动量无公认风险解释)基金业绩归因的行业标配
Novy-Marx 四因子20134MKT、HML、UMD、PMU估值逻辑(毛利率是"价值的另一半")把盈利维度推上主流舞台
Fama–French 五因子20155MKT、SMB、HML、RMW、CMA风险框架 + 股利贴现模型比较静态FF 家族正统升级;HML 在其中冗余
Hou–Xue–Zhang q-factor20154MKT、ME、I/A、ROE实体投资 q 理论(供给侧定价)用一个等式孵出投资、盈利两因子;与 FF5 论战
Stambaugh–Yuan 四因子20174MKT、SMB、MGMT、PERF行为金融:错误定价(11 异象合成)复合错误定价因子的代表作
Daniel–Hirshleifer–Sun 三因子20203MKT、FIN、PEAD行为金融:过度自信(长)+ 有限注意力(短)按时间尺度切分错误定价
旁注

学术界构造因子的通用惯例:除市场因子外,风格因子几乎都是"先排序分组、再多空相减"。排序得到的每个投资组合内部按市值加权;计算因子收益率时,多头(或空头)包含的若干组合之间取简单平均(等权)。唯一的例外是 Carhart 的动量因子——单变量排序、多空两头内部也等权。自己复现因子时,权重方式弄错是最常见的对不上数的原因。

要点
  • 七个模型、两条血统:风险/理性定价(FF3 → Carhart → NM → FF5;q-factor 独立推导)与行为金融(SY、DHS)。
  • FF5 的动机来自 DDM 比较静态:高 BM、高预期盈利 ⇒ 高预期收益,高预期投资 ⇒ 低预期收益;但实证只能用历史量做朴素代理。
  • q-factor 用净现值原则一个等式同时推出投资、盈利两因子:$\E_0[r^S] = \E_0[\Pi]/(1+a\,I/A)$,且理论变量本来就是历史投资。
  • 错误定价因子(MGMT/PERF、FIN/PEAD)在构造上大量使用复合排名与非常规断点,解释力强但过拟合风险也高。
  • 张成回归是判断因子冗余的标准工具:FF5 中 HML 对其余四因子的 α 约为零。
  • 同名因子构造未必相同(MOM vs UMD、三个版本的 SMB),使用因子数据前先查构造细节。

4.2A 股中被定价的因子

第 3 章用排序法在 A 股检验了主流因子,结论是规模、价值等因子显著。但排序法有个先天短板:即便做了与市值的双重排序,也无法完全剔除目标因子在其他因子上的暴露——比如高 BM 组合难免顺带暴露于盈利、换手率等维度,混进别人的收益。本节改用 Fama–MacBeth 回归(第 2 章 2.3 节):截面回归天然"多元",能同时控制所有其他特征,回答一个更干净的问题——哪些因子在 A 股真正被定价?原书使用 2000—2019 年的 A 股数据完成这组实证,检验对象正是第 3 章的因子:市场、规模、价值、动量、盈利、投资、换手率。

实证设定

几个关键设定,每一个都值得留意:

  • 用公司特征当因子暴露。除市场因子外,直接用每期截面上公司特征的取值作为 $\beta$(而非时序回归估计值)——这是学术界的常见做法(第 2 章讨论过其利弊)。市值取对数,以削弱市值分布严重右偏的影响。
  • 市场 β 单独估计。用滚动 252 个交易日窗口的时序回归计算个股对市场的 β,作为其在市场因子上的暴露。
  • 特征在前、收益在后。每个 $t$ 月用当期特征作解释变量、用 $t+1$ 月个股收益率作被解释变量做截面回归,逐期得到因子收益率序列,再对时间取均值、算 Newey–West 调整后的 t 值。
  • 回归含截距项,以控制模型设定偏误。
  • 只去极值、不标准化。惯例上会对暴露做去极值 + 标准化两步处理(标准化后各因子暴露截面标准差为 1,收益率可直接比较);原书实证只做了去极值,因此比较不同因子时需要借助"影响系数"(见下)。
影响系数 impact coefficient

回答"暴露多一个标准差,预期收益多多少":因子收益率 × 该因子暴露的截面标准差。用它就能公平地比较量纲不同的因子。

出自 Bali et al.(2016)。当暴露未标准化时,回归系数(因子收益率)的大小受特征量纲影响——BM 的"1 个单位"和对数市值的"1 个单位"根本不可比。影响系数 $=\hat\lambda_k \times \sigma(\text{暴露}_k)$ 把所有因子折算到"每一个标准差暴露"的统一刻度上。例如规模因子月均收益率约 $-0.52\%$、对数市值的截面标准差约 $1.02$,影响系数约 $-0.53\%$:其他条件不变,市值(对数)高一个标准差,下月预期收益低约 0.5%。

回归结果

结果与第 3 章排序法的结论基本一致。按显著性分成两个阵营(括号内为原书报告的 Newey–West t 值的大致水平):

因子月均收益方向显著性解读
规模(对数市值)显著(t 约 −3.7)市值越小收益越高——小市值效应;影响系数绝对值约 0.5%,名列前茅
价值(BM)显著便宜的股票收益更高;影响系数仅次于换手率与规模
盈利(ROE)高度显著(t 约 4.8)影响系数约 0.28% 不算大,但标准误极低,显著性很高
换手率极显著(t 约 −7.8)低换手率溢价,A 股最强的截面规律之一;影响系数绝对值最大
市场(β)不显著β 高不多赚甚至少赚——与 Black 版 CAPM(低 β 异象)的含义相符
动量不显著方向为正但过不了检验——美股最强的动量在 A 股水土不服
投资(总资产增长率)不显著(t 约 0.7)方向甚至与理论预期(负相关)相反

无论用传统的 $|t|>2.0$ 还是当下更严格的 $|t|>3.0$ 门槛(第 6 章 6.1 节),结论都一样:规模、价值、盈利、换手率在 A 股被定价;市场、动量、投资不显著。做 A 股因子投资和异象研究,可优先从这四个被定价的维度出发。

误区

"排序法里显著" ≠ "被定价"。排序法是单变量视角,组合在其他因子上的顺带暴露会虚增(或掩盖)目标因子的收益;Fama–MacBeth 回归同时控制所有特征后,才有资格说某因子"独立地"获得溢价。两种方法结论一致(如本节)当然最好;不一致时,应以多元回归为准去怀疑排序法结果里混入了别的因子。

要点
  • Fama–MacBeth 回归能同时控制全部特征,是"因子是否被定价"的更严格裁判。
  • A 股(2000—2019)被定价的因子:规模(−)、价值(+)、盈利(+)、换手率(−);市场 β、动量、投资不显著。
  • 暴露不标准化时用影响系数(收益率 × 暴露标准差)比较因子强弱:换手率、规模最强,价值次之,盈利胜在稳定。
  • 动量在 A 股不显著、投资方向反常——美股模型不能照搬到 A 股,这正是下一节模型比较的出发点。

4.3模型比较:来自 A 股的例子

有了因子,怎么决定 A 股的多因子模型该长什么样?本节演示如何用第 2 章的 α 检验和 GRS 检验比较两个候选模型。先说清楚立场:重点是方法论的应用,不是给两个模型分高下——你很快会看到,"谁更好"的答案对样本区间惊人地敏感。

两个候选模型

模型一:中国版三因子模型(CHN-3)。Liu、Stambaugh 和 Yuan(Liu et al. 2019,发表于 Journal of Financial Economics,标题即 Size and value in China)参照 FF3 为 A 股定制的三因子模型:市场 + 规模(CHN-SMB)+ 价值(CHN-VMG)。两处针对 A 股的特别处理:

壳价值污染 shell value contamination

A 股上市难,小壳公司因为"可以被借壳"而自带一块与基本面无关的价值;这些股票的涨跌跟着壳行情走,会污染用它们做的任何实证。

由于 IPO 发审制度不健全,优秀企业在 A 股上市成本高、周期长,于是出现"借壳上市":收购一家市值极低的上市公司实现曲线上市。这使得 A 股市值最小的一批股票具有可观的壳价值,其收益率很大程度上与壳价值预期挂钩、远离基本面。Liu et al.(2019)因此在实证中剔除市值最低的 30% 股票。这是移植美股方法论时"本土化改造"的经典案例。

第二处处理是:用 EP(盈利市值比)取代 BM 作为价值因子的排序变量——理由几乎完全来自实证:在他们的样本里 EP 比 BM 更能解释 A 股收益的截面差异。这一选择争议很大,后面细说。

模型二:市场 + 规模 + 价值(BM)+ 盈利(ROE)四因子模型(LSL-4)。这是原书作者从公司估值角度出发主张的模型(LSL 为三位作者姓氏首字母,用作因子前缀以区分 CHN 系因子):保留 BM 构造价值因子,并加入 ROE 构造的盈利因子。动机正是对"EP 取代 BM"的质疑:

  • 算术上:$EP = \dfrac{E}{P} = \dfrac{B}{P}\times\dfrac{E}{B} = BM \times ROE$——EP 是价值与盈利两个维度的乘积,不是纯粹的价值。
  • 机制上:第 3 章的实证显示,BM 在小市值股票中作用远强于大市值,而 ROE 恰好相反。当市值最低的 30% 因壳价值被剔除后,BM 的效果自然变差、ROE 和 EP 的效果自然变好——EP 在 Liu et al.(2019)中的优势,相当程度上是样本筛选的副产品
  • 文献上:BM 与 EP 各有胜负,谈不上谁碾压谁:Cakici et al.(2017)与 Hsu et al.(2018)在各自区间发现 BM 更强;Qiao(2019)发现 BM 全区间显著、EP 只有剔除小市值后才显著;MSCI 的报告(Rao and Gupta 2019)发现 2000—2009 年 BM 胜、2010—2019 年 EP 胜。

理论铺垫:BM、ROE 与预期收益

在"因子大战"硝烟弥漫的今天,Fama 和 French(2018)反复告诫:模型里每个因子都该有理论支撑,否则模型比较就沦为数据挖掘。所以先补上理论:为什么 BM 和 ROE 与预期收益密切相关?Hou 等(2019b)从 DDM 出发用单期预期收益率给出了一段干净的论述。由收益率的定义:

式 (4.33) · 单期收益率与市值
$$ M_t \;=\; \frac{\E_t\!\left[\,M_{t+1} + D_{t+1}\,\right]}{1+\E_t\!\left[r_{t+1}\right]} $$
$M_t,\ M_{t+1}$股票在 $t$、$t+1$ 时刻的市值(为简洁略去个股下标 $i$)
$D_{t+1}$$t+1$ 期的分红
$\E_t[r_{t+1}]$$t$ 到 $t+1$ 的单期预期收益率;$\E_t$ 为基于 $t$ 时刻信息的条件期望
就是"收益率 = (期末市值 + 分红 − 期初市值) / 期初市值"移项后的写法:今天的价格 = 明天的钱按预期收益率折现。与式 (4.8) 的无穷期版本相比,单期版本不需要"贴现率常数"这种粗糙假设。

再引入一个会计恒等式——净盈余关系(clean surplus relation):分红等于利润减去账面价值的增加(赚到的钱要么分掉、要么留下):

式 (4.34)/(4.35) · 净盈余关系代入
$$ D_{t+1} = Y_{t+1} - dB_{t+1} \qquad\Longrightarrow\qquad M_t = \frac{\E_t\!\left[\,M_{t+1} + Y_{t+1} - dB_{t+1}\,\right]}{1+\E_t\!\left[r_{t+1}\right]} $$
$Y_{t+1}$$t+1$ 期的净利润
$dB_{t+1}$$t$ 到 $t+1$ 期账面价值的变动(留存再投资)
与式 (4.8) 的替换手法相同:把不可比的"分红"换成报表可见的"利润 − 留存"。
式 (4.36) · 两边除以账面价值
$$ \frac{M_t}{B_t} \;=\; \frac{\E_t\!\left[\dfrac{M_{t+1} + Y_{t+1} - dB_{t+1}}{B_t}\right]}{1+\E_t\!\left[r_{t+1}\right]} $$
$M_t/B_t$市值账面比(BM 的倒数)
$\E_t[Y_{t+1}/B_t]$预期利润与当前账面价值之比——正是预期 ROE
两个比较静态结论:(1)固定其余量,$B_t/M_t$(BM)更高 ⇒ $\E_t[r_{t+1}]$ 更高——BM 与预期收益正相关;(2)固定其余量,$\E_t[Y_{t+1}/B_t]$(预期 ROE)更高 ⇒ $\E_t[r_{t+1}]$ 更高——预期盈利与预期收益正相关

预期 ROE 不可观测,但 Zhang(2017)发现历史 ROE 是预期 ROE 的可靠预测,所以可近似用历史 ROE。于是 BM 和 ROE 都有资格构建因子。既然如此,为什么不干脆用 $EP=BM\times ROE$ 一个变量打包两个维度?两个理由:Penman 和 Reggiani(2018)针对美股的研究表明,BM、EP、ROE 三者中取两个才能更准确地估值,只用一个会丢信息;而且由 $EP=BM\times ROE$ 可知 EP 与 ROE 正相关,用 EP 构造的"价值因子"在盈利维度上有甩不掉的暴露——它表现好,但不纯粹。这就是 LSL-4 分别用 BM、ROE 建两个因子的全部理由。

因子构造与初步观察

比较模型前先在原书的实证区间(2000—2019 年 A 股)内复现因子,构造尽量贴近原文。CHN-3 的两个风格因子用市值与 EP 做 2×3 独立双重排序(每月末再平衡,组合内市值加权;V/M/G 分别为 EP 高于 70% 分位数的价值组、中间组、低于 30% 分位数的成长组):

式 (4.37)/(4.38) · CHN-3 的规模与价值因子
$$ R_{CHN\text{-}SMB} = \tfrac{1}{3}\left(R_{S/V}+R_{S/M}+R_{S/G}\right) - \tfrac{1}{3}\left(R_{B/V}+R_{B/M}+R_{B/G}\right) $$ $$ R_{CHN\text{-}VMG} = \tfrac{1}{2}\left(R_{S/V}+R_{B/V}\right) - \tfrac{1}{2}\left(R_{S/G}+R_{B/G}\right) $$
$R_{S/V}$ 等市值(S/B,按中位数)× EP(V/M/G,按 30%/70% 分位数)交叉的六个市值加权组合的收益率
$R_{CHN\text{-}VMG}$Value-Minus-Growth:做多高 EP、做空低 EP
与 FF3 的式 (4.2)/(4.3) 完全同构,只是排序变量从 BM 换成 EP。

LSL-4 的三个风格因子仿照 FF5:分别用 BM、ROE(TTM,滚动十二个月)与市值做 2×3 双重排序,规模因子取两套排序的平均:

式 (4.39)–(4.41) · LSL-4 的价值、盈利与规模因子
$$ R_{LSL\text{-}HML} = \tfrac{1}{2}\left(R_{S/H}+R_{B/H}\right) - \tfrac{1}{2}\left(R_{S/L}+R_{B/L}\right) $$ $$ R_{LSL\text{-}RMW} = \tfrac{1}{2}\left(R_{S/R}+R_{B/R}\right) - \tfrac{1}{2}\left(R_{S/W}+R_{B/W}\right) $$ $$ R_{LSL\text{-}SMB} = \tfrac{1}{2}\left(R_{SMB}^{BM} + R_{SMB}^{ROE}\right) $$
$R_{S/H},\dots$市值 × BM 排序的六个组合(H/M/L 按 BM 的 30%/70% 分位数)
$R_{S/R},\dots$市值 × ROE(TTM) 排序的六个组合(R/N/W 为高/中/低盈利)
$R_{SMB}^{BM},\ R_{SMB}^{ROE}$分别用两套排序的"三小减三大"构造的规模因子(构造同式 4.12/4.13),再取平均
LSL-4 = 市场 + $R_{LSL\text{-}SMB}$ + $R_{LSL\text{-}HML}$ + $R_{LSL\text{-}RMW}$。出于稳健性考虑,实证同时考虑"全部股票"与"剔除市值最低 30%"两种股票池。

正式检验前,因子收益率与相关系数已经透露了三条重要信息:

  • 两个规模因子几乎是同一个东西(两种股票池下相关系数均高达 0.98)。有意思的是,一旦剔除市值最低的 30% 股票,两个规模因子都不再显著(t 值分别约 1.9 和 1.2)——A 股的规模溢价高度集中在最小的那批股票上。顺带一提,Liu et al.(2019)的实证区间止于 2016 年底,"幸运地"避开了其后规模因子失效的年份。
  • CHN-VMG 与 LSL-RMW 高度相关(全部股票下约 0.85,剔除后仍约 0.74)——$EP=BM\times ROE$ 的直接体现:EP 版价值因子在盈利维度上暴露很高,不是纯粹的价值因子。作为对照,BM 版价值因子 LSL-HML 与盈利因子的相关系数仅约 −0.1。
  • 盈利因子在剔除小市值后更强:LSL-RMW 全部股票时不显著(t 约 1.8),剔除市值最低 30% 后显著性上升(t 约 2.4)——与第 3 章"ROE 在大市值中更好使"的发现一致。

α 检验:谁解释掉的异象多

α 检验的做法:选一组异象作为测试资产,把每个异象的多空组合收益率对两个模型分别做时序回归,看 α 是否显著——被解释掉的异象越多、剩余 |α| 越小,模型越好。测试资产选用 Liu et al.(2019)研究过的 10 个异象(涵盖估值、盈利、换手率与流动性、反转与波动率等维度,如净经营资产、市现率、1 个月异常换手率、非流动性——按 Amihud 2002 计算——反转、1 个月波动率等;个别变量定义采用 Asness et al. 2020 的版本以规避涨跌停的影响)。除全区间一次回归外,还做了滚动 60 个月窗口回归(对 α 及其 t 值的序列取均值)作为稳健性检验——20 年里 A 股结构变化太大,一次回归可能掩盖问题。

结果的定性总结(原书汇报了 Avg |α|、Avg |t|、以及 |t| 超过 2.0 / 3.0 的异象个数四个指标):

情形CHN-3LSL-4
全区间一次回归 · 全部股票仅 2 个异象解释不掉(净经营资产 t≈2.1、1 个月异常换手率 t≈2.5);Avg |α| 约 0.30%3 个解释不掉(市现率 t≈2.0、异常换手率 t≈3.0、非流动性 t≈3.6);Avg |α| 约 0.40%
全区间一次回归 · 剔除市值最低 30%定性结论不变:两个模型都搞不定 1 个月异常换手率与非流动性,其余大都能解释
滚动 60 个月 · 全部股票解释全部 10 个异象仅非流动性解释不掉(t≈2.4)
滚动 60 个月 · 剔除市值最低 30%反超:Avg |α| 与 Avg |t| 均低于 CHN-3

按大多数口径 CHN-3 略占上风,但在滚动窗口 + 剔除小市值的设定下结论逆转。诚实的读法是:两个模型解释异象的能力旗鼓相当,都能覆盖大部分异象;换手率/流动性类异象是共同的盲区(这也是 Liu et al. 2019 另外构建含换手率因子的四因子版本的原因)。

GRS 检验:模型互相解释对方

GRS 检验(第 2 章 2.5 节)在这里的用法很优雅:让两个模型互为模型和测试资产——用 LSL 的三个风格因子当模型去解释 CHN 的两个风格因子(检验后者的 α 是否联合为零),再反过来。若 A 的因子能解释 B 的因子而反之不行,则 A 是"更大"的模型。考虑到区间敏感性,检验在四个窗口分别进行:前十年(2000—2009)、后十年(2010—2019)、全区间、以及 Liu et al.(2019)原文区间(2000—2016)。全部股票下的结果:

窗口LSL 因子作模型,CHN 因子作资产CHN 因子作模型,LSL 因子作资产读法
前十年拒绝(F≈3.7,p≈0.03)拒绝(F≈4.2,p≈0.01)互相都解释不了对方
后十年不拒绝(F≈0.8)不拒绝(F≈1.5)互相都能解释对方
全区间拒绝(F≈3.5,p≈0.03)不拒绝(F≈0.8,p≈0.47)CHN 能解释 LSL,反之不行——CHN-3 占优
2000—2016(原文区间)与全区间结论相同

为什么前后十年结论如此撕裂?拆开因子看就明白了:前十年,BM 构造的 LSL-HML 极强(月均约 1.35%、高度显著),LSL-RMW 弱(月均约 0.3%、不显著);后十年,A 股结构生变——机构占比上升、市场更有效——盈利因子转为显著,BM 价值因子却"熄火"。LSL 的因子在前后十年里总是"断了至少一条腿"。反观 CHN-VMG:由于 $EP=BM\times ROE$,它对 LSL-HML 和 LSL-RMW 同时保持稳定的高暴露(滚动回归清晰可见),前十年吃价值的溢价、后十年吃盈利的溢价,二十年全程显著。GRS 的 F 统计量正是被这种"因子接力"推出来的。至于剔除市值最低 30% 的股票池:全区间两个模型互相解释、难分高下,而分别看前后十年时反而是 LSL-4 更好。

误区

看到"全区间 GRS 显示 CHN-3 更优"就下结论,是模型比较里最典型的陷阱。同一对模型,换个窗口、换个股票池,优劣立刻翻转。实证资产定价极易滑入数据窥探——有意或无意地挑选对自己有利的区间。原书对这组实证的态度值得记住:与"实证里谁解释谁"相比,每个因子背后的经济学含义是否清晰合理重要得多(Fama and French 2018)。EP 因子实证表现好,但它是两种溢价的混合体;BM+ROE 各司其职,理论上更干净。孰优孰劣,留给使用者按用途判断。

要点
  • 比较模型的标准武器:α 检验(对一组异象回归,看剩余 |α| 与显著个数)+ GRS 检验(两模型互为模型与资产)。
  • $EP = BM \times ROE$:EP 版价值因子同时暴露于价值与盈利,表现稳定但不纯粹;BM + ROE 双因子在理论上更清晰。
  • DDM 单期推导:BM 与预期收益正相关,预期 ROE 与预期收益正相关——两个因子都有理论出身。
  • A 股前十年价值强、后十年盈利强;规模溢价集中于最小 30% 股票(壳价值污染区)。
  • 模型比较的结论高度依赖窗口与股票池——先警惕数据窥探,再谈孰优孰劣。

4.4多因子模型的简约性

纯数学上,只要往时序回归右边不断塞因子,模型(在样本内)一定能解释越来越多的异象——解释力是可以"买"来的,代价是复杂度。但本章七个模型的因子个数全都落在 3~5 个:这不是巧合,而是简约性原则(The Law of Parsimony,即奥卡姆剃刀)在起作用——因子代表的是共性风险,共性风险的种类必然有限;解释不了这一点的因子,多半只是在拟合噪声。

因子个数之外还有一层更隐蔽的复杂度:构造因子用了多少个变量。SY 模型只有 4 个因子,但两个错误定价因子背后是 11 个异象变量——它的"体积"远比因子个数显示的大。在 2018 年美国金融协会年会上,DHS 模型作者之一 Lin Sun 报告了一项颇有新意的分析:给每个模型算"简约指数",再看复杂度与解释力的关系。

式 (4.44)/(4.45) · 两个简约指数
$$ PI_{\mathrm{I}} \;=\; 0 - \sum_{k=1}^{K} v_k \qquad\qquad PI_{\mathrm{II}} \;=\; 0 - \left(K + V\right) $$
$K$模型中因子的个数
$v_k$构造第 $k$ 个因子用到的变量个数;同一变量被多个因子使用时重复计入
$V$模型全部因子用到的不重复变量个数(每个变量只数一次)
两个指数都是负数:越接近 0 越简约,越低越复杂。指数 I 惩罚"变量被反复使用",指数 II 惩罚"因子多 + 变量种类多"。市场因子不需要任何排序变量,对两个指数的变量项都不贡献。
例子

算两个极端。FF3:市场因子用 0 个变量;SMB 与 HML 都由市值 × BM 双重排序构造,各用 2 个变量。指数 I $=0-(0+2+2)=-4$;不重复变量共 2 个(市值、BM),指数 II $=0-(3+2)=-5$。SY 四因子:管理因子用市值 + 6 个异象变量共 7 个;表现因子用市值 + 5 个异象变量共 6 个;规模因子的构造牵涉市值和全部 11 个异象变量共 12 个。指数 I $=0-(0+12+7+6)=-25$;不重复变量共 12 个,指数 II $=0-(4+12)=-16$。两个只差一个因子的模型,复杂度差了几倍。

Lin Sun 用 CAPM 和本章各模型去检验 34 个异象,以 0.05 显著性水平下"仍显著的异象个数"度量模型解释力,画出解释力对简约指数的散点。结论清晰:模型越复杂(指数越低),样本内解释掉的异象越多——一条几乎单调的关系。这恰恰说明"谁解释的异象多"不能作为评判模型的唯一标准:复杂度买来的解释力,很可能只是样本内的过拟合,出了样本就还回去(第 6 章 6.2.3 节继续这个话题)。

要点
  • 解释力与复杂度正相关——往模型里加因子总能"变好",所以解释力必须与简约性一起权衡。
  • 复杂度有两层:因子个数、构造因子的变量个数;简约指数 I / II 分别从两个口径惩罚它们。
  • 优秀的多因子模型:因子少(3~5 个)、变量少、且每个因子背后有清晰的金融学或经济学含义。
  • 在因子动物园时代,简约性是对抗过拟合与数据窥探的第一道防线。

本章练习

练习刻意有难度。代码题请准备 Python 环境(numpy;练习 4.2 的 p 值部分可选装 scipy),先自己写,再看提示,最后对答案。

练习 4.1 实现张成回归,复现"HML 冗余" 代码题

下面的代码生成 600 个月的五因子模拟数据,其中 HML 完全由其余四个因子加噪声生成(真实 α = 0),但它自身的平均收益显著为正。请你:

  1. 写一个通用函数 spanning_test(F, names):对每个因子,用其余因子做带截距的时序回归,输出该因子的样本均值及其 t 值、张成回归的 α 及其 t 值;
  2. 运行并回答:哪些因子"平均收益显著但 α 不显著"?这说明什么?
  3. 把生成 HML 的那一行中真实 α 改为每月 0.3,重新运行。α 的 t 值变成多少?要多长的样本才能稳定检出这个 α(用 $t \approx \alpha\sqrt{T}/\sigma_{\varepsilon}$ 估算)?
import numpy as np
rng = np.random.default_rng(42)
T = 600
mkt = 0.55 + 4.5 * rng.standard_normal(T)
smb = 0.20 + 3.0 * rng.standard_normal(T)
rmw = 0.25 + 2.2 * rng.standard_normal(T)
cma = 0.28 + 1.9 * rng.standard_normal(T)
# HML:由其余因子生成,真实 alpha = 0
hml = 0.0 + 0.04*mkt + 0.06*smb + 0.22*rmw + 1.05*cma \
      + 2.0 * rng.standard_normal(T)
F = np.column_stack([mkt, smb, rmw, cma, hml])
names = ['MKT', 'SMB', 'RMW', 'CMA', 'HML']
提示

带截距 OLS:设计矩阵 Z = [1, X],系数 np.linalg.lstsq;α 的标准误来自 s2 * inv(Z.T @ Z)[0, 0],其中 s2 是残差方差(自由度 T − k)。均值的 t 值就是"对常数 1 回归"的特例:mean / (std / sqrt(T))。第 3 问:噪声月波动约 2%,α = 0.3%/月,信息比率 0.15/月,t 超过 2 大约需要 $(2/0.15)^2 \approx 180$ 个月。

参考答案
import numpy as np

def ols_alpha(y, X):
    """带截距 OLS,返回 (alpha, t_alpha)"""
    T = len(y)
    Z = np.column_stack([np.ones(T), X])
    coef, *_ = np.linalg.lstsq(Z, y, rcond=None)
    resid = y - Z @ coef
    k = Z.shape[1]
    s2 = resid @ resid / (T - k)
    cov = s2 * np.linalg.inv(Z.T @ Z)
    return coef[0], coef[0] / np.sqrt(cov[0, 0])

def spanning_test(F, names):
    T, K = F.shape
    print(f"{'因子':<6}{'均值%/月':>10}{'t(均值)':>9}{'alpha%':>9}{'t(alpha)':>9}  结论")
    for i, name in enumerate(names):
        y = F[:, i]
        X = np.delete(F, i, axis=1)
        m = y.mean()
        t_m = m / (y.std(ddof=1) / np.sqrt(T))
        a, t_a = ols_alpha(y, X)
        verdict = '冗余' if abs(t_a) < 2 else '有独立贡献'
        print(f"{name:<6}{m:>10.3f}{t_m:>9.2f}{a:>9.3f}{t_a:>9.2f}  {verdict}")

rng = np.random.default_rng(42)
T = 600
mkt = 0.55 + 4.5 * rng.standard_normal(T)
smb = 0.20 + 3.0 * rng.standard_normal(T)
rmw = 0.25 + 2.2 * rng.standard_normal(T)
cma = 0.28 + 1.9 * rng.standard_normal(T)

for true_alpha in [0.0, 0.3]:
    hml = true_alpha + 0.04*mkt + 0.06*smb + 0.22*rmw + 1.05*cma \
          + 2.0 * rng.standard_normal(T)
    F = np.column_stack([mkt, smb, rmw, cma, hml])
    print(f"\n=== HML 真实 alpha = {true_alpha}%/月 ===")
    spanning_test(F, ['MKT', 'SMB', 'RMW', 'CMA', 'HML'])

(2) 真实 α = 0 时,HML 的均值显著为正(t 约 3 上下),但张成回归 α 的 t 值接近 0——HML 冗余:它的平均收益完全可由其余四因子(主要是 CMA)的线性组合复制,加进模型不提供任何增量定价能力。而 MKT、CMA 等因子(其均值不来自彼此的暴露)α 显著,是模型必须保留的成员。这正是 Fama and French(2015)在真实美股数据(1963—2013)上得到的著名结果。

(3) α = 0.3%/月、残差月波动约 2% 时,$t \approx 0.3\sqrt{600}/2 \approx 3.7$,600 个月的样本能稳定拒绝冗余。反过来,想让 t 超过 2 至少需要约 $(2\times2/0.3)^2 \approx 180$ 个月(15 年)——冗余检验和 α 检验一样,对样本长度非常饥渴,短样本下"检验不出 α"不等于"没有 α"。

练习 4.2 两个模型的解释力比赛:平均 |α| 与 GRS 代码题

模拟一个由两个因子("市场"与"盈利")定价的世界和 10 个测试组合(真实 α 全为零)。模型 A 同时含两个因子,模型 B 只含市场因子(相当于漏掉了盈利因子)。请你:

  1. 实现函数 grs_test(R, F):对 N 个测试组合做时序回归,返回各组合的 α、平均 |α|,以及 GRS 统计量 $\dfrac{T-N-K}{N}\left(1+\bar{f}^{\top}\hat\Omega^{-1}\bar{f}\right)^{-1}\hat{\boldsymbol\alpha}^{\top}\hat\Sigma^{-1}\hat{\boldsymbol\alpha} \sim F(N,\,T-N-K)$($\hat\Omega$、$\hat\Sigma$ 用除以 $T$ 的极大似然估计);
  2. 分别对模型 A、B 运行,比较平均 |α| 与 GRS 统计量,并解释模型 B 的 α 为什么呈现与 b2 成比例的结构;
  3. 回答:相比"数一数有几个 α 显著",GRS 检验好在哪里?
import numpy as np
rng = np.random.default_rng(7)
T, N = 600, 10
f1 = 0.50 + 4.5 * rng.standard_normal(T)     # 市场因子
f2 = 0.30 + 2.5 * rng.standard_normal(T)     # 盈利因子
b1 = rng.uniform(0.8, 1.2, N)                # 市场暴露
b2 = np.linspace(-0.8, 0.8, N)               # 盈利暴露:从深空到重仓
eps = 1.5 * rng.standard_normal((T, N))
R = np.outer(f1, b1) + np.outer(f2, b2) + eps  # 真实 alpha 全为 0
提示

多资产时序回归可以一次算完:X = [1, F](T×(K+1)),coef = lstsq(X, R) 得 (K+1)×N 矩阵,第一行就是全部 α。GRS 里的 $\hat\Sigma$ 是残差矩阵的 N×N 协方差(除以 T),$\bar f$ 是因子均值向量,$\hat\Omega$ 是因子协方差(除以 T)。模型 B 漏掉 f2 时,每个组合的 α 会吸收 b2[i] * f2.mean()

参考答案
import numpy as np

def grs_test(R, F):
    """R: T x N 测试组合超额收益; F: T x K 因子收益
    返回 (alpha 向量, 平均|alpha|, GRS 统计量, 自由度, p 值或 None)"""
    T, N = R.shape
    F = np.atleast_2d(F)
    if F.shape[0] != T:
        F = F.T
    K = F.shape[1]
    X = np.column_stack([np.ones(T), F])
    coef, *_ = np.linalg.lstsq(X, R, rcond=None)   # (K+1) x N
    alpha = coef[0]
    E = R - X @ coef
    Sigma = E.T @ E / T                    # 残差协方差 (MLE)
    fbar = F.mean(axis=0)
    Omega = (F - fbar).T @ (F - fbar) / T  # 因子协方差 (MLE)
    core = alpha @ np.linalg.solve(Sigma, alpha)
    adj = 1.0 + fbar @ np.linalg.solve(Omega, fbar)
    grs = (T - N - K) / N * core / adj
    try:
        from scipy import stats
        p = stats.f.sf(grs, N, T - N - K)
    except ImportError:
        p = None
    return alpha, np.abs(alpha).mean(), grs, (N, T - N - K), p

rng = np.random.default_rng(7)
T, N = 600, 10
f1 = 0.50 + 4.5 * rng.standard_normal(T)
f2 = 0.30 + 2.5 * rng.standard_normal(T)
b1 = rng.uniform(0.8, 1.2, N)
b2 = np.linspace(-0.8, 0.8, N)
eps = 1.5 * rng.standard_normal((T, N))
R = np.outer(f1, b1) + np.outer(f2, b2) + eps

for name, F in [('模型A(市场+盈利)', np.column_stack([f1, f2])),
                ('模型B(仅市场)  ', f1.reshape(-1, 1))]:
    alpha, avg_abs, grs, dof, p = grs_test(R, F)
    ptxt = f", p = {p:.4f}" if p is not None else "(未装 scipy,5% 临界值约 1.85)"
    print(f"{name}: 平均|alpha| = {avg_abs:.3f}%/月, GRS = {grs:.2f} "
          f"~ F{dof}{ptxt}")
    print("  各组合 alpha:", np.round(alpha, 3))

(2) 模型 A:平均 |α| 很小(几个 bp),GRS 不显著——模型正确时 α 联合为零无法拒绝。模型 B:每个组合的 α 约等于 $b_{2,i}\times\bar{f_2}\approx b_{2,i}\times 0.3$,从约 −0.24% 单调排到约 +0.24%,平均 |α| 约 0.13%/月,GRS 显著拒绝。漏掉的因子没有消失,而是按各组合的暴露"摊进"了 α——这正是第 1 章说的"α 显著的一种解释是模型漏了因子"。

(3) "数显著个数"逐个检验 α,既有多重检验问题(10 次检验总会撞出一两个假阳性),又忽略了 α 之间通过残差的相关性;GRS 把 N 个 α 放进一个二次型里联合检验,用残差协方差 $\hat\Sigma$ 给相关性定权,还通过 $(1+\bar f^{\top}\hat\Omega^{-1}\bar f)^{-1}$ 校正了因子均值估计误差,并有精确的有限样本 F 分布。它还有漂亮的几何含义:GRS 统计量正比于"测试资产加入后夏普比率的平方能提高多少"——模型好,等价于在因子之外再也榨不出更高的夏普比率。

练习 4.3 完整推导 FF5 的动机:从 DDM 到三个预测变量 推导题

从股利贴现模型 $M_t = \sum_{\tau=1}^{\infty}\E[D_{t+\tau}]/(1+r)^{\tau}$ 出发:

  1. 利用净盈余关系推出式 (4.8),说明每一步的经济含义;
  2. 推出式 (4.9),并严格论证三个比较静态结论(BM、预期盈利、预期投资分别与 $r$ 的关系),指出每个结论"固定"了哪些量;
  3. 指出这一推导的至少三个薄弱环节(提示:$r$ 是什么?"固定其他变量"现实吗?实证代理变量与理论变量一致吗?)。
参考答案

(1) 净盈余关系(clean surplus relation):账面价值的变动等于利润减分红,$dB_{t+\tau} = Y_{t+\tau} - D_{t+\tau}$,移项得 $D_{t+\tau} = Y_{t+\tau} - dB_{t+\tau}$——公司赚到的钱,要么留在账面上(再投资),要么分给股东。代入 DDM: $$ M_t = \sum_{\tau=1}^{\infty} \frac{\E[\,Y_{t+\tau} - dB_{t+\tau}\,]}{(1+r)^{\tau}} $$ 即式 (4.8)。经济含义:市值等于未来全部"利润减再投资"(自由现金流意义上的可分配利润)的现值,其中 $r$ 是使该等式成立的内部收益率,近似于股票的长期预期收益率。这一替换归功于 Miller and Modigliani(1961):估值可以完全绕开股利政策,只看盈利与投资。

(2) 两边除以 $B_t$($B_t>0$,且是 $t$ 时刻已知量,可直接进入求和号)得式 (4.9): $$ \frac{M_t}{B_t} = \frac{\sum_{\tau=1}^{\infty}\E[\,Y_{t+\tau}-dB_{t+\tau}\,]/(1+r)^{\tau}}{B_t} $$ 记右边分子的期望现金流流为 $CF \equiv \{\E[Y_{t+\tau}-dB_{t+\tau}]\}$。三个比较静态: ① 价值:固定 $CF$ 与 $B_t$,令 $M_t$ 下降。左边变小,而右边是 $r$ 的严格递减函数(每一项分母随 $r$ 增大),等式要恢复成立必须 $r$ 上升。故 $B_t/M_t$ 越高 ⇒ $r$ 越高。 ② 盈利:固定 $M_t/B_t$、$B_t$ 与全部 $dB$,令某些 $\E[Y_{t+\tau}]$ 上升。右边分子变大,左边不动,必须 $r$ 上升抵消。故预期盈利越高 ⇒ $r$ 越高。 ③ 投资:固定 $M_t/B_t$、$B_t$ 与全部 $Y$,令某些 $\E[dB_{t+\tau}]$ 上升。右边分子变小,必须 $r$ 下降抵消。故预期投资越高 ⇒ $r$ 越低。

(3) 薄弱环节(任三): ① $r$ 被假设为对所有期限相同的常数贴现率,而实际预期收益随期限与时间变化,"单期预期收益"与这里的 $r$ 并不同物——Hou et al.(2019b)正是用单期版本(式 4.33—4.36)重做推导来攻击 FF5 的(单期版本推不出投资与收益的关系,投资因子失去理论出身)。 ② 比较静态要求"固定其他变量只动一个",但现实中 $M_t$、盈利、投资高度联动(盈利好的公司往往投资多、市值高),三个"固定"实验在数据里从不单独发生。 ③ 理论变量是预期盈利与预期投资、且投资应是账面价值变化;实证代理是历史 ROE 与历史总资产变化率。尤其投资一项:用回归预测的预期投资与收益率甚至呈(不显著的)正相关,与理论方向相反——代理变量与理论变量之间存在断裂。 ④ 推导只涉及"应该相关",完全没有说明这是否是风险:DDM 对理性定价和错误定价同样成立,高 BM 高收益也可以读成"价格错了后来修正"。

练习 4.4 用 q 理论一口气解释价值、投资、盈利三类溢价 简答题

基于式 (4.17)—(4.21) 的两期模型,回答:

  1. 为什么"给定盈利,投资多的公司预期收益低"在 q 理论中是因果自洽的(公司为什么"敢"多投)?
  2. 为什么"给定投资,盈利高的公司预期收益高"不是套利机会?
  3. 价值溢价(高 BM 高收益)如何被投资因子"吸收"?由此解释为什么 q-factor 模型里没有 HML。
参考答案

(1) 核心等式 $\E_0[r^S] = \E_0[\Pi_{i1}]/(1+a\,I_{i0}/A_{i0})$ 里,因果方向是从折现率到投资:公司按净现值原则投资,投到边际项目 NPV 为零为止。折现率(即股票预期收益,也是公司的资本成本)低的公司,未来现金流折现后更值钱,更多项目过得了 NPV 门槛,于是投资更多。所以"高投资"不是导致低收益的原因,而是低折现率的显示信号——公司用自己的投资行为暴露了市场给它的资本成本。这就是"供给侧定价":不问投资者要什么补偿,只看公司行为反推折现率。

(2) 给定投资,盈利高 ⇒ 折现率高,是同一等式的另一面:高盈利却没有大幅扩张的公司,说明它的资本成本(折现率)一定很高——否则按 NPV 原则它早该多投了。高预期收益是对持有这类股票所承担风险的补偿(在理性框架里折现率高即风险高),不是免费午餐;想赚 ROE 因子的溢价,就要承担对应的系统性风险(如盈利的周期性风险)。

(3) 托宾 q(市值/重置成本,近似市值/账面)与投资强度正相关:在最优投资条件下 $q = 1 + a\,I/A$(边际 q 等于边际成本)。因此低 q(高 BM)公司 ⇔ 低投资公司 ⇔ 高折现率公司。价值溢价与投资溢价是同一枚硬币的两面:HML 做多的"便宜"公司,基本上就是 I/A 因子做多的"不扩张"公司。既然 I/A 因子直接对应理论变量(投资),HML 只是它的间接代理,模型自然保留 I/A、舍弃 HML——这与 FF5 中"HML 被 CMA 张成、冗余"的实证发现互相印证:一个从理论预言,一个从数据验证。

练习 4.5 错误定价因子与风险因子的本质区别 简答题

以 SY 四因子与 DHS 三因子为例,与 FF5 / q-factor 对照,从构造方法收益解释两个层面,系统回答错误定价因子和风险因子的本质区别;并给出至少两条可检验的推断——如果因子收益真的来自错误定价而非风险,数据上应该看到什么?

参考答案

构造层面:风险因子选变量的标准是"有理论支撑的风险代理",通常一个因子一个变量(BM、ROE、I/A),排序用统一模板(NYSE 30%/70% 断点、2×3),构造保守克制;错误定价因子选变量的标准是"能度量价格偏离价值的方向和幅度",天然倾向复合信号——SY 把 11 个异象排名取平均降噪,DHS 把 CSI/NSI 按复杂规则合成——并大量采用非常规设计(20%/80% 断点、全市场断点、SY 只用中间组构造 SMB、DHS 的缺失值归组规则)。方向的确定方式也不同:风险因子的多空方向由理论符号决定(投资负相关 ⇒ 保守减激进);错误定价因子的方向统一为"做多低估、做空高估",依赖对每个异象与收益相关方向的先验判断。代价是自由度多、对构造细节敏感(Hou et al. 2019b 换回传统断点后 SY 因子表现明显变化)、过拟合风险高。

解释层面:风险阵营中因子溢价是承担系统性风险的均衡补偿——它应当长期存在,赚它的钱必须承受相应的坏状态(如盈利因子在衰退期亏损);错误定价阵营中因子溢价是价格向价值回归的过程——它存在的前提是偏差持续产生(行为偏差 + 套利限制),本质上是"聪明钱赚糊涂钱"。两种解释对应完全不同的世界观:前者与市场有效兼容,后者以市场无效为前提(回到第 1 章的联合假说问题——同一份 α 证据,两个阵营各执一词)。

可检验推断(任两条):随套利条件变化:错误定价溢价应在套利受限处更强——小市值、高特质波动、难做空的股票中更大,且多空不对称(做空端贡献更大,源于套利不对称性);风险溢价无此系统模式。 ② 随情绪变化:错误定价溢价应在高投资者情绪期后更大(情绪制造偏差);Stambaugh et al.(2012)正是用这一点支持错误定价解释。 ③ 随时间衰减:偏差被学术界曝光、被资金套利后,错误定价溢价应显著缩水(McLean and Pontiff 2016 发现发表后平均缩水过半);纯风险溢价不因"被发现"而消失。 ④ 坏状态对价:风险因子应能找到对应的宏观坏状态(在该状态下因子亏钱且投资者恰在此时最怕亏钱);错误定价因子找不到这样的状态对价。

练习 4.6 从零为一个新市场设计多因子模型 简答题

假设你被派去研究一个此前没人系统研究过的股票市场(比如某新兴市场),任务是给出该市场的多因子定价模型。请串联第 2 章的方法论与本章的全部内容,写出从零开始的完整流程(至少覆盖:数据准备、候选因子筛选、因子构造、冗余剔除、模型确定与验证五个环节),并在每个环节指出一个最容易犯的错误。

参考答案

第一步:数据准备与市场"本土化"体检。清洗价格与财务数据(剔除生存偏差——必须包含退市股票;财务数据按披露日对齐,防前视偏差);识别本市场特有的微观结构问题并制定处理规则——对应 A 股的壳价值污染(剔除市值最低 30%)、涨跌停与长期停牌(参考 Asness et al. 2020 式的变量改造)、新股炒作期剔除等。易犯错误:直接照搬美股规则(如 NYSE 断点逻辑),无视本地制度摩擦。

第二步:候选因子的单因子检验。从有理论出身的特征出发(规模、价值、盈利、投资、动量、换手率/流动性等),用排序法(第 2 章)逐个检验:分组单调性、多空组合收益、Newey–West t 值;再与市值双重排序初步剔除规模的干扰。易犯错误:把几十个变量全试一遍挑显著的——多重检验下必须提高 t 门槛(≥3.0)并保留"试过多少个"的完整记录。

第三步:Fama–MacBeth 回归定"被定价"名单。用特征作暴露、控制全部候选特征做逐期截面回归(含截距、去极值),确认哪些因子在多元框架下仍有显著溢价(本章 4.2 的做法);用影响系数比较强弱。易犯错误:把排序法显著当成被定价——单变量显著可能只是搭了别的因子的便车。

第四步:构造因子并剔除冗余。对入选特征按 2×3 模板构造因子(本地断点、组合内市值加权、组间等权);计算因子相关矩阵,对高相关因子做张成回归(练习 4.1),α 不显著者剔除;警惕"EP 式"的混合变量——若某因子可分解为两个维度的乘积(如 EP=BM×ROE),优先用分解后的纯因子。易犯错误:保留一对高相关因子(如 EP 价值与 ROE 盈利并存),导致模型内多重共线、λ 估计不稳。

第五步:模型确定、比较与验证。候选模型控制在 3~5 因子、每个因子说得出经济含义(简约性);用一组不参与构造模型的异象组合做 α 检验 + GRS 检验,与基准模型(CAPM、本地版 FF3)比较(本章 4.3 的做法);稳健性:子区间(防结构变化)、剔除小市值、滚动窗口;最理想的是留出严格的样本外区间或用其他相似市场做外部验证。易犯错误:用同一段样本既挑因子又比模型还下结论——本章 4.3 已示范过窗口对结论的翻转能力;样本内的胜负必须打折听。

贯穿始终的原则:每个因子要有先于数据的经济学故事(Fama and French 2018);显著性门槛从严;所有"研究者自由度"(断点、股票池、窗口)都做敏感性分析并如实汇报。