BARRA模型系列1-ChatGPT学习
glmos-code-explain
本系列主要是我和ChatGPT学习BARRA模型的系列解说,本篇为第一期。欢迎持续关注。
一、什么是BARRA模型?为什么需要BARRA?
1.1 为啥要多因子?
BARRA模型发展的起因是,旧有的CAPM模型(单因子模型)不足以解释股票收益的绝对收益、超额收益及风险与波动。
CAPM模型的主要公式:
$$
股票收益=无风险利率+\beta\cdot市场组合收益
$$这样的模型不能解释一些现象,例如:
- 小市值股票长期收益更高(规模因子);
- 低估值股票长期收益更高(价值因子);
- 近一段时间涨的多的股票更容易继续涨(动量因子);
- ……
于是,与其使用单个因子解释预期收益与风险,不如用一堆因子,这也就是因子库的思想。
1.2 BARRA是什么?
BARRA是一整套商业化的风险因子体系与模型,大致包括:
- 因子库:风格因子,行业因子,国家、地区因子……
- 因子暴露数据:每只股票在这些因子上的暴露程度,例如这股票有多么小盘 / 价值 / 动量……
- 协方差/风险模型:通过因子协方差矩阵+特质风险,算投资组合的整体风险,投资组合和哪些因子相关……
1.3 BARRA数学形式
BARRA主体回归模型用数学公式描述是这样的:
$$
r_i=\alpha_i+\sum_{k=1}^K{\beta_{i,k}f_k}+\varepsilon_i
$$
其中:
- $r_i$:股票i的超额收益;
- $f_k$:第k个因子的收益(如当期“价值因子”涨了多少?)
- $\beta_{i,k}$:股票i在因子k上的暴露;
- $\varepsilon_i$:特质收益(也就是个股独立于风险因子的收益,用因子解释不了的那部分)
1.4 BARRA的作用
BARRA的作用主要分为三个部分:
- 风险分析:
- 构建的投资组合在各个因子上的暴露有多大?
- 总波动率里,有多少来自市场 / 风格因子 / 个股特质?
- 组合构建:
- 做风格因子的构建;
- 控制行业中性、市值中性;
- 总风险不能超过某个水平;
- 诸如此类会使用BARRA的因子暴露和协方差矩阵来做优化。
- 绩效归因:也就是过去一个月策略多赚 / 少赚的那部分收益:
- 是因为押对了价值因子?
- 还是因为押对了动量因子?
- 还是只是因为个股的特质收益?
- ……
二、BARRA模型结构与数学部分
2.1 从CAPM到BARRA
CAPM的本质是一个单因子线性模型,而BARRA将其推广到了多因子模型:
$$
r_i=\alpha_i+\sum_{k=1}^K{\beta_{i,k}f_k}+\varepsilon_i
$$
写成向量和矩阵形式是这样的:对N只股票,在某一期t,我们有:
$$
r_t=\alpha+B_tf_t+\varepsilon_t
$$
其中:
- $r_t$:$N\times1$的股票收益;
- $B_t$:$N\times K$的因子暴露矩阵;
- $f_t$:$K\times1$的因子收益;
- $\varepsilon_t$:$N\times1$的特质收益向量。
这样的模型结构,实际上是将N只股票的收益分解为基准收益、因子收益与个股特质收益三个部分。基准收益可以理解为无风险收益,因子收益则是由这些因子带来的超额收益,而个股特质收益则是这些因子解释不了的,和个股密切相关的收益。
2.2 BARRA的核心视角
传统资产定价里面,经常是有一些因子收益序列(如Fama-French的三因子模型中的多空组合收益作为因子收益序列),去回归每只股票的$\beta$。这样的做法偏向于解释旧有的收益率,但BARRA更偏向于实务,也就是去预测收益率,所以BARRA的做法和这类做法刚好反过来。它的实施步骤是:
先由因子的特征 / 分类算出暴露$B_t$:
- 这里我们重点讨论风格因子。
- 利用不同类型的风格因子,如市值、PB、过去收益率、波动率等因子,做:
- 标准化;
- 去极值;
- 行业中性化;
- ……
- 得到每个股票对应不同风格因子的风格暴露。这是一个当期的暴露矩阵$B_t$,可理解为“横截面因子库”。
在每个时间点t做一次横截面回归:
$$
r_t=B_tf_t+\varepsilon_t
$$其中,$B_t$是用市值等风险因子构建的暴露,而$f_t$则是回归出的收益。
所以,BARRA是使用“已知的暴露+横截面回归”来估计因子收益的框架。
2.3 BARRA协方差分解
在BARRA这个风险模型中,最重要的不是分解收益、看收益来源,而是控制风险的模型。假设:
- 因子收益$f_t$有协方差矩阵$\Sigma_f$;
- 特质收益$\varepsilon_t$之间相互独立(或者近似独立),只有对角协方差矩阵D。
于是有经典分解:
$$
\Sigma_r=Var(r)=B\Sigma_fB^T+D
$$
其中:
- $B\Sigma_fB^T$:系统性风格因子导致的风险;
- $D$:对角矩阵,对角元为每只股票特质方差。
BARRA会用历史的$f_t$序列去估计$\Sigma_f$,用残差序列估计D,加上各种平滑、收缩、稳健处理,得到一个干净、稳定的协方差矩阵。这个协方差矩阵可以:
- 算投资组合的波动率、跟踪误差;
- 做均值、方差的优化;
- 做风险归因等。
本期的内容大致如上,后一期继续更新:
- BARRA从单只股票到投资组合的迁移过程;
- BARRA的风险因子与普通的Alpha因子的区别。
以上。
