量化百科

Barra 因子模型截面回归求解

由ypyu创建,最终由ypyu 被浏览 106 用户

摘要

Barra 因子模型求解采用了带权重和约束条件的最小二乘回归。本文解释这个回归求解的数学过程,并通过简单实证说明求解的正确性。

引言

我似乎对 Barra 的因子模型过分钟爱了?

That was a joke.

钟爱谈不上,Barra 的模型在中国市场有多大作用、在什么使用情景下有用(因为没有可投资性,它无法直接用来选股)也仍在摸索中。但是,这么多年一代代模型的推出和改进代表着 Barra 自身的思考;一步步的构建一个逐步完善的多因子投资体系。这个框架足以引发我们的思考并学习。

之前我们分三篇文章介绍了 Barra 的因子模型,它们分别是《正确理解 Barra 的纯因子模型》《协方差矩阵的 Newey-West 调整》《Barra 因子模型中的风险调整》

这些文章虽然对模型介绍的比较细,但一直忽视了一个问题 —— 模型的求解。Barra 因子模型求解采用了带权重约束条件的最小二乘回归,求解起来并不是那么直观,有一定的复杂性。所以本文就来介绍截面回归的求解过程。

在那之前,我们再次来重申截面回归所用到的暴露和收益率数据在时间上的关系。截面回归的输入显然对求解至关重要。根据 Barra Risk Model Handbook 的说明,因子暴露和因子收益率数据的正确解读为:

... the previous steps have defined the exposures of each asset to the factors at the beginning of every period in the estimation window. The factor excess returns over the period are then obtained via a cross-sectional regression of asset excess returns on their associated factor exposures ...

这意味着,对于给定某一期截面数据(记为 T 期),在截面回归时采用期初的因子暴露取值(等价于 T - 1 期期末的因子暴露取值)和股票在 T 期内的收益率进行截面回归。在 USE4 模型中,因子收益率是日频的,因此截面回归也应该是日频的,所以按照上述说明,在 T - 1 日结束后更新因子的暴露,并利用 T 日的股票收益率和因子暴露做截面回归。

下面就来介绍截面回归的求解。

数学推导

在下文中,粗体小写字母表示向量、粗体大写字母表示矩阵。使用矩阵和向量,多因子模型可以表示为:

mathbf{r} = mathbf{Xf}+mathbf{u}

其中 bf X 是期初因子暴露矩阵。假设一共有 1 + P + Q = K 个因子(包括 1 个国家因子、P 个行业因子以及 Q 个风格因子),则 bf X 是一个 N × K 阶矩阵(其中 N 为股票个数)。在行文中,我会不厌其烦的写明矩阵的阶数,这有助于编程复现这个求解过程。具体的,

bf X = leftbegin{array}{ccccccc} displaystyle 1&X_1^{I_1}&cdots&X_1^{I_P}&X_1^{S_1}&cdots&X_1^{S_Q} displaystyle 1&X_2^{I_1}&cdots&X_2^{I_P}&X_2^{S_1}&cdots&X_2^{S_Q} displaystyle vdots&vdots&ddots&vdots&vdots&ddots&vdots displaystyle1&X_N^{I_1}&cdots&X_N^{I_P}&X_N^{S_1}&cdots&X_N^{S_Q} end{array} right

下文中用 C 代表国家因子,在 bf X 中,所有股票在该因子上的暴露均为 1,因此 bf X的第一列的所有元素都是 1。P 个行业因子用 I_1I_P 表示;Q 个风格因子用 S_1S_Q 表示。

bf r (N × 1 阶)是当期个股超额收益率向量; bf f(K × 1 阶)是待求的当期因子收益率向量,即 mathbf f = f_C, f_{I_1}, …, f_{I_P}, f_{S_1}, …, f_{S_Q}^Tbf u 为 N × 1 阶个股特异性收益率向量。

bfOmega 为待求解的纯因子投资组合权重矩阵。它是一个 K × N 阶矩阵,它的每一行对应某个因子的纯因子投资组合中所有 N 支股票的权重。 bfOmega 具体可以表达为:

