19 大数据机器学习方法在金融学中的应用

课程简介:我们将要学习什么?

这堂课的目标是让大家掌握前沿的机器学习技术,并理解如何应用它们来解决金融领域的核心问题。

我们将开启一场从经典理论到现代方法的探索之旅。

学习目标 1:理解变革

大数据革新金融研究范式 从传统模型到机器学习的范式转变,后者通过大数据分析揭示隐藏模式。 传统模型 Linear Models 大数据 & ML 理解范式革新

理解

深刻理解大数据和机器学习如何从根本上革新现代金融的研究范式,从数据处理、模型构建到结果验证的全过程。

学习目标 2:掌握核心

非线性Lasso 一条曲线拟合数据点,旁边是一个Lasso筛选器图标,象征捕捉非线性关系和变量选择。 Lasso 掌握非线性Lasso

掌握

熟练掌握非线性Lasso方法的核心思想与应用场景,学会如何利用它从高维特征中筛选重要变量并捕捉非线性关系。

学习目标 3:了解前沿

IPCA因子模型 多个可观测特征通过IPCA映射,汇集为少数几个潜在因子。 可观测特征 (L个) 特征 1 特征 2 ... 特征 L IPCA 映射 Γ 潜在因子 (K个, K<L) 因子 1 因子 K 了解IPCA因子模型

了解

深入了解工具变量主成分分析法 (IPCA) 的原理,理解它如何结合可观测特征与潜在因子,构建出更优、更稳健的动态因子模型。

学习目标 4:应用与纠偏

机器学习纠偏 一个有偏差的估计量分布通过ADML校正,变为一个以0为中心的无偏分布。 0 偏差 有偏估计 ADML 纠偏 0 纠偏后估计

应用

学习如何应用先进的自纠偏机器学习方法 (ADML),在允许模型存在非线性的复杂设定下,依然能得到可靠的、可用于统计推断的参数估计。

本章导览:一场寻找Alpha的探索之旅

本章将像一场侦探小说,我们将使用机器学习这个“放大镜”,在海量数据中寻找真正能预测股票收益的“线索” (Alpha)。

  • 第一部分:横截面预测
    • 任务: 如何更准确地预测股票的未来收益?
  • 第二部分:方法详解
    • 工具: Fama-MacBeth, Lasso, 交叉验证等。
  • 第三部分:因子模型新视角
    • 创新: 工具变量主成分分析 (IPCA)。
  • 第四部分:识别有效因子
    • 利器: 双重选择Lasso与自纠偏机器学习。

核心挑战:信号 vs. 噪音

金融市场的核心挑战是:在充满噪音的汪洋大海中,识别并验证哪些变量是真正的“信号”,具有解释力和定价能力。

信号与噪音 一条平滑的信号曲线被大量随机的噪音点所覆盖,机器学习的任务就是找出这条信号曲线。 信号 (α) 噪音 机器学习:在高维数据和复杂关系中披沙拣金

第一部分:股票收益率的横截面预测

经典方法的困境:高维数据下的失灵

传统的线性模型(如Fama-MacBeth回归)是实证金融的基石,但在面对成百上千个潜在预测变量时,会遇到两大障碍:

1. 多重共线性

许多预测变量高度相关(如不同类型的动量或价值指标),导致模型估计不稳定,系数的经济意义难以解释。

2. 过拟合 (Overfitting)

模型在样本内表现完美,因为它学习到了数据中的“噪音”而非真实的“信号”,导致样本外预测能力极差。

过拟合的直观理解

“过拟合”就像一个学生,把练习册上的所有题目和答案都背了下来,但在真正的考试中遇到新题目时却一筹莫展。

过拟合 vs. 合理拟合 左侧图显示一条复杂曲线完美穿过所有数据点(过拟合),右侧图显示一条平滑曲线捕捉了数据的主要趋势(合理拟合)。 过拟合 (样本内 R² ≈ 1) 合理拟合 (泛化能力强)

机器学习的对策(1):正则化

核心直觉:对模型的复杂性进行“惩罚”,强迫它只关注最重要的预测变量,从而避免过拟合。

正则化 一个天平,一端是“拟合优度”,另一端是“模型复杂度”,正则化是在两者之间取得平衡。 拟合优度 min RSS 模型复杂度 min Σ|β| 目标:在两者间取得平衡 min (RSS + λΣ|β|)
  • 代表方法:Lasso回归、岭回归、弹性网 (Elastic Net)。
  • 效果:将不重要变量的系数“压缩”到零,实现变量选择和模型简化。

机器学习的对策(2):降维

核心直觉:将大量相关的原始变量合成为少数几个不相关的“超级变量”(即主成分或潜在因子),从而消除多重共线性。

降维 许多原始变量(细线)汇入一个处理单元(PCA),然后输出少数几个主成分(粗线)。 原始高维特征 (L个) P/E, P/B, MOM, ... 降维 (e.g., PCA) 低维主成分 (K个) PC1, PC2, ...
  • 代表方法:主成分分析 (PCA)。
  • 效果:用少数几个综合因子捕捉原始数据的大部分信息,简化模型。

