第 3 章

主流因子解读

第 2 章给了你一套统计武器,这一章把武器对准具体目标:市场、规模、价值、动量、盈利、投资、换手率——七个最主流的因子,逐个讲清它从哪来(起源)、它凭什么赚钱(成因)、它在 A 股到底灵不灵(实证)。但在开火之前必须先把弹药检查一遍:数据怎么处理、因子怎么构造,坑都在哪里。3.1 节的数据流程规范,是后面所有实证结论可信的前提。

先把结论地图摆出来。原书用 2000—2019 年共 20 年的 A 股数据、按统一流程对七个因子逐一做了检验,定性结论如下表(细节在各节展开):

因子排序变量起源A 股定性结论(原书实证)
市场全市场市值加权组合Treynor、Sharpe、Lintner、Mossin(1960 年代)解释个股时序波动有效;但 β 与截面收益无正向关系,反有低 β 异象苗头
规模 SMB总市值Banz (1981)显著(月均约 1.4%),但受壳价值污染,2017 年后大幅回撤
价值 HML账面市值比 BMStattman (1980)、Fama–French (1993)显著(月均约 0.7%—1%),大市值中明显减弱
动量 MOM过去 11 个月收益(跳过最近一月)Jegadeesh–Titman (1993)不显著;小市值反转、仅大市值有微弱动量
盈利ROE(TTM)Novy-Marx (2013)、FF (2015)、HXZ (2015)控制市值后显著(月均约 0.6%)
投资总资产增长率Titman et al. (2004)、Cooper et al. (2008)不显著(控制盈利后仍不显著)
换手率异常换手率Liu et al. (2019) 的 PMO非常显著(月均约 1.2%—1.5%,t 值超过 5),但空头贡献大

下图把其中四个代表性因子的多空组合累计收益画成示意曲线——漂移和波动按上表的定性结论设定,让你先对"谁强谁弱"有个直观印象:

图 3-1 | 模拟数据:四个代表性因子多空组合的累计收益路径(月收益率算术累加,%)。各系列的漂移与波动按原书 A 股定性结论设定:SMB 长期最强但 2017 年起大幅回撤,HML 稳步向上,ROE 温和向上,MOM 在零附近徘徊。示意图,非真实行情。

3.1数据和流程

因子研究是"垃圾进、垃圾出"的重灾区:一个不小心用了未来数据的回测,可以把任何废物包装成圣杯。本节把原书全部实证遵循的数据处理流程讲清楚——这些约定同样适用于第 4、5 章的实证,也应该成为你自己做研究时的默认规范。

数据来源与研究范围

原书的行情、指数与宏观数据来自 Wind,财务数据来自开源接口 Tushare;全部实证为日线级别、月末调仓。股票池是沪深两市主板、中小板与创业板的全部 A 股(不含科创板);样本期为 2000 年 1 月至 2019 年 12 月,整 20 年。起点选 2000 年有两个理由:会计准则从 1999 年起才成型、口径前后可比;且此时上市公司已有九百余家,样本量足以支撑截面统计(到 2019 年末已近 3700 家)。

量价数据处理

复权 price adjustment

分红、送股会让股价出现"假跳水",复权就是把这些技术性缺口补上,让价格曲线只反映真实的赚亏。

前复权保持当前价格不变、往回调整历史价格:看盘方便,是行情软件的默认方式。但它有两个缺陷——每次除权除息都要重算历史,所以"历史价格"本身是时变的(今天看到的 2015 年前复权价和明年看到的可能不同);对持续分红的公司,前复权价甚至可能出现负值。

后复权保持历史价格不变、向前调整当前价格:它偏离真实报价、不适合看盘,但正因为历史值从不改动,它就是投资者"从头拿到现在"的财富增长曲线。做回测和计算收益率,一律用后复权价,原书亦然。

除了复权,量价数据还有三个常见的坑:

  • 复牌无涨跌停的极端收益。长期停牌股(重大重组、恢复上市等)复牌首日不受涨跌停限制,单日收益可以极端到失真。原书的处理:对 1996 年 12 月涨跌停制度实施之后的数据,把日收益率压缩到 $[-10\%, +10\%]$ 区间内(超出者用边界值代替)。
  • 停牌日的填充。停牌日没有交易数据,是"用上一个交易日的价格填充"还是"记缺失",要看用途:计算动量(当前价格相对基期价格的涨幅)时填充在逻辑上是通顺的;但计算波动率或市场 β 时,填充会让停牌日收益恒为零,系统性低估波动率、扭曲 β——这类场景必须记缺失、不参与计算。
  • 最少交易日约束。对需要滚动窗口计算的指标,原书要求窗口内有效样本超过三分之二才计算(如 21 个交易日的月波动率至少要 14 个有效样本),否则记缺失,避免频繁停牌的股票用极小样本算出离谱的数。
误区

"停牌没数据,补个 0 呗"——这是新手最常见的一类错误。收益率补 0 等于宣称"这只股票停牌期间毫无风险",波动率被低估、β 被拉向零,低波动/低 β 类策略会系统性地把长期停牌股误认为"稳健股"买进来。填充还是缺失,永远取决于指标的经济含义,没有一劳永逸的答案。

财务数据:point-in-time 是铁律

财务数据远比量价复杂。A 股公司每年披露四次财报(一季报、半年报、三季报、年报),报告期用"年份 + 季度末日期"标识(如 20180930)。麻烦在于:同一个报告期的数字,会被披露不止一次,且数值可能变化

  • 基准报表。披露最新财报时会顺带披露一份历史对照:资产负债表对照上年年报(期初余额),利润表和现金流量表对照上年同期。如果对照值与当初首次披露值不同,就发生了调整
  • 不定期更正。因会计差错或政策变更,公司可能对以前某期报告发布更正公告,时间没有规律。

于是数据库里同一报告期可能存在四类记录:初始报表(最新值)、基准报表(最新值)、初始报表(原始值)、基准报表(原始值)。用哪一条?两种偷懒做法都不可取:只用首次披露值,简单但浪费了调整和更正的新信息;一律用最新值,则在历史回溯时用到了当时根本看不到的数字——这就是前视偏差(look-ahead bias)。正确答案只有一个:

point-in-time 原则 point-in-time, PIT

回测里的任何一天,只准用那一天已经公布的数据——后来才发布、才修正的数字,一律不许偷看。

操作上,就是给每条财务记录挂上公告日期,回测走到日期 $t$ 时,取"公告日期不晚于 $t$ 的、同一报告期的最新一条记录"。举例:某公司 $t_1$ 日披露年报、$t_2$ 日发更正公告、$t_3$ 日随次年年报披露基准报表,那么在 $[t_1,t_2)$ 之间用首次披露值,$[t_2,t_3)$ 之间用更正值,$t_3$ 之后用基准报表值。这样既充分利用了最新信息(包括业绩预告、快报),又杜绝了前视偏差。

例子

假设某公司 2018 年 8 月底披露半年报净利润 5 亿元,9 月底发更正公告改为 3 亿元。如果你的回测在 9 月初按盈利排序建仓,正确的输入是 5 亿——那是当时市场看到的数字。用 3 亿去回测,等于假设你提前一个月知道了更正内容;这类"小抄"积累起来,足以把一个平庸策略的回测曲线修饰得光彩照人,而实盘立刻原形毕露。

单季度与 TTM

直接拿报告期数据比较还有一个问题:一季报是 3 个月的累计,年报是 12 个月的累计,不同报告期、不同季节性的公司之间没法直接比。两件标准工具:单季度数据——资产负债表是时点数,单季值即报告期值;利润表和现金流量表的单季值等于当期累计减去上一季累计(一季度即一季报本身)。以及更常用的 TTM:

TTM trailing twelve months

把最近四个季度的业绩接起来凑满一整年,抹平淡旺季差异,不同披露进度的公司才能放到一起比。

对利润表和现金流量表科目:最新报告期若是年报,TTM 就是年报本身;否则按下式滚动拼接。对资产负债表这类时点科目,常见做法有三种——直接取最新值、取最近四个报告期均值、取最新报告期与其上年同期的均值。原书计算 ROE(TTM)时,分母用的就是四期均值。若上年年报或同期数据缺失,可退而用年化系数近似(一季报、半年报、三季报分别乘 4、2、4/3)。

定义 · TTM:滚动十二个月
$$ X^{\mathrm{TTM}}_{t} \;=\; X^{(q)}_{y} \;+\; X^{\mathrm{FY}}_{y-1} \;-\; X^{(q)}_{y-1} $$
$X^{(q)}_{y}$今年最新报告期的累计值(如三季报 = 今年前三季度累计)
$X^{\mathrm{FY}}_{y-1}$上年年报的全年值
$X^{(q)}_{y-1}$上年同一报告期的累计值(如上年三季报)
"去年全年"减"去年前三季"剩下去年第四季度,再加上"今年前三季",正好拼出最近 12 个月。

因子构造流程