mathbf{Omega} = leftbegin{array}{cccc} displaystyle omega_{C1} &omega_{C2}&cdots&omega_{CN} displaystyle omega_{I_11} &omega_{I_12}&cdots&omega_{I_1N} displaystyle vdots&vdots&ddots&vdots displaystyle omega_{I_P1} &omega_{I_P2}&cdots&omega_{I_PN} displaystyle omega_{S_11} &omega_{S_12}&cdots&omega_{S_1N} displaystyle vdots&vdots&ddots&vdots displaystyleomega_{S_Q1} &omega_{S_Q2}&cdots&omega_{S_QN} end{array} right

为了求解 bfOmega ,我们还需要用到另外两个矩阵,即回归权重矩阵 bf V 和约束矩阵 bf R 。约束矩阵对应的是下面这个因为国家和行业共线性造成的约束条件(不考虑这个约束的话,截面回归的求解不唯一):

s_{I_1}f_{I_1}+s_{I_2}f_{I_2}+dots+s_{I_P}f_{I_P}=0

先来看看这个回归权重矩阵 bf V 是什么。

回归权重矩阵 bf V 是一个 N × N 阶对角阵,第 n 个对角元素代表着股票 n 的权重 v_nv_n 和股票 n 的市值 s_n (在本文第三节的实证中考虑流通市值)的平方根成正比,并满足权重值和为 1。因此可得:

v_n = frac{sqrt {s_n}}{sum_{i=1}^Nsqrt {s_i}}

bf V 的表达式为:

bf V = leftbegin{array}{cccc} displaystyle v_{1} &0&cdots&0 displaystyle 0 &v_2&cdots&0 displaystyle vdots&vdots&ddots&vdots displaystyle 0 &0&cdots&v_N end{array} right

**Barra 采用回归权重矩阵的初衷是为了降低个股特异性收益率的风险对风险因子收益估计的误差。因此通过合理的回归权重降低个股特异性风险。**关于这点,Menchero et al. (2011) 中有相关的说明:

Factor returns in USE4 are estimated using weighted least-squares regression*, assuming that the variance of specific returns is* inversely proportional to the square root of total market capitalization*. This regression-weighting scheme reflects the empirical observation that the idiosyncratic risk of a stock decreases as the market capitalization of the firm increases.*

这段话的意思是,股票的特异性收益率的风险是不同的。然而,股票的特异性风险是不可测的。**经验表明,股票的特异性风险与它的总市值平方根成反比。**在构建纯因子投资组合时,应该加以考虑这一点。这在数学上可以通过在回归时,给股票加上基于特异性风险的回归权重,即带权重的最小二乘回归。

基于上述考虑,Menchero (2010) 指出回归权重应该和市值的平方根成正比

In order to reduce estimation error in the factor returns, regression weights are used so that “noisy” stocks (i.e., those with high specific risk) are down-weighted. In practice, regression weights are often taken as proportional to the square root of market capitalization*, although other weighting schemes are possible.*

这就是使用回归权重矩阵 bf V 的意义。

再来看看约束矩阵 bf R 。约束矩阵 bf R 是代表上文提到的约束条件(即所有行业的因子组合收益率线性相关)在求解时对行业因子收益率的限制条件。根据 Ruud (2000) 提出的理论,K 个因子收益率之间的约束条件(在此我们仅有一个约束条件)可以由以下等式表达:

leftbegin{array}{c} f_Cf_{I_1}vdotsf_{I_P}f_{S_1}vdotsf_{S_Q} end{array} right = leftbegin{array}{cccccccc} displaystyle 1 &0&0&cdots&0&0&cdots&0 displaystyle 0 &1&0&cdots&0&0&cdots&0 displaystyle vdots&vdots&vdots&ddots&vdots&vdots&ddots&vdots displaystyle 0&displaystyle-frac{s_{I_1}}{s_{I_P}} & displaystyle-frac{s_{I_2}}{s_{I_P}}&cdots&displaystyle-frac{s_{I_{P-1}}}{s_{I_P}}&0&cdots&0 displaystyle 0 &0&0&cdots&0&1&cdots&0 displaystyle vdots&vdots&vdots&ddots&vdots&vdots&ddots&vdots displaystyle 0 &0&0&cdots&0&0&cdots&1 end{array} right leftbegin{array}{c} f_Cf_{I_1}vdotsf_{I_{P-1}}f_{S_1}vdotsf_{S_Q} end{array} right+ leftbegin{array}{c} 00vdots00vdots0 end{array} right

