EM Algorithm for Factor Models (因子模型的 EM 算法)

大白话:因子模型里「因子收益」是看不见的,所以没法直接算「参数最可能是什么」。EM 算法的办法是先猜因子收益是多少(E 步),再按这个猜测去调参数(M 步),反复来回,每一轮都让「参数解释数据」的可能性变得更高。

定义。 期望-极大化 (EM) 算法在带潜因子收益的因子模型上的应用。 当因子收益 f_t 不可观测时,直接最大化边际对数似然 p(r_t \mid \theta) 是不可行的, 但完全数据对数似然 p(r_t, f_t \mid \theta) 是高斯的,且条件期望有闭式解。 反复迭代 E 步(计算 f_t 的后验)与 M 步(最大化期望完全数据对数似然), 可使边际似然单调改进。

一般配方

给定观测收益 r_t 与潜因子收益 f_t,模型为:

r_t \mid f_t \sim \mathcal{N}(B f_t, D), \quad f_t \sim \mathcal{N}(0, F)

参数 \theta = \{B, F, D\}。E 步:

p(f_t \mid r_t, \theta^{\text{old}}) = \mathcal{N}(\mu_{f \mid r}, \Sigma_{f \mid r})

其中

\Sigma_{f \mid r}^{-1} = F^{-1} + B^\top D^{-1} B, \quad \mu_{f \mid r} = \Sigma_{f \mid r} B^\top D^{-1} r_t

M 步:最大化

Q(\theta, \theta^{\text{old}}) = \mathbb{E}_{f_t \mid r_t, \theta^{\text{old}}}[\log p(r_t, f_t \mid \theta)]

对高斯模型,这给出 B、F、D 的闭式更新,所用的加权充分统计量为 E[r_t r_t^\top]、E[r_t f_t^\top]、E[f_t f_t^\top]。

为什么因子模型适合用 EM

  • 潜变量 f_t 是天然的(因子收益除了通过回归之外无法直接观测)。
  • 完全数据似然简单:高斯 \Rightarrow 有闭式解。
  • 收敛保证:边际对数似然非递减。
  • 缺失数据免费处理:用同一个后验把缺失的 r_{i,t} 边缘化即可。

增强风险模型中的闭式 M 步(Tzikas 等, 2026)

对固定基础载荷 B 与学习得到的瞬态载荷 X 所构成的增强模型, X 的 M 步化归为一个分块矩阵公式:

X = (S_{rg}^\top - B S_{fg}^\top) (S_{gg} - S_{fg} \Sigma_F^{-1} S_{fg}^\top + \Sigma_F^{-1})^{-1}

其中 S_{rg}、S_{fg}、S_{gg} 是 E 步得到的加权交叉矩矩阵。 \Sigma_B 与 D 的完整更新同样是闭式的。 论文报告在 Barra USE4 + 870 只股票的问题上,20–30 次迭代即收敛。

初始化策略

对瞬态因子增强模型:

  1. 在 EWMA 权重下把 r_t 对 B 做回归 → 残差 e_t。
  2. 对 e_t 的 EWMA 协方差做特征分解 → 前 k 个特征向量构成初始 X。
  3. 初始化 D,使之与 EWMA 样本协方差的对角一致。

失效模式与补救

失效模式 修复方式
D_{ii} \to 0(似然发散) 每次 M 步后施加逐元素下界 \varepsilon > 0。
收敛慢 Anderson 加速、SQUAREM,或在边际似然上做部分拟牛顿法。
局部极大值 多次随机重启;从 PCA 解热启动。
因子退化(X 秩亏) \ell_2 惩罚,或显式的低秩参数化。

关联页面

参考文献

Tzikas 等 (2026),见 summaries/202606-mle-transient-factor-mining/202606-mle-transient-factor-mining。