glmos-code-explain

研报学习系列中,我将摘选出我认为比较有用的一些文字和问题,并会针对其中部分内容在之后的文章中给出解释和答案。欢迎持续关注。

一、引言

1.1 引言

量化选股模型可以分为Alpha模型、风险模型与组合优化三个部分,其中:

  • Alpha模型对组合收益起决定性作用
  • 风险模型负责控制风险、稳定收益
  • 组合优化负责精确控制,使得组合满足换手率、跟踪误差等投资限制

由于Alpha的重要性,机构投资者的大部分研究精力主要集中于Alpha模型这一块。而目前,市场上做Alpha模型主要有两个方向:

  1. 精英型: 寻找IC高、IR稳定、表现优秀的“精英”因子,用少量的这些因子来构建组合;
  2. 群众型: 建造一个大型Alpha因子库,单个Alpha的表现可能不是非常出众,但它能贡献独立的Alpha信息源,有助于稳定收益。

后者更符合分散风险的量化投资基本原理,但大型Alpha因子库在提供多样Alpha源的同时,也带来大量无效和重复信息。若信息汇总处理不当,会使得不同Alpha源被人为的放大或缩小权重,最终影响组合表现。另外,面对一个大型Alpha因子库,投资者在找到一个新的Alpha因子时,有必要思考这个因子是否提供了新的Alpha源或只是把现有的Alpha因子库的因子信息进行了切分重组

1.2 报告贡献

本报告将提供一些统计检验和优化工具来解决这些问题,也即:

  • 如何处理无效和重复信息?
  • 新的Alpha因子是否真的很“新”?

二、资产定价理论基础与实证检验

2.1 CAPM与APT

2.1.1 CAPM

由于模型假设太多而且过强,已经有非常多的实证研究发现 CAPM 在真实市场中并不成立;但CAPM理论的基本思想仍对当下研究有很大借鉴意义。

CAPM的核心假设有三条:

  1. 投资者基于Mean-Variance效用函数来构造组合,即在达到预期收益的限制条件下,让组合收益的方差最小;
  2. 市场处于均衡状态,即所有投资者基于Mean-Variance构造组合产生的对某资产的需求总和等于该资产的总供给,也就是该资产的市值;
  3. 市场存在无风险资产,可以任意买卖。

2.1.2 APT

APT(Arbitrage Pricing Theory)的模型假设相对于CAPM要弱很多,其中核心假设有两条:

  1. 市场上不存在无风险套利机会(或者渐进套利机会)

  2. 风险资产的收益率由$K$个风险因素$F_1,F_2,\cdots,F_K$线性决定,即风险资产$i$的收益率可以表示为

    $$
    R_i=a_i+b_{i,1}F_1+b_{i,2}F_2+\cdots+b_{i,K}F_K+\varepsilon_i\tag{2.1}
    $$

    其中$E(\varepsilon_i)=0,E(\varepsilon_i\varepsilon_j)=0,E(F_K)=0,E(\varepsilon_iF_k)=0,E(F_kF_l)=0,1\le i,j\le N,1\le k,l\le K$

量化实务中,不论是P-quant还是Q-quant,大多采用的是APT框架。

2.2 定价因子检验

2.2.1 因子动物园(Factor Zoo)

运用 APT 的第一步是找到影响股价的因子,寻找的方法主要是基于市场实际观测到的价格差异现象和投资者使用的投资逻辑。这类研究中最有影响力的莫过于 Fama&French(1993)提出的三因子模型,在 CAPM 市场因子的基础上增加了市值因子和 PB 估值因子,并构造了 SMB 和 HML两个多空组合,把两个组合的月度收益率用作市值因子和 PB 因子风险溢价的观测值,最后得到结论“股票价格的大部分波动都可以由市场、市值和估值三个因子解释”。

在理解Fama&French结论的时候,必须注意以下两点

  • 因子对股价时间序列变化和横截面差异的解释程度不一样,Fama&French三因子时间序列上的方差解释度超过90%,但横截面上的解释度大概在75%左右。
  • **Fama&French的结论并非针对个股股价波动。**如果用个股的收益率作为因变量进行回归,EIV问题将十分明显。因此Fama&French用的是市值因子和PB估值因子做5 x 5交叉划分得到的25个组合的月收益率作为因变量进行回归,三因子解释的是这个25个股票组合的价格变动。