上式中,等号右边的矩阵就是约束矩阵 bf R ,它是一个 K × K - 1 阶矩阵,这是因为所有 K 个因子收益率变量之间有一个约束条件,因此它们的自由度为 K - 1。不失一般性,在构造 bf R 时,我们将行业 P 的因子组合收益率 f_{I_P} 用其他行业的收益率的线性组合来表达。

在有了 bf Xbf R 以及 bf V 之后,利用带权重、带约束条件的最小二乘回归求解即可得到纯因子投资组合的股票权重矩阵 bf Omega 。以下求解公式来自 Menchero and Lee (2015) 中附录 A 的 (A.7) 式,感兴趣的朋友可进一步参考。

mathbf Omega=mathbf Rleft(mathbf R^Tmathbf X^Tmathbf Vmathbf Xmathbf Rright)^{-1}mathbf R^Tmathbf X^Tmathbf V

其中 -1 表示矩阵的逆矩阵。

由前文可知, bfOmega 的每一行是一个 1 × N 向量;它就代表着第 k 个因子的纯因子投资组合中所有股票的权重。得到 bfOmega 之后,可通过下式计算出所有因子在当期的因子收益率:

f_k = displaystylesum_{n=1}^Nomega_{kn}r_n

以上就是 Barra 因子模型截面回归的求解。

简单实证

本节对上述求解过程做一个简单的实证,最主要的目的是检验 bfOmega 求解公式是否正确。此外,通过构建的纯因子组合,我们也可以验证在《正确理解 Barra 的纯因子模型》谈到的三类因子(国家因子、行业因子、风格因子)的特性是否成立。

我们选用中证 500 指数的成分股在 2016 年 5 月 31 日的截面数据和这些股票在 2016 年 6 月 1 日的收益率作为回归的输入。除国家因子外,行业因子考虑了 27 个申万行业,并考虑以下 11 种风格因子(再次重申,本实证的目的是为了验证 bfOmega 的求解,因此对于如何构建这些风格因子不做描述):GROWTH,EP,BP,LIQ,SCALE,SCALENL,BETA,RESIDSTD,MOM,REV 以及 LIB2ASSET。

根据上一节的求解方法,得到这 39 个因子(1 个国家 + 27 个行业 + 11 个风格)的投资组合在 2016 年 6 月 1 日的因子收益率如下。

观察不同因子的收益率可知,它们的数量级大致相当。结果显示,国家因子的收益率为 0.429%,当日中证 500 的收益率是 0.44%。这两个数字满足《正确理解 Barra 的纯因子模型》提到的**国家因子组合近似的等于市场组合。**比较国家因子组合中个股的权重和中证 500 指数中个股权重,权重差别的均值为 3.2%,权重差别的分布如下图所示(提醒,这仅仅是当期的结果):

再来看看行业因子收益率。行业因子投资 100% 做多该行业,100% 做空市场,因此它表示行业相对市场的超额收益。然而,**行业因子的投资组合收益率并不等于申万这些行业指数和中证 500 指数收益率的差值。**这是因为行业纯因子投资组合对所有风格因子的暴露为零,而申万行业指数无法满足这个限制,所以二者中个股的权重是不同的,因此它们的收益率也会有出入。

使用因子投资组合的权重矩阵 bfOmega (K × N 阶)乘以当期的因子暴露矩阵 bf X (N × K 阶),就得到一个 K × K 阶的矩阵,该矩阵的每一行都是其对应的因子投资组合在其他因子上的暴露。检查这个矩阵的结果可以帮助我们检验 Barra 纯因子组合的性质。下图就是 bf Omega 乘以 bf X 得到的矩阵。

图中(看的不是太清楚,我尽量解释),排除列名所在的最上面一行不考虑,第一行是国家因子;蓝色长方形框出来的部分是行业因子;红色长方形框出来的部分是风格因子。白色的单元格表示的数字是 0 —— 因此我们很容易看出,国家因子和任一个行业因子组合在所有风格因子上的暴露都是 0;而任何一个风格因子纯因子组合在国家、所有行业以及其他风格因子上的暴露也都是 0。