数据备好之后,构造因子还要回答四个问题:股票池怎么定、异常值怎么处理、怎么排序分组、怎么加权调仓。

  • 股票池与"黑名单"。原书保留金融股(多数因子不依赖特殊会计科目;金融业有优质公司;Fama–French 的经典研究也未刻意剔除),但剔除四类高风险股票:待退市股、风险警示股(ST/*ST)、最近报告期净资产为负的股票、上市不满一年的次新股。这些股票要么面临退市地雷,要么被炒作逻辑主导,留在池子里会污染对因子本身的评价。
  • 异常值。指标是特征的代理变量,应有合理的取值区间;由于数据质量和极端会计科目(如净资产趋近于零导致 ROE 上千个百分点),极端值必须处理。原书对每期截面在两侧各 1% 分位处做极端值处理(剔除两端极端样本);更常见的缩尾(winsorization)则是把极端值压回分位数边界,第 7 章还会系统介绍。
  • 排序与分组。单变量排序按指标十分位分 10 组;双重排序用市值与目标变量独立分组、各分 5 档,相交得 5×5 = 25 个组合(正因市值是默认的控制变量,规模因子本身只做单变量排序)。组合内部同时汇报等权重与市值加权两套结果。因子收益率由"每个市值档内 High−Low,再对五档取平均"合成——相当于在控制市值后提取纯因子收益。
  • 调仓与可交易性。所有因子统一每月末调仓;调仓日剔除停牌股与一字涨跌停股票(根本成交不了——限制买入一字跌停股,等价于限制空头卖出,使空头收益更贴近现实)。交易成本设为零,即所谓纸面收益率(paper return)——这是实证资产定价的惯例,但读结果时要时刻记得这一点。

把以上约定汇总成一张表,方便对照后面各节的实证:

项目本书实证设定
股票池沪深主板、中小板、创业板全部 A 股(不含科创板)
样本期 / 频率2000-01 至 2019-12;每月末调仓
黑名单待退市、风险警示(ST)、最近报告期净资产为负、上市不满一年
金融股保留
价格后复权;日收益率压缩至 ±10%
财务数据point-in-time;TTM 与单季度按上文规则计算
异常值截面两侧各 1% 极端值处理
排序单变量 10 组;与市值独立双重排序 5×5
权重等权与总市值加权两套结果
可交易性 / 成本调仓日剔除停牌与一字涨跌停;不计交易成本
要点
  • 收益率计算一律用后复权价;复牌极端收益压缩到 ±10%;停牌日"填充还是缺失"取决于指标含义。
  • 财务数据的同一报告期有多条记录,唯一正确的用法是 point-in-time:回测日只用当天已公布的最新记录。
  • TTM 把最近四个季度拼成一年,消除季节性,是财务类因子的标准输入。
  • 统一流程:剔除黑名单、1% 极端值处理、10 组单排序 + 与市值 5×5 双排序、月末调仓、零成本纸面收益。

3.2市场因子

市场因子 market factor

整个股市一起涨、一起跌的那部分风险。买指数基金,赚的就是它的钱。

市场因子的收益率是全市场市值加权组合的超额收益 $R_M - R_f$。它是历史上第一个被辨识出来的因子——CAPM 说它是唯一的因子。原书构造市场因子时,用全部 A 股按总市值加权。

起源:CAPM 与切点组合

多因子模型的源头是 CAPM。它的逻辑链条:假设投资者按均值—方差权衡收益与风险(沿袭 Markowitz 1952),且能按无风险利率自由借贷。那么每个人都会持有同一个风险组合——从无风险利率向最小方差前沿作切线得到的切点组合(tangency portfolio),它是夏普比率最高的组合;风险偏好只决定"无风险资产与切点组合各配多少"。既然所有人都持有它,加总起来它必然就是市场组合。由此得到:

式 (3.1) · Sharpe–Lintner CAPM
$$ \E[R_i] - R_f \;=\; \beta_i \left( \E[R_M] - R_f \right), \qquad \beta_i = \frac{\Cov(R_i, R_M)}{\Var(R_M)} $$
$R_i,\ R_M$资产 $i$ 与市场组合的收益率
$R_f$无风险收益率
$\beta_i$资产 $i$ 对市场涨跌的敏感度(市场风险暴露)
预期超额收益只由一件事决定:跟市场共沉浮的程度。这就是"高(系统性)风险、高收益"的数学表述。20 世纪 60 年代由 Treynor、Sharpe、Lintner、Mossin 从不同路径各自独立推出,殊途同归。

对 CAPM 的质疑

"按无风险利率自由借贷"是个很奢侈的假设。Black(1972)证明:去掉这个假设,CAPM 依然能推出来,只是"无风险资产"的角色要换人——由一个与市场组合协方差为零的零 β 组合顶替:

式 (3.2) · Black CAPM(零 β 版本)
$$ \E[R_i] \;=\; \beta_i\, \E[R_M] \;+\; (1-\beta_i)\, \E[R_z], \qquad \Cov(R_z,\, R_M) = 0 $$
$R_z$零 β 组合的收益率:与市场组合协方差为零的组合,替代无风险资产的角色
$\beta_i$资产 $i$ 的市场暴露;第二项系数恰为 $1-\beta_i$,故称"零 β 因子",模型实为两因子模型
实证中 $\E[R_z]$ 高于国债利率 $R_f$,于是"β 每高一分、收益多补多少"这条证券市场线,比 Sharpe–Lintner 版本更平坦——而这恰好更符合数据。

此后几十年,学者们把 CAPM 拆成三个可检验的假说:(1)β 能且仅能线性地解释预期收益的截面差异;(2)市场超额收益显著为正;(3)零 β 资产的超额收益为零。用截面回归(Fama–MacBeth 1973 等)和时序回归(Jensen 1968 的 α 检验)反复检验后,结论令人尴尬:市场组合本身的超额收益确实高,但高 β 与低 β 组合之间的收益差远小于 CAPM 隐含的差距(线太平了,符合 Black 版本);而且市值、账面市值比(BM)、盈利市值比(EP)等变量都能解释 β 解释不了的截面差异。CAPM 被数据拒绝——但正因如此,才有了多因子模型和因子投资(Fama and French 2004 对这段历史有精彩综述)。

低 β 异象 low-beta anomaly / betting against beta

越"稳"的股票(跟大盘联动小),风险调整后反而赚得越多——和教科书的预言正相反。

证券市场线太平坦,意味着做多低 β 股票、做空高 β 股票能获得超额收益。Frazzini and Pedersen(2014)以 Betting Against Beta(BAB)为题系统实证了它:对杠杆受限的投资者来说,想要高收益只能去追高 β 股票(变相加杠杆),把高 β 股票的价格抬得过高、预期收益压得过低。这是第 5 章异象研究的重要伏笔。

A 股实证

市场因子不是多空对冲组合,无须构造因子模拟组合,原书直接检验两件事。第一,时序解释力:把每只个股的超额收益对市场组合超额收益做时序回归,看可决系数 $R^2$。A 股的结果:$R^2$ 均值约 29%、中位数约 31%——市场因子对个股收益的时序波动有相当解释力,这一点没有争议。

第二,检验 CAPM:每月末用过去 252 个交易日估计个股 β,按 β 分 10 组,看各组收益是否随 β 递增。结果恰恰相反:等权重下十组收益与 β 的秩相关约为 −0.4(不显著),市值加权下约为 −0.75 且显著——β 越高,收益反而越低。这与传统 CAPM 相悖、与 Black CAPM 相容,并且暗示 A 股同样可能存在低 β 异象。

图 3-2 | 模拟数据:按 β 从低到高分 10 组的月均收益率示意(按原书市值加权检验的定性结论生成:收益不升反降)。示意图,非原书数据。
误区

"高 β 股票长期必然收益更高,拿它博牛市就行"——A 股数据(以及全球大量证据)并不支持。β 是时序上放大市场涨跌的杠杆,不是截面上预期收益的保证;长期看高 β 组的平均收益甚至更低。把"波动大"当成"预期收益高",是混淆了风险的两种含义。

要点
  • CAPM:所有人持有同一个切点组合 ⇒ 它就是市场组合 ⇒ 预期收益只由 β 决定。
  • 放松无风险借贷假设得到 Black CAPM,零 β 组合替代无风险资产,隐含更平坦的证券市场线。
  • 实证:市场因子解释时序波动很强,但解释截面差异很弱;SML 过于平坦催生了低 β 异象(BAB)。
  • A 股:$R^2$ 均值约 29%;β 分组收益不升反降,市值加权时显著为负。

3.3规模因子

规模因子 size factor, SMB

小公司股票长期平均比大公司股票多赚一点;做多小盘、做空大盘,就能把这份差价拿出来。

规模效应指小市值股票的平均收益系统性高于大市值股票。Fama–French 三因子模型中的 SMB(Small-Minus-Big)因子就是它的标准化身。规模效应还有明显的非线性:溢价集中在市值最小的那部分股票上,而不是沿市值均匀分布。

起源

故事从 Banz(1981)开始:基于纽约证券交易所约 40 年的数据,按市值分五组后,最小市值组的月均收益比其余股票高约 0.4%,差异高度显著。此后一批研究跟进(Reinganum、Keim 等),有的甚至估出每月超过 1.5% 的规模溢价——但样本偏少、结论不稳。真正的里程碑是 Fama and French(1993):系统考察规模、BM、EP 等变量后,估计规模因子溢价月均约 0.63%,并以此为基础提出三因子模型。FF 构造 SMB(连同 HML)的 2×3 双重排序法,成了此后所有因子构造的模板:

定义 · Fama–French 2×3 排序:SMB 与 HML 的精确构造
$$ \mathrm{SMB}_t \;=\; \frac{R_{S/L} + R_{S/M} + R_{S/H}}{3} \;-\; \frac{R_{B/L} + R_{B/M} + R_{B/H}}{3} $$
$$ \mathrm{HML}_t \;=\; \frac{R_{S/H} + R_{B/H}}{2} \;-\; \frac{R_{S/L} + R_{B/L}}{2} $$
$S,\ B$按市值中位数(FF 用 NYSE 股票的中位数作断点)把股票分成小(Small)、大(Big)两档
$L,\ M,\ H$按 BM 的 30% 与 70% 分位数把股票独立地分成低(growth)、中、高(value)三档
$R_{S/L}$ 等两组标签相交得到的 6 个组合在第 $t$ 期的市值加权收益率(如 $S/L$ = 小市值且低 BM)
SMB 在三个 BM 档内分别做"小减大"再取平均——把价值风格对冲掉,只留规模;HML 在两个市值档内分别做"高减低"再取平均——把规模对冲掉,只留价值。一次排序、两个因子,互为对照组。
低 BM(L,成长)
BM 后 30%
中 BM(M)
中间 40%
高 BM(H,价值)
BM 前 30%
小市值(S)
市值中位数以下
S/LS/MS/H
大市值(B)
市值中位数以上
B/LB/MB/H
旁注

注意区分两套构造:FF 官方因子用上面的 2×3;原书的 A 股检验用的是 3.1 节的规范——单变量 10 组、或与市值独立双排 5×5。二者思想一致(控制一个变量、提取另一个),只是分组粗细不同。规模因子本身因为"市值就是排序变量",只做单变量排序。

成因:风险补偿还是别的什么

风险补偿一派给出三条主要线索。其一,财务困境风险:小市值公司很多是过去遭遇困境、市值大幅缩水的"坠落天使"(fallen angels,Chan and Chen 1991),破产风险更高,理应有补偿(Fama and French 1995, 1996)——但 Campbell et al.(2008)泼了冷水:破产概率高的公司确实对规模因子暴露更大,预期收益却没有更高。其二,流动性:小盘股流动性差,非流动性本身要求溢价,规模只是流动性的影子——可惜非流动性因子只能解释规模溢价的一小部分。其三,信息不对称与投资者基础:小公司信息少、缺乏分析师覆盖,机构投资者系统性回避,价格被压低、预期收益因此更高(Gompers and Metrick 2001 等)。

还有一派更釜底抽薪。Berk(1995)指出:只要定价模型设定有误,"市值小"就必然与未被解释的收益正相关——规模效应可能只是遗漏变量问题的镜像。

例子

公司 A 和 B 期末现金流的期望相同,但 A 的现金流风险更大。风险大 ⇒ 折现率高 ⇒ A 的股价更低 ⇒ A 的市值更小;同时折现率高本身就意味着 A 的预期收益更高。于是"市值小"和"预期收益高"天然绑在一起——不需要任何"规模风险",只要模型漏掉了 A 的那种风险,规模就会看起来"被定价"。这就是 Berk 的机械论:规模是万能的残差收集器。

各派共同的尾声:随着规模效应广为人知、资金蜂拥而入,其在美国、欧洲乃至中国的表现都趋于平庸,长期超额收益的显著性在下降。

A 股实证:辉煌、回撤与壳价值

原书按总市值单变量排序分 10 组,小市值效应极其醒目:组合收益随市值上升几乎单调下降(收益与市值的秩相关接近 −1)。做多最小组、做空最大组构造的规模因子,等权与市值加权下月均收益均约 1.4%,t 值约 3——统计与经济意义双双显著。代价是高波动:多头组合年化波动率接近 37%。

但两点必须泼冷水。第一,这是不计成本的纸面收益。第二,因子有周期:2017 年起,大市值蓝筹走出独立行情,规模因子遭遇深度回撤——Liu et al.(2019)用 2000—2016 年数据发现的显著规模效应,在 2017—2018 年样本外被大幅稀释。图 3-1 中 SMB 曲线尾部的下坠画的正是这一段。

误区

壳价值污染:A 股 SMB 不是干净的"规模"。在核准制下上市资格稀缺,借壳上市有真实需求,于是微小市值公司的股价里含着一份"壳期权"的价值。这部分股票的收益波动,很大程度由重组预期和 IPO/退市政策驱动,而不是任何"规模风险"。后果有二:历史上壳价值畸高抬升了 SMB 的纸面溢价;而政策转向(IPO 提速、退市从严、注册制推进)会让壳价值坍塌,SMB 随之断崖。Liu et al.(2019)因此在构造 A 股因子前先剔除市值最小的 30% 股票,剔除后规模效应依然显著——但"30% 一刀切"是否合理,原书持保留态度(见 3.4 节与第 4 章的进一步讨论)。

要点
  • Banz(1981)发现规模效应,FF(1993)用 2×3 双排序把它铸成 SMB;溢价集中在最小市值股票,非线性。
  • 成因候选:财务困境、流动性、信息不对称/投资者基础;Berk(1995)提醒它可能只是模型设定偏误的残差。
  • A 股规模因子历史上月均约 1.4%、高度显著,但被壳价值污染,且 2017 年后深度回撤。
  • 公开后的因子会衰减——规模效应在全球范围内都已趋于平庸。

3.4价值因子

价值因子 value factor, HML

按"股价相对家底贵不贵"挑股票:买便宜的、卖贵的,长期平均能多赚一份钱。

估值低(高 BM)的股票预期收益高于估值高(低 BM)的股票,这就是价值效应。思想源头可以追到 Graham 和 Dodd 1934 年的《证券分析》——"用四毛钱买一块钱的资产";半个世纪后它被实证资产定价接管,以 HML(High-Minus-Low)的形式进入 Fama–French 三因子模型。

定义 · 账面市值比 BM
$$ \mathrm{BM}_{i,t} \;=\; \frac{BE_{i,t}}{ME_{i,t}} $$
$BE_{i,t}$账面权益(book equity);原书取归属母公司股东权益合计,不含少数股东权益
$ME_{i,t}$总市值(market equity)=收盘价 × 总股本
每一块钱市价背后有多少账面家底。BM 高=便宜(价值股),BM 低=贵(成长股);它就是市净率 P/B 的倒数。

起源

学术线索起自 20 世纪 80 年代:Stattman(1980)最早发现高 BM 公司的股票预期收益显著更高(Rosenberg et al. 1985 有类似发现);Basu(1983)指出盈利市值比 EP 有解释力;Bhandari(1988)发现高杠杆企业有显著超额收益。集大成的是 Fama and French(1992):用排序法和 Fama–MacBeth 回归同时检验这些变量,发现单独看 BM 和 EP 都有显著溢价,但同时控制规模与 BM 后,EP 不再显著——EP 的溢价很可能只是它与规模、BM 相关性的投影。FF(1993)据此把 BM 定为价值因子的构造变量,FF(1995)进一步发现高 BM 预示着持续较差的盈利、低 BM 预示着持续较好的盈利——便宜有便宜的道理。此后的国际证据遍地开花:日本、英国、各新兴市场,乃至 Asness et al.(2013)著名的 Value and Momentum Everywhere——价值效应广泛存在于不同国家和股票、债券、商品、外汇等不同资产类别中。

成因:风险补偿 vs 过度外推

风险一派的候选解释很多,共同主题是"高 BM 公司在坏时候更脆弱":财务困境风险——Griffin and Lemmon(2002)发现困境风险高的企业里,高低 BM 组合的收益差是其他股票中的约两倍;Zhang(2005)的"在位资产"论——经济不景气时,价值公司满手难以削减的在位资产(assets in place),风险高于手握增长期权(growth option)的成长公司,因此要求更高回报;Hahn and Lee(2006)发现高 BM 企业对期限利差暴露更大,联系到商业周期风险;还有经营杠杆等角度(Obreja 2013)。

行为一派的旗手是 Lakonishok, Shleifer and Vishny(1994):投资者把过去的业绩简单外推(extrapolate)到未来——对过去差的公司过度悲观、把价格压得过低,对过去好的公司过度乐观、把价格捧得过高;此后的均值回归就表现为价值溢价。两条佐证:Ali et al.(2003)发现 BM 效应在套利限制更强的股票(特质波动率高、交易成本高、投资者不专业)中更显著——如果是风险补偿,没道理跟套利难度挂钩;Daniel and Titman(2006)发现投资者对"无形信息"反应过度,而 BM 恰好能预测无形收益的反转。

旁注

价值因子近年的日子并不好过:2008 年金融危机之后的十余年间表现惨淡;Fama–French 自己在 2015 年五因子论文中也承认,加入盈利与投资因子后 HML 变得冗余(第 4 章详述)。于是涌现出大量"改造 BM"的研究(把商誉、研发资本化处理等)。价值是死了还是蛰伏,是当前学界与业界最热的争论之一。

A 股实证

原书用 BM 做单变量 10 组排序:无论等权还是市值加权,组合收益都随 BM 上升表现出很好的单调性。High−Low 构造的价值因子,等权下月均约 1.0%(t 值约 3.1),市值加权下约 0.9%(t 值约 2.1)——等权更高,因为等权变相多暴露了小市值。与市值做 5×5 双重排序、五档平均后,价值因子月均约 0.69%(t 值约 2.9),依然显著。

但拆开看藏着重要结构:BM 的区分能力随市值增大而衰减——最小市值档内 High−Low 的 t 值高达约 4.8,最大市值档内则不再显著(t 值约 1.2)。也就是说,A 股的价值效应主要活在中小市值里。

误区

"EP 在 A 股比 BM 好用,所以应该用 EP 构造价值因子"——先看一个会计恒等式:$\mathrm{EP} = \mathrm{BM} \times \mathrm{ROE}$(每股收益/价格 =(净资产/价格)×(收益/净资产))。BM 在小市值中强、大市值中弱;而 ROE(3.6 节将看到)恰好相反,小市值中弱、大市值中强。于是"剔除市值最小的 30% 股票"这一个动作,就会机械地削弱 BM、抬升 ROE,从而让 EP 显得优于 BM——Liu et al.(2019)用 EP 替代 BM 的选择,很大程度是这种数据处理的产物,缺乏独立的金融学依据。教训:换一个构造变量,必须有经济逻辑撑腰,不能只看实证跑分。

要点
  • BM = 账面权益/市值,是 P/B 的倒数;高 BM=价值股,低 BM=成长股。
  • FF(1992):控制规模与 BM 后 EP 不再显著,BM 成为价值因子的标准变量;价值效应遍布全球多资产。
  • 成因两派:坏时候更脆弱的风险补偿(在位资产、困境风险)vs 过度外推 + 套利限制的行为解释。
  • A 股价值因子显著(双排序后月均约 0.7%),但集中在中小市值;EP 与 BM 之争背后是 EP = BM × ROE 的机械关系。

3.5动量因子

动量因子 momentum factor, MOM

过去大半年到一年里涨得好的股票,接下来往往还会好一阵——追着强者买、把弱者卖掉。

严格地说是截面动量:比的是股票之间的相对强弱,而非某只股票自己的涨跌趋势(那是时序动量)。做多过去表现最好的"赢家组合"、做空最差的"输家组合"。它也是主流因子里争议最大的一个——Fama 旗帜鲜明地反对把它当作系统性因子,但它又实实在在出现在众多国家和大类资产中。

起源:Jegadeesh–Titman 与 11-1 构造

Jegadeesh and Titman(1993)定义了标准玩法:每月末按过去 $J$ 个月的总收益排序分 10 组,做多最高组、做空最低组,持有 $K$ 个月。为避免结果依赖某个特定起始月,同一时刻并存 $K$ 个错开一个月建仓的子组合,取平均——这就是"重叠组合"技巧。实证结果:多空组合与纯多头都有显著且稳健的超额收益,规模、β、季节性都解释不掉。JT(2001)用样本外数据回应了"数据挖掘"的质疑;Rouwenhorst(1998, 1999)在欧洲和新兴市场、Asness et al.(2013)在全球多资产上确认了动量的普遍性。刺眼的例外恰好是日本和中国 A 股

后续文献(包括原书实证)最常用的版本是"11-1":

定义 · 动量变量:11-1 构造(跳过最近一月)
$$ \mathrm{MOM}_{i,t} \;=\; \prod_{s=t-11}^{t-1} \bigl( 1 + r_{i,s} \bigr) \;-\; 1 $$
$r_{i,s}$股票 $i$ 在第 $s$ 月的收益率
$t-11,\dots,t-1$排序期:截至上个月末的 11 个月累计收益(即从 $t-12$ 月末到 $t-1$ 月末的涨幅)
跳过第 $t$ 月刚过去的最近一个月被刻意排除在排序期之外
跳过最近一月,是因为个股存在显著的短期反转:上个月刚被爆炒的股票,下个月平均要还债(微观结构噪声、流动性提供者的补偿等)。不跳过,动量信号会被这股反着来的力量污染——练习 3.2 会让你亲手看到有多致命。
例子

现在是 2019 年 1 月末,要构造动量变量:取 2018 年 1 月末到 2018 年 12 月末的累计涨幅(即 2018 年 2—12 月这 11 个月的收益),2019 年 1 月自己的涨跌不参与排序。排好序后建仓,持有 2019 年 2 月。

成因:反应不足 vs 过度反应

风险补偿一派的核心是"时变的系统性暴露":赢家和输家组合的风险暴露不同且随市场状态变化,多空对冲后的动量组合带着一个时隐时现的风险敞口。最生动的证据是 动量崩溃(momentum crashes,Daniel and Moskowitz 2016):熊市末端市场反弹时,空头端(跌得最惨的高 β 股)暴力反弹,动量策略在短时间内巨亏——这种肥尾风险本身可以视作动量溢价的来源。Liu and Zhang(2008)则发现赢家组合对产出增长率有更高的短期暴露。但宏观解释并非共识,反对证据同样不少。

行为一派的解释更丰富,可以分成两条主线。反应不足(underreaction):信息扩散慢,价格慢慢消化利好;Grinblatt and Han(2005)给出微观机制——处置效应(投资者急于兑现浮盈、死扛浮亏)让价格粘在成本价附近,拉开了价格与基本面的距离,之后缓慢收敛就形成趋势;他们发现控制了未实现盈利后动量不再显著。过度反应(overreaction):Daniel, Hirshleifer and Subrahmanyam(1998)认为投资者对私有信息过度自信、且有偏地自我归因(赚了是我英明、亏了是运气差),推着价格越走越远;推定预期(extrapolative expectations)模型(Barberis et al. 2015 的 X-CAPM 等)刻画的也是"把最近的涨幅外推成未来预期"的机制。市场情绪(Stambaugh et al. 2012)与知情交易也各有证据。一个有趣的跨国观察:Chui et al.(2010)发现越崇尚个人主义的国家,过度自信越严重,动量越强——这为"日本与中国动量弱"提供了一种文化侧写。

旁注

针对动量崩溃,实务上有两类改良:波动率管理——按预测的均值与波动动态调仓(Daniel–Moskowitz 2016;Barroso and Santa-Clara 2015 的目标波动版本,可把夏普比率提升约一倍);残差动量(Blitz et al. 2011)——先用多因子模型剥掉系统性暴露,只用残差收益排序,趋势更稳、不再有崩溃烦恼,甚至在日本和 A 股也有效(但原书提醒:A 股残差动量为何有效仍待深究)。

A 股实证:动量弱、反转强

原书按 11-1 构造动量变量后的检验结果,可以浓缩成一句话:学术界标准动量在 A 股不存在。单变量排序下,十组收益与动量的秩相关毫无章法(等权下甚至呈倒 U 形);多空组合月均收益无论等权还是市值加权都在零附近(t 值约 ±0.2)。与市值双重排序后拆开看更有意思:小市值组内赢家跑输输家(反转),只有大市值组内有微弱的动量;五档平均后仍然不显著(月均约 0.05%,t 值约 0.2—0.3)。这与散户占比高、交易换手极高的市场结构一致——短线资金追涨杀跌,把趋势提前透支成了反转。

旁注

一个统计细节:双重排序表里动量因子的算术月均收益略为正,但累计收益曲线却收在零下。没有矛盾——累计曲线对应几何平均,而几何平均 ≈ 算术平均 − 方差/2;当算术平均近零时,波动就足以把几何平均拖成负数。看因子表现,均值和波动要一起看。

下面的交互图把"排序期 $J$ × 持有期 $K$"的组合空间做成了示意实验台。拖动 $K$、切换"是否跳过最近一月",观察多空年化收益如何变化——特别注意 $J$ 很小时(短周期"动量"实为反转)和不跳月时的塌方:

图 3-3 | 模拟数据:不同排序期 J(横轴)下动量多空组合的年化收益示意,可调持有期 K 与是否跳过最近一月。生成规则按 A 股"动量弱、短期反转强"的定性结论设定:J 小时反转占优、收益深负;跳过最近一月能显著减轻反转拖累。示意图,非真实回测。
误区

"美股论文里动量年化两位数,搬到 A 股肯定也行"——直接照搬 11-1 动量在 A 股 20 年检验下来约等于零,短周期动量更是反着走。因子是有"国籍"的:同一个构造,在不同市场结构(投资者构成、换手率、做空限制)下的表现可以天差地别。任何因子出海或引进,都必须本地重验。

要点
  • JT(1993):按过去 J 个月收益排序、持有 K 个月、重叠组合取平均;标准构造为 11-1,跳过最近一月以避开短期反转。
  • 成因:风险派讲时变暴露与动量崩溃的尾部风险;行为派讲反应不足(处置效应、信息慢扩散)与过度反应(过度自信、外推)。
  • A 股是全球著名的例外:标准动量不显著,小市值反转、仅大市值微弱动量。
  • 改良方向:波动率管理动量、残差动量;但在 A 股使用前都要本地重验。

3.6盈利因子

盈利因子 profitability factor

同样的价钱下,更会赚钱的公司,之后的股票回报平均更高——"好公司"并没有贵到把好处提前吃光。

盈利能力强的公司未来预期收益更高,这一效应被 Fama and French(2015)五因子模型(RMW,Robust-Minus-Weak)和 Hou–Xue–Zhang(2015)q 因子模型(ROE 因子)同时收编,是 2015 年后"因子大战"的主角之一。它的理论根基比多数因子扎实:估值模型(DDM/RIM)和生产端的 q 理论都能推出"盈利与预期收益正相关"。

起源:从毛利率到 ROE

用什么变量度量"盈利能力",学术界吵了很多年。分子可以是毛利润、营业利润、净利润、现金流;分母可以是总资产、净资产、投入资本。代表性变量一览:

变量定义(分子 / 分母)代表文献
GP/A毛利润(营业收入 − 营业成本)/ 总资产Novy-Marx (2013)
ROE营业利润或净利润 / 股东权益FF (2015) 的 RMW;HXZ (2015) 用季度净利润
ROA利润 / 总资产Ball et al. (2015)
ROTC息税前利润 / 有形资本Greenblatt 的"神奇公式"
ROIC息前税后利润 / 投入资本Damodaran (2007)
RNOA经营利润 / 净经营资产Nissim–Penman (2001)

转折点是 Novy-Marx(2013):他主张用毛利润做分子——毛利站在利润表最上游,离真实经营最近、被会计科目"加工"得最少;越往下走到净利润,混进的噪声越多。他发现 GP/A 的预测能力与 BM 相当,且与价值负相关,堪称"价值的另一面"。Ball et al.(2015)则反驳:GP/A 的优势主要来自分母(总资产),把分母统一后,营业利润、净利润作分子同样出色。原书 A 股实证选用 FF(2015)一脉的 ROE(TTM):

定义 · GP/A 与本书使用的 ROE(TTM)
$$ \mathrm{GP/A}_{i,t} \;=\; \frac{\mathrm{REV}_{i,t} - \mathrm{COGS}_{i,t}}{\mathrm{AT}_{i,t}}, \qquad \mathrm{ROE}^{\mathrm{TTM}}_{i,t} \;=\; \frac{\mathrm{OP}^{\mathrm{TTM}}_{i,t}}{\tfrac{1}{4}\sum_{q=0}^{3} BE_{i,\,t-q}} $$
$\mathrm{REV},\ \mathrm{COGS}$营业收入与营业成本;二者之差即毛利润(gross profit)
$\mathrm{AT}$总资产(total assets)
$\mathrm{OP}^{\mathrm{TTM}}$最近 12 个月(TTM)的营业利润
$BE_{i,\,t-q}$最近四个报告期的股东权益(不含少数股东权益),取平均作分母
分子是"这一年真赚了多少",分母是"股东投了多少本";用四期平均做分母,是因为流量(利润)跨一整年、存量(净资产)该用同期的平均水平相配。

成因:为什么"好公司"也有溢价

直觉上这是个悖论:好公司人尽皆知,价格早该贵到把未来的好处吃光,凭什么还有超额收益?两派回答。

理性/理论一派:这不是悖论,是折现率的恒等式。从股利贴现模型出发(Fama and French 2006, 2015):在估值(BM 或价格)给定的条件下,预期盈利越高的公司,隐含的折现率——也就是预期收益——必然越高。换句话说,市场并没有"漏看"好公司,而是给某些好公司标了更高的折现率(它们在某些状态下风险更大),高盈利 + 价格没有相应更贵,本身就是"高预期收益"的显性化。q 理论(HXZ 2015)从生产端得到同样结论:给定投资水平,盈利率高而投资没有跟上,说明企业面对的资本成本(折现率)高。实证中用当期盈利代替预期盈利,是因为盈利有很强的持续性(Zhang 2017)。

行为一派:市场对盈利的质量持续性关注不足。开山之作 Sloan(1996)把盈利拆成现金流和应计(accruals)两部分:应计含量高的盈利质量差、难持续,但投资者不加区分地按总盈利定价——于是高应计公司被高估、随后跑输,这就是著名的应计异象。基于现金流的盈利指标表现更好、且能解释应计异象(Ball et al. 2016),与这个故事一致。盈利维度还催生了一整个家族:盈利波动(低波动者盈利更可预测)、盈利增长(SUE、盈利加速度)、以及把盈利、成长、安全性打包的质量因子(Asness et al. 2019 的 QMJ)——Frazzini et al.(2018)著名的结论是:巴菲特的长期超额收益,很大程度可以用"低 β + 高质量 + 适度杠杆"解释。

A 股实证

按 ROE(TTM)单变量排序的结果乍看令人失望:等权下十组收益虽有单调性但差异很小,多空组合不显著;市值加权后显著性才上来。谜底在描述性统计里——ROE 与市值高度正相关:高 ROE 组平均市值大、低 ROE 组多为小市值。等权配置变相给低 ROE 组注入了小市值溢价,把盈利因子的差距抹平了。美股同样如此(Penman and Reggiani 2018);Asness et al.(2018)的名文 Size matters, if you control your junk 说的正是同一枚硬币的另一面——剔除"垃圾股"(低质量、低盈利)后,规模因子反而更显著。

因此必须控制市值。与市值 5×5 双重排序后,盈利因子五档平均月均收益约 0.58%(t 值约 3.3),显著;且呈"中间强、两头弱"——在最小市值档里区分度最差。这与 3.4 节 BM 的格局(小市值强、大市值弱)恰好互补,再次呼应了"剔除小市值会机械性抬升 EP、削弱 BM"的讨论。

要点
  • 盈利因子由 Novy-Marx(2013,GP/A)点燃,被 FF5(RMW)与 HXZ(ROE)收编;变量之争的核心是"分子取利润表哪一行、分母配什么存量"。
  • 理论根基扎实:给定估值,高盈利必然对应高折现率(DDM);给定投资,高盈利对应高资本成本(q 理论)。
  • 行为侧:市场不区分盈利质量(应计异象),质量因子甚至能解释巴菲特。
  • A 股:ROE 与市值正相关,等权单排序看不出来;控制市值后显著(月均约 0.6%),小市值中较弱。

3.7投资因子

投资因子 investment factor

大举扩张、疯狂铺摊子的公司,之后的股票回报平均更低;花钱克制的公司反而更好。

投资效应:当期投资多的公司未来预期收益更低——注意方向是负的。FF(2015)的 CMA 因子(Conservative-Minus-Aggressive,做多低投资、做空高投资)和 HXZ(2015)的 I/A 因子都用总资产增长率作代理变量。它真正被重视是 2015 年两大模型同时纳入之后,但理论根子早已扎在公司金融的 q 理论里。

定义 · 总资产增长率(投资的代理变量)
$$ \mathrm{AG}_{i,y} \;=\; \frac{\mathrm{AT}_{i,y} - \mathrm{AT}_{i,y-1}}{\mathrm{AT}_{i,y-1}} $$
$\mathrm{AT}_{i,y}$公司 $i$ 第 $y$ 年年报披露的总资产(原书用年报而非季报:A 股 2002 年才开始披露季度资产负债表,用季报会在样本前段造成大量缺失)
一年里资产盘子扩大的百分比——不区分扩的是厂房、存货还是并购来的资产,粗糙,但正因粗糙而稳健、可比。

起源

最早的实证是 Titman et al.(2004):异常资本投资高的公司,随后一年收益显著走低,且常见风险因子解释不掉。Xing(2008)最早把 q 理论正式引入构造投资因子;Cooper et al.(2008)用约 40 年美股数据确立了总资产增长率的稳健负向预测力,此后它成为标准代理变量。国际证据方面,投资效应在发达市场明显强于新兴市场;而针对 A 股的多项研究(Guo et al. 2017;Qiao 2019;Liu et al. 2019)大都认为 A 股不存在显著的投资效应——这为原书的实证埋下伏笔。

成因:q 理论的一阶条件

投资因子最漂亮的解释来自 q 理论(Cochrane 1991 首倡;Zhang 2017 拓展为投资资产定价模型)。逻辑只需要一条一阶条件。设想一个两期的公司:今天投资,明天收获利润。投资有调整成本——扩张越猛,每多投一块钱的代价越高(工期挤压、管理摊薄)。公司把投资推进到"边际成本 = 边际收益的现值"为止:

推导 · q 理论的一阶条件(两期直觉版)
$$ \underbrace{1 + a\,\frac{I_0}{A_0}}_{\text{边际成本}} \;=\; \underbrace{\frac{\E[\Pi_1]}{1 + \E[r]}}_{\text{边际收益现值}} \qquad\Longrightarrow\qquad 1 + \E[r] \;=\; \frac{\E[\Pi_1]}{\,1 + a\, I_0 / A_0\,} $$
$I_0/A_0$投资率(可用总资产增长率代理):今天每单位资产新投多少
$a>0$调整成本参数:投资越快、边际代价越高的陡峭程度
$\E[\Pi_1]$明天单位资本的预期利润(盈利能力)
$\E[r]$股票预期收益率——对公司而言就是资本成本、折现率
右式一目了然:给定盈利能力,投资率越高 ⇒ 预期收益越低;给定投资率,盈利越强 ⇒ 预期收益越高。一条一阶条件同时生出投资因子和盈利因子——这正是 HXZ q 因子模型的骨架。注意因果方向:不是"多投资导致低收益",而是"资本成本低(折现率低)的公司才会投这么多"——投资行为暴露了折现率。

其他解释还有:实物期权——投资等于行权,把高风险的期权换成低风险的在位资产,公司整体风险与预期收益随之下降(Berk et al. 1999;Carlson et al. 2004);规模报酬递减——投资越多,资本边际产出越低(Lyandres et al. 2008)。行为/公司行为一侧:管理层择时增发——股价被高估时发股融资扩张,此后估值回落(Baker and Wurgler 2002);帝国构建——高投资公司倾向过度投资、上净现值为负的项目,投资者反应不足,价值随后回归(Titman et al. 2004;Cooper et al. 2008 的外推故事);以及盈余管理配合高估值并购带来的虚假关联。

A 股实证:一个不存在的因子

原书的检验给 A 股投资因子判了"无罪释放式的死刑"——不是方向反了,而是压根不显著。单变量排序:十组收益与总资产增长率无单调关系,Low−High 多空组合 t 值不足 1。与市值双重排序更奇怪:各市值档内低投资组的收益反而低于高投资组,因子月均收益约 −0.2%(t 值约 −1.6)——与理论方向相反(虽仍不显著)。

怎么回事?线索又在描述性统计里:总资产增长率与 ROA 高度正相关——A 股上市公司负债率长期稳定(平均约 85%),总资产的增长很大程度由利润积累驱动,于是高投资组同时是高盈利组。3.6 节说过盈利因子在 A 股显著为正,所以"做多低投资"暗中做空了盈利因子,收益被拖累。为剥离这层污染,原书用 ROA 与总资产增长率做条件双重排序(先按 ROA 分组、组内再按投资分组——HXZ 用市值、ROE、投资三重排序的思路与此同源):控制盈利后,投资因子月均收益仅 0.03%—0.07%,t 值约 0.2—0.3,仍然不显著。结论:A 股不存在显著的投资效应——不是理论错了,而是这一效应在 A 股恰好缺席。一个可能的补充解释:A 股的总资产扩张常来自并购重组,而并购题材往往伴随股价上涨,正负两股力量相互抵消。

要点
  • 投资效应=高投资、低预期收益;标准代理变量是年报总资产增长率(CMA、I/A 皆用它)。
  • q 理论一阶条件:预期收益 ≈ 预期盈利 /(1 + 调整成本 × 投资率)——投资与盈利两因子同根同源;投资是折现率的"显示器",不是原因。
  • 行为侧解释:择时增发、帝国构建 + 反应不足、并购与盈余管理的虚假关联。
  • A 股:单排序、与市值双排序、控制 ROA 的条件双排序全都不显著——投资因子在 A 股缺席,且总资产增长率与 ROA 的正相关会污染朴素检验。

3.8换手率因子

换手率因子 turnover factor / abnormal turnover

最近被炒得火热(换手异常放大)的股票,之后平均表现差;被冷落的反而好。

换手率=成交量 / 流通股本,是标准化的成交活跃度。学界与业界的共识:换手率与未来收益负相关。它未被纳入海外主流多因子模型,但在 A 股极其显著、认可度很高——Liu et al.(2019)为 A 股定制的四因子模型专门纳入了用异常换手率构造的 PMO 因子(Pessimistic-Minus-Optimistic),这也是本章收录它的原因:一个有 A 股特色的因子。

起源

对量价关系的运用,业界远早于学界——20 世纪初 Jesse Livermore 的趋势交易法就讲究"突破需要放量配合"。学术线索始于 20 世纪 90 年代:Datar et al.(1998)发现换手率有助于解释股票收益;Chordia et al.(2001)确认成交金额与换手率的变化对未来收益有显著负面影响;Subrahmanyam(2005)发现这种关系存在不对称性。国际证据总体支持负相关(日本、新兴市场),但也有例外报告正溢价。原书采用 Liu et al.(2019)的异常换手率定义:

定义 · 异常换手率
$$ \mathrm{AbTurn}_{i,t} \;=\; \frac{\dfrac{1}{21}\displaystyle\sum_{d=0}^{20} \mathrm{Turn}_{i,\,t-d}}{\dfrac{1}{252}\displaystyle\sum_{d=0}^{251} \mathrm{Turn}_{i,\,t-d}} $$
$\mathrm{Turn}_{i,\,t-d}$股票 $i$ 在第 $t-d$ 个交易日的换手率,按自由流通股本计算
$21,\ 252$约一个月与约一年的交易日数:分子是近一个月的平均热度,分母是过去一年的常态热度
除以自身一年的常态水平,度量的是"异常"而非绝对热度——天生高换手的小盘股和低换手的大盘蓝筹被放到了同一把尺子上。比值远大于 1 = 最近被爆炒。

成因:从流动性到情绪

早期研究把换手率当作流动性的代理:流动性差的股票要求补偿,低换手 ⇒ 低流动性 ⇒ 高收益。但 Amihud(2002)用"单位成交金额推动的价格变化"重新定义非流动性之后,换手率就不再适合扮演这个角色——高换手完全可以发生在流动性很差的炒作股上。此后解释的重心转向投资者行为:Odean(1998)与 Statman et al.(2006)指出换手率反映过度自信与盲目乐观,本质是一个情绪指标;Lee and Swaminathan(2000)、Hong and Stein(2007)把它联系到投资者注意力与意见分歧——分歧大、做空又受限时,价格主要反映乐观者的出价,随后回落。Liu et al.(2019)给因子起名"悲观减乐观"(PMO),立场已经写在名字里:低异常换手=被冷落=悲观定价,高异常换手=过热=乐观定价。此外还有崩盘风险(Chen et al. 2001)与总体波动率(Barinov 2014)等风险侧解释。

旁注

文献并非铁板一块:Gervais et al.(2001)发现异常高成交量的股票短期反而更好——高成交带来"可见性",吸引潜在买家(高成交溢价)。Lee et al.(2016)调和了矛盾:高成交溢价是短期(几周内)现象,更长期限上高换手依然是负面信号。原书的月频异常换手率因子站在"长期负相关"一侧。

A 股实证

这是本章 A 股表现最好的因子。单变量排序:组合收益随异常换手率上升而明显下降;做多低换手、做空高换手的因子组合,等权下月均约 1.5%(t 值约 5.5),市值加权下约 1.1%(t 值约 3)。与市值双重排序后五档平均,月均约 1.2%,t 值高达 6.5 以上,且累计收益曲线异常平顺。还有一个难得的优点:按异常换手率分组的十个组合,在市值、β、波动率、P/B、ROA 上都几乎没有差异——它携带的信息与其他常见特征近乎正交,"干净"。低换手效应在小市值中更强,但即便在最大市值档也大多显著。

误区

"t 值 6 以上、曲线笔直,重仓干就完了"——先看这份收益从哪来。拆开多空两端:对因子组合贡献更大的是空头端——高换手组的收益特别差。但 A 股做空个股极其困难,空头端的贡献在实盘中注定大打折扣;这仍是不计成本、可自由做空假设下的纸面收益。可行的用法是退一步:低异常换手率的多头组合本身能跑赢市场(原书估计其年化夏普比率约 0.65,同期市场组合约 0.40),实际投资中可以让组合有计划地暴露于低换手特征,而不是幻想复制多空对冲的完美曲线。

要点
  • 异常换手率 = 近一月平均换手 / 近一年平均换手:度量相对自身常态的"过热程度"。
  • 成因主线从流动性补偿转向投资者情绪:高换手=过度自信 + 意见分歧 + 做空受限下的乐观定价。
  • A 股表现极强(双排序月均约 1.2%,t 值 6.5 以上)且与常见特征近乎正交。
  • 清醒剂:收益大头在难以做空的空头端;实盘价值主要在多头暴露(跑赢市场)而非多空对冲。

本章练习

练习刻意有难度。代码题请准备 Python 环境(numpy / pandas),先自己写,再看提示,最后对答案。

练习 3.1 亲手造出 SMB 与 HML:2×3 独立双重排序 代码题

下面的代码模拟一个 500 只股票、60 个月的市场:市值与 BM 都有持续性,且收益中植入了真实的规模溢价(负向暴露于市值)与价值溢价(正向暴露于 BM)。请你按 Fama–French 的 2×3 规则逐月构造 SMB 与 HML:

  1. 每月按市值中位数分 S/B 两档,独立地按 BM 的 30%、70% 分位分 L/M/H 三档,相交得 6 个组合;
  2. 组合收益一律市值加权;按定义式合成 SMB 与 HML 月度序列,输出月均收益与 t 值;
  3. 思考题:把 HML 换成"只在小市值内做 H−L"(即 $R_{S/H}-R_{S/L}$),对比二者的均值与波动。为什么 FF 要在两个市值档内分别做差再平均?
import numpy as np
import pandas as pd

rng = np.random.default_rng(42)
N, T = 500, 60

rows = []
log_mc = rng.normal(9.0, 1.2, N)      # 对数总市值(有持续性)
log_bm = rng.normal(-0.5, 0.6, N)     # 对数 BM(有持续性)
for t in range(T):
    log_mc = log_mc + rng.normal(0, 0.08, N)
    log_bm = 0.95 * log_bm + rng.normal(0, 0.15, N)
    z_mc = (log_mc - log_mc.mean()) / log_mc.std()
    z_bm = (log_bm - log_bm.mean()) / log_bm.std()
    ret_next = 0.008 - 0.004 * z_mc + 0.003 * z_bm + rng.normal(0, 0.10, N)
    rows.append(pd.DataFrame({
        "month": t, "stock": np.arange(N),
        "mc": np.exp(log_mc), "bm": np.exp(log_bm), "ret_next": ret_next,
    }))
panel = pd.concat(rows, ignore_index=True)   # 每行: 月份, 股票, 市值, BM, 下月收益
提示

逐月 groupby,分组标签用 np.where 两层嵌套即可;市值加权收益用 np.average(g["ret_next"], weights=g["mc"])。六个组合收益装进以 (size_g, bm_g) 为索引的 Series 后,SMB 是"S 三个的均值减 B 三个的均值",HML 是"两个 H 的均值减两个 L 的均值"。t 值 = 均值 / (标准差 / sqrt(月数))。

参考答案
import numpy as np
import pandas as pd

rng = np.random.default_rng(42)
N, T = 500, 60
rows = []
log_mc = rng.normal(9.0, 1.2, N)
log_bm = rng.normal(-0.5, 0.6, N)
for t in range(T):
    log_mc = log_mc + rng.normal(0, 0.08, N)
    log_bm = 0.95 * log_bm + rng.normal(0, 0.15, N)
    z_mc = (log_mc - log_mc.mean()) / log_mc.std()
    z_bm = (log_bm - log_bm.mean()) / log_bm.std()
    ret_next = 0.008 - 0.004 * z_mc + 0.003 * z_bm + rng.normal(0, 0.10, N)
    rows.append(pd.DataFrame({
        "month": t, "stock": np.arange(N),
        "mc": np.exp(log_mc), "bm": np.exp(log_bm), "ret_next": ret_next,
    }))
panel = pd.concat(rows, ignore_index=True)

def factor_returns(df):
    med = df["mc"].median()
    size_g = np.where(df["mc"] <= med, "S", "B")
    lo, hi = df["bm"].quantile([0.3, 0.7])
    bm_g = np.where(df["bm"] <= lo, "L",
                    np.where(df["bm"] >= hi, "H", "M"))
    df = df.assign(size_g=size_g, bm_g=bm_g)
    vw = (df.groupby(["size_g", "bm_g"])
            .apply(lambda g: np.average(g["ret_next"], weights=g["mc"])))
    smb = vw["S"].mean() - vw["B"].mean()
    hml = (vw[("S", "H")] + vw[("B", "H")]) / 2 \
        - (vw[("S", "L")] + vw[("B", "L")]) / 2
    hml_s = vw[("S", "H")] - vw[("S", "L")]      # 思考题: 只用小市值
    return smb, hml, hml_s

smb, hml, hml_s = [], [], []
for t, df in panel.groupby("month"):
    a, b, c = factor_returns(df)
    smb.append(a); hml.append(b); hml_s.append(c)
smb, hml, hml_s = map(np.array, (smb, hml, hml_s))

def report(name, x):
    t_val = x.mean() / (x.std(ddof=1) / np.sqrt(len(x)))
    print(f"{name}: 月均 {x.mean():+.3%}, 月波动 {x.std(ddof=1):.3%}, t = {t_val:+.2f}")

report("SMB       ", smb)
report("HML       ", hml)
report("HML(仅小盘)", hml_s)

典型结果:SMB 与 HML 月均都在 0.4%—0.7% 一带、t 值 3 上下,成功回收了植入的溢价。思考题:仅在小市值内做 H−L 的版本均值相近甚至略高(模拟里价值溢价对市值均匀),但波动明显更大、t 值更低——因为它只用了一半样本,而且没有对冲掉规模暴露:小盘 H 减小盘 L 的组合仍随"小盘整体行情"起伏。FF 在两个市值档内分别做差再平均,正是为了让 HML 对规模近似中性,把"纯价值"从"小盘价值行情"里剥出来。这也是一切"控制变量式构造"的原型。

练习 3.2 动量为什么要跳过最近一月:一次亲手翻车实验 代码题

下面的模拟市场里,每只股票的收益由三部分构成:慢变的"真实动量"成分 $\mu$(高度持续)、当月随机冲击 $u$、以及上月冲击的反转项 $-\theta u_{\text{上月}}$(短期反转:上月被炒高的股票这个月平均回吐)。请实现两个动量策略并对比:

  1. 策略 A(11-1):排序期为第 $t-11$ 至 $t-1$ 月的累计收益,跳过最近的第 $t$ 月;
  2. 策略 B(不跳月):排序期为第 $t-10$ 至 $t$ 月的累计收益,包含最近一月;
  3. 两者都做多信号最高 10%、做空最低 10%(等权),持有第 $t+1$ 月。输出月均多空收益与 t 值,解释差异的来源。
import numpy as np

rng = np.random.default_rng(7)
N, T = 800, 120
theta = 0.3                       # 短期反转强度
mu = np.zeros(N)                  # 慢变的期望收益成分
u_prev = rng.normal(0, 0.08, N)
R = np.zeros((T, N))
for t in range(T):
    mu = 0.98 * mu + rng.normal(0, 0.002, N)
    u = rng.normal(0, 0.08, N)
    R[t] = mu + u - theta * u_prev
    u_prev = u
提示

注意切片边界:R[t-11:t] 是第 t−11 到 t−1 行(共 11 个月,不含第 t 月);R[t-10:t+1] 则包含第 t 月。信号用收益的简单加总即可。分位阈值用 np.quantile(sig, [0.1, 0.9])。差异的关键:不跳月时,信号里混进了 $u_t$,而 $u_t$ 恰恰是下个月要以 $-\theta u_t$ 的形式"还债"的那笔钱。

参考答案
import numpy as np

rng = np.random.default_rng(7)
N, T = 800, 120
theta = 0.3
mu = np.zeros(N)
u_prev = rng.normal(0, 0.08, N)
R = np.zeros((T, N))
for t in range(T):
    mu = 0.98 * mu + rng.normal(0, 0.002, N)
    u = rng.normal(0, 0.08, N)
    R[t] = mu + u - theta * u_prev
    u_prev = u

def momentum_backtest(skip_recent):
    rets = []
    for t in range(12, T - 1):
        if skip_recent:
            sig = R[t-11:t].sum(axis=0)     # t-11 ~ t-1, 跳过第 t 月
        else:
            sig = R[t-10:t+1].sum(axis=0)   # t-10 ~ t, 含最近一月
        lo, hi = np.quantile(sig, [0.1, 0.9])
        rets.append(R[t+1][sig >= hi].mean() - R[t+1][sig <= lo].mean())
    rets = np.array(rets)
    t_val = rets.mean() / (rets.std(ddof=1) / np.sqrt(len(rets)))
    return rets.mean(), t_val

mA, tA = momentum_backtest(skip_recent=True)
mB, tB = momentum_backtest(skip_recent=False)
print(f"A 跳过最近一月:  月均多空 {mA:+.3%}, t = {tA:+.2f}")
print(f"B 不跳过:        月均多空 {mB:+.3%}, t = {tB:+.2f}")

典型结果:策略 A 月均显著为正(t 值很大),策略 B 月均显著为负。机制:两个策略都能通过 11 个月的累计捕捉到持续成分 $\mu$,但 B 的信号里额外混进了当月冲击 $u_t$——被选进多头的股票平均有很大的正 $u_t$,而下个月的收益里带着 $-\theta u_t$ 的"还债项",反转的拖累(约 $2\theta \times$ 多空两端 $u_t$ 之差)远大于动量成分的贡献,直接把策略拖成负收益。这就是 11-1 构造跳过最近一月的全部理由:排序期的尾巴不能沾上会均值回复的短期噪声。在短期反转更强的 A 股,这一点尤其致命。

练习 3.3 Rank IC:给特征的预测力做体检 代码题

信息系数(information coefficient,IC)是业界评估因子最常用的口径:第 $t$ 期的 Rank IC 定义为"$t$ 期特征值"与"$t+1$ 期收益"的截面 Spearman 秩相关系数。请你:

  1. 模拟 300 只股票、120 个月:特征 $x$ 服从 AR(1)(有持续性),下期收益 = 0.003 × 特征 z 值 + 噪声(月波动 8%);
  2. 逐月计算 Rank IC,得到 IC 序列;输出平均 IC、ICIR(= 均值/标准差)和 t 值(= ICIR × $\sqrt{T}$),判断显著性;
  3. 再造一个纯噪声的"假特征"跑同样流程作为对照;
  4. 思考题:平均 IC 只有 0.03—0.04,看起来小得可怜,为什么实务中这已经算相当不错的因子?
提示

Spearman 相关 = 先把两列各自转成秩,再算 Pearson 相关:pd.Series(x).rank().corr(pd.Series(r).rank()),不需要 scipy。IC 序列近似独立时,均值的 t 检验就是 ICIR × sqrt(T);可以顺手算一下 IC 的一阶自相关确认这一点。

参考答案
import numpy as np
import pandas as pd

rng = np.random.default_rng(0)
N, T = 300, 120

def run_ic(has_signal):
    r_local = np.random.default_rng(1 if has_signal else 2)
    x = r_local.normal(0, 1, N)
    ics = []
    for t in range(T):
        x = 0.9 * x + r_local.normal(0, np.sqrt(1 - 0.9**2), N)
        z = (x - x.mean()) / x.std()
        coef = 0.003 if has_signal else 0.0
        r_next = coef * z + r_local.normal(0, 0.08, N)
        ic = pd.Series(x).rank().corr(pd.Series(r_next).rank())
        ics.append(ic)
    return pd.Series(ics)

for name, flag in [("真特征", True), ("假特征", False)]:
    ics = run_ic(flag)
    mean_ic = ics.mean()
    icir = mean_ic / ics.std(ddof=1)
    t_val = icir * np.sqrt(len(ics))
    print(f"{name}: 平均RankIC={mean_ic:+.4f}, ICIR={icir:+.3f}, "
          f"t={t_val:+.2f}, IC一阶自相关={ics.autocorr(1):+.3f}")

典型结果:真特征的平均 Rank IC 约 +0.035、t 值 6 上下,显著;假特征的平均 IC 在零附近、t 值不到 1。IC 一阶自相关接近零,说明"ICIR × sqrt(T)"这个朴素 t 检验基本可信(若自相关明显,需要 Newey–West 类修正,见第 2 章)。

思考题:IC 是单期截面的相关系数,而因子收益按月复利、按数百只股票分散地积累。粗略地,多空组合的信息比率 ≈ ICIR × sqrt(年调仓次数),平均 IC 0.03—0.04、IC 波动 0.06 时 ICIR 约 0.5—0.6,月频对应年化 IR 约 2——已经是非常出色的策略。截面预测问题的信噪比天然极低,评价标准必须跟着校准:不要用"相关系数 0.03 太小了"的直觉否定一个因子,也不要因为回测里 IC 高达 0.2 而狂喜——那更可能是前视偏差的味道。

练习 3.4 风险补偿还是错误定价:设计判别式证据 简答题

假设你在 A 股发现某特征构造的多空组合月均收益显著为正。"风险补偿"与"行为/错误定价"两种解释都能讲出自洽的故事。请设计至少四类可操作的检验来区分二者,并对每类检验写明:在风险假说下预期看到什么、在错误定价假说下预期看到什么。(提示:想想两种假说各自"不允许"什么。)

参考答案

核心思路:风险假说的硬约束是"收益是对坏状态下亏损的补偿,且不能被无风险地套走";错误定价假说的硬约束是"收益来自纠错,纠错依赖套利,会随套利难度与投资者学习而变化"。据此设计:

(1)坏状态检验。考察因子在经济衰退、市场危机、流动性枯竭期的表现。风险假说:因子应在这些高边际效用时期系统性亏损(这正是它平时有溢价的原因)——如价值因子在深度衰退中受创、动量在市场反转时崩溃。错误定价假说:因子表现与宏观坏状态没有稳定关系,亏损时点更多与情绪极端期对应。若因子在坏时候反而稳健、好时候也赚,风险故事很难自圆其说。

(2)套利限制截面。按特质波动率、交易成本、融券可得性、机构持股比例把股票分组,看因子收益是否集中在难套利的组。风险假说:溢价是对暴露的补偿,与套利难度无关,各组内应大致同强。错误定价假说:效应应显著集中在高特质波动、难做空、散户主导的股票中(Ali et al. 2003 对 BM 的检验正是此思路)。

(3)信息事件收益集中度。把组合收益按"财报公告日附近 vs 平常日"拆解。错误定价假说:如果收益来自预期纠错,超额收益应不成比例地集中在盈余公告等信息释放时点(预期被现实打脸的时刻)。风险假说:补偿应随时间大致均匀积累,不该挤在公告日。

(4)样本外与发表后衰减。检验因子在发现/发表之后的表现(McLean–Pontiff 式检验),以及在无学习效应的早期历史、其他市场的表现。风险假说:溢价源自偏好与技术,应长期稳定、跨市场存在。错误定价假说:随着投资者学习和资金涌入,溢价应明显衰减;跨市场表现取决于各市场的投资者结构(如动量在个人主义文化中更强)。

(5)暴露—收益一致性检验(加分项)。风险假说要求"暴露高 ⇒ 预期收益高"这条链在事前可测的风险上成立:如破产风险解释规模溢价,就直接检验"高破产概率组是否真的收益更高"(Campbell et al. 2008 用此法证伪了规模因子的困境风险解释)。若特征预测收益、但对应的风险度量不预测收益,风险故事被架空。

结论写法:没有单项检验是决定性的(联合假说问题),但多项证据的合力可以强烈倾斜天平——例如价值因子:坏状态表现(部分支持风险)+ 套利限制集中(支持行为)+ 公告日集中(支持行为),学界至今两派并存,这本身就是诚实的答案。

练习 3.5 壳价值如何污染 A 股的 SMB 简答题

请完整回答:(1)什么是壳价值,它通过什么机制进入微小市值股票的价格与收益?(2)它从哪些方面"污染"了用全样本构造的 A 股 SMB 因子——至少从溢价水平、风险来源、政策敏感性三个角度分析;(3)给出至少三种构造"更干净"的规模因子的方案,并各自指出代价。

参考答案

(1)机制。在核准制下,IPO 排队漫长、上市资格稀缺,未上市企业可以通过"借壳"——收购一家已上市小公司、注入资产——绕过排队。于是每只微小市值股票都内嵌一份期权:被选为壳、迎来重组的可能性。市值越小,壳期权占总市值的比例越高。这部分股票的价格与收益因而由重组概率、IPO 政策松紧驱动,而不是由其自身基本面或任何"规模风险"驱动。

(2)三重污染。溢价水平失真:样本期内壳价值上升(如并购重组活跃期)会持续推高微小市值股收益,SMB 的历史均值被系统性抬高——它度量的是"壳变贵了"而非"规模风险的报酬"。② 风险来源错配:SMB 的小盘腿名义上暴露于"规模",实际上暴露于重组博弈与政策预期;用它做风险模型或业绩归因,会把壳价值波动误标为规模风险。③ 政策敏感、结构断裂:壳价值依赖上市管制存在。IPO 提速、退市从严、注册制推进都会让壳价值坍塌——2017 年后 A 股 SMB 的深度回撤有很大一部分是壳价值重估,而非"规模风险的报酬"周期性走弱。用历史 SMB 外推未来,等于假设管制环境不变。

(3)更干净的方案与代价。剔除法:如 Liu et al.(2019)剔除市值最小的 30% 再构造。简单直接;代价是阈值武断(为何是 30%),且会机械地改变其他因子的相对表现(本章 EP vs BM 之争),损失小盘样本信息。② 正交化法:构造壳价值代理变量(如壳概率模型的拟合值、重组预期指标),把市值对其回归取残差作为排序变量。保留全样本;代价是壳价值本身难度量,代理变量误差会引入新噪声。③ 控制质量/剔除"垃圾":借鉴 Asness et al.(2018),在控制盈利质量后构造规模因子(小盘腿里剔除低质量股);壳股通常质量极差,会被顺带清理。代价是"规模"与"质量"的身份从此纠缠,因子不再纯粹。④ 补充做法:把黑名单从 ST 扩展到"净壳"特征股(主业空心、市值贴近壳价值底线),或用中证 500/1000 一类的中盘作为小盘腿回避最小市值段。所有方案共同的教训:因子变量只是特征的代理,代理被别的东西污染时,第一步是识别机制,而不是换个数据挖法

练习 3.6 推导:q 理论下为什么高投资对应低预期收益 推导题

考虑一个两期公司:期初资产 $A_0$,选择投资 $I_0$;投资的总成本为 $I_0 + \frac{a}{2}\frac{I_0^2}{A_0}$(含二次调整成本,$a>0$);下一期每单位新资本产生利润 $\Pi_1$(随机),公司按折现率 $\E[r]$(即股东要求的预期收益率)贴现。请:

  1. 写出公司选择 $I_0$ 的最大化问题,推导一阶条件;
  2. 整理出 $1+\E[r]$ 的表达式,并说明:给定 $\E[\Pi_1]$,为什么 $I_0/A_0$ 越高、$\E[r]$ 越低;给定 $I_0/A_0$,为什么 $\E[\Pi_1]$ 越高、$\E[r]$ 越高;
  3. 回答:在这个框架里,"高投资 ⇒ 低收益"是因果关系吗?它与"管理层帝国构建 + 投资者反应不足"的行为解释,在可检验含义上有什么不同?
参考答案

(1)公司最大化投资的净现值:

$$ \max_{I_0}\; -I_0 - \frac{a}{2}\frac{I_0^2}{A_0} + \frac{\E[\Pi_1]\, I_0}{1+\E[r]} $$

对 $I_0$ 求导并令其为零:

$$ -1 - a\,\frac{I_0}{A_0} + \frac{\E[\Pi_1]}{1+\E[r]} = 0 \quad\Longleftrightarrow\quad 1 + a\,\frac{I_0}{A_0} = \frac{\E[\Pi_1]}{1+\E[r]} $$

左边是多投一块钱的边际成本(1 元本金 + 调整成本的边际项),右边是这块钱明天产出的贴现值——最优投资把两者推平。

(2)整理得

$$ 1+\E[r] \;=\; \frac{\E[\Pi_1]}{1 + a\, I_0/A_0}. $$

固定分子 $\E[\Pi_1]$:$I_0/A_0$ 越大,分母越大,$\E[r]$ 越低。直觉:面对同样的盈利前景,一家公司敢把投资推到边际成本很高的位置,只可能因为它的资本很便宜——折现率低。于是"高投资"是"低折现率"的显示信号。固定 $I_0/A_0$:$\E[\Pi_1]$ 越大,$\E[r]$ 越高。直觉:盈利这么好却只投这么多,说明有一个很高的折现率在拦着它。一条一阶条件同时预言了投资因子(负向)与盈利因子(正向),这正是 HXZ q 因子模型的理论骨架。

(3)不是因果,是联立均衡下的揭示关系:折现率(预期收益)与投资由公司的最优化联合决定,投资行为把不可观测的折现率"暴露"了出来——就像"打伞的人多"不导致下雨,而是揭示了在下雨。可检验含义的差异:① q 理论是无 α 的理性故事——投资效应应被含投资因子的模型完全吸收,风险调整后不留超额收益;行为故事预言纠错型 α,且应集中在盈余公告等信息事件附近(高投资公司随后的负收益伴随"业绩不及预期")。② q 理论下投资与折现率的关系不依赖套利难度;行为故事预言效应集中在套利受限、散户主导的股票。③ q 理论要求效应对所有投资形式对称;帝国构建故事则预言效应集中在并购、多元化扩张等代理问题严重的投资类型上。A 股的实证(3.7 节)显示两套故事都缺乏用武之地——控制盈利后投资效应本身就不存在。