继该开创性工作后,理论和学术界开始了大规模的新因子寻猎,但后来随着寻猎的不断深入,有很多定价因子被挖掘了出来。那么,“到底有多少因子真正提供了新的信息源?”“有多少只是现有信息的切分组合?”“有多少是数据挖掘的结果?”这是目前资产定价理论界的研究热点。

2.2.2 风险溢价与风险暴露

在确定要考察的定价因子后,要到现实金融市场中去找数据来验证因子有效性,风险溢价或风险暴露必须有一个有对应的观察值。

  • 学术研究的做法是从风险溢价出发,利用收益率作为该因子风险溢价的观察值;
  • 实务界的做法(如BARRA)更多是从因子暴露出发,用因子数值的标准化得分作为因子暴露的观察值。

学术界和实务界的做法对比来看,从风险溢价出发需要知道与个股收益率同期的因子风险溢价,但真实投资中无法知道未来的因子风险溢价,因此学术界的做法偏向于“解释”收益率;而实务界做法里,个股收益率是和期初的因子暴露对应的,带有“预测”收益率的性质,实用性更强

2.2.3 Fama-MacBeth检验

该检验方法由Fama & MacBeth提出,是一种截面回归检验方法。如果从风险溢价出发,这个检验其实是一个两步的过程:

  1. 对每个资产做时间序列回归,计算各个资产的因子暴露估计量$\hat{b}_{i,k}$;
  2. 在每个横截面上用当期的资产收益率对期初的因子暴露估计量做横截面回归,得到风险溢价的估计$\hat{\lambda}_{k,t}$

对于因子k,对序列$\hat{\lambda}_{k,t}$做传统t检验,如果该因子有效,序列的均值应该显著不等于0.如果是从风险暴露出发,则可免去第一步,直接从第二步开始。

2.3 Alpha因子与风险因子

在本节中,我们区分三个概念:定价因子(Priced-in Factor),Alpha因子与风险因子(Risk factor)。定价因子即通过上述统计检验,对股价有显著影响的因子。

t检验统计量的分子是风险溢价的样本均值,分母是风险溢价的标准差除以样本数量的平方根。因此一个显著的定价因子可能会出现以下四种情形

  1. 风险溢价均值绝对值低且风险溢价方差低:此类称之为低效因子,此类因子的风险溢价均值和方差都很小,在投资中实用价值不大;
  2. 风险溢价均值绝对值高且风险溢价方差低:此类称之为Alpha因子,这种因子的风险溢价均值的绝对值很大,方差很小,说明用这个因子来做选股可以获得显著而且稳定的超额收益;
  3. 风险溢价均值绝对值低且风险溢价方差高:此类称之为风险因子。风险因子的风险溢价均值的绝对值很小,甚至接近于零,用这个因子来做选股长期来看没有明显超额收益;但同时,由于它是一个显著定价因子,说明它对股价有影响;由于风险溢价的方差很大,因此在构建组合时,应该尽量剔除此类因子的影响来获得稳定收益;
  4. 风险溢价均值绝对值高且风险溢价方差高:此类是Alpha因子且是风险因子。拿这类因子做alpha还是风险因子,取决于投资者的选择。例如市值因子属于此类,但由于政策变化可能会导致此类因子失效,所以为了防止这类风险,报告中将其作为风险因子。

三、因子筛选与Alpha优化

3.1 因子筛选流程

Alpha 因子通过单因子的有效性检验后,下一步便是把这些 alpha 因子含有的信息进行汇总合成;对于大型的 alpha 因子库,此时投资者可能会面临大量重复无效的信息。

我们这里参考Fama-MacBeth 检验流程,设计了一套因子筛选方法,可以剔除信息重复的因子。

具体流程如下

假设总共有K个备选的alpha因子$F_1,F_2,\cdots,F_K$,我们已经从中筛选出了s个因子$F_{i_1},F_{i_2},\cdots,F_{i_s}$(初始时$s=0$),那么第$s+1$次时的筛选流程如下:

  1. 对于剩余备选的 alpha 因子,每个因子每个月都对$F_{i_1},F_{i_2},\cdots,F_{i_s}$做多元回归,计算残差项($s=0$的时候不用做这一步)。记得到的K-s个残差项因子分别为$\theta_1,\theta_2,\cdots,\theta_{K-s}$;
  2. 分别把$\theta_j,j=1,2,\cdots,K-s$和$F_{i_1},F_{i_2},\cdots,F_{i_s}$一起做自变量,做Fama-MacBeth回归,记录$\theta_j$系数的显著性,和每个月横截面回归的$adjusted-R^2$的平均值;
  3. 把系数不显著的因子剔除出备选Alpha因子库;
  4. 选取系数显著的且平均$adjusted-R^2$最大的因子,假设为$\theta_h$,则把该因子作为第s+1次筛选出的因子$F_{i_{s+1}}=\theta_h$,进入第s+2次筛选;
  5. 如果所有因子的系数都不显著,则停止筛选过程。

