经典方法的困境:高维数据下的失灵
传统的线性模型(如Fama-MacBeth回归)是实证金融的基石,但在面对成百上千个潜在预测变量时,会遇到两大障碍:
1. 多重共线性
许多预测变量高度相关(如不同类型的动量或价值指标),导致模型估计不稳定,系数的经济意义难以解释。
2. 过拟合 (Overfitting)
模型在样本内表现完美,因为它学习到了数据中的“噪音”而非真实的“信号”,导致样本外预测能力极差。
过拟合的直观理解
“过拟合”就像一个学生,把练习册上的所有题目和答案都背了下来,但在真正的考试中遇到新题目时却一筹莫展。
过拟合 vs. 合理拟合
左侧图显示一条复杂曲线完美穿过所有数据点(过拟合),右侧图显示一条平滑曲线捕捉了数据的主要趋势(合理拟合)。
过拟合 (样本内 R² ≈ 1)
合理拟合 (泛化能力强)
机器学习的对策(1):正则化
核心直觉 :在拟合误差之外加入系数惩罚,改变偏差—方差权衡;是否改善样本外表现,取决于特征缩放、惩罚强度、样本与设计,并须在开发窗口验证。
正则化
一个天平,一端是“拟合优度”,另一端是“模型复杂度”,正则化是在两者之间取得平衡。
拟合优度
min RSS
模型复杂度
min Σ|β|
目标:在两者间取得平衡
min (RSS + λΣ|β|)
L1、L2 与弹性网的行为不同
Lasso(L1) :可能产生精确零系数;零与非零由惩罚、缩放、样本和相关设计共同决定。
岭回归(L2) :通常连续收缩系数而不产生精确稀疏解。
弹性网 :组合 L1 与 L2,在相关特征下兼顾稀疏倾向与稳定收缩。
非零系数是当前惩罚规格下的选择,不自动等于“真实重要变量”;正则化也不保证消除过拟合。
机器学习的对策(2):降维
核心直觉 :将大量相关的原始变量映射为少数构造变量。样本 PCA 主成分在所用样本内按构造正交,但截断会以丢失部分信息换取降维;这不等于消除了未来样本或其他模型中的全部共线性问题。
降维
许多原始变量(细线)汇入一个处理单元(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 系统比较了多类机器学习方法 (Gu 等 2020年 ) 。后续数字必须对应论文的具体表号、样本与度量,不能脱离原表解释。
他们系统性地比较了多种机器学习方法在美国股票收益率预测中的表现,堪称一场机器学习方法在金融预测领域的“奥林匹克竞赛”。
参赛选手包括 :
线性模型 :弹性网 (Elastic Net)
降维模型 :主成分回归 (PCR), 偏最小二乘 (PLS)
非线性模型 :回归树, 神经网络 (Neural Networks)
GKX (2020) 的论文内结果:模型表现
以下概括限于该论文的美国股票样本、预测设计和指标,不能直接外推到 A 股 (Gu 等 2020年 ) 。
竞赛结果 :
神经网络表现最佳 🏆
在论文报告的候选模型与样本中,神经网络的样本外指标较高。
回归树优于线性模型
论文内比较与非线性预测关系一致,但不构成因果识别。
浅层学习优于深层学习
论文内浅层结构的相对表现较好;是否适用于其他市场仍须重新验证。
GKX (2020) 的核心发现(2):重要特征
机器学习模型不仅能预测,还能告诉我们哪些特征最重要。最重要的预测特征大都与我们熟知的“异象”有关:
动量 (Momentum)
流动性 (Liquidity)
风险测度 (Risk Measures)
估值比率 (Valuation Ratios)
基本面信号 (Fundamental Signals)
短期反转 (Short-term Reversal)
这些是论文样本内的变量重要性结果。变量重要性解释模型预测函数,不等于理论验证或因果效应 (Gu 等 2020年 ) 。
中国市场迁移前的待检验假设
下列制度与投资者结构表述在本课件中尚无可定位来源和可复算结果,只能作为研究问题,不能作为事实前提。
散户主导
政府影响
中央控制的银行主导金融体系,市场自动修正机制可能受限。
卖空限制
导致负面信息难以及时反映在股价中,市场定价效率可能较低。
信息不对称
文献定位任务:未进入依据的历史作者名
当前状态 :旧课件中的部分作者名无法唯一定位版本、题名、样本与表号。
处理 :删除相应精确结论,不把作者名本身当作证据。
重新纳入条件 :补齐 DOI/URL、版本、原表号与复算口径。
温故知新: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^e_{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^e_{i,t} = \lambda_{0t} + \hat\beta_i'\lambda_t + u_{i,t} \quad \text{for } i=1, ..., N}
\]
这个回归是在每个时间点进行的。
口径 :\(\lambda_{0t}\) 是 zero-beta/intercept,\(u_{i,t}\) 是横截面残差;二者都不是第一步资产截距 \(\alpha_i\) 。
产出 :一系列随时间变化的风险溢价估计值 \(\hat{\lambda}_t\) 。
FM回归第三步:汇总与检验
目标 :得到因子风险溢价的最终估计值,并进行统计检验。
方法 :将第二步中得到的每个时期的风险溢价 \(\hat{\lambda_t}\) 取时间序列上的平均值。
\[
\large{\bar\lambda = \frac{1}{T} \sum_{t=1}^{T} \hat\lambda_t}
\]
统计推断 :标准误基于 \(\hat\lambda_t\) 时间序列,并按序列相关使用预先说明带宽与小样本处理的 HAC。第一步生成的 \(\hat\beta_i\) 还可能需要 Shanken、相应 GMM 或 bootstrap 修正,取决于因子可交易性与模型设定。
检查:三个截距/残差不能互换
请分别标记第一步 \(\alpha_i\) 、第二步 \(\lambda_{0t}\) 与 \(u_{it}\) 的含义;再说明 \(\lambda_t\) 的标准误为何不能只按横截面残差计算。
反馈:先分清时间序列与横截面对象
\(\alpha_i\) :资产 \(i\) 的时间序列截距。
\(\lambda_{0t}\) :时期 \(t\) 的横截面 zero-beta/intercept。
\(u_{it}\) :时期 \(t\) 的横截面残差。
推断来源 :风险价格标准误来自 \(\lambda_t\) 时间序列。
订正路径 :依次回看时间序列回归 、横截面回归 与汇总和标准误 。
FM回归的挑战:EIV问题
FM回归的一个核心计量问题是 变量误差 (Errors-in-Variables, EIV) 。
问题来源 :第二步的横截面回归中,使用的自变量 \(\hat{\beta_i}\) 本身是第一步回归的估计值 ,而不是真实的 \(\beta_i\) 。
后果边界 :生成 beta 会影响第二步点估计与推断;方向与一致性取决于 \(N,T\) 渐近序列、因子可交易性、第一步误差和两步规格。
推断修正 :Shanken (1992) 讨论估计 beta 引起的修正;具体标准误仍取决于模型、样本与假设 (Shanken 1992年 ) 。
禁止简化 :不能断言风险价格必然偏差且不一致,也不能把文献名当作自动校正按钮。
机器学习的切入点:Lasso回归
问题区别 :FM 处理资产 beta 的横截面定价;高维股票特征预测是另一估计问题。
Lasso 工具 :在最小二乘目标中加入系数绝对值之和,即 L1 惩罚。
稀疏效果 :在控制拟合误差的同时,允许部分系数精确等于零。
边界 :Lasso 不自动修正 FM 的生成 beta EIV;目标也不是脱离预测风险追求“零越多越好”。
Lasso回归的目标函数
Lasso通过最小化以下目标函数来求解系数向量 \(g_t\) :
\[
\large{\hat{g}_t^{Lasso} = \underset{g}{\arg\min} \underbrace{\frac{1}{2N}\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 的惩罚强度统一写作 \(\gamma\) 。
软件映射 :当前归一化下,sklearn.linear_model.Lasso 的 alpha \(=\gamma\) 。
避免混淆 :文献中的同目标 \(\lambda\) 可对应 \(\gamma\) ,但它不同于 FM 风险价格 \(\lambda_t\) 与 SDF 载荷 \(\lambda_g\) ;RSS 归一化改变时需重新缩放。
O2 核心任务:Lasso 规格与验证
公式说明 :拟合项与 L1 惩罚各自的角色。
开发期证据 :三个预设惩罚强度的扩展窗结果。
比较对象 :训练均值基线、非零系数数目与确定规格。
禁止 :只交系数图,或用最终测试期改选候选。
O2 练习:先完成再查看答案
完成内容公式标注、逐窗表与一句不采用条件后再看反馈;任一预处理若在全样本拟合,请重做重做。
O2 反馈:计算对象与采用标准
稀疏机制 :L1 允许系数精确为零。
选择规则 :惩罚强度只用开发窗选择;同窗训练均值是最低基线。
采用条件 :确定候选在最终测试期保持优势,且系数与误差稳定。
否则结论 :当前设计不采用该候选。
订正路径 :拟合项、L1 项或 \(\gamma=\texttt{alpha}\) 映射有误,回看目标与参数映射 。
Lasso为何可能产生稀疏估计
L1惩罚项的几何形状(菱形)是Lasso实现变量筛选的关键。
Lasso vs. Ridge
左图Lasso的菱形约束区域更容易在角点与等高线相切,导致系数为零。右图Ridge的圆形约束区域通常在非轴位置相切。
β₁ β₂
Lasso (L1)
解: β₁=0 (稀疏解)
β₁ β₂
Ridge (L2)
解: β₁≠0, β₂≠0
条件结论 :L1 约束的角点使精确零更可能出现;实际非零数仍由惩罚强度、特征缩放、样本与设计决定,弱惩罚下可以并不稀疏。
Lasso代码示例
下面是一个用Python scikit-learn 实现Lasso回归的简单例子。
代码
# 为“Lasso代码示例”导入 `numpy` 并绑定 `np`,用于执行当前任务的数组、数值或随机机制计算。
import numpy as np
# 为“Lasso代码示例”导入 `pandas` 并绑定 `pd`,用于整理当前任务的表格、字段与时间索引。
import pandas as pd
# 为“Lasso代码示例”,从 `sklearn.linear_model` 导入`Lasso` 用于拟合带 L1 惩罚的线性回归。
from sklearn.linear_model import Lasso
# 为“Lasso代码示例”,导入 `StandardScaler`,由全部机制拟合样本逐特征估计均值与标准差;本页不作时间外检验。
from sklearn.preprocessing import StandardScaler
# 为“Lasso代码示例”导入 `matplotlib.pyplot` 并绑定 `plt`,用于构建当前任务的坐标轴并呈现比较结果。
import matplotlib.pyplot as plt
# 固定随机种子,使稀疏系数与 Lasso 收缩机制示例可重复。
np.random.seed(42 )
# 固定样本数与特征数,界定“Lasso代码示例”的机制演示规模。
n_samples, n_features = 100 , 20
# 生成固定种子的 100×20 高斯特征矩阵,演示 Lasso 的稀疏恢复机制。
X = np.random.randn(n_samples, n_features)
# 假设只有前5个特征是真正重要的
true_coef = np.zeros(n_features)
# 只给前五项赋非零真系数,明确其余十五项都是噪声特征。
true_coef[:5 ] = [5 , - 4 , 3 , - 2 , 1 ]
# 用线性信号 `X @ true_coef` 加标准差为 2 的高斯噪声生成响应。
y = X @ true_coef + np.random.randn(n_samples) * 2
# 创建由全部机制拟合样本逐特征估计统计量的缩放器。
scaler = StandardScaler()
# 逐特征估计这组机制拟合样本的均值与标准差,使 20 个特征处在可比尺度。
X_scaled = scaler.fit_transform(X)
# 建立并拟合 Lasso,使 L1 惩罚在标准化机制样本上产生稀疏系数。
# 按本章半均方残差目标,估计器 `alpha` 与理论惩罚强度 `γ` 数值相同;更强惩罚通常加强收缩但不保证支持集单调。
lasso = Lasso(alpha= 1.0 )
# 在标准化教学样本上估计当前 alpha 的 Lasso 系数,用于展示 L1 变量选择而非样本外结论。
_ = lasso.fit(X_scaled, y) # 抑制无表头 estimator repr,后页以具名系数图报告证据
Lasso 系数恢复图
代码
# 准备在单一坐标轴上比较真实系数与 Lasso 估计系数,不绘制预测值或观测响应。
# 创建 `fig, ax` 画布,承载“Lasso在稀疏生成机制中的系数收缩示意”的并排视觉比较。
fig, ax = plt.subplots(figsize= (9 , 4 ))
# 用 `ax.stem` 绘制离散系数的棒状位置与高度。
ax.stem(np.arange(n_features), lasso.coef_, markerfmt= 'o' , basefmt= " " )
# 以 `np.arange(n_features)` 为横轴、`true_coef` 为纵轴绘制曲线,展示“Lasso在稀疏生成机制中的系数收缩示意”。
ax.plot(np.arange(n_features), true_coef, 'r--' , label= 'True Coefficients' )
# 将横轴标为“特征索引”,明确横向编码的变量。
ax.set_xlabel('特征索引' , fontsize= 16 )
ax.set_ylabel('Lasso 系数' , fontsize= 16 ) # 标明纵轴为正则化后的系数尺度
ax.set_title('标准化教学样本的 Lasso 系数' , fontsize= 18 ) # 说明图中系数来自标准化教学样本
ax.tick_params(labelsize= 16 ) # 放大刻度以保证课堂投影可读
# 将纵轴标为“系数大小”,明确纵向编码的变量。
ax.set_ylabel('系数大小' , fontsize= 16 )
# 将图题设为“Lasso回归的系数收缩效果”,直接说明当前图形的比较目的。
ax.set_title('Lasso回归的系数收缩效果' , fontsize= 18 )
# 显示“Lasso代码示例”图例,使颜色或线型与比较对象一一对应。
ax.legend(fontsize= 16 )
# 显示 Lasso 估计系数的茎叶标记与真实系数虚线,检查 L1 惩罚下的变量筛选和收缩幅度。
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{\mathcal{L}_t(g)=\sum_{i=1}^{N_t}\left(\tilde r_{i,t+1}-\sum_{j=1}^{J}m_{t,j}(z_{i,t,j})\right)^2.}
\]
组 Lasso 的目标函数写为:
\[
\large{\hat g_t^{NPLasso}=\underset g{\arg\min}\left\{\mathcal L_t(g)+\gamma_{\mathrm{group}}\sum_{j=1}^{J}\sqrt{\sum_{k=1}^{L+2}g_{t,j,k}^{2}}\right\}.}
\]
惩罚项变成组内系数平方和的平方根之和。某组在给定样本、缩放与惩罚强度下可能整体归零;这表示该拟合规格未保留该组,不是特征真实无关的证明。
Lasso的一致性问题与自适应Lasso
标准 Lasso :选择一致性需要不可表示条件等设计约束、足够的最小信号、合适惩罚率与噪声条件。
条件失败 :即使样本增大,也可能无法稳定恢复真实支持集。
自适应 Lasso :oracle/选择一致性还依赖初始估计、权重、设计、信号、噪声与惩罚率。
有限样本边界 :上述结论不能无条件推广。
来源:Zhao & Yu (2006), JMLR ;Zou (2006), JASA 。
核心思想:按初始估计分配不同惩罚
初始估计绝对值较大:惩罚较小。
初始估计绝对值较小:惩罚较大。
是否改善选择稳定性,仍由条件与样本外证据决定。
自适应Lasso的实现:两步法
第一轮训练 :运行一个标准的Lasso(或岭回归)得到初始的系数估计 \(\hat{g}^{(1)}\) 。
构造权重 :根据第一轮的系数估计,为每个变量 \(j\) 构造一个权重 \(w_j = 1 / |\hat{g}_j^{(1)}|^\delta\) (通常 \(\delta=1\) )。
第二轮训练 :在 Lasso 的惩罚项中加入这个权重,\(\gamma_{\mathrm{adapt}} \sum_{j=1}^{K} w_j |g_{j,t}|\) 。
只有当初始估计、权重指数与惩罚率合适,并满足稀疏性、设计矩阵与信号强度等条件时,两步法才可能获得选择一致性;有限样本仍须报告选择稳定性与样本外误差。
关键步骤:如何选择惩罚参数 \(\gamma\) ?
Lasso 模型中的惩罚参数 \(\gamma\) 是一个超参数 (hyperparameter) ,必须只在开发窗按事先确定候选选择:
\(\gamma>0\) 很小时:解通常趋近未惩罚最小二乘解,但不与 OLS 目标完全相同;设计矩阵可能使解不唯一,样本外泛化仍须验证。
\(\gamma\) 足够大时:受惩罚的斜率可以全部归零。
默认 fit_intercept=True 且截距不受罚时,剩余模型给出训练响应均值。
这是本章的最低基线,不能预先判定“毫无用处”。
交叉验证 (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)
等等…
稀疏性是可检验的建模假设
少数因子模型的存在不证明大部分异象由少数风险维度生成。稀疏性必须在给定资产集合、候选因子、样本与损失下,以最终测试定价误差、选择稳定性和经济限制检验。
主流模型 :
Fama-French五因子模型 (FF5)
Hou-Xue-Zhang四因子模型 (q4)
Barillas and Shanken (2018) 的模型比较框架;论文讨论的是模型比较证据,不等于预先指定一套对所有市场普适的“六因子模型” (Barillas 和 Shanken 2018年 )
来源检查:无唯一来源的历史数表已移除
移除内容 :无法唯一定位论文版本、原表号、样本、单位、权重与标准误定义的历史数值。
不再绘图 :不以这些数字比较中美因子均值或方法排序。
重新使用条件 :收益、\(t\) 统计量或样本外 \(R^2\) 必须连同原始表/图、样本期、单位、组合权重、基准预测与标准误口径进入依据。
结论边界 :任何一项缺失,都不能作市场比较。
O3 核心边界:因子模型的新视角 IPCA
IPCA 将公司特征映射为随特征变化的因子暴露。下述理论设定用于理解模型结构;本章不再把无法核对的历史表当作中国市场验证。
IPCA的理论设定
IPCA 假设股票 \(i\) 在 \(t+1\) 期的收益率 \(x_{i,t+1}\) 由一个线性因子模型驱动。采用列向量约定:\(\mathbf c_{it}\in\mathbb R^L\) 、\(\boldsymbol\beta_{i,t+1}\in\mathbb R^K\) 、\(\mathbf f_{t+1}\in\mathbb R^K\) 。
\[
\large{x_{i,t+1} = \boldsymbol\beta_{i,t+1}' \mathbf f_{t+1} + \epsilon_{i,t+1}}
\]
\(\mathbf f_{t+1}\) 是 \(K\) 维未知的潜在因子 ,与载荷映射参数共同估计;它不是由公司特征直接变换得到的对象。
核心创新 :IPCA 假设时变因子载荷 \(\boldsymbol\beta_{i,t+1}\) 由上一期 \(t\) 的可观测公司特征 \(\mathbf c_{it}\) 线性参数化:
\[
\large{\boldsymbol\beta_{i,t+1} = \Gamma_\beta' \mathbf c_{it}\in\mathbb R^K,\qquad \Gamma_\beta\in\mathbb R^{L\times K}}
\]
\(\Gamma_\beta'\) 的维度是 \(K\times L\) ,所以它把 \(L\) 维特征列向量映射成 \(K\) 维条件载荷列向量。\(\Gamma_\beta\) 与潜在因子序列都是 IPCA 需要联合估计的对象。
IPCA 与 PCA:不同信息集与可检验命题
IPCA vs PCA
PCA只使用收益矩阵提取因子;IPCA联合使用收益与公司特征,特征通过参数矩阵形成条件载荷,潜在因子另行联合估计,二者共同重构收益。
收益矩阵 X_t
经典 PCA
潜在因子 f_t
收益 X_t + 特征 C_t C_t 每行是 c_it′
IPCA 联合估计
条件载荷 B_t=C_tΓβ
潜在因子 f_t(另行估计)
共同进入收益方程:x_t+1=C_tΓβf_t+1+ε_t+1
可检验命题 :IPCA利用公司特征描述时变载荷,但是否降低最终测试定价误差、是否稳定以及经济含义是否成立,都取决于点时数据、规格与评价指标 (Kelly 等 2019年 ) 。
IPCA的参数估计
将 \(C_t\in\mathbb R^{N_t\times L}\) 的第 \(i\) 行定义为 \(\mathbf c_{it}'\) ,则 \(C_t\Gamma_\beta\in\mathbb R^{N_t\times K}\) 的第 \(i\) 行就是 \(\boldsymbol\beta_{i,t+1}'\) 。模型的向量形式为:
\[
\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) 求解。
初始化 :对 \(\Gamma_\beta\) 进行一个初始猜测。
交替迭代 :
给定 \(\Gamma_\beta\) ,求解 \(\mathbf{f}_{t+1}\) : 对每个时刻 \(t\) 进行OLS回归。
给定 \(\mathbf{f}_{t+1}\) ,求解 \(\Gamma_\beta\) : 对所有数据进行OLS回归。
终止条件 :重复步骤2,直到估计值收敛。
高级方法运行结果
IPCA
仅理论
固定 \(K\) 、点时收益—特征面板、扩展窗口、最终测试定价误差与不确定性
非线性组 Lasso
仅理论
折内基函数与分组、惩罚选择、点时公开面板及最终测试比较
自适应 Lasso
仅理论
初始估计、权重与惩罚率条件、选择稳定性及最终测试比较
双重选择
算法检查
两次选择集、并集与系数稳定性;未提供有效标准误,不作边际贡献推断
ADML
仅理论
明确定义的估计对象、折外 nuisance、正交得分、置信区间与失败诊断
说明 :以上方法均不构成本章“已经运行验证”的性能结论;IPCA 与 ADML 仅用于辨析理论边界,本章没有实际估计它们。理论来源:IPCA (Kelly 等 2019年 ) ;ADML (Chernozhukov 等 2022年 ) 。
O3 IPCA 适用范围任务
独立填写五格:
收益矩阵与特征矩阵的信息时点。
\(C_t\Gamma_\beta f_{t+1}\) 三个对象及维度。
预先固定的 \(K\) 。
扩展窗与最终测试定价误差。
数据、识别或稳定性失败时的撤回结论。
这里只评边界,不要求伪造 IPCA 运行结果。
O3 练习:先完成再查看答案
提交一张五格卡;缺信息时点、最终测试指标或结果不理想时如何解释不得查看反馈,也不得进入 O3 达成记录。
O3 反馈:可自查边界
信息时点 :\(C_t\) 只含当时可得特征。
对象映射 :\(\Gamma_\beta\) 把特征映射到载荷,\(f_{t+1}\) 是潜在因子。
验证设计 :\(K\) 预先确定;与 PCA 在同一扩展窗和最终测试定价误差下比较。
证据不足 :缺点时面板、稳定性或不确定性时,只能写“尚无公开性能证据”。
【可选拓展】检查:IPCA 的高 p 值
独立作答 :若事先确定 IPCA 规格的 alpha 联合检验得到较高 p 值,哪项结论成立?A“该模型为真”;B“本检验未拒绝原假设”;C“该模型解释全部收益”。
反馈 :只有 B。再写出“功效不足与多 K 选择可能掩盖偏离”才算完整;选择 A/C 表明把未拒绝误当作证明。
资产定价的核心:随机贴现因子(SDF)
在无套利且存在严格正 SDF 等条件下,被定价资产可用 Euler 条件表述:
\[
\large{P_t = E_t[M_{t+1} X_{t+1}]}
\]
\(P_t\) : 资产在 \(t\) 期的价格。
\(X_{t+1}\) : 资产在 \(t+1\) 期的 payoff(现金流或价格,不是 return)。
\(M_{t+1}\) : 随机贴现因子。
对 gross return \(R_{t+1}=X_{t+1}/P_t\) ,Euler 条件是 \(1=E_t[M_{t+1}R_{t+1}]\) ;对 excess return,可写 \(E_t[M_{t+1}R^e_{t+1}]=0\) 。
两状态检查:先归一化 SDF,再核对 Euler 条件
两状态等概率,\(R_f=1.02\) ,原始权重 \(m=(1.2,0.8)\) 。先令 \(M=m/(E[m]R_f)\) ,再给资产 gross returns \(R=(0.8,1.35)\) 。
独立计算:\(E[M]\) 、\(E[MR]\) 、\(Cov(M,R)\) 的符号,以及 \(E[R]-R_f\) 。最后说明这里的 \(R\) 为什么不能称为 payoff 或 excess return。
反馈:Euler 成立时,负协方差对应正风险溢价
归一化结果 :\(M=(1.17647,0.78431)\) ,\(E[M]=0.980392=1/1.02\) 。
Euler 检查 :\(E[MR]=1\) 。
风险溢价 :\(E[R]=1.075\) 、\(Cov(M,R)\approx-0.05392\) ,故 \(-R_fCov(M,R)=0.055=E[R]-R_f\) 。
对象边界 :\(R\) 是 gross return;payoff 是 \(X=PR\) ;excess return 是 \(R-R_f\) 。
订正路径 :混淆三种对象,回看 SDF 定义 。
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与风险溢价的关系
若无风险 gross return \(R_{f,t}\) 在 \(t\) 已知,则 \(E_t[M]=1/R_{f,t}\) ,并由 \(1=E_t[M]E_t[R]+Cov_t(M,R)\) 得:
\[
\large{E_t[R] - R_{f,t} = -R_{f,t}\,Cov_t(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 与 beta 表示之间需要明确资产集合、矩存在与非奇异协方差、截距/无风险口径。只有因子可交易并张成相关 payoff 时,风险价格才可由因子均值与协方差映射;不可交易代理或未张成时只是矩条件表示,不自动等价于收益生成模型。
\[
\large{E(R^i) = \gamma + \lambda'\beta_i}
\]
核心结论 :先检查 payoff/return、gross/excess、\(E_t[M]\) 、因子可交易性与张成,再讨论具体 beta 表示。
检查:SDF 与双重选择
独立作答 :若近似稀疏失败,或两次 Lasso 都漏掉弱但联合重要的控制,双重选择是否仍保证有效推断?为什么?
反馈:两次选择覆盖两条遗漏路径
结论 :不能保证。
成立条件 :目标参数、近似稀疏、信号与正则性、误差结构和有效方差估计均满足要求。
失败机制 :弱但联合重要的控制若被两次选择同时漏掉,正交余项条件可能失败。
学习路径 :答错回看两条选择路径;答对进入算法页。
新的挑战:高维环境下的因子筛选
我们想知道,在一个包含了所有已知因子 \(h_t\) 的“基准模型”之上,一个新的因子 \(g_t\) 是否具有额外的 解释能力?
这等价于检验这个新因子在SDF中的载荷 \(\lambda_g\) 是否显著不为零。
问题 :当基准因子 \(h_t\) 很多时,未正则 OLS 可能不可识别或估计不稳定,并面临过拟合风险。
解决方案:双重选择Lasso
Feng, Giglio, and Xiu (2020) 提出了一种基于 双重选择Lasso (Double-Selection Lasso) 的方法来检验新因子 (Feng 等 2020年 ) 。
核心思想 :在论文的目标参数、近似稀疏与正则性条件下,分别选择结果方程和处理方程的控制变量并取并集,以降低遗漏重要控制的一阶风险;不保证选择全部混杂、无偏或因果识别。
双重选择Lasso的步骤
双重选择Lasso流程
一个三步流程图:第一步Lasso选出与收益相关的因子,第二步Lasso选出与新因子相关的因子,第三步用合并后的因子集进行OLS回归。
第1步: Lasso E(r) on h 选出 I₁
第2步: Lasso g on h 选出 I₂
合并控制变量 I = I₁ ∪ I₂
第3步: OLS E(r) on (g, h_I)
在论文给定的稀疏性、正则性与样本条件下,这个三步法支持对新因子载荷 \(\hat{\lambda}_g\) 的有效推断;课堂流程图不能替代对这些假设的检查 (Feng 等 2020年 ) 。
双重选择 Lasso:从理论到公开任务
双重选择分别在结果方程和处理变量方程中筛选控制变量,再取并集进入最终低维模型。它降低“只按结果相关性筛选”漏掉混杂控制的风险,但不自动保证因果识别;后文综合项目把它作为预测与系数稳定性候选,与 Lasso、Ridge 和浅层森林在同一扩展窗口比较。
线性SDF假设的局限性
到目前为止,我们都假设SDF可以被因子线性近似。但这个假设不一定成立,SDF可能是因子的一个复杂的非线性函数。
我们需要一种方法,在SDF具有非线性结构 的假设下,来识别和估计因子的定价能力。
O4 核心比较:自纠偏机器学习法 (ADML)
自动去偏机器学习 (Automatic Debiased Machine Learning, ADML) 的一般框架见 Chernozhukov, Newey, and Singh (2022) (Chernozhukov 等 2022年 ) 。把它用于特定 SDF/因子检验还需要额外的识别、交叉拟合与正则性条件。
核心思想 :
允许SDF是因子的一个未知的、一般的非线性函数 \(m_t = H(f_t)\) 。
使用通用的机器学习方法(如Lasso, 神经网络)来估计模型中的中间量。
通过引入一个巧妙构造的影响函数 ,来纠正 由机器学习估计带来的偏差,从而可以对最终的参数进行有效的统计推断。
正交化与乘积余项的条件
这是概念导读,不是具体得分推导。有效推断至少需要:
识别与 Neyman orthogonality。
cross-fitting 与适合依赖结构的切分。
nuisance 的 \(L_2\) 误差乘积率 \(o_p(n^{-1/2})\) 。
有限矩、overlap/权重控制与一致方差估计。
O4 有界比较任务
在一张两列表中比较:双重选择用两次 Lasso 选择集并集后做低维估计;ADML 需要明确估计对象、正交得分、折外交叉拟合、nuisance 乘积率与一致方差。各写一个结果不理想时如何解释,禁止声称二者自动建立因果识别。
O4 练习:先完成再查看答案
先交比较表与失败案例卡,再进入反馈;只写“ADML 更先进”或省略识别条件均不通过。
O4 反馈:正交化不等于免检
流程
\(S_Y\cup S_D\) 后低维估计
训练折拟合 nuisance;折外聚合正交得分
正交对象
并集覆盖两条遗漏路径;非一般 Neyman 正交
目标参数绑定 Neyman-orthogonal score
交叉拟合
不自动获得;终式仍须匹配依赖结构
必须按公司/时间依赖做折外交叉拟合
速率与方差
近似稀疏/选择正则性;面板一致方差
\(L_2\) 误差乘积 \(o_p(n^{-1/2})\) ;一致方差
方法失败
并集漏关键混杂,或终式共线/样本过小
overlap差、权重爆炸、双 nuisance 错设或切分错误
影响函数检查
不适用;并集不替代识别诊断
不能 省略 cross-fitting、重叠/矩条件和有限样本诊断
作答要求 :流程、正交、cross-fitting、乘积率、方差、两种失败与影响函数共 8 分;至少 7 分且不得声称自动因果识别。未达标者返回 相关内容 与上一页补齐后重交 (Chernozhukov 等 2022年 ) 。
数值机制示意(未运行 DGP)
下图是机制示意,不是论文模拟结果的复刻。实际比较必须报告数据生成过程、样本量、重复次数、偏差、覆盖率与标准误。
ADML vs. Plug-in
假设数据生成过程下的概念示意:正交得分相对直接 plug-in 对 nuisance 小扰动的一阶敏感度更低,不是实证结果。
真值 (0)
正交估计量示意
真值 (0)
偏差
直接 plug-in 示意
边界 :在论文假设与实现正确时,正交化/去偏可支持渐近推断;本示意图不能证明有限样本“消除偏差” (Chernozhukov 等 2022年 ) 。
ADML 的证据边界
删除证据 :ADML3 的精确收益、异常定价组合数和中美比较缺少唯一可追溯来源。
保留目标 :解释正交化、交叉拟合和双重稳健各自解决的问题。
禁止结论 :缺点时样本、识别假设、标准误与最终测试验证时,不得写成中国市场经验结果。
机器学习在金融应用中的核心挑战
机器学习方法虽强大,但不能简单套用,因为金融数据有其独特性。
信号极弱,噪音极大
资产定价的信号在总收益方差中占比极小。大部分波动都是不可预测的“噪音”。
数据稀缺,目标不稳
股票交易历史短,时间序列样本少。金融市场的结构会随时间演变,预测目标本身就不稳定。
另一个挑战:对协方差矩阵的忽视
金融应用的目标不同 :在投资组合管理中,我们更关心整个投资组合 的收益和风险,而不仅仅是单个资产的预测。
协方差矩阵是关键 :预测误差的协方差矩阵 决定了最终投资组合的风险收益特征。
普通ML方法的忽视 :大多数机器学习方法很少关注对预测误差协方差矩阵的建模,这在金融应用中是一个巨大的缺陷。
阶段小结:我们学到了什么?
高维挑战 :传统计量方法在处理海量金融数据时面临过拟合等问题。
ML方法状态 :
Lasso 通过正则化进行变量选择。
IPCA 把公司特征映射为条件载荷;本章只完成理论研读,未验证其样本外优势。
双重选择Lasso 在相应稀疏性、识别和标准误条件下支持新因子边际贡献检验。
ADML 可允许非线性辅助模型,并用正交矩条件降低一阶估计误差的影响;本章只学习原理,不报告实证结果。
如何下结论 :是否优于传统模型必须由同一数据、同一基线和最终测试决定;不能用来源不清的旧数表证明市场差异或方法普遍优越。
未来展望:金融与机器学习的融合之路
机器学习正在深刻地重塑实证资产定价的研究范式。
从“检验”少数理论驱动的因子,到从海量数据中“发现”新的定价模式。
从线性假设到拥抱复杂的非线性关系。
从关注个别系数的显著性,到更看重模型的样本外预测能力和经济价值。
作为未来的经济学家和金融从业者,掌握这些前沿工具,将是你们的核心竞争力。