下面再来具体看看不是零的单元格(我们从图中分别针对国家和行业因子、以及风格因子截取一部分解释)。

下图显示了该矩阵左上角的部分,包括国家因子和几个行业因子。第一行(除了列名外)为国家因子,每一列对应的单元格中的数字是国家因子在相应因子上的暴露。可见,国家因子对自身的暴露为 1,因为它近似的等于市场,而市场包含了所有行业,因此它在每个行业上都有一定程度的暴露(比如,国家因子在 801010 行业上的暴露为 0.033,在 801020 行业上的暴露为 0.020)。

再来看看行业因子。以 801010 这个行业为例(即排除列名外的第二行)。前文反复强调过,行业的纯因子组合等价于 100% 做多该行业,100% 做空国家因子。因此,对于 801010 这个行业来说,它在所有行业(包括它自己)上的暴露应该是行向量 [1, 0, 0, … ,0](第一个 1 代表对它自己的 100% 多头)和国家因子在这些行业上的暴露 —— 即向量 [0.033, 0.020, 0.059, … ] —— 的差(做差就相当于做空国家因子):

1, 0, 0, … ,0 - 0.033, 0.020, 0.059, …  = 0.967, -0.020, -0.059, …

而如果我们考察 801010 所在的第二行的数值,则上面计算得到的这个向量 [0.967, -0.020, -0.059, …](忽略计算误差)中的数值正是对应 801010 在不同行业(包括它自己)上的暴露!

扩展一下上述结论,对于给定的行业,它在其他行业的暴露等于向量 [0, 0, …, 0, 1, 0, …, 0] —— 假设该行业在所有行业中的位置为 p**,则这个向量中的位置** p 1**,其他位置为** 0 **—— 与国家因子在这些行业上的暴露向量之差。**这也解释了为什么在上图中我们观察到,任何其他行业在行业 p 上的暴露都相等(在误差范围内),且等于国家因子在行业 p 上暴露加个负号。

最后来看看风格因子的纯因子组合。下图证实,对于每个风格因子,其纯因子组合只对它本身有 1 个单位的暴露,而对其他风格因子没有任何暴露。

以上我们从多个角度检验了截面回归的求解结果。得到的数据和 Barra 对于纯因子组合的构建相符合,这说明了 bfOmega 求解过程的正确性。

结语

本文介绍了截面回归的求解。结合之前的几篇文章,对 Barra 模型的介绍基本比较完整了。然而,我们对它的思考和实践应远不止于此。

在国内的一些优秀券商金工报告中,已经开始使用最优化的思想,加上各种可投资性的限制,利用 Barra 的这套纯因子模型来构建投资组合了。这无疑是一种很好的尝试。

另外,有朋友反馈说,使用了 Newey-West 调整后,协方差矩阵的 bias statistic 反而变差。还有其他各种各样的问题。在我自己的实践中,尚未遇到所有小伙伴们遇到的问题,因此暂时无法对所有问题都给出靠谱的评论。

**无论我们是否使用 Barra 模型,最重要的是理解它内在的含义和它使用的各种统计手段。切莫把 Barra 当作多因子投资的“标准姿势”,误以为把它套用到 A 股数据上就会产生什么神奇的化学反应。**那无疑是本末倒置。正确的做法是理解其含义,并针对 A 股数据的特点有的放矢、灵活应用。让我们在践行多因子选股的道路上,为找到收益风险比更佳的投资组合而努力。

参考文献

  • Menchero, J. (2010). Characteristics of Factor Portfolios. MSCI Barra Research Notes.
  • Menchero, J., D. J. Orr, and J. Wang (2011). The Barra US Equity Model (USE4). MSCI Barra Research Notes.
  • Menchero, J. and J.-H. Lee (2015). Efficiently combining multiple sources of alpha. Journal of Investment Management, Vol. 13(4), 71 - 86.
  • Ruud, P. A. (2000). An Introduction to Classical Econometric Theory. New York, NY: Oxford University Press.
  • Barra Risk Model Handbook (2007). MSCI.

\

标签

Barra多因子模型BARRA