这样做的好处在于:

  • 每个横截面上备选因子对已筛选出因子做回归取残差项的方式可以让我们考察备选因子的“新增信息”
  • 由于残差项和自变量呈现正交特性,这样做也避免了共线性对 Fama-MacBeth 回归里回归系数显著性的影响。

3.2 Alpha优化流程

经过因子筛选,剔除不能贡献独立 alpha 来源的因子后,下一步是要给各个 alpha 因子赋予权重,把单个 alpha 因子的 zscore 加总成一个 zscore。

  • 传统方法是做等权处理;

    • 这显然忽视了 alpha因子之间的相关性,使得因子的权重被人为的放缩。
  • 一种改进的方法是复合因子方法,先把同一类别的因子合成一个因子(例如:把 PE、PB 合成一个估值因子),再把这些复合因子进行等权加总;

    • 这样做可以降低但不能消除因子间相关性的影响;
    • 在合成复合因子过程中,基本面因子的逻辑比较清晰,比较好归类,但技术面因子的逻辑差别较大,很难分类。
    • 如果强行把所有技术面因子归为一类的话,会降低技术面因子的权重,而 A 股目前的现状是技术面因子表现整体强于基本面因子,因此这样做会降低模型表现。
  • 我们这里采取的是 Qian(2007)的做法,这种方法能较好解决因子间的相关性问题

    • 他先证明股票组合收益取决于加总因子的 IC,要获得稳定收益就需要加总因子的 IC 足够稳定
    • 因此他采取最大化复合因子 IC_IR 的方式来获得各个 alpha 因子的权重。

3.3 协方差矩阵估计

Qian(2007)的方法理论上可以很好解决 alpha 因子间的相关性问题,但是实际运用中我们需要去估算 alpha 因子间的协方差矩阵。

  • 最常用的估计量是样本协方差矩阵$\hat{\Sigma}_{IC}$,它是一个无偏估计量,而且在正态假设下还是极大似然估计;

    • 但样本协方差矩阵估计量的方差较大;
    • 如果因子数量较多,超过时间样本数量(K>T),样本协方差矩阵将变得不可逆,也就无法估计最优参数。
    • 即使因子数量较少,或者事件样本较长(K<T),样本协方差矩阵可逆,代入上式计算因子权重也会有问题:
      • 因为我们计算的时候用到的是样本协方差矩阵的逆$\hat{\Sigma}_{IC}^{-1}$;

      • 样本协方差矩阵是协方差矩阵的无偏估计,但样本协方差矩阵的逆并不是协方差矩阵逆的无偏估计;

      • 在正态分布假设下可以证明:

        $$
        E(\hat{\Sigma}_{IC}^{-1})=\frac{T}{T-K-2}\Sigma^{-1}
        $$

        也就是说,如果 T 和 K 的大小比较接近,样本协方差矩阵逆的估计偏差将非常之大;

  • 本文采用的是 Ledoit(2004) 提出的压缩估计量方法,该方法我们之前在做股票组合优化时也有使用过。

    • 它的基本思想是用一个方差小但偏差大的协方差矩阵估计量$\hat{\Phi}$作为目标估计量,和样本协方差矩阵做一个调和,牺牲部分偏差来获得更稳健的估计量,用数学式可以表示为

      $$
      \hat{\Sigma}{shrink}=\lambda\Phi+(1-\lambda)\cdot\hat{\Sigma}{IC}
      $$

    • 参数$\lambda$通过最小化估计量的二次偏差得到;

    • 目标估计量$\hat{\Phi}$的选择上,有三种形式:

      • 单参数形式,可以表示为方差乘以一个单位矩阵;
      • CAPM 单因子结构化模型估计;
      • 平均相关系数形式。
    • 其中第二种形式只适用于股票,第一种形式过于简单,需要牺牲较大的估计偏差,因此这里采用第三种形式作为压缩目标估计量。


以上即该研报的第一部分,之后的内容待续。