因子信息增量检验

给定一个因子集合以及一个新因子,如何快速、准确而又低成本地判断它是否在预测前项收益率方面带来了新信息?

注意因子本身是信噪比极低的信号,噪声占据主导,因子之间做回归很大程度上是在研究噪声之间的关系,对真实信号几乎没有什么把控。因此最重大的课题就是:如何从巨量噪声中提取出真正的信号。


抛砖引玉,考虑以下模型:

假设未来收益率 rr 由 100 个信号 a1,...,a100a_1,...,a_{100} 完全确定:

r=a1+⋯+a100r=a_1+\cdots+a_{100}

并假设这些信号是独立同分布的标准正态分布。

已有一个因子 x1=a1+a2+a3+n1+⋯+n97x_1=a_1+a_2+a_3+n_1+\cdots+n_{97},其中 nin_i 为噪声,也均为标准正态分布,且与以上所有信号独立。那么拿它对 rr 做回归,可以得到

r=Cov(r,x1)Var(x1)x1+ε1=0.03x1+ε1r=\frac{Cov(r,x_1)}{Var(x_1)}x_1+\varepsilon_1=0.03x_1+\varepsilon_1

这个因子的 IC 为 0.030.03

现有一个新因子 x2=a1+a2+m1+⋯+m98x_2=a_1+a_2+m_1+\cdots+m_{98},可见它没有带来新的有效信号。类似地,可以得到

r=0.02x2+ε2r=0.02x_2+\varepsilon_2

这个因子的 IC 为 0.020.02

考虑两种情况:

  1. x1,x2x_{1},x_{2} 的噪声项两两独立
  2. x1,x2x_{1},x_{2} 的噪声项有相关性

先看第一种情况,如果我们做回归 x2∼x1x_2\sim x_1,可以得到

x2=0.02x1+ϵ3x_2 = 0.02x_1 + \epsilon_{3}

进一步可知,

ϵ3=0.98a1+0.98a2−0.02a3+∑i=198mi−0.02∑i=197ni\epsilon_{3} = 0.98a_{1}+0.98a_{2}-0.02a_{3}+\sum_{i=1}^{98} m_{i}-0.02\sum_{i=1}^{97} n_{i}

好,现在拿 ϵ3\epsilon_{3} 对 rr 做回归:

r≈0.0194ϵ3+εr \approx 0.0194\epsilon_{3}+\varepsilon

IC(r,ϵ3)≈0.0194IC(r,\epsilon_{3})\approx 0.0194

可见这个残差的 IC 与 x2x_{2} 几无差异,可能的解释是:因噪声的淹没,x2x_{2} 中几乎没有能被 x1x_{1} 解释的部分,因此残差保留的信息几乎与 x2x_{2} 本身无异。

下面考虑第二种情况,假设 mi=ni,i=1,…,97m_{i}=n_{i},i=1,\dots,97 ,此时 x2∼x1x_{2}\sim x_{1} 的结果是

x2=0.99x1+ϵ3x_{2}=0.99x_{1}+\epsilon_{3}

可得

ϵ3=0.01a1+0.01a2−0.99a3+0.01∑i=197mi+m98\epsilon_{3}=0.01a_{1}+0.01a_{2}-0.99a_{3}+0.01\sum_{i=1}^{97} m_{i}+m_{98}

r∼ϵ3r\sim\epsilon_{3} 的结果是

r≈−0.487ϵ3+εr\approx -0.487\epsilon_{3}+\varepsilon

IC(ϵ3,r)≈−0.068IC(\epsilon_{3},r)\approx -0.068

IC 翻转,且绝对值比原来 x2x_{2} 的 IC 大。一种可能的解释是:x1x_{1} 主要解释 x2x_{2} 中的噪声,剔除 x1x_{1} 的影响之后,得到了更纯净的信号。

更往细看,IC 翻转的原因是 x2x_{2} 相对 x1x_{1} 少了一个有效信号,导致残差项中 a3a_{3} 的系数绝对值大且为负数。可以预见,若 x2x_{2} 也含有 a3a_{3} ,残差的 IC 应该会非常小。

综上,

  1. 残差 IC 不变并不说明因子带来了新信息,而仅仅说明 x1x_{1} 几乎不能解释 x2x_{2},这很大程度上是因为噪声的主导
  2. 残差 IC 相对原因子发生变化,可能是消除了噪声的后果

所以这种做回归取残差,看残差的表现的做法是无法诊断因子是否带来新的有效信号的。


那么我们如何判断信息增量?

从 APT 模型角度出发,一个初始的想法是,考察加入新因子前后,两个最佳线性预测的性能。

