多因子模型基础:从CAPM到五因子模型

各位同学,今天我们来聊聊多因子模型的根基。说实话,这部分内容我讲了不下几十遍,但每次备课还是会发现新的感悟。你想想看,从1964年CAPM诞生到现在,因子模型已经走过了半个多世纪。这期间我踩过不少坑,也积累了一些实战经验,今天一并分享给你们。

核心观点:多因子模型不是凭空出现的,它是金融学界对市场异象的不断解释和修正。理解这些模型的演进逻辑,比死记硬背公式重要得多。

1. CAPM模型回顾:一切从这里开始

CAPM,资本资产定价模型,说白了就是一个公式:E(Ri) = Rf + βi × (E(Rm) - Rf)。这个模型告诉我们,股票的预期收益只跟市场风险有关。嗯,听起来很美好,对吧?

我在2015年刚入行时,第一个量化策略就是基于CAPM的。当时天真地以为,只要找到低β的股票就能跑赢市场。结果呢?回测曲线确实漂亮,但实盘一跑就露馅了。为什么?因为CAPM假设太强了——它假设所有投资者都理性,市场无摩擦,信息完全对称。现实中哪有这种事?

个人经验:CAPM最大的价值不是用来做预测,而是作为基准。我习惯用它来计算股票的α,也就是超额收益。如果一个股票长期α为正,说明它确实有某种特殊优势。

CAPM的局限性很明显:它只用一个因子(市场风险)来解释收益。但现实中,小盘股往往比大盘股涨得好,价值股比成长股表现更优。这些现象CAPM解释不了。于是,Fama和French在1993年站了出来。

3. Fama-French三因子模型:划时代的突破

三因子模型在CAPM基础上加了两个因子:规模因子(SMB)和价值因子(HML)。公式变成了:E(Ri) - Rf = βi × (E(Rm) - Rf) + si × SMB + hi × HML

我个人觉得,三因子模型最聪明的地方在于:它用简单的分组方法构造因子。比如SMB,就是把股票按市值分成大小两组,做多小盘股、做空大盘股。这种方法后来成了因子构造的标配。

关键点:三因子模型解释了90%以上的股票收益差异。但注意,它解释的是截面差异,不是时间序列预测。很多初学者搞混这一点,我当年也犯过这个错。

举个例子,假设我们要分析茅台(600519.SH)的收益来源。用三因子模型回归,你会发现它的β接近1,但SMB的载荷是负的(因为它是大盘股),HML的载荷也是负的(因为它是成长股)。这说明茅台的收益主要来自市场风险,而不是规模或价值溢价。

# 三因子模型回归示例(Python)
import statsmodels.api as sm
import pandas as pd

# 假设df包含:股票超额收益、市场超额收益、SMB、HML
X = df[['MKT_RF', 'SMB', 'HML']]
X = sm.add_constant(X)
y = df['STOCK_RF']

model = sm.OLS(y, X).fit()
print(model.summary())

避坑指南:我曾经在回测中用了未来数据构造因子,结果回测收益高得离谱。后来才发现,SMB和HML的构造需要用到当期的市值和账面市值比,如果用了未来数据,就是典型的"前视偏差"。切记,因子构造必须基于历史数据。

4. Carhart四因子模型:动量效应的加入

1997年,Carhart在三因子基础上加入了动量因子(MOM)。动量效应很简单:过去涨得好的股票,未来一段时间还会继续涨;过去跌得惨的,还会继续跌。这个现象在A股市场也很明显。

我记得2019年做A股动量策略时,发现一个有趣的现象:A股的动量效应周期比美股短。美股动量可以持续6-12个月,A股往往3-6个月就反转了。所以做四因子模型时,参数调整要因地制宜。

四因子模型的公式:E(Ri) - Rf = βi × (E(Rm) - Rf) + si × SMB + hi × HML + mi × MOM

实战技巧:动量因子的构造有很多变种。我习惯用过去12个月剔除最近1个月的收益作为动量信号,这样可以避免短期反转的干扰。当然,你也可以试试6个月或3个月的窗口,看哪个更适合你的策略。

5. Fama-French五因子模型:更精细的刻画

2015年,Fama和French又加了两个因子:盈利能力因子(RMW)和投资风格因子(CMA)。RMW做多高盈利股票、做空低盈利股票;CMA做多低投资股票、做空高投资股票。

五因子模型的公式:E(Ri) - Rf = βi × (E(Rm) - Rf) + si × SMB + hi × HML + ri × RMW + ci × CMA

说实话,五因子模型在A股的表现不如美股。我做过对比测试,发现RMW和CMA在A股的显著性不高。这可能跟A股的市场结构有关——散户主导、政策影响大、盈利和投资的信号容易被噪音淹没。

我的建议:不要盲目套用五因子模型。在A股,三因子模型加上动量因子,效果往往比五因子更好。因子不是越多越好,关键是每个因子都要有经济含义和统计显著性。

下面这张图展示了因子模型的演进脉络,你可以看到每个模型在原有基础上解决了什么问题:

多因子模型演进脉络 CAPM (1964) 1个因子:市场风险 Fama-French 三因子 (1993) 3个因子:市场+规模+价值 Carhart 四因子 (1997) 4个因子:+动量 Fama-French 五因子 (2015) 5个因子:+盈利+投资 每个模型都在前一个基础上增加了新的解释因子 虚线表示三因子到五因子的直接演进(跳过四因子) 关键启示: • 因子越多不代表模型越好 • 每个因子必须有经济含义 • 不同市场的因子有效性不同

6. 模型对比与选择建议

说了这么多,到底该用哪个模型?我个人的经验是:

模型 因子数量 适用场景 A股表现
CAPM 1 基准比较、α计算 一般
三因子 3 通用模型、风险归因 较好
四因子 4 趋势跟踪、动量策略 好(需调整参数)
五因子 5 美股、成熟市场 一般

重要提醒:因子模型是解释工具,不是预测工具。我见过太多人用因子模型做选股,结果回测漂亮实盘亏损。记住,因子载荷是历史数据的统计结果,未来可能完全不一样。做量化,永远要对历史保持敬畏。

好了,这一章的内容就到这里。下一章我们会深入讨论ESG因子如何融入这些经典模型,以及我在实际项目中踩过的那些坑。嗯,到时候再细聊。

专注资料整理