量化百科

说说Barra风险因子

由polll创建,最终由polll 被浏览 55 用户

最近有学妹问我关于Barra的事,刚好之前实习在做这个,所以借知乎这个平台写一写自己的理解,如果有什么不对的地方大家可以多多指教。

这个主要是给小白写的,因为国君的那篇研报《基于组合权重优化的风格中性多因子选股策略--数量化专题之五十七》中确实有一些值得商榷的地方。

这篇主要先说说Barra风险因子的做法,文中的所有截图来自于CNE5


1.Size

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1240' height='223'></svg>)

这个没啥好说的,就是总市值的对数。

2.Beta

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1249' height='444'></svg>)

beta的计算就稍微有点麻烦了,这里是用过去252天的数据去做加权最小二乘的回归,权重是半衰期=63的半衰期加权,半衰期加权在barra的文档中经常会用到,在这里再多说一句半衰期加权的算法。t是半衰期,那么 lambda=2^{-frac{1}{t}} ,则相应的权重为: lambda^{1}lambda^{2}lambda^{3} ,…… lambda^{252}

然后使权重之和为1,距离比较近的时间的数据要相应的赋予比较大的权重。

还有一个问题是,这里无风险利率存在一定的争议,可以根据情况灵活处理。

3.Momentum

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1230' height='427'></svg>)

这个没啥说的,直接算就行。

4.Residual Volatility

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1548' height='365'></svg>)

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1393' height='551'></svg>)

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1408' height='371'></svg>)

DASTD的意思是过去252个交易日的日超额收益率加权平均和,权重依然使用半衰期为42天的半衰期加权。

CMRA:这里Z(T)的意思是过去T个月的累计超额对数收益率,每月定为21个交易日。对于每一个交易日,分别计算出Z(1),Z(2)……Z(12),然后得到 Z_{max}和Z_{min} ,之后可得CMRA。

HSIGMA:计算beta时候的的残差的标准差,建议算beta的时候直接把这个值保存下来。

值得注意的是,这里需要再做一步正交化。所谓正交化就是,把Residual Volatility当作y,把Beta和Size当作x来进行多元回归,把残差作为新的Residual Volatility因子。

5.Non-linear Size

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1511' height='328'></svg>)

用对数市值的立方对对数市值做回归,之后取残差。

6.Book-to-Price

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1466' height='267'></svg>)

总权益/总市值

7.Liquidity

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1463' height='253'></svg>)

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1165' height='752'></svg>)

STOM:对于每个交易日,求出过去1个月(21天)的换手率之和,再取对数。

STOQ:对于每个交易日,求出过去3个月(3*21天)的 e^{STOM} 均值,再取对数。

STOA:对于每个交易日,求出过去12个月(12*21天)的 e^{STOM} 均值,再取对数。

8.Earnings Yield

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1241' height='544'></svg>)

EPFWD:forward-looking earnings/当前市值,这里forward-looking earnings用到了分析师一致预期的数据,一致预期的数据质量也是有待商榷的。

CETOP 和 ETOP比较简单,直接算就行,注意要使用TTM值。

9.Growth

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1330' height='261'></svg>)

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1478' height='551'></svg>)

EGRIF和EGRSF分别是长期和短期的一致预期净利润增长率,在有些地方,出于对一致预期数据质量的考量,就没有考虑这两个值。

EGRO:使用过去5年的每股净利润对T=1,2,3,4,5做回归,得到的系数除以平均每股净利润。

SGRO和EGRO的方法相同。

10.Leverage

![](data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1307' height='905'></svg>)

Leverage的计算方法比较简单,直接算就可以。


barra因子的计算方法有些细节可能还需要具体把握,比如无风险利率市场利率的选择,缺失值的处理什么的等等。

之后可能会继续放上我实际进行因子测试的结果。如果有人看我会继续写哒。=。=

标签

风险模型资产定价投资组合理论协方差矩阵资产配置