记 rr 为前向收益率,xx 为 kk 维随机向量,代表 kk 个因子,则总存在 β\beta 使得

r=βT(1x)+ε,where E[ε]=0,Cov(x,ε)=0r=\beta^T\begin{pmatrix} 1 \\ x \end{pmatrix}+\varepsilon, \text{where } \mathbb{E}[\varepsilon]=0,\mathrm{Cov}(x,\varepsilon)=0

右边除了残差项就是 xx 对 rr 的最佳线性预测,记为 rx′r_{x}' 吧,我们想评价:给定解释变量 xx,它们对 rr 的最佳线性预测好不好。用 E[(r−rx′)2]\mathbb{E}[(r-r_{x}')^2] 作为指标,容易计算,这玩意儿就等于 Var(ε)Var(\varepsilon)。现在考虑加入新变量 zz 之后的最佳线性预测

rx,z′=αT(1xz)r_{x,z}'=\alpha^T\begin{pmatrix} 1 \\ x \\ z \end{pmatrix}

容易证明 E[(r−rx,z′)2]\mathbb{E}[(r-r_{ {x,z}'})^2] 不会比原来的大,因为多了一个变量,表达力肯定是更强的。

但这不是说得到什么信号都能塞到模型里,如果加入噪声,我们对模型的估计会收到影响,因此我们用下面的期望预测误差来评价我们估计出来的模型的性能:

记 r^\hat{r} 是用 OLS 估计的前向收益,XX 为样本矩阵,Var(ε)=σ2Var(\varepsilon)=\sigma^{2}

考虑一个测试点 (r0,x0)(r_{0},x_{0}) ,r0r_{0} 为实数,x0x_{0} 为向量。看期望预测误差:

E[(r0−r^0)2∣X,x0]=σ2[1+x0T(XTX)−1x0]\mathbb{E}[(r_{0}-\hat{r}_{0})^2\mid X,x_0] = \sigma^2[1+x_{0}^T(X^TX)^{-1}x_{0}]

假设 Ex0=0,Cov(x0)=Σ\mathbb{E}x_{0}=0, \mathrm{Cov}(x_{0})=\Sigma ,对上式再取条件期望,得

E[(r0−r^0)2∣X]=σ2[1+tr((XTX)−1Σ)]\mathbb{E}[(r_{0}-\hat{r}_{0})^2\mid X]=\sigma^2[1+tr((X^TX)^{-1}\Sigma)]

再假设训练数据(XX 的每一行) xi∼i.i.d.N(0,Σ)x_{i}\overset{i.i.d.}{\sim}N(0,\Sigma),则

XTX∼Wp(Σ,n)X^TX\sim W_{p}(\Sigma,n)

即 Wishart 分布,它的一个重要结论是

E[(XTX)−1]=Σ−1n−p−1\mathbb{E}[(X^TX)^{-1}] = \frac{\Sigma^{-1}}{n-p-1}

至此,再对 XX 取期望,得

E[(r0−r^0)2]=σ2[1+tr(Σ−1Σ)n−p−1]=σ2⋅n−1n−p−1\mathbb{E}[(r_{0}-\hat{r}_{0})^2] = \sigma^2\left[1+\frac{tr(\Sigma^{-1}\Sigma)}{n-p-1}\right] = \sigma^2\cdot \frac{n-1}{n-p-1}

用这个来衡量加入变量 zz 是否带来信息增量。为方便比较,我们这样添加新变量:

设 xx 对 zz 的最佳线性预测为 αT(1x)\alpha^T\begin{pmatrix}1 \\ x\end{pmatrix},记 z~=z−αT(1x)\tilde{z}=z-\alpha^T\begin{pmatrix}1 \\ x\end{pmatrix},这样,x,z~x,\tilde{z} 对 rr 的最佳线性预测为

βT(1x)+cz~ \beta^T\begin{pmatrix} 1 \\ x \end{pmatrix}+c \tilde{z}

注意 xx 的系数没有变化。记 ε=cz~+u\varepsilon = c \tilde{z}+u,则 Cov(z~,u)=0\mathrm{Cov}(\tilde{z},u)=0,这样一来,加入 z~\tilde{z} 的期望预测误差为 Var(u)⋅n−1n−p−2Var(u)\cdot \frac{n-1}{n-p-2},它比原来的小当且仅当

c2Var(z~)σ2>1n−p−1\frac{c^2Var(\tilde{z})}{\sigma^2}> \frac{1}{n-p-1}


因子信息增量检验
https://wtx17.github.io/2026/09/18/因子信息增量检验/
作者
wtx
发布于
2026年9月18日
更新于
2026年11月6日
许可协议