机器学习的对策(3):处理非线性关系

核心直觉:金融市场的关系往往不是简单的线性关系。机器学习模型,特别是神经网络,具有强大的非线性拟合能力。

神经网络结构 一个简单的神经网络,包含输入层、一个隐藏层和输出层,层与层之间的节点全连接。 输入层 (特征) 隐藏层 (非线性变换) 输出层 (预测)
  • 代表方法:神经网络、回归树、梯度提升树。

里程碑式研究:Gu, Kelly, and Xiu (2020)

Gu, Kelly, and Xiu (2020) 在 Review of Financial Studies 上的论文是该领域的开创性工作。

他们系统性地比较了多种机器学习方法在美国股票收益率预测中的表现,堪称一场机器学习方法在金融预测领域的“奥林匹克竞赛”。

参赛选手包括: - 线性模型:弹性网 (Elastic Net) - 降维模型:主成分回归 (PCR), 偏最小二乘 (PLS) - 非线性模型:回归树, 神经网络 (Neural Networks)

GKX (2020) 的核心发现(1):模型表现

竞赛结果

  1. 神经网络表现最佳 🏆
    • 在所有模型中,神经网络在样本外预测R²和为投资者带来的经济价值方面都取得了最好的表现。
  2. 回归树优于线性模型
    • 表明股票收益和特征之间存在显著的非线性关系。
  3. 浅层学习优于深层学习
    • 一个拥有少量隐藏层的“浅层”神经网络效果最好。金融数据信噪比低,过于复杂的“深度”模型反而容易过拟合。

GKX (2020) 的核心发现(2):重要特征

机器学习模型不仅能预测,还能告诉我们哪些特征最重要。最重要的预测特征大都与我们熟知的“异象”有关:

  • 动量 (Momentum)
  • 流动性 (Liquidity)
  • 风险测度 (Risk Measures)
  • 估值比率 (Valuation Ratios)
  • 基本面信号 (Fundamental Signals)
  • 短期反转 (Short-term Reversal)

这表明机器学习并非“黑箱”,它的发现与传统金融理论高度一致,但能更系统地衡量和利用这些信息。

特例:中国市场的独特性

与成熟的美国市场相比,中国A股市场具有一些显著特征,这可能导致机器学习模型的表现和重要因子的不同。

  • 散户主导
    • 导致更高的波动性和更频繁的短线交易行为。
  • 政府影响
    • 中央控制的银行主导金融体系,市场自动修正机制可能受限。
  • 卖空限制
    • 导致负面信息难以及时反映在股价中,市场定价效率可能较低。
  • 信息不对称
    • 相较于机构,散户在信息获取上处于劣势。

相关研究:Leippold, Wang, and Zhou (2021)

这篇论文专门研究了机器学习在中国市场的应用,发现:

  • 可预测性更强
    • 中国市场的样本外预测R²显著高于美国市场,尤其是在小规模和非国有企业中。
  • 流动性是关键
    • 流动性成为中国市场最重要的预测因子。
  • 散户的影响
    • 散户投资者的行为对短期可预测性有正向影响。而长期来看,大盘股和国有企业有更高的可预测性。

相关研究:Freyberger et al. (2020) & Wang et al. (2023)

这些研究进一步证实了机器学习,特别是非线性方法的优势。

  • 非线性Lasso的威力
    • Freyberger et al. (2020) 在美国市场、Wang et al. (2023) 在中国市场均应用了非线性Lasso方法。
  • 共同的结论
    • 结果都展示了机器学习在处理高维股票收益预测和捕捉非线性关系方面的巨大潜力与优势。

第二部分:机器学习预测方法详解

温故知新:Fama-MacBeth回归

在进入机器学习世界之前,我们必须先理解它的参照物——Fama-MacBeth (FM) 回归。这是一个巧妙的两步法,用于处理面板数据,检验因子模型的有效性。

核心优势:巧妙地处理了股票收益在截面上残差相关性高,但在时间序列上相关性不高的数据特征。

Fama-MacBeth回归流程 一个三步流程图:第一步是时间序列回归得到Beta,第二步是横截面回归得到风险溢价,第三步是汇总检验。 第一步: 时间序列回归 (对每个股票 i) 产出: β_i 第二步: 横截面回归 (对每个时间 t) 产出: λ_t 第三步: 汇总 (求时间均值) 产出: λ̄, t-stat

FM回归第一步:时间序列回归

目标:为每个资产 \(i\) 估计其在因子 \(f_t\) 上的暴露 (exposure),即 \(\beta_i\)

方法:对每一个资产 i,用其整个时间序列的收益率 \(r_{i,t}\) 对同时期的因子收益率 \(f_t\) 进行回归。

