多因子模型深度拆解 - 第4节

📘 Fama-French 三因子模型
🧩 规模因子 SMB ⚖️ 价值因子 HML 📊 模型构建 & 实证检验 🎓 多因子模型深度拆解 · 第4讲
📌 因子拆解 Size & Value

S SMB · 规模因子

Small Minus Big:做多小盘股、做空大盘股的投资组合收益。

  • 按市值中位数划分大小盘。
  • 每月更新,市值加权。
  • 捕捉小盘股相对于大盘股的溢价。
📈 小盘效应

H HML · 价值因子

High Minus Low:做多高账面市值比(价值股)、做空低账面市值比(成长股)。

  • 按账面市值比 30%/40%/30% 分三组。
  • 价值股 vs 成长股。
  • 捕捉价值股超额收益。
📉 价值溢价

M 市场因子 MKT

市场超额收益 (Rm - Rf) ,传统CAPM单一因子。

  • 三因子模型基石。
  • 与SMB、HML共同解释截面收益。
📊 系统性风险
⚙️ 模型构建流程
排序分组 市值 & 账面市值比 构造组合 SMB / HML 多空 时间序列回归 Ri − Rf = α + β·MKT + s·SMB + h·HML + ε 检验 α ≈ 0 ? 2×3 分组 市值加权平均 月度收益率
📋 因子构造细则 2×3 分组法
分组维度分组标志组合因子计算
市值 (Size)中位数小盘 (S) / 大盘 (B)SMB = 1/3 (S/L + S/M + S/H) − 1/3 (B/L + B/M + B/H)
账面市值比 (B/M)30% / 40% / 30%低 (L) / 中 (M) / 高 (H)
HML 构造高B/M (价值) / 低B/M (成长)HML = 1/2 (S/H + B/H) − 1/2 (S/L + B/L)
再平衡频率每年6月底市值 & B/M 更新月度因子收益率
🔬 实证检验 时间序列回归

📐 回归方程

Rᵢ − Rf = α + β·(Rm−Rf) + s·SMB + h·HML + ε

检验目标:α 是否显著不为零(模型未能解释的收益)

  • Fama & French (1993) 发现 α 接近0
  • SMB 系数 s 显著为正 (小盘股)
  • HML 系数 h 显著为正 (价值股)

📊 典型实证结果 (美股 1963-1991)

  • 市场因子 β ≈ 0.95~1.05
  • 规模因子 s ≈ 0.20~0.50 (小盘组合)
  • 价值因子 h ≈ 0.30~0.70 (价值组合)
  • 截距项 α 不显著 (t值 < 2)
✅ 模型有效解释截面差异
🐍 Python 回归实现 (statsmodels)
import pandas as pd
import statsmodels.api as sm

# 假设 df 包含: 组合超额收益(ret_excess), MKT, SMB, HML
X = df[['MKT', 'SMB', 'HML']]
X = sm.add_constant(X)   # 添加截距项 α
y = df['ret_excess']

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

# 关注: coef 的 const (α), MKT, SMB, HML 以及 p-value
🧸 小盘股 SMB + 📚 价值股 HML + 📈 市场 MKT
🎯 三因子 = 更全面的超额收益解释

💡 中小学生记忆口诀:小盘价值一起上,市场因子不能忘;回归截距若为零,三因子模型就是棒!