\[ \large{r_{i,t} = \alpha_i + \beta_i' f_t + \epsilon_{i,t} \quad \text{for } t=1, ..., T} \]

  • 这个回归对每个股票(或投资组合)单独进行。
  • 产出:每个股票的一个(或一组)固定的因子载荷 \(\hat{\beta_i}\)

FM回归第二步:横截面回归

目标:估计因子 \(f_t\) 在每个时期 \(t\) 的风险溢价 (risk premium),即 \(\lambda_t\)

方法:在每一个时间点 t,用该时刻所有资产的收益率 \(r_{i,t}\)第一步中得到的因子暴露 \(\hat{\beta_i}\) 进行回归。

\[ \large{r_{i,t} = \lambda_t' \hat{\beta_i} + \alpha_{i,t} \quad \text{for } i=1, ..., N} \]

  • 这个回归是在每个时间点进行的。
  • 产出:一系列随时间变化的风险溢价估计值 \(\hat{\lambda_t}\)

FM回归第三步:汇总与检验

目标:得到因子风险溢价的最终估计值,并进行统计检验。

方法:将第二步中得到的每个时期的风险溢价 \(\hat{\lambda_t}\) 取时间序列上的平均值。

\[ \large{\hat{\lambda} = \frac{1}{T} \sum_{t=1}^{T} \hat{\lambda_t}} \]

统计推断:这个平均值 \(\hat{\lambda}\) 就是该因子最终的风险溢价估计。我们可以计算它的t统计量,来判断这个因子是否具有显著的定价能力。

FM回归的挑战:EIV问题

FM回归的一个核心计量问题是 变量误差 (Errors-in-Variables, EIV)

  • 问题来源:第二步的横截面回归中,使用的自变量 \(\hat{\beta_i}\) 本身是第一步回归的估计值,而不是真实的 \(\beta_i\)
  • 后果:这会导致第二步中对风险溢价 \(\lambda_t\) 的估计出现偏差和不一致性。
  • 解决方案:需要使用Shanken (1992) 提出的修正方法来调整标准误,以进行正确的统计推断。

机器学习的切入点:Lasso回归

当面临大量股票特征(预测变量)时,FM回归会因多重共线性而失效。Lasso (Least Absolute Shrinkage and Selection Operator) 回归提供了一个强大的解决方案。

核心思想:在标准的最小二乘法目标函数中,加入一个对系数绝对值之和的惩罚项(即 L1惩罚)。

这使得Lasso在最小化残差的同时,也试图让尽可能多的回归系数精确地等于零

Lasso回归的目标函数

Lasso通过最小化以下目标函数来求解系数向量 \(g_t\)

\[ \large{\hat{g}_t^{Lasso} = \underset{g}{\arg\min} \underbrace{\frac{1}{N}\sum_{i=1}^{N}(\tilde{r}_{i,t} - z_{i,t-1}'g_t)^2}_{\text{拟合优度:最小化残差平方和}} + \underbrace{\gamma \sum_{j=1}^{K} |g_{j,t}|}_{\text{惩罚项:最小化系数绝对值之和}}} \]

  • \(\gamma\) 是一个超参数,控制惩罚的强度。\(\gamma\) 越大,被压缩到零的系数就越多。

Lasso的魔力:实现稀疏性估计

L1惩罚项的几何形状(菱形)是Lasso实现变量筛选的关键。

Lasso vs. Ridge 左图Lasso的菱形约束区域更容易在角点与等高线相切,导致系数为零。右图Ridge的圆形约束区域通常在非轴位置相切。 β₁β₂ Lasso (L1) 解: β₁=0 (稀疏解) β₁β₂ Ridge (L2) 解: β₁≠0, β₂≠0
  • 结果:最终得到的模型只包含少数几个非零系数的变量,这就是一个“稀疏”模型。

Lasso代码示例

下面是一个用Python scikit-learn 实现Lasso回归的简单例子。

# 该代码块用于演示,使用模拟数据
import numpy as np
import pandas as pd
from sklearn.linear_model import Lasso
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt

# 1. 创建模拟数据
np.random.seed(42)
n_samples, n_features = 100, 20
X = np.random.randn(n_samples, n_features)
# 假设只有前5个特征是真正重要的
true_coef = np.zeros(n_features)
true_coef[:5] = [5, -4, 3, -2, 1]
y = X @ true_coef + np.random.randn(n_samples) * 2

# 2. 数据标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 3. 训练Lasso模型
# alpha是惩罚强度(λ),alpha越大,稀疏性越强
lasso = Lasso(alpha=1.0)
lasso.fit(X_scaled, y)

# 4. 可视化结果

fig, ax = plt.subplots(figsize=(10, 5))
ax.stem(np.arange(n_features), lasso.coef_, markerfmt='o', basefmt=" ")
ax.plot(np.arange(n_features), true_coef, 'r--', label='True Coefficients')
ax.set_xlabel('特征索引')
ax.set_ylabel('系数大小')
ax.set_title('Lasso回归的系数收缩效果')
ax.legend()
plt.show()

现实的复杂性:非线性关系

如果特征与预期收益之间的关系不是线性的怎么办?例如,规模因子的影响可能在小盘股区间很大,但在大盘股区间逐渐减弱。

我们可以使用 非线性Lasso (或称非参数组Lasso) 来捕捉这种关系。

非线性Lasso的实现方式:基函数展开

核心思想:用一组基函数 (basis functions) \(p_k(z)\) 来近似复杂的非线性函数 \(m_{t,j}(z)\)

\[ \large{m_{t,j}(z) \approx \sum_{k=1}^{L+2} g_{t,j,k} p_k(z)} \]

  • \(p_k(z)\) 可以是多项式项 (\(1, z, z^2\)),也可以是分段线性的“样条”函数 (splines)。
  • 样条函数特别灵活,可以通过在特征取值范围内的几个“节点” (knots)进行拼接,来拟合任意复杂的曲线。

非线性Lasso的目标函数

我们将每个非线性函数 \(m_{t,j}(z)\) 对应的所有基函数系数 \(g_{t,j,k}\) 看作一个“组”。

组Lasso (Group Lasso) 的思想是:要么把整个组的系数都保留,要么把它们全部置为零。

目标函数变为: \[ \large{\hat{g}_t^{NPLasso} = \underset{g}{\arg\min} \sum_{i=1}^{N_t} \left( \tilde{r}_{i,t+1} - \sum_{j=1}^{J} m_{t,j}(z_{i,t,j}) \right)^2 + \lambda \sum_{j=1}^{J} \sqrt{\sum_{k=1}^{L+2} g_{t,j,k}^2}} \]

  • 惩罚项变成了组内系数平方和的平方根之和。如果一个特征 \(j\) 不重要,那么它对应的整个函数 \(m_{t,j}(z)\) 都会被置为零。

Lasso的一致性问题与自适应Lasso

标准的Lasso在变量选择上并不具备一致性 (consistency)。这意味着即使样本量趋于无穷,Lasso也可能无法100%选出正确的模型。

自适应Lasso (Adaptive Lasso) 解决了这个问题。

核心思想:对不同的系数施加不同的惩罚。给那些“看起来”比较重要的变量(即初始估计值较大的系数)较小的惩罚,给那些“看起来”不重要的变量(初始估计值较小的系数)较大的惩罚。

自适应Lasso的实现:两步法

  1. 第一轮训练:运行一个标准的Lasso(或岭回归)得到初始的系数估计 \(\hat{g}^{(1)}\)
  2. 构造权重:根据第一轮的系数估计,为每个变量 \(j\) 构造一个权重 \(w_j = 1 / |\hat{g}_j^{(1)}|^\delta\) (通常 \(\delta=1\) )。
  3. 第二轮训练:在Lasso的惩罚项中加入这个权重,\(\gamma \sum_{j=1}^{K} w_j |g_{j,t}|\)

这个简单的两步法可以获得具有一致性的估计结果。

关键步骤:如何选择惩罚参数 \(\lambda\)

Lasso模型中的惩罚参数 \(\lambda\) 是一个超参数 (hyperparameter),它的选择至关重要:

  • \(\lambda\) 太小:惩罚不足,模型退化为OLS,容易过拟合。
  • \(\lambda\) 太大:惩罚过度,把所有系数都压缩到0,模型毫无用处。

交叉验证 (Cross-Validation) 是确定最佳超参数的黄金标准。

K折交叉验证 (K-Fold Cross-Validation)

最常用的方法是 K折交叉验证,例如 5折交叉验证

5折交叉验证 将数据分为5折,每次用4折训练,1折验证,重复5次。 第 1 轮 第 2 轮 第 3 轮 第 4 轮 第 5 轮 选择使平均验证误差最小的 λ

交叉验证的陷阱:前瞻性偏差

在时间序列数据(如股票收益)中,随机K折交叉验证有一个致命缺陷:前瞻性偏差 (Look-ahead Bias)

  • 问题:随机划分会使得模型在训练时用到“未来”的信息,而去预测“过去”的验证集。
  • 后果:这在现实中是不可能的,会导致对模型表现的严重高估。

解决方案:时间序列交叉验证

对于时间序列数据,必须采用一种能保留时间顺序的交叉验证方法,如 扩展窗口法 (Expanding Window)

时间序列交叉验证 使用扩展窗口法进行时间序列交叉验证,确保训练集总是在验证集之前。 第 1 轮训练验证 第 2 轮训练验证 第 3 轮训练验证 第 4 轮训练验证 确保训练集永远在验证集之前

这个过程确保了模型始终使用过去的数据来预测未来,符合实际情况。

第三部分:预测因子的实证表现

因子动物园:哪些因子真正有效?

学术界发现了成百上千个能够预测股票横截面收益的所谓“因子”或“异象”。

  • 动量 (Momentum)
  • 价值 (Value)
  • 规模 (Size)
  • 盈利能力 (Profitability)
  • 投资 (Investment)
  • 风险 (Risk) :::

::: - 流动性 (Liquidity) - 质量 (Quality) - 应计负债 (Accruals) - 季节性 (Seasonality) - 短期反转 (Reversal) - 等等… :::

:::

因子模型的竞争:稀疏性是共识

尽管存在“因子动物园”,但主流的多因子模型都是稀疏的 (sparse),通常只包含不超过5-6个因子。

这反映了一个共识:大部分异象可能只是其他少数几个核心风险维度的不同体现。

主流模型

  • Fama-French五因子模型 (FF5)
  • Hou-Xue-Zhang四因子模型 (q4)
  • Barillas and Shanken (2018) 六因子模型

数据观察:中美市场核心因子对比

我们来看一下2000年1月至2023年12月期间,中美两国市场一些核心因子的月度平均表现。

  • MktRf: 市场风险溢价
  • SMB: 市值因子 (小盘股 vs 大盘股)
  • VMG/HML: 价值因子 (价值股 vs 成长股)

可视化对比:中美市场因子表现

为了更直观地比较,我们将表格数据可视化。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# 数据源自原文表格
data = {
    'Market': ['China', 'China', 'China', 'US', 'US', 'US'],
    'Factor': ['MktRf', 'SMB', 'VMG', 'MktRf', 'SMB', 'HML'],
    'mean': [0.53, 0.70, 1.07, 0.55, 0.24, 0.21],
    't_value': [1.23, 2.75, 4.94, 2.02, 1.30, 1.00]
}
df = pd.DataFrame(data)

# 绘图
sns.set_style("whitegrid")
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5), sharey=False)

sns.barplot(data=df, x='Factor', y='mean', hue='Market', ax=ax1, palette=['#007aff', '#ff9500'])
ax1.set_title('月均收益率 (%)', fontsize=14)
ax1.set_ylabel('Mean Return (%)')
ax1.set_xlabel('Factor')
ax1.legend(title='Market')

sns.barplot(data=df, x='Factor', y='t_value', hue='Market', ax=ax2, palette=['#007aff', '#ff9500'])
ax2.axhline(1.96, color='red', linestyle='--', label='t=1.96 (5%显著)')
ax2.set_title('t-统计量', fontsize=14)
ax2.set_ylabel('t-value')
ax2.set_xlabel('Factor')
ax2.legend(title='Market')

fig.suptitle('中美核心因子表现对比 (2000-2023)', fontsize=16)
plt.tight_layout(rect=[0, 0, 1, 0.96])
plt.show()

数据解读:中美市场差异

中国市场

  • 显著的规模和价值效应:SMB和VMG因子的月均收益和t值都非常高,表明投资小盘股和价值股能获得显著高于市场的回报。

美国市场

  • 规模和价值效应减弱:经典的SMB和HML因子在近24年并没有取得统计上显著的正收益。这引发了关于这些经典因子是否已经失效的广泛讨论。

实证对比:机器学习 vs. Fama-MacBeth

Wang et al. (2023) 使用132个中国股票收益预测指标,对比了三种方法在预测沪深300成分股收益上的表现:

  1. Fama-MacBeth 回归 (FMB)
  2. 自适应 Lasso (ALasso)
  3. 自适应组 Lasso (AGLasso)

核心问题:谁的样本外预测能力更强?

表2解读:多空组合表现

方法 权重 平均收益 夏普比率
AGLasso VW 0.94 0.81
ALasso (KFold) VW 1.10 1.01
ALasso (TSCV) VW 1.21 1.28
FMB VW -0.16 -0.09
AGLasso EW 1.54 1.25
ALasso (KFold) EW 1.77 1.40
ALasso (TSCV) EW 2.02 1.63
FMB EW 0.11 0.05

核心结论

  1. 机器学习方法完胜:ALasso和AGLasso的平均收益和夏普比率都远高于FMB。
  2. 时间序列交叉验证最优:对于ALasso,使用时间序列交叉验证 (TSCV) 的夏普比率最高。

表2解读:预测R²

Metric AGLasso ALasso (KFold) ALasso (TSCV) FMB
0.0004 0.0032 0.0035 -0.0004

核心结论

  • 样本外预测R²:衡量模型预测能力的关键指标。
  • ALasso表现优异:ALasso的R²达到了0.35%。
  • FMB预测失败:FMB的R²是负数,意味着它的预测比简单地使用历史均值还要差。这再次凸显了传统方法在高维环境下的过拟合问题。

第四部分:工具变量主成分分析法 (IPCA)

因子模型的新视角:IPCA

工具变量主成分分析 (IPCA) 是 Kelly, Pruitt, and Su (2019) 提出的一种新的因子模型估计方法。

它巧妙地结合了两种思想:

  1. 潜在因子模型:承认驱动股票收益的是一些无法直接观测到的潜在风险因子(如PCA)。
  2. 可观测特征:利用公司层面的可观测特征(如市净率、动量等)作为“工具变量”,来帮助我们识别这些潜在因子。

IPCA的理论设定

IPCA假设股票 \(i\)\(t+1\) 期的收益率 \(x_{it+1}\) 由一个线性因子模型驱动: \[ \large{x_{it+1} = \beta_{it+1}' f_{t+1} + \epsilon_{it+1}} \]

  • \(f_{t+1}\)\(K\) 个未知的潜在因子

核心创新:IPCA假设时变的因子载荷 \(\beta_{it+1}\) 是由上一期 \(t\)可观测公司特征 \(c_{it}\) 线性决定的: \[ \large{\beta_{it+1} = c_{it}' \Gamma_\beta} \]

  • \(\Gamma_\beta\) 是一个 \(L \times K\) 的矩阵,它将 \(L\) 个可观测特征映射\(K\) 个潜在因子的载荷上。这是IPCA模型需要估计的核心参数

IPCA的优势:一个更智能的PCA

IPCA vs PCA PCA仅使用收益率数据。IPCA同时使用收益率和公司特征作为输入,得到更稳健的因子。 收益率 X_t 经典 PCA 潜在因子 f_t 特征 C_t IPCA 更稳健的因子 f_t*
  • 优势:IPCA利用公司特征作为额外信息,能更稳健地估计出真正驱动收益的因子结构,并能描述因子载荷的动态变化。

IPCA的参数估计

将模型写成向量形式: \[ \large{\mathbf{x}_{t+1} = C_t \Gamma_\beta \mathbf{f}_{t+1} + \mathbf{\epsilon}_{t+1}^*} \] 目标:选择 \(\Gamma_\beta\) 和因子序列 \(F = \{\mathbf{f}_1, ..., \mathbf{f}_T\}\),来最小化误差平方和: \[ \large{\min_{\Gamma_\beta, F} \sum_{t=1}^{T-1} ||\mathbf{x}_{t+1} - C_t \Gamma_\beta \mathbf{f}_{t+1}||^2} \]

求解方法:交替最小二乘法 (ALS)

由于目标函数中需要同时估计 \(\Gamma_\beta\)\(\mathbf{f}_{t+1}\),这是一个双线性问题,可以通过交替最小二乘法 (Alternating Least Squares, ALS) 求解。

  1. 初始化:对 \(\Gamma_\beta\) 进行一个初始猜测。
  2. 交替迭代
    1. 给定 \(\Gamma_\beta\),求解 \(\mathbf{f}_{t+1}\): 对每个时刻 \(t\) 进行OLS回归。
    2. 给定 \(\mathbf{f}_{t+1}\),求解 \(\Gamma_\beta\): 对所有数据进行OLS回归。
  3. 终止条件:重复步骤2,直到估计值收敛。

IPCA的实证检验

Kelly et al. (2019) 使用了1962年至2014年的美国股票数据(包含36个特征)来检验IPCA模型的表现。

核心问题

  1. 需要多少个潜在因子才能充分解释由特征驱动的预期回报?
  2. IPCA模型是否能通过资产定价检验?

表3解读:IPCA模型的拟合优度

K (# 因子) 1 2 3 4 5 6
Total R² 15.2% 16.8% 17.7% 18.4% 18.7% 19.0%
Pred. R² 0.76% 0.75% 0.75% 0.74% 0.74% 0.72%
  • Total R²: 模型解释的总风险比例。
  • Predictive R²: 模型解释的预期回报比例 (更重要)。

核心发现

  • 随着因子数量K增加,总解释能力 (Total R²) 稳步提升。
  • 然而,预测R²在K=1时达到最高点。说明对于预测预期收益而言,一个潜在因子可能已经足够。

表3解读:资产定价检验 (Alpha检验)

Alpha检验的原假设是:特征不能预测定价误差。如果p值很小,则拒绝原假设,说明模型解释力不足。

K (# 因子) 1 2 3 4 5 6
W_α p-value 0.00 0.00 0.00 0.00 2.06% 52.1%

核心发现

  • 拒绝少因子模型:当K从1到4时,p值都接近于0,说明1-4个因子的IPCA模型无法解释所有与特征相关的回报。
  • 5-6个因子足够:当K=6时,p值为52.1%,完全无法拒绝原假设。
  • 结论:一个包含5到6个潜在因子的IPCA模型,基本上可以解释美国股市中由36个公司特征所驱动的全部预期回报。

第五部分:理论基础——随机贴现因子 (SDF)

资产定价的核心:随机贴现因子(SDF)

所有现代理性资产定价模型,都可以归结为一个核心公式:

\[ \large{p_t = E_t[m_{t+1} x_{t+1}]} \]

  • \(p_t\): 资产在 \(t\) 期的价格。
  • \(x_{t+1}\): 资产在 \(t+1\) 期的回报(payoff)。
  • \(m_{t+1}\): 随机贴现因子 (Stochastic Discount Factor, SDF)

这个公式告诉我们,一项资产今天的价格,是它未来回报的期望值,但这个期望值是用一个随机的贴现因子 \(m_{t+1}\) 进行“风险调整”后的结果。

SDF的经济学直觉:跨期边际替代率

在标准的消费资本资产定价模型 (CCAPM) 中,SDF等于投资者的跨期边际替代率

\[ \large{m_{t+1} = \beta \frac{u'(c_{t+1})}{u'(c_t)}} \]

直觉解读:SDF衡量了投资者在不同经济状态下,对未来一单位财富的主观估值。

SDF的直觉 经济不好时,钱更值钱,SDF高。经济好时,钱不那么值钱,SDF低。 经济不好 (衰退) c↓, 边际效用 u'↑ 钱“更值钱” => SDF (m) 高 经济繁荣 (增长) c↑, 边际效用 u'↓ 钱“不值钱” => SDF (m) 低

SDF与风险溢价的关系

可以证明,任何资产的期望超额收益都满足: \[ \large{E(R) - R_f = -R_f \cdot Cov(m, R)} \]

这就是风险溢价的来源!

  • 一项资产之所以能获得正的风险溢价 (\(E(R) > R_f\)),是因为它的收益率 \(R\) 与SDF \(m\) 负相关

理解风险溢价的来源

  • SDF (m) 在经济不好时值高。
  • 风险资产 (R_stock) 在经济不好时,收益率也表现
  • 因此 \(Cov(m, R_{stock}) < 0\)

这样的资产无法为投资者提供“雪中送炭”的保障,反而会“雪上加霜”。因此,投资者为了愿意持有这种“顺周期”的风险资产,必然会要求一个正的风险溢价作为补偿。

从SDF到多因子模型

在实证中,我们通常假设SDF可以被一组可观测的定价因子 (pricing factors) \(f\) 线性近似:

\[ \large{m_{t+1} \approx a + b'f_{t+1}} \]

可以证明,一个线性的SDF模型和一个线性的多因子收益率模型在数学上是等价的。

\[ \large{E(R^i) = \gamma + \lambda'\beta_i} \]

核心结论:寻找一个能够解释资产收益的多因子模型,等价于寻找一个SDF的近似表达式。这为我们寻找定价因子提供了坚实的理论基础。

第六部分:识别有效因子——双重选择Lasso

新的挑战:高维环境下的因子筛选

我们想知道,在一个包含了所有已知因子 \(h_t\) 的“基准模型”之上,一个新的因子 \(g_t\) 是否具有额外的解释能力?

这等价于检验这个新因子在SDF中的载荷 \(\lambda_g\) 是否显著不为零。

问题:当基准因子 \(h_t\) 的数量非常多时,标准回归会因多重共线性和过拟合而完全失效。

解决方案:双重选择Lasso

Feng et al. (2020) 提出了一种基于 双重选择Lasso (Double-Selection Lasso) 的新方法来解决这个问题。

核心思想:为了无偏地估计新因子 \(g_t\) 的作用,我们需要控制住所有与 \(g_t\) 股票收益 \(r_t\) 都相关的基准因子 \(h_t\)

双重选择Lasso的步骤

双重选择Lasso流程 一个三步流程图:第一步Lasso选出与收益相关的因子,第二步Lasso选出与新因子相关的因子,第三步用合并后的因子集进行OLS回归。 第1步: LassoE(r) on h选出 I₁ 第2步: Lassog on h选出 I₂ 合并控制变量I = I₁ ∪ I₂ 第3步: OLSE(r) on (g, h_I)

这个三步法可以得到对新因子载荷 \(\hat{\lambda}_g\) 的一致且无偏的估计,从而进行可靠的统计推断。

实证应用:A股市场的因子检验

研究者将双重选择Lasso方法应用到中国A股市场,来识别哪些因子具有真正的定价能力。

  • 基准因子池:包含20个主流因子。
  • 待测试因子池:包含10个新因子。

表19.7解读:双重选择Lasso vs. CH-4模型

待测因子 Double-Selection Lasso (t-val) CH-4 Model (t-val)
abr (盈余公告) 3.29* 2.69***
betad (下行风险) 3.86* 2.31**
droa (盈利变化) 3.81* 3.19***
ivff (特质波动) 7.35* 6.79***
ra25 (应计异象) -1.93* -2.83*
srev (短期反转) 1.97 0.91

核心发现

  • 基准模型很重要:使用不同的基准因子模型,对新因子的定价能力评估结果有很大影响。
  • 双重Lasso结果更显著:例如,短期反转因子(srev)在双重Lasso框架下是显著的,但在CH-4模型下不显著。这说明双重Lasso能够选出更有效的基准模型。

表19.8解读:新因子的增量定价能力

研究者检验了将双重Lasso发现的显著新因子(如abr, droa)加入到CH-4模型中,能否提高模型的定价能力。

核心发现

  • 定价能力确有提升:加入新因子后,CH-4模型的定价误差(GRS统计量)确实降低了,并且显著削弱了原有模型无法解释的异象。
  • 改进有限:然而,没有任何一个扩展后的五因子模型能够完全解释所有的市场异象。这表明A股市场的定价机制非常复杂。

第七部分:前沿方法——自纠偏机器学习

线性SDF假设的局限性

到目前为止,我们都假设SDF可以被因子线性近似。但这个假设不一定成立,SDF可能是因子的一个复杂的非线性函数。

我们需要一种方法,在SDF具有非线性结构的假设下,来识别和估计因子的定价能力。

自纠偏机器学习法 (ADML)

自纠偏机器学习 (Automatic Debiased Machine Learning, ADML),由Chernozhukov et al. (2022) 提出,正是为了解决这个问题。

核心思想

  1. 允许SDF是因子的一个未知的、一般的非线性函数 \(m_t = H(f_t)\)
  2. 使用通用的机器学习方法(如Lasso, 神经网络)来估计模型中的中间量。
  3. 通过引入一个巧妙构造的影响函数,来纠正由机器学习估计带来的偏差,从而可以对最终的参数进行有效的统计推断。

ADML的核心:双重稳健性

ADML方法具有一个非常理想的性质,称为双重稳健性 (double robust)

最终估计量的误差,是两个机器学习模型估计误差的乘积

这意味着,只要这两个机器学习模型中,有一个能够被一致地估计,我们对因子载荷的最终估计就是一致的。

这个性质大大增强了方法的稳健性。

ADML的数值模拟检验

为了验证ADML方法的有效性,研究者进行了蒙特卡洛模拟,比较了ADML估计量和不纠偏的Plug-in估计量。

ADML vs. Plug-in 左侧ADML的估计量分布无偏且集中在0附近。右侧Plug-in估计量分布存在明显偏差。 真值 (0) ADML (无偏, 渐进正态) 真值 (0) 偏差 Plug-in (有偏)

结论:ADML通过其纠偏机制,成功消除了机器学习带来的偏差,得到了无偏、渐进正态的估计量。

ADML实证发现:中美市场对比

共同点: - 与估值比率、盈利能力、投资相关的因子在两个市场都非常重要。

不同点

  • 动量和反转:在美国市场非常显著,但在中国A股市场不具有显著的增量定价能力。
  • 博彩效应:与特质波动率、最大日收益率等相关的“彩票类”因子,在中国市场非常重要,但在美国市场表现较弱。
  • 情绪因子:与换手率相关的因子在中国市场起着重要作用,但在美国不显著。

ADML因子张成检验:构建新模型

研究者利用ADML方法,从132个特征中筛选出边际贡献最显著的三个因子,构建了一个新的三因子模型 ADML3: 1. 有形资产 (tan) 2. 净股利支付率 (nopq) 3. 市销率 (spq)

表9解读:ADML3模型表现最佳

模型 平均定价误差 # p<0.05 不被解释
ADML3 0.23% 19
CH3 0.34% 45
CH4 0.32% 34
Q5 0.24% 35
SY4 0.38% 59
FF6 0.28% 48

核心发现

  • ADML3表现最优:ADML3模型的平均定价误差最低,无法解释的因子数量也最少。
  • 结论:这有力地说明,ADML方法确实能够挑选出具有优越定价能力的因子。

第八部分:结论与反思

机器学习在金融应用中的核心挑战

机器学习方法虽强大,但不能简单套用,因为金融数据有其独特性。

信号极弱,噪音极大

资产定价的信号在总收益方差中占比极小。大部分波动都是不可预测的“噪音”。

数据稀缺,目标不稳

股票交易历史短,时间序列样本少。金融市场的结构会随时间演变,预测目标本身就不稳定。

另一个挑战:对协方差矩阵的忽视

  • 金融应用的目标不同:在投资组合管理中,我们更关心整个投资组合的收益和风险,而不仅仅是单个资产的预测。
  • 协方差矩阵是关键:预测误差的协方差矩阵决定了最终投资组合的风险收益特征。
  • 普通ML方法的忽视:大多数机器学习方法很少关注对预测误差协方差矩阵的建模,这在金融应用中是一个巨大的缺陷。

本章总结:我们学到了什么?

  1. 高维挑战:传统计量方法在处理海量金融数据时面临过拟合等问题。
  2. ML解决方案
    • Lasso通过正则化进行变量选择。
    • IPCA通过工具变量和降维,构建了更稳健的动态因子模型。
    • 双重选择Lasso在高维环境下,为检验新因子的边际贡献提供了可靠的统计推断方法。
    • ADML允许SDF存在非线性,并通过双重稳健性纠正了机器学习的偏差。
  3. 实证发现:机器学习方法不仅在样本外预测上优于传统模型,还能帮助我们识别出更具定价能力的因子,并揭示了不同市场定价机制的差异。

未来展望:金融与机器学习的融合之路

机器学习正在深刻地重塑实证资产定价的研究范式。

  • 从“检验”少数理论驱动的因子,到从海量数据中“发现”新的定价模式。
  • 从线性假设到拥抱复杂的非线性关系。
  • 从关注个别系数的显著性,到更看重模型的样本外预测能力和经济价值。

作为未来的经济学家和金融从业者,掌握这些前沿工具,将是你们的核